FairShip
Loading...
Searching...
No Matches
Generator.h
Go to the documentation of this file.
1// SPDX-License-Identifier: LGPL-3.0-or-later
2// SPDX-FileCopyrightText: Copyright CERN for the benefit of the SHiP
3// Collaboration
4
5#ifndef SHIPGEN_GENERATOR_H_
6#define SHIPGEN_GENERATOR_H_
7
8#include <optional>
9#include <string>
10#include <vector>
11
12#include "FairGenerator.h"
13#include "FairLogger.h"
14
15namespace SHiP {
16class Generator : public FairGenerator {
17 public:
19 virtual ~Generator();
20
21 virtual Bool_t Init(const char*, int) = 0;
22 virtual Bool_t Init(const char*) = 0;
23 virtual Bool_t Init(const std::vector<std::string>& inFiles,
24 int startNumber) {
25 LOG(warning) << "Multiple input files not implemented for this generator "
26 "- only taking the first!";
27 return Init(inFiles.at(0).c_str(), startNumber);
28 };
29 virtual Bool_t Init(const std::vector<std::string>& inFiles) {
30 LOG(warning) << "Multiple input files not implemented for this generator "
31 "- only taking the first!";
32 return Init(inFiles.at(0).c_str(), 0);
33 };
34
35 virtual void UseExternalFile(std::string x, Int_t i) {
36 fextFile = x;
37 firstEvent = i;
38 };
39
40 virtual void UseExternalFile(std::vector<std::string>& inFiles, Int_t i) {
41 LOG(warning) << "Multiple external files not implemented for this "
42 "generator - only taking the first!";
43 UseExternalFile(inFiles.at(0).c_str(), i);
44 }
45
46 protected:
47 std::optional<std::string> fextFile;
48 Int_t firstEvent = 0;
49};
50} // namespace SHiP
51#endif // SHIPGEN_GENERATOR_H_
virtual void UseExternalFile(std::vector< std::string > &inFiles, Int_t i)
Definition: Generator.h:40
virtual Bool_t Init(const std::vector< std::string > &inFiles)
Definition: Generator.h:29
virtual Bool_t Init(const std::vector< std::string > &inFiles, int startNumber)
Definition: Generator.h:23
virtual void UseExternalFile(std::string x, Int_t i)
Definition: Generator.h:35
std::optional< std::string > fextFile
Definition: Generator.h:47
virtual Bool_t Init(const char *, int)=0
virtual Bool_t Init(const char *)=0
Int_t firstEvent
Definition: Generator.h:48
virtual ~Generator()
Definition: Generator.cxx:6
Definition: Detector.h:18