5#ifndef ISF_FATRASTOOLS_HadIntProcessorParametric_H
6#define ISF_FATRASTOOLS_HadIntProcessorParametric_H
11#include "GaudiKernel/ServiceHandle.h"
12#include "GaudiKernel/ToolHandle.h"
24#ifndef MAXHADINTCHILDREN
25#define MAXHADINTCHILDREN 20
34 class MaterialProperties;
68 double p,
double E,
double charge,
81 bool processSecondaries)
const;
95 double time,
double p,
double charge(const T &p)
#define MAXHADINTCHILDREN
Define macros for attributes used to control the static checker.
#define ATLAS_NOT_THREAD_SAFE
getNoisyStrip() Find noisy strips from hitmaps and write out into xml/db formats
The generic ISF particle definition,.
The Athena Transient Store API.
Material with information about thickness of material.
A common object to be contained by.
float m_hadIntPointY
ntuple variable : hadronic interaction point y coordinate
ISF::ISFParticleVector getHadState(const ISF::ISFParticle *parent, double time, double p, const Amg::Vector3D &vertex, const Amg::Vector3D &particleDir, Trk::ParticleHypothesis particle) const
collect secondaries for layer material update
StatusCode finalize()
AlgTool finalize method.
float m_hadIntPointR
ntuple variable : hadronic interaction point r distance
int m_processCode
MCTruth process code for TruthIncidents created by this tool.
float m_hadIntPointX
ntuple variable : hadronic interaction point x coordinate
float m_hadIntChildEta[MAXHADINTCHILDREN]
nutple variable : hadronic interaction child eta
double m_minimumHadOutEnergy
hadronic interaction setting
ServiceHandle< ISF::ITruthSvc > m_truthRecordSvc
bool hadronicInteraction(const Amg::Vector3D &position, const Amg::Vector3D &momentum, double p, double E, double charge, const Trk::MaterialProperties &mprop, double pathCorrection, Trk::ParticleHypothesis particle=Trk::pion) const
interface for processing of the nuclear interactions
static double absorptionLength(const Trk::MaterialProperties *mat, double p, double q, Trk::ParticleHypothesis particle=Trk::pion)
interface for calculation of absorption length
int m_hadIntChildPdg[MAXHADINTCHILDREN]
nutple variable : hadronic interaction child Pdg
std::string m_hadIntValidationTreeFolder
stream/folder to for the TTree to be written out
int m_hadIntMotherBarcode
ntuple variable : hadronic interaction mother barcode
float m_hadIntPointZ
ntuple variable : hadronic interaction point z coordinate
TTree * m_hadIntValidationTree
Root Validation Tree.
ToolHandle< IPhysicsValidationTool > m_validationTool
ServiceHandle< IAtRndmGenSvc > m_rndGenSvc
Random Generator service.
float m_hadIntChildPcms[MAXHADINTCHILDREN]
nutple variable : hadronic interaction child Energy
float m_hadIntMotherEta
ntuple variable : hadronic interaction photon eta
bool doHadronicInteraction(double time, const Amg::Vector3D &position, const Amg::Vector3D &momentum, const Trk::Material *emat, Trk::ParticleHypothesis particle, bool processSecondaries) const
int m_hadIntMotherPdg
ntuple variable : hadronic interaction mother Pdg
float m_hadIntMotherPhi
ntuple variable : hadronic interaction mother phi
float m_hadIntChildPhi[MAXHADINTCHILDREN]
nutple variable : hadronic interaction child phi
std::string m_randomEngineName
Name of the random number stream.
float m_hadIntChildDeltaEta[MAXHADINTCHILDREN]
nutple variable : hadronic interaction child delta eta
ServiceHandle< ISF::IParticleBroker > m_particleBroker
ISF services & Tools.
std::string m_hadIntValidationTreeDescription
validation tree description - second argument in TTree
float m_hadIntMotherP
ntuple variable : hadronic interaction mother momentum
int m_hadIntChildren
nutple variable : hadronic interaction children numbers
float m_hadIntMotherPt
ntuple variable : hadronic interaction mother momentum
ISF::ISFParticleVector doHadIntOnLayer(const ISF::ISFParticle *parent, double time, const Amg::Vector3D &position, const Amg::Vector3D &momentum, const Trk::Material *emat, Trk::ParticleHypothesis particle) const
virtual ~HadIntProcessorParametric()
Destructor.
CLHEP::HepRandomEngine * m_randomEngine
Random engine.
HadIntProcessorParametric(const std::string &, const std::string &, const IInterface *)
AlgTool constructor for HadIntProcessorParametric.
std::string m_hadIntValidationTreeName
validation tree name - to be acessed by this from root
float m_hadIntChildDeltaPhi[MAXHADINTCHILDREN]
nutple variable : hadronic interaction child delta phi
bool recordHadState(double time, double p, const Amg::Vector3D &vertex, const Amg::Vector3D &particleDir, Trk::ParticleHypothesis particle) const
interface for processing of the presampled nuclear interaction
float m_hadIntChildP[MAXHADINTCHILDREN]
nutple variable : hadronic interaction child Energy
double m_minimumHadInitialEnergy
float m_hadIntChildTh[MAXHADINTCHILDREN]
nutple variable : hadronic interaction child phi
float m_hadIntChildThc[MAXHADINTCHILDREN]
nutple variable : hadronic interaction child eta
float m_hadIntChildE
nutple variable : hadronic interaction children total energy
Eigen::Matrix< double, 3, 1 > Vector3D
std::vector< ISF::ISFParticle * > ISFParticleVector
ISFParticle vector.
Ensure that the ATLAS eigen extensions are properly loaded.
ParticleHypothesis
Enumeration for Particle hypothesis respecting the interaction with material.