ATLAS Offline Software
Epos.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef GENERATORMODULESEPOS_H
6 #define GENERATORMODULESEPOS_H
7 
9 #include <sys/types.h>
10 
11 #include "CRMC.h"
28 class Epos: public GenModule {
29 public:
30  Epos(const std::string& name, ISvcLocator* pSvcLocator);
31  virtual ~Epos() = default;
32 
33  virtual StatusCode genInitialize();
34  virtual StatusCode callGenerator();
35  virtual StatusCode genFinalize();
36  virtual StatusCode fillEvt(HepMC::GenEvent* evt);
37 
38 protected:
39  // The interface
40  CRMCinterface* m_interface;
41  // event counter
42  int m_events;
43  int m_ievent; //event counter in Epos
44  int m_iout; //output type
45 
46  // setable properties
49  int m_model;
52  std::string m_paramFile;
53  std::string m_lheout;
54  int m_itab;
55  int m_ilheout;
56  int m_nEvents;
57  double m_degymx;
58 
59  //Gen_tf run args.
60  IntegerProperty m_dsid{this, "Dsid", 999999};
61 
62  // max number of particles MUST BE EQUAL TO THE NUMBER SET IN crmc-aaa.f! (it is max. number allowed by HepMC2.6 now)
63 // static const size_t kMaxParticles = HEPEVT_EntriesAllocation;
64 // static const size_t kMaxParticles = HEPEVT_SIZE_REPLACE;
65  inline static const size_t kMaxParticles {10000};
66  std::vector<int> m_partID;
67  std::vector<double> m_partPx;
68  std::vector<double> m_partPy;
69  std::vector<double> m_partPz;
70  std::vector<double> m_partEnergy;
71  std::vector<double> m_partMass;
72  std::vector<int> m_partStat;
73 
74  std::vector<long int> m_seeds;
75 };
76 
77 #endif
78 
Epos::m_partPy
std::vector< double > m_partPy
Definition: Epos.h:68
Epos
This code is used to get an Epos Monte Carlo event.
Definition: Epos.h:28
Epos::m_beamMomentum
double m_beamMomentum
Definition: Epos.h:47
Epos::Epos
Epos(const std::string &name, ISvcLocator *pSvcLocator)
Definition: Epos.cxx:60
Epos::m_partID
std::vector< int > m_partID
Definition: Epos.h:66
Epos::m_seeds
std::vector< long int > m_seeds
Definition: Epos.h:74
Epos::m_events
int m_events
Definition: Epos.h:42
Epos::m_partMass
std::vector< double > m_partMass
Definition: Epos.h:71
Epos::m_interface
CRMCinterface * m_interface
Definition: Epos.h:40
Epos::m_iout
int m_iout
Definition: Epos.h:44
Epos::m_dsid
IntegerProperty m_dsid
Definition: Epos.h:60
Epos::m_paramFile
std::string m_paramFile
Definition: Epos.h:52
LArG4FSStartPointFilter.evt
evt
Definition: LArG4FSStartPointFilter.py:42
Epos::kMaxParticles
static const size_t kMaxParticles
Definition: Epos.h:65
Epos::m_partPx
std::vector< double > m_partPx
Definition: Epos.h:67
GenModule
Base class for common behaviour of generator interfaces.
Definition: GenModule.h:39
Epos::~Epos
virtual ~Epos()=default
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
Epos::m_targetParticle
int m_targetParticle
Definition: Epos.h:51
Epos::fillEvt
virtual StatusCode fillEvt(HepMC::GenEvent *evt)
For filling the HepMC event object.
Definition: Epos.cxx:183
Epos::genInitialize
virtual StatusCode genInitialize()
For initializing the generator, if required.
Definition: Epos.cxx:100
Epos::m_ilheout
int m_ilheout
Definition: Epos.h:55
Epos::m_ievent
int m_ievent
Definition: Epos.h:43
Epos::m_model
int m_model
Definition: Epos.h:49
Epos::m_nEvents
int m_nEvents
Definition: Epos.h:56
Epos::m_targetMomentum
double m_targetMomentum
Definition: Epos.h:48
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
Epos::m_degymx
double m_degymx
Definition: Epos.h:57
Epos::m_itab
int m_itab
Definition: Epos.h:54
Epos::m_lheout
std::string m_lheout
Definition: Epos.h:53
GenModule.h
Epos::genFinalize
virtual StatusCode genFinalize()
For finalising the generator, if required.
Definition: Epos.cxx:154
Epos::callGenerator
virtual StatusCode callGenerator()
For calling the generator on each iteration of the event loop.
Definition: Epos.cxx:124
Epos::m_partEnergy
std::vector< double > m_partEnergy
Definition: Epos.h:70
Epos::m_partPz
std::vector< double > m_partPz
Definition: Epos.h:69
Epos::m_partStat
std::vector< int > m_partStat
Definition: Epos.h:72
Epos::m_primaryParticle
int m_primaryParticle
Definition: Epos.h:50