ATLAS Offline Software
Hijing.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef GENERATORMODULESHIJING_H
6 #define GENERATORMODULESHIJING_H
7 
9 #include "CLHEP/Vector/LorentzVector.h"
10 
11 #include "Hijing_i/HiParnt.h"
12 #include "Hijing_i/RanSeed.h"
13 #include "Hijing_i/HiMain1.h"
14 #include "Hijing_i/HiMain2.h"
15 #include "Hijing_i/HijJet1.h"
16 #include "Hijing_i/HijJet2.h"
17 #include "Hijing_i/HijJet4.h"
18 #include "Hijing_i/HiStrng.h"
19 #include "Hijing_i/HijCrdn.h"
20 
21 typedef std::vector<std::string> CommandVector;
22 
23 // new to store hijing event parameters
25 
43 class Hijing:public GenModule {
44 public:
45  Hijing(const std::string& name, ISvcLocator* pSvcLocator);
46  virtual ~Hijing() = default;
47 
48  virtual StatusCode genInitialize() override;
49  virtual StatusCode callGenerator() override;
50  virtual StatusCode genFinalize() override;
51  virtual StatusCode fillEvt(HepMC::GenEvent* evt) override;
52 
53 protected:
54  virtual CLHEP::HepLorentzVector randomizeVertex(CLHEP::HepRandomEngine* engine);
55 
56  //Gen_tf run args.
57  IntegerProperty m_dsid{this, "Dsid", 999999};
58 
59  // inputs to HIJSET (Hijing initialization) ...
60  float m_efrm{0.};
61  std::string m_frame;
62  std::string m_proj;
63  std::string m_targ;
64  int m_iap{0};
65  int m_iat{0};
66  int m_izp{0};
67  int m_izt{0};
68  // ... and HIJING (event generation)
69  float m_bmin{0.};
70  float m_bmax{0.};
71 
72  // Vertex shifting
73 
74  float m_x{0.};
75  float m_y{0.};
76  float m_z{0.};
77  bool m_sel{false}; // Vertex shifting on or off
78  bool m_spec{true}; // TRUE will keep specator information (default)
79 
80  //Set internal randomization of vertices for beam gas gen (on or off).
81  bool m_rand{false};
82  bool m_wide{false}; // True allows particles with x,y distributions
83  bool m_prand{false}; //BPK mirror event randomly
85 
86  // Limit settings
87  double m_partonStoreMinPt{5.0};
88  double m_vertexOffsetCut{1.0E-7};
89 
90  // Random numbers seed
91  int m_randomseed{0};
92  std::vector<long int> m_seeds;
93 
94  // event counter
95  int m_events{0};
96 
97  // Commands to setup hijing
99 
100  // Accessor to HIJING Options and parameters COMMON
102 
103  // Accessor to HIJING Random number seed COMMON
105 
106  // Accessors to HIJING Event information COMMONS
114 
115  void set_user_params(void);
116 
117  SG::WriteHandleKey<HijingEventParams> m_event_paramsKey{this, "HijingOutputKey", "Hijing_event_params"};
118 };
119 
120 #endif
Hijing::m_efrm
float m_efrm
Definition: Hijing.h:60
Hijing::m_iap
int m_iap
Definition: Hijing.h:64
Hijing::m_histrng
HiStrng m_histrng
Definition: Hijing.h:112
Hijing::m_frame
std::string m_frame
Definition: Hijing.h:61
HijCrdn.h
HijingEventParams.h
Hijing::m_targ
std::string m_targ
Definition: Hijing.h:63
Hijing::m_bmin
float m_bmin
Definition: Hijing.h:69
HiStrng
Class definition for HiStrng, which is used to modify the Hijing HISTRNG common.
Definition: HiStrng.h:17
HijJet2.h
Hijing
Definition: Hijing.h:43
HiStrng.h
HijJet4.h
Hijing::fillEvt
virtual StatusCode fillEvt(HepMC::GenEvent *evt) override
For filling the HepMC event object.
Definition: Hijing.cxx:211
Hijing::m_proj
std::string m_proj
Definition: Hijing.h:62
HijJet1.h
Hijing::m_iat
int m_iat
Definition: Hijing.h:65
LArG4FSStartPointFilter.evt
evt
Definition: LArG4FSStartPointFilter.py:42
Hijing::m_spec
bool m_spec
Definition: Hijing.h:78
Hijing::m_event_paramsKey
SG::WriteHandleKey< HijingEventParams > m_event_paramsKey
Definition: Hijing.h:117
HiParnt
Class definition for HiParnt, which is used to modify the Hijing HIPARNT common.
Definition: HiParnt.h:18
RanSeed
Class definition for RanSeed, which is used to modify the Hijing RANSEED common.
Definition: RanSeed.h:19
Hijing::m_y
float m_y
Definition: Hijing.h:75
Hijing::m_InitializeVector
CommandVector m_InitializeVector
Definition: Hijing.h:98
Hijing::m_hijjet1
HijJet1 m_hijjet1
Definition: Hijing.h:109
Hijing::genInitialize
virtual StatusCode genInitialize() override
For initializing the generator, if required.
Definition: Hijing.cxx:85
Hijing::genFinalize
virtual StatusCode genFinalize() override
For finalising the generator, if required.
Definition: Hijing.cxx:204
Hijing::m_wide
bool m_wide
Definition: Hijing.h:82
GenModule
Base class for common behaviour of generator interfaces.
Definition: GenModule.h:39
Hijing::m_events
int m_events
Definition: Hijing.h:95
Hijing::m_randomseed
int m_randomseed
Definition: Hijing.h:91
Hijing::m_rand
bool m_rand
Definition: Hijing.h:81
SG::WriteHandleKey< HijingEventParams >
Hijing::randomizeVertex
virtual CLHEP::HepLorentzVector randomizeVertex(CLHEP::HepRandomEngine *engine)
Definition: Hijing.cxx:782
Hijing::m_hiparnt
HiParnt m_hiparnt
Definition: Hijing.h:101
Hijing::m_bmax
float m_bmax
Definition: Hijing.h:70
Hijing::m_prand
bool m_prand
Definition: Hijing.h:83
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
RanSeed.h
Hijing::m_himain2
HiMain2 m_himain2
Definition: Hijing.h:108
HiMain2.h
HiMain1
Class definition for HiMain1, which is used to modify the Hijing HIMAIN1 common.
Definition: HiMain1.h:19
Hijing::m_seeds
std::vector< long int > m_seeds
Definition: Hijing.h:92
Hijing::m_sel
bool m_sel
Definition: Hijing.h:77
HiMain1.h
Hijing::Hijing
Hijing(const std::string &name, ISvcLocator *pSvcLocator)
Definition: Hijing.cxx:68
Hijing::m_vertexOffsetCut
double m_vertexOffsetCut
Definition: Hijing.h:88
Hijing::callGenerator
virtual StatusCode callGenerator() override
For calling the generator on each iteration of the event loop.
Definition: Hijing.cxx:145
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
HijCrdn
Class definition for HijCrdn, which is used to modify the Hijing HIJCRDN common.
Definition: HijCrdn.h:17
Hijing::m_izt
int m_izt
Definition: Hijing.h:67
Hijing::m_keepAllDecayVertices
bool m_keepAllDecayVertices
Definition: Hijing.h:84
HijJet1
Class definition for HijJet1, which is used to modify the Hijing HIJJET1 common.
Definition: HijJet1.h:16
Hijing::m_partonStoreMinPt
double m_partonStoreMinPt
Definition: Hijing.h:87
Hijing::m_izp
int m_izp
Definition: Hijing.h:66
HiMain2
Class definition for HiMain2, which is used to modify the Hijing HIMAIN2 common.
Definition: HiMain2.h:17
GenModule.h
HiParnt.h
Hijing::~Hijing
virtual ~Hijing()=default
Hijing::m_x
float m_x
Definition: Hijing.h:74
Hijing::m_hijjet2
HijJet2 m_hijjet2
Definition: Hijing.h:110
Hijing::m_z
float m_z
Definition: Hijing.h:76
Hijing::m_himain1
HiMain1 m_himain1
Definition: Hijing.h:107
CommandVector
std::vector< std::string > CommandVector
Definition: Hijing.h:21
Hijing::m_hijjet4
HijJet4 m_hijjet4
Definition: Hijing.h:111
Hijing::m_ranseed
RanSeed m_ranseed
Definition: Hijing.h:104
Hijing::m_hijcrdn
HijCrdn m_hijcrdn
Definition: Hijing.h:113
HijJet2
Class definition for HijJet2, which is used to modify the Hijing HIJJET2 common.
Definition: HijJet2.h:18
Hijing::set_user_params
void set_user_params(void)
Definition: Hijing.cxx:821
HijJet4
Class definition for HijJet4, which is used to modify the Hijing HIJJET4 common.
Definition: HijJet4.h:19
Hijing::m_dsid
IntegerProperty m_dsid
Definition: Hijing.h:57