ATLAS Offline Software
Loading...
Searching...
No Matches
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
30class AtlasDetectorID;
31class Identifier;
32class StoreGateSvc;
33
44
46{
47public:
49 ALFA_BeamTransport(const std::string& name, ISvcLocator* pSvcLocator);
52
54 StatusCode initialize();
56 StatusCode execute();
58 StatusCode finalize();
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
73private:
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
Property holding a SG store/key/clid from which a ReadHandle is made.
int TransportSelectedParticle(HepMC::GenEvent &evt, int evt_number)
This function is event selection, tracking and HepMC save ine one function.
FPTracker::Point m_PosRP3
ALFA_BeamTrack m_BeamTracker
FPTracker::Particle m_Particle1
StatusCode finalize()
standard Athena-Algorithm method
StatusCode initialize()
standard Athena-Algorithm method
StatusCode execute()
standard Athena-Algorithm method
FPTracker::Point m_PosRP1
ALFA_BeamTransport(const std::string &name, ISvcLocator *pSvcLocator)
Standard Athena-Algorithm Constructor.
SG::ReadHandleKey< McEventCollection > m_MCKey
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfoKey
void MeVToGeV(HepMC::GenEvent &evt)
convert unit MeV to GeV for energy and momenta
int DoBeamTracking(int evt_number)
Function which calls BeamTrack class to calcualte Position at RPs.
FPTracker::Particle m_Particle2
void GeVToMeV(HepMC::GenEvent &evt)
convert GeV to MeV for HepMC event record
FPTracker::Point m_MomRP3
int SelectParticles(HepMC::GenEvent *evt)
Selects particles for beam transported Sets event status code of outgoing particles from generator to...
~ALFA_BeamTransport()
Default Destructor.
FPTracker::Point m_MomRP1
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
Property holding a SG store/key/clid from which a ReadHandle is made.
The Athena Transient Store API.