ATLAS Offline Software
Loading...
Searching...
No Matches
IHadronicInteractionProcessor.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
6// IHadronicInteractionProcessor.h, (c) ATLAS Detector software
8
9#ifndef ISF_FATRASINTERFACES_IHADRONICINTERACTIONPROCESSOR_H
10#define ISF_FATRASINTERFACES_IHADRONICINTERACTIONPROCESSOR_H
11
12// Gaudi
13#include "GaudiKernel/IAlgTool.h"
15// Event primitives
18// ISF
20
21namespace Trk {
22 class Material;
24}
25
26/*-------------------------------------------------------------------------
27 * class IHadronicInteractionProcessor
28 *-------------------------------------------------------------------------*/
29namespace iFatras
30{
39 class ATLAS_NOT_THREAD_SAFE IHadronicInteractionProcessor : virtual public IAlgTool { // deprecated: ATLASSIM-6020
40
41 public:
44
47
49 virtual bool hadronicInteraction(const Amg::Vector3D& position, const Amg::Vector3D& momentum,
50 double p, double E, double charge,
51 const Trk::MaterialProperties& mprop, double pathCorrection,
52 Trk::ParticleHypothesis particle=Trk::pion) const = 0;
53
55 virtual bool recordHadState(double time, double p,
56 const Amg::Vector3D& vertex,
57 const Amg::Vector3D& momDir,
58 Trk::ParticleHypothesis particle=Trk::pion) const ;
59
61 virtual bool doHadronicInteraction(double time, const Amg::Vector3D& position, const Amg::Vector3D& momentum,
62 const Trk::Material *ematprop,
64 bool processSecondaries=true) const ;
65
67 virtual ISF::ISFParticleVector doHadIntOnLayer(const ISF::ISFParticle* parent, double time,
68 const Amg::Vector3D& position, const Amg::Vector3D& momentum,
69 const Trk::Material *mat,
70 Trk::ParticleHypothesis particle=Trk::pion) const ;
71
72 };
73
74 inline bool IHadronicInteractionProcessor::recordHadState(double /*time*/, double /*p*/,
75 const Amg::Vector3D& /*vertex*/,
76 const Amg::Vector3D& /*momDir*/,
77 Trk::ParticleHypothesis /*particle*/) const {
78 return false;
79 }
80
82 const Amg::Vector3D& /* position */,
83 const Amg::Vector3D& /* momentum */,
84 const Trk::Material* /*ematprop*/,
85 Trk::ParticleHypothesis /*particle*/,
86 bool /*processSecondaries*/) const {
87 return false;
88 }
89
91 const Amg::Vector3D& /* position */,
92 const Amg::Vector3D& /* momentum */,
93 const Trk::Material* /*matprop*/,
94 Trk::ParticleHypothesis /*particle=Trk::pion*/) const {
96 }
97
98}
99
100#endif // ISF_FATRASINTERFACES_IHADRONICINTERACTIONPROCESSOR_H
101
double charge(const T &p)
Definition AtlasPID.h:997
std::vector< size_t > vec
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,.
Definition ISFParticle.h:42
Material with information about thickness of material.
A common object to be contained by.
Definition Material.h:117
Interface definition for the handling of nuclear/hadronic interactions, to be used by the MC based ma...
DeclareInterfaceID(IHadronicInteractionProcessor, 1, 0)
Creates the InterfaceID and interfaceID() method.
virtual 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 =0
interface for processing of the nuclear interactions
virtual ISF::ISFParticleVector doHadIntOnLayer(const ISF::ISFParticle *parent, double time, const Amg::Vector3D &position, const Amg::Vector3D &momentum, const Trk::Material *mat, Trk::ParticleHypothesis particle=Trk::pion) const
interface for processing of the presampled nuclear interactions on layer
virtual bool recordHadState(double time, double p, const Amg::Vector3D &vertex, const Amg::Vector3D &momDir, Trk::ParticleHypothesis particle=Trk::pion) const
interface for processing of the presampled nuclear interactions
virtual bool doHadronicInteraction(double time, const Amg::Vector3D &position, const Amg::Vector3D &momentum, const Trk::Material *ematprop, Trk::ParticleHypothesis particle=Trk::pion, bool processSecondaries=true) const
interface for processing of the presampled nuclear interactions
virtual ~IHadronicInteractionProcessor()
Virtual destructor.
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.