ATLAS Offline Software
HadIntProcessorParametric.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 #ifndef ISF_FATRASTOOLS_HadIntProcessorParametric_H
6 #define ISF_FATRASTOOLS_HadIntProcessorParametric_H
7 
8 // GaudiKernel & Athena
11 #include "GaudiKernel/ServiceHandle.h"
12 #include "GaudiKernel/ToolHandle.h"
14 
15 // Fatras
17 
18 // Trk
20 
21 // ISF
23 
24 #ifndef MAXHADINTCHILDREN
25 #define MAXHADINTCHILDREN 20
26 #endif
27 
28 class StoreGateSvc;
29 
30 class TTree;
31 
32 namespace Trk {
33  class Material;
34  class MaterialProperties;
35 }
36 
37 namespace ISF {
38  class IParticleBroker;
39  class ITruthSvc;
40 }
41 namespace iFatras {
42 
43  class IPhysicsValidationTool;
44 
54  class ATLAS_NOT_THREAD_SAFE HadIntProcessorParametric : public extends<AthAlgTool, iFatras::IHadronicInteractionProcessor> { // deprecated: ATLASSIM-6020
55  public:
57  HadIntProcessorParametric(const std::string&,const std::string&,const IInterface*);
60 
65 
67  bool hadronicInteraction(const Amg::Vector3D& position, const Amg::Vector3D& momentum,
68  double p, double E, double charge,
69  const Trk::MaterialProperties& mprop, double pathCorrection,
71 
73  bool recordHadState(double time, double p,
74  const Amg::Vector3D& vertex,
75  const Amg::Vector3D& particleDir,
77 
78  bool doHadronicInteraction(double time, const Amg::Vector3D& position, const Amg::Vector3D& momentum,
79  const Trk::Material* emat,
81  bool processSecondaries) const;
82 
83  ISF::ISFParticleVector doHadIntOnLayer(const ISF::ISFParticle* parent, double time,
84  const Amg::Vector3D& position, const Amg::Vector3D& momentum,
85  const Trk::Material* emat,
87 
88  private:
90  static double absorptionLength(const Trk::MaterialProperties* mat,
91  double p, double q, Trk::ParticleHypothesis particle=Trk::pion) ;
92 
95  double time, double p,
96  const Amg::Vector3D& vertex,
97  const Amg::Vector3D& particleDir,
99 
107 
108 
112 
117 
119  CLHEP::HepRandomEngine* m_randomEngine;
120  std::string m_randomEngineName;
121 
122 
124  ToolHandle<IPhysicsValidationTool> m_validationTool;
125 
130 
132 
133  // ------ ntuple branches
134  mutable float m_hadIntPointX;
135  mutable float m_hadIntPointY;
136  mutable float m_hadIntPointR;
137  mutable float m_hadIntPointZ;
138  mutable int m_hadIntMotherPdg;
139  mutable int m_hadIntMotherBarcode;
140  mutable float m_hadIntMotherP;
141  mutable float m_hadIntMotherPt;
142  mutable float m_hadIntMotherPhi;
143  mutable float m_hadIntMotherEta;
144 
145  mutable int m_hadIntChildren;
146  mutable float m_hadIntChildE;
147  mutable float m_hadIntChildP[MAXHADINTCHILDREN]{};
148  mutable float m_hadIntChildPcms[MAXHADINTCHILDREN]{};
149  mutable int m_hadIntChildPdg[MAXHADINTCHILDREN]{};
150  mutable float m_hadIntChildPhi[MAXHADINTCHILDREN]{};
151  mutable float m_hadIntChildEta[MAXHADINTCHILDREN]{};
152  mutable float m_hadIntChildTh[MAXHADINTCHILDREN]{};
153  mutable float m_hadIntChildThc[MAXHADINTCHILDREN]{};
154  mutable float m_hadIntChildDeltaPhi[MAXHADINTCHILDREN]{};
155  mutable float m_hadIntChildDeltaEta[MAXHADINTCHILDREN]{};
156 
157  };
158 }
159 
160 #endif // ISF_FATRASTOOLS_HadIntProcessorParametric_H
iFatras::HadIntProcessorParametric::m_rndGenSvc
ServiceHandle< IAtRndmGenSvc > m_rndGenSvc
Random Generator service.
Definition: HadIntProcessorParametric.h:114
python.tests.PyTestsLib.finalize
def finalize(self)
_info( "content of StoreGate..." ) self.sg.dump()
Definition: PyTestsLib.py:53
Trk::ParticleSwitcher::particle
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
Definition: ParticleHypothesis.h:76
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
iFatras::HadIntProcessorParametric::m_minimumHadInitialEnergy
double m_minimumHadInitialEnergy
Definition: HadIntProcessorParametric.h:106
iFatras::HadIntProcessorParametric::m_truthRecordSvc
ServiceHandle< ISF::ITruthSvc > m_truthRecordSvc
Definition: HadIntProcessorParametric.h:111
ATLAS_NOT_THREAD_SAFE
#define ATLAS_NOT_THREAD_SAFE
getNoisyStrip() Find noisy strips from hitmaps and write out into xml/db formats
Definition: checker_macros.h:212
iFatras::HadIntProcessorParametric::m_randomEngine
CLHEP::HepRandomEngine * m_randomEngine
Random engine
Definition: HadIntProcessorParametric.h:119
mat
GeoMaterial * mat
Definition: LArDetectorConstructionTBEC.cxx:53
initialize
void initialize()
Definition: run_EoverP.cxx:894
ISF::ISFParticle
Definition: ISFParticle.h:42
iFatras::HadIntProcessorParametric::m_hadIntMotherPt
float m_hadIntMotherPt
ntuple variable : hadronic interaction mother momentum
Definition: HadIntProcessorParametric.h:141
iFatras::HadIntProcessorParametric::m_hadIntPointR
float m_hadIntPointR
ntuple variable : hadronic interaction point r distance
Definition: HadIntProcessorParametric.h:136
PropDirection.h
iFatras::HadIntProcessorParametric::m_processCode
int m_processCode
MCTruth process code for TruthIncidents created by this tool.
Definition: HadIntProcessorParametric.h:116
iFatras::HadIntProcessorParametric::m_hadIntPointZ
float m_hadIntPointZ
ntuple variable : hadronic interaction point z coordinate
Definition: HadIntProcessorParametric.h:137
iFatras::HadIntProcessorParametric::m_hadIntPointY
float m_hadIntPointY
ntuple variable : hadronic interaction point y coordinate
Definition: HadIntProcessorParametric.h:135
ISFParticleContainer.h
iFatras
Definition: ActsFatrasSimTool.h:52
Trk::ParticleHypothesis
ParticleHypothesis
Definition: ParticleHypothesis.h:25
StoreGateSvc
The Athena Transient Store API.
Definition: StoreGateSvc.h:128
ParticleGun_EoverP_Config.momentum
momentum
Definition: ParticleGun_EoverP_Config.py:63
iFatras::HadIntProcessorParametric::~HadIntProcessorParametric
virtual ~HadIntProcessorParametric()
Destructor.
iFatras::HadIntProcessorParametric::m_hadIntMotherPdg
int m_hadIntMotherPdg
ntuple variable : hadronic interaction mother Pdg
Definition: HadIntProcessorParametric.h:138
iFatras::HadIntProcessorParametric::m_hadIntMotherEta
float m_hadIntMotherEta
ntuple variable : hadronic interaction photon eta
Definition: HadIntProcessorParametric.h:143
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
iFatras::HadIntProcessorParametric::m_hadIntValidationTreeName
std::string m_hadIntValidationTreeName
validation tree name - to be acessed by this from root
Definition: HadIntProcessorParametric.h:127
Trk::pion
@ pion
Definition: ParticleHypothesis.h:29
AthAlgTool.h
ISF::ISFParticleVector
std::vector< ISF::ISFParticle * > ISFParticleVector
ISFParticle vector.
Definition: ISFParticleContainer.h:26
iFatras::HadIntProcessorParametric::m_hadIntFromX0
bool m_hadIntFromX0
Definition: HadIntProcessorParametric.h:104
iFatras::HadIntProcessorParametric::m_hadIntMotherBarcode
int m_hadIntMotherBarcode
ntuple variable : hadronic interaction mother barcode
Definition: HadIntProcessorParametric.h:139
test_pyathena.parent
parent
Definition: test_pyathena.py:15
iFatras::HadIntProcessorParametric::m_hadIntMotherP
float m_hadIntMotherP
ntuple variable : hadronic interaction mother momentum
Definition: HadIntProcessorParametric.h:140
IHadronicInteractionProcessor.h
MAXHADINTCHILDREN
#define MAXHADINTCHILDREN
Definition: HadIntProcessorParametric.h:25
iFatras::HadIntProcessorParametric::m_particleBroker
ServiceHandle< ISF::IParticleBroker > m_particleBroker
ISF services & Tools.
Definition: HadIntProcessorParametric.h:110
iFatras::HadIntProcessorParametric::m_hadIntMotherPhi
float m_hadIntMotherPhi
ntuple variable : hadronic interaction mother phi
Definition: HadIntProcessorParametric.h:142
iFatras::HadIntProcessorParametric::m_hadIntValidationTree
TTree * m_hadIntValidationTree
Root Validation Tree.
Definition: HadIntProcessorParametric.h:131
iFatras::HadIntProcessorParametric::m_cutChain
bool m_cutChain
Definition: HadIntProcessorParametric.h:103
IAtRndmGenSvc.h
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
iFatras::HadIntProcessorParametric::m_childMomParam
double m_childMomParam
Definition: HadIntProcessorParametric.h:102
VP1PartSpect::E
@ E
Definition: VP1PartSpectFlags.h:21
charge
double charge(const T &p)
Definition: AtlasPID.h:494
iFatras::HadIntProcessorParametric::m_hadIntValidationTreeDescription
std::string m_hadIntValidationTreeDescription
validation tree description - second argument in TTree
Definition: HadIntProcessorParametric.h:128
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
iFatras::HadIntProcessorParametric::m_validationTool
ToolHandle< IPhysicsValidationTool > m_validationTool
Definition: HadIntProcessorParametric.h:124
Trk::vertex
@ vertex
Definition: MeasurementType.h:21
iFatras::HadIntProcessorParametric::m_validationMode
bool m_validationMode
Definition: HadIntProcessorParametric.h:123
Trk::MaterialProperties
Definition: MaterialProperties.h:40
CaloSwCorrections.time
def time(flags, cells_name, *args, **kw)
Definition: CaloSwCorrections.py:242
iFatras::HadIntProcessorParametric::m_minimumHadOutEnergy
double m_minimumHadOutEnergy
hadronic interaction setting
Definition: HadIntProcessorParametric.h:101
ISF
ISFParticleOrderedQueue.
Definition: PrimaryParticleInformation.h:13
iFatras::HadIntProcessorParametric::m_randomEngineName
std::string m_randomEngineName
Name of the random number stream.
Definition: HadIntProcessorParametric.h:120
iFatras::HadIntProcessorParametric::m_hadIntPointX
float m_hadIntPointX
ntuple variable : hadronic interaction point x coordinate
Definition: HadIntProcessorParametric.h:134
extractSporadic.q
list q
Definition: extractSporadic.py:98
Trk::Material
Definition: Material.h:116
iFatras::HadIntProcessorParametric::m_hadIntValidation
bool m_hadIntValidation
Definition: HadIntProcessorParametric.h:126
iFatras::HadIntProcessorParametric::m_hadIntChildE
float m_hadIntChildE
nutple variable : hadronic interaction children total energy
Definition: HadIntProcessorParametric.h:146
checker_macros.h
Define macros for attributes used to control the static checker.
iFatras::HadIntProcessorParametric::m_hadIntProbScale
double m_hadIntProbScale
Definition: HadIntProcessorParametric.h:105
Material
@ Material
Definition: MaterialTypes.h:8
iFatras::HadIntProcessorParametric::m_hadIntValidationTreeFolder
std::string m_hadIntValidationTreeFolder
stream/folder to for the TTree to be written out
Definition: HadIntProcessorParametric.h:129
iFatras::HadIntProcessorParametric::m_hadIntChildren
int m_hadIntChildren
nutple variable : hadronic interaction children numbers
Definition: HadIntProcessorParametric.h:145
ServiceHandle< ISF::IParticleBroker >
iFatras::HadIntProcessorParametric
Definition: HadIntProcessorParametric.h:54