ATLAS Offline Software
Starlight_i.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 // --------------------------------------------------
6 //
7 // File: Generators/Starlight_i.h
8 // Description:
9 // This code is used to get a Starlight Monte Carlo event.
10 // genInitialize() is used to read parameters
11 // callGenerator() makes the event
12 // genFinalize() writes log files etc
13 // fillEvt(GeneratorEvent* evt) passes the event to HepMC
14 //
15 // The output will be stored in the transient event store so it can be
16 // passed to the simulation.
17 //
18 // AuthorList:
19 // Andrzej Olszewski, March 2015
20 
21 #ifndef GENERATORMODULESSTARLIGHT_H
22 #define GENERATORMODULESSTARLIGHT_H
23 
25 
26 #include "starlight.h"
27 #include "upcevent.h"
28 #include "inputParameters.h"
29 
30 class Starlight_i:public GenModule {
31 public:
32  Starlight_i(const std::string& name, ISvcLocator* pSvcLocator);
33  virtual ~Starlight_i();
34 
35  virtual StatusCode genInitialize();
36  virtual StatusCode callGenerator();
37  virtual StatusCode genFinalize();
38  virtual StatusCode fillEvt(HepMC::GenEvent* evt);
39 
40 protected:
41  IntegerProperty m_dsid{this, "Dsid", 999999, "Dataset ID number"};
42  StringProperty m_configFileName{this, "ConfigFileName", ""};
43  BooleanProperty m_lheOutput{this, "lheOutput", false};
44  UnsignedIntegerProperty m_maxevents{this, "maxevents", 5500};
45  BooleanProperty m_doTauolappLheFormat{this, "doTauolappLheFormat", false};
46  BooleanProperty m_suppressVMdecay{this, "suppressVMdecay", false};
47  // Commands to setup starlight
48  StringArrayProperty m_InitializeVector{this, "Initialize", {} };
49 
50  int m_events{0}; // event counter
51  starlight* m_starlight{}; // pointer to starlight instance // TODO convert to unique_ptr
52  std::shared_ptr<randomGenerator> m_randomGenerator{};
53  inputParameters m_inputParameters; // parameter instance
54  double m_axionMass{1.};
55  upcEvent *m_event{}; // TODO convert to unique_ptr
56 
57  unsigned int m_beam1Z{0};
58  unsigned int m_beam1A{0};
59  unsigned int m_beam2Z{0};
60  unsigned int m_beam2A{0};
61  double m_beam1Gamma{0.};
62  double m_beam2Gamma{0.};
63  double m_maxW{0.};
64  double m_minW{0.};
65  unsigned int m_nmbWBins{0};
66  double m_maxRapidity{0.};
67  unsigned int m_nmbRapidityBins{0};
68  bool m_accCutPt{false};
69  double m_minPt{0.};
70  double m_maxPt{0.};
71  bool m_accCutEta{false};
72  double m_minEta{0.};
73  double m_maxEta{0.};
75  unsigned int m_nmbEventsTot{0};
79  bool m_interferenceEnabled{false};
81  bool m_coherentProduction{false};
82  double m_incoherentFactor{0.};
83  double m_bford{0.};
84  double m_maxPtInterference{0.};
87  bool m_xsecMethod{false};
88  int m_nThreads{1};
89  bool m_pythFullRec{false};
90 
91  bool starlight2lhef();
92 
93  bool set_user_params();
94  bool prepare_params_file();
95 };
96 
97 #endif
Starlight_i::m_event
upcEvent * m_event
Definition: Starlight_i.h:55
Starlight_i::m_doTauolappLheFormat
BooleanProperty m_doTauolappLheFormat
Definition: Starlight_i.h:45
Starlight_i::m_starlight
starlight * m_starlight
Definition: Starlight_i.h:51
Starlight_i::m_accCutEta
bool m_accCutEta
Definition: Starlight_i.h:71
Starlight_i::m_maxEta
double m_maxEta
Definition: Starlight_i.h:73
Starlight_i::m_beam2A
unsigned int m_beam2A
Definition: Starlight_i.h:60
Starlight_i::m_inputParameters
inputParameters m_inputParameters
Definition: Starlight_i.h:53
Starlight_i::m_productionMode
int m_productionMode
Definition: Starlight_i.h:74
Starlight_i::m_suppressVMdecay
BooleanProperty m_suppressVMdecay
Definition: Starlight_i.h:46
Starlight_i::m_beam1A
unsigned int m_beam1A
Definition: Starlight_i.h:58
Starlight_i::m_axionMass
double m_axionMass
Definition: Starlight_i.h:54
Starlight_i::fillEvt
virtual StatusCode fillEvt(HepMC::GenEvent *evt)
For filling the HepMC event object.
Definition: Starlight_i.cxx:144
LArG4FSStartPointFilter.evt
evt
Definition: LArG4FSStartPointFilter.py:42
Starlight_i::m_nThreads
int m_nThreads
Definition: Starlight_i.h:88
Starlight_i::m_maxPt
double m_maxPt
Definition: Starlight_i.h:70
Starlight_i::m_beam1Gamma
double m_beam1Gamma
Definition: Starlight_i.h:61
Starlight_i::m_lheOutput
BooleanProperty m_lheOutput
Definition: Starlight_i.h:43
Starlight_i::m_configFileName
StringProperty m_configFileName
Definition: Starlight_i.h:42
Starlight_i::m_minPt
double m_minPt
Definition: Starlight_i.h:69
Starlight_i::m_beam2Gamma
double m_beam2Gamma
Definition: Starlight_i.h:62
Starlight_i::m_interferenceStrength
double m_interferenceStrength
Definition: Starlight_i.h:80
Starlight_i::m_xsecMethod
bool m_xsecMethod
Definition: Starlight_i.h:87
GenModule
Base class for common behaviour of generator interfaces.
Definition: GenModule.h:39
Starlight_i::starlight2lhef
bool starlight2lhef()
Definition: Starlight_i.cxx:234
Starlight_i::m_pythFullRec
bool m_pythFullRec
Definition: Starlight_i.h:89
Starlight_i::genFinalize
virtual StatusCode genFinalize()
For finalising the generator, if required.
Definition: Starlight_i.cxx:136
Starlight_i::m_randomGenerator
std::shared_ptr< randomGenerator > m_randomGenerator
Definition: Starlight_i.h:52
Starlight_i::m_InitializeVector
StringArrayProperty m_InitializeVector
Definition: Starlight_i.h:48
Starlight_i::m_outputFormat
int m_outputFormat
Definition: Starlight_i.h:77
Starlight_i::Starlight_i
Starlight_i(const std::string &name, ISvcLocator *pSvcLocator)
Definition: Starlight_i.cxx:42
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
Starlight_i::set_user_params
bool set_user_params()
Definition: Starlight_i.cxx:335
Starlight_i::m_ptBinWidthInterference
double m_ptBinWidthInterference
Definition: Starlight_i.h:86
Starlight_i::m_prodParticleId
int m_prodParticleId
Definition: Starlight_i.h:76
Starlight_i::m_maxPtInterference
double m_maxPtInterference
Definition: Starlight_i.h:84
Starlight_i::m_accCutPt
bool m_accCutPt
Definition: Starlight_i.h:68
Starlight_i::m_nmbWBins
unsigned int m_nmbWBins
Definition: Starlight_i.h:65
Starlight_i::m_nmbPtBinsInterference
int m_nmbPtBinsInterference
Definition: Starlight_i.h:85
Starlight_i::m_nmbEventsTot
unsigned int m_nmbEventsTot
Definition: Starlight_i.h:75
starlight
Definition: starlight.example.joboption.py:1
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
Starlight_i::m_minW
double m_minW
Definition: Starlight_i.h:64
Starlight_i::callGenerator
virtual StatusCode callGenerator()
For calling the generator on each iteration of the event loop.
Definition: Starlight_i.cxx:90
Starlight_i::m_interferenceEnabled
bool m_interferenceEnabled
Definition: Starlight_i.h:79
Starlight_i::m_nmbRapidityBins
unsigned int m_nmbRapidityBins
Definition: Starlight_i.h:67
Starlight_i::m_incoherentFactor
double m_incoherentFactor
Definition: Starlight_i.h:82
Starlight_i::m_coherentProduction
bool m_coherentProduction
Definition: Starlight_i.h:81
Starlight_i::m_dsid
IntegerProperty m_dsid
Definition: Starlight_i.h:41
GenModule.h
Starlight_i
Definition: Starlight_i.h:30
Starlight_i::m_beamBreakupMode
int m_beamBreakupMode
Definition: Starlight_i.h:78
Starlight_i::m_bford
double m_bford
Definition: Starlight_i.h:83
Starlight_i::m_events
int m_events
Definition: Starlight_i.h:50
Starlight_i::m_minEta
double m_minEta
Definition: Starlight_i.h:72
Starlight_i::m_beam1Z
unsigned int m_beam1Z
Definition: Starlight_i.h:57
Starlight_i::m_beam2Z
unsigned int m_beam2Z
Definition: Starlight_i.h:59
Starlight_i::~Starlight_i
virtual ~Starlight_i()
Definition: Starlight_i.cxx:47
Starlight_i::prepare_params_file
bool prepare_params_file()
Definition: Starlight_i.cxx:359
Starlight_i::m_maxevents
UnsignedIntegerProperty m_maxevents
Definition: Starlight_i.h:44
Starlight_i::m_maxRapidity
double m_maxRapidity
Definition: Starlight_i.h:66
Starlight_i::m_maxW
double m_maxW
Definition: Starlight_i.h:63
Starlight_i::genInitialize
virtual StatusCode genInitialize()
For initializing the generator, if required.
Definition: Starlight_i.cxx:52