ATLAS Offline Software
ALFA_BeamTransport.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // BeamTransport.h, (c) ATLAS Detector software
8 
9 #ifndef ALFA_BEAMTRACKBEAMTRANSPORT_H
10 #define ALFA_BEAMTRACKBEAMTRANSPORT_H
11 
12 // Gaudi includes
14 #include "GaudiKernel/Algorithm.h"
17 
19 #include "AtlasHepMC/GenEvent.h"
20 
21 // FPTracker
22 #include "FPTracker/Particle.h"
23 #include "FPTracker/Point.h"
24 
25 #include "ALFA_BeamTrack.h"
26 
27 #include <string>
28 
29 
30 class AtlasDetectorID;
31 class Identifier;
32 class StoreGateSvc;
33 
46 {
47 public:
49  ALFA_BeamTransport(const std::string& name, ISvcLocator* pSvcLocator);
52 
59 
61  void MeVToGeV(HepMC::GenEvent& evt);
63  void GeVToMeV(HepMC::GenEvent& evt);
66  int SelectParticles(HepMC::GenEvent* evt);
68  int DoBeamTracking(int evt_number);
71  int TransportSelectedParticle(HepMC::GenEvent& evt, int evt_number);
72 
73 private:
74  // some storegate variables
75 
77  this,
78  "McEventCollectionName",
79  "GEN_EVENT",
80  "MC Event Collection name"
81  };
82 
84  "EvtInfo",
85  "EventInfo",
86  "EventInfo name" };
87 
88  // Set FPConfiguration variables
89 
91 
92  // added
96  // Position at RP
99  // Momentum at RP
102 
103  double m_EnergyRP1 = 0.0;
104  double m_EnergyRP3 = 0.0;
105 
106  std::string m_FPOutputBeam1;
107  std::string m_FPOutputBeam2;
108 
109  // The two counters have to be set zero at the beginning at each execute run
110  // since for every new call of the execute() funktion they have to be zero
111  // counter for particles marked as outgoing in event record
112  int m_pcount = 0;
113  // counter for particles marked as incomming in event record
114  int m_pint = 0;
115 
116  double m_EtaCut;
117  double m_XiCut;
118 
119  // debug stuff
120  std::ofstream m_FileBeam1;
121  std::ofstream m_FileBeam2;
122 
124 };
125 
126 #endif
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
ALFA_BeamTransport::m_BeamTracker
ALFA_BeamTrack m_BeamTracker
Definition: ALFA_BeamTransport.h:95
ALFA_BeamTransport::m_FileBeam1
std::ofstream m_FileBeam1
Definition: ALFA_BeamTransport.h:120
ALFA_BeamTransport::m_eventInfoKey
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfoKey
Definition: ALFA_BeamTransport.h:83
ALFA_BeamTransport::m_WriteDebugOutput
bool m_WriteDebugOutput
Definition: ALFA_BeamTransport.h:123
GenEvent.h
ALFA_BeamTransport::m_FPOutputBeam1
std::string m_FPOutputBeam1
Definition: ALFA_BeamTransport.h:106
ALFA_BeamTransport::m_FPOutputBeam2
std::string m_FPOutputBeam2
Definition: ALFA_BeamTransport.h:107
ALFA_BeamTrack.h
FPConfig
Definition: ALFA_FPConfig.h:10
ALFA_BeamTransport::m_FileBeam2
std::ofstream m_FileBeam2
Definition: ALFA_BeamTransport.h:121
ALFA_BeamTransport::m_MomRP3
FPTracker::Point m_MomRP3
Definition: ALFA_BeamTransport.h:101
ALFA_BeamTransport::~ALFA_BeamTransport
~ALFA_BeamTransport()
Default Destructor.
Definition: ALFA_BeamTransport.cxx:60
ALFA_BeamTransport::m_EnergyRP3
double m_EnergyRP3
Definition: ALFA_BeamTransport.h:104
ALFA_BeamTransport::ALFA_BeamTransport
ALFA_BeamTransport(const std::string &name, ISvcLocator *pSvcLocator)
Standard Athena-Algorithm Constructor.
Definition: ALFA_BeamTransport.cxx:35
ALFA_BeamTransport::initialize
StatusCode initialize()
standard Athena-Algorithm method
Definition: ALFA_BeamTransport.cxx:63
ALFA_BeamTransport::m_pint
int m_pint
Definition: ALFA_BeamTransport.h:114
Point.h
ALFA_BeamTransport::m_Particle1
FPTracker::Particle m_Particle1
Definition: ALFA_BeamTransport.h:93
ALFA_BeamTransport::GeVToMeV
void GeVToMeV(HepMC::GenEvent &evt)
convert GeV to MeV for HepMC event record
Definition: ALFA_BeamTransport.cxx:191
ALFA_BeamTransport::m_EnergyRP1
double m_EnergyRP1
Definition: ALFA_BeamTransport.h:103
LArG4FSStartPointFilter.evt
evt
Definition: LArG4FSStartPointFilter.py:42
SG::ReadHandleKey< McEventCollection >
ALFA_BeamTransport::finalize
StatusCode finalize()
standard Athena-Algorithm method
Definition: ALFA_BeamTransport.cxx:95
ALFA_BeamTrack
Definition: ALFA_BeamTrack.h:29
ALFA_BeamTransport::m_MomRP1
FPTracker::Point m_MomRP1
Definition: ALFA_BeamTransport.h:100
AthAlgorithm.h
ALFA_BeamTransport::m_MCKey
SG::ReadHandleKey< McEventCollection > m_MCKey
Definition: ALFA_BeamTransport.h:76
StoreGateSvc
The Athena Transient Store API.
Definition: StoreGateSvc.h:120
McEventCollection.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ALFA_BeamTransport::TransportSelectedParticle
int TransportSelectedParticle(HepMC::GenEvent &evt, int evt_number)
This function is event selection, tracking and HepMC save ine one function.
Definition: ALFA_BeamTransport.cxx:249
ALFA_BeamTransport::SelectParticles
int SelectParticles(HepMC::GenEvent *evt)
Selects particles for beam transported Sets event status code of outgoing particles from generator to...
ALFA_BeamTransport::m_PosRP1
FPTracker::Point m_PosRP1
Definition: ALFA_BeamTransport.h:97
ALFA_BeamTransport::m_EtaCut
double m_EtaCut
Definition: ALFA_BeamTransport.h:116
FPTracker::Particle
Definition: ForwardDetectors/FPTracker/FPTracker/Particle.h:19
AthAlgorithm
Definition: AthAlgorithm.h:47
ALFA_BeamTransport::execute
StatusCode execute()
standard Athena-Algorithm method
Definition: ALFA_BeamTransport.cxx:108
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
FPTracker::Point
Definition: FPTracker/FPTracker/Point.h:14
EventInfo.h
ALFA_BeamTransport::m_Particle2
FPTracker::Particle m_Particle2
Definition: ALFA_BeamTransport.h:94
ALFA_BeamTransport::MeVToGeV
void MeVToGeV(HepMC::GenEvent &evt)
convert unit MeV to GeV for energy and momenta
Definition: ALFA_BeamTransport.cxx:177
ALFA_BeamTransport::m_XiCut
double m_XiCut
Definition: ALFA_BeamTransport.h:117
ALFA_BeamTransport::m_FPConfig
FPConfig m_FPConfig
Definition: ALFA_BeamTransport.h:90
Particle.h
ALFA_BeamTransport
Definition: ALFA_BeamTransport.h:46
ALFA_BeamTransport::m_PosRP3
FPTracker::Point m_PosRP3
Definition: ALFA_BeamTransport.h:98
ALFA_BeamTransport::DoBeamTracking
int DoBeamTracking(int evt_number)
Function which calls BeamTrack class to calcualte Position at RPs.
Definition: ALFA_BeamTransport.cxx:205
AtlasDetectorID
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
Definition: AtlasDetectorID.h:57
ALFA_BeamTransport::m_pcount
int m_pcount
Definition: ALFA_BeamTransport.h:112
Identifier
Definition: IdentifierFieldParser.cxx:14