ATLAS Offline Software
Loading...
Searching...
No Matches
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
30class Starlight_i:public GenModule {
31public:
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
40protected:
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};
83 double m_bford{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();
95};
96
97#endif
GenModule(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
Definition GenModule.cxx:14
unsigned int m_beam1A
Definition Starlight_i.h:58
int m_beamBreakupMode
Definition Starlight_i.h:78
double m_interferenceStrength
Definition Starlight_i.h:80
unsigned int m_beam2A
Definition Starlight_i.h:60
unsigned int m_nmbRapidityBins
Definition Starlight_i.h:67
double m_maxW
Definition Starlight_i.h:63
int m_nmbPtBinsInterference
Definition Starlight_i.h:85
bool m_accCutEta
Definition Starlight_i.h:71
int m_productionMode
Definition Starlight_i.h:74
starlight * m_starlight
Definition Starlight_i.h:51
UnsignedIntegerProperty m_maxevents
Definition Starlight_i.h:44
virtual StatusCode fillEvt(HepMC::GenEvent *evt)
For filling the HepMC event object.
double m_incoherentFactor
Definition Starlight_i.h:82
bool set_user_params()
BooleanProperty m_lheOutput
Definition Starlight_i.h:43
IntegerProperty m_dsid
Definition Starlight_i.h:41
double m_maxEta
Definition Starlight_i.h:73
Starlight_i(const std::string &name, ISvcLocator *pSvcLocator)
StringArrayProperty m_InitializeVector
Definition Starlight_i.h:48
unsigned int m_nmbWBins
Definition Starlight_i.h:65
bool prepare_params_file()
bool starlight2lhef()
int m_outputFormat
Definition Starlight_i.h:77
unsigned int m_beam2Z
Definition Starlight_i.h:59
BooleanProperty m_doTauolappLheFormat
Definition Starlight_i.h:45
double m_bford
Definition Starlight_i.h:83
unsigned int m_nmbEventsTot
Definition Starlight_i.h:75
int m_prodParticleId
Definition Starlight_i.h:76
double m_axionMass
Definition Starlight_i.h:54
virtual StatusCode callGenerator()
For calling the generator on each iteration of the event loop.
double m_beam1Gamma
Definition Starlight_i.h:61
bool m_xsecMethod
Definition Starlight_i.h:87
inputParameters m_inputParameters
Definition Starlight_i.h:53
double m_minEta
Definition Starlight_i.h:72
bool m_accCutPt
Definition Starlight_i.h:68
double m_minPt
Definition Starlight_i.h:69
double m_maxRapidity
Definition Starlight_i.h:66
unsigned int m_beam1Z
Definition Starlight_i.h:57
upcEvent * m_event
Definition Starlight_i.h:55
double m_maxPt
Definition Starlight_i.h:70
virtual ~Starlight_i()
double m_minW
Definition Starlight_i.h:64
virtual StatusCode genFinalize()
For finalising the generator, if required.
double m_ptBinWidthInterference
Definition Starlight_i.h:86
std::shared_ptr< randomGenerator > m_randomGenerator
Definition Starlight_i.h:52
StringProperty m_configFileName
Definition Starlight_i.h:42
bool m_coherentProduction
Definition Starlight_i.h:81
BooleanProperty m_suppressVMdecay
Definition Starlight_i.h:46
bool m_pythFullRec
Definition Starlight_i.h:89
virtual StatusCode genInitialize()
For initializing the generator, if required.
bool m_interferenceEnabled
Definition Starlight_i.h:79
double m_beam2Gamma
Definition Starlight_i.h:62
double m_maxPtInterference
Definition Starlight_i.h:84