ATLAS Offline Software
Loading...
Searching...
No Matches
HitCreatorSilicon.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_FATRASTOOLSID_HITCREATORSILICON_H
6#define ISF_FATRASTOOLSID_HITCREATORSILICON_H
7
8
9// Fatras
11// Gaudi
14#include "GaudiKernel/RndmGenerators.h"
15#include "GaudiKernel/ServiceHandle.h"
16#include "GaudiKernel/ToolHandle.h"
17#include "GaudiKernel/IIncidentListener.h"
19// Trk
21// CLHEP
22#include "CLHEP/Random/RandomEngine.h"
23// Identifier
24#include "Identifier/Identifier.h"
25//InDet
29
30class PixelID;
31class SCT_ID;
33class StoreGateSvc;
34class TF1;
35
36namespace ISF {
37 class ISFParticle;
38}
39
40namespace iFatras {
41
49
50 class ATLAS_NOT_THREAD_SAFE HitCreatorSilicon : public extends<AthAlgTool, IHitCreator, IIncidentListener> // deprecated: ATLASSIM-6020
51 {
52 public:
53
55 HitCreatorSilicon(const std::string&,const std::string&,const IInterface*);
56
58 virtual ~HitCreatorSilicon() = default;
59
61 StatusCode initialize();
62
64 StatusCode finalize();
65
67 void handle(const Incident& inc);
68
70 void createSimHit(const ISF::ISFParticle& isp, const Trk::TrackParameters&, double ) const;
71
73 void createSimHit(const ISF::ISFParticle& isp, const Trk::TrackParameters& pars, double time, const InDetDD::SiDetectorElement& hitSiDetElement, bool isSiDetElement) const;
74
76 const ParametersROT* createHit(const ISF::ISFParticle&, const Trk::TrackParameters& ) const { return 0; }
77
79 const std::vector< ParametersROT >* createHits(const ISF::ISFParticle&, const ParametersLayer& ) const { return 0; }
80
81 protected:
82
83 /* Incident Service */
84 ServiceHandle<IIncidentSvc> m_incidentSvc{this, "IncidentService", "IncidentSvc"};
85
86 /* SiHit collection and collection name */
88 StringProperty m_collectionName{this, "CollectionName", "PixelHits"};
89
91 ServiceHandle<IAtRndmGenSvc> m_randomSvc{this, "RandomNumberService", "AtRndmGenSvc"};
92 StringProperty m_randomEngineName{this, "RandomStreamName", "FatrasRnd"};
93 CLHEP::HepRandomEngine *m_randomEngine{};
94
95 StringProperty m_siIdHelperName{this, "IdHelperName", "PixelID"};
98
100 ToolHandle<IInDetConditionsTool> m_condSummaryTool{this, "ConditionsTool", "PixelConditionsSummaryTool"};
101 BooleanProperty m_useConditionsTool{this, "UseConditionsTool", true};
103
104 DoubleProperty m_siPathToCharge{this, "PathToChargeConversion", 500.};
105 BooleanProperty m_fastEnergyDepositionModel{this, "FastEnergyDepositionModel", true};
106
108 double energyDeposit_fast(const ISF::ISFParticle& isp, bool& isPix, bool& isSCT ) const;
109
111 double energyDeposit_exact(const ISF::ISFParticle& isp, bool& isPix, bool& isSCT ) const;
112 };
113
114} // end of namespace
115
116#endif
std::pair< const Trk::TrackParameters *, const Trk::RIO_OnTrack * > ParametersROT
Definition IHitCreator.h:30
std::pair< const Trk::TrackParameters *, const Trk::Layer * > ParametersLayer
Definition IHitCreator.h:31
AtlasHitsVector< SiHit > SiHitCollection
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
Interface class for service providing summary of status of a detector element.
The generic ISF particle definition,.
Definition ISFParticle.h:42
Class to hold geometrical description of a silicon detector element.
This is an Identifier helper class for the Pixel subdetector.
Definition PixelID.h:67
This is an Identifier helper class for the SCT subdetector.
Definition SCT_ID.h:68
The Athena Transient Store API.
StringProperty m_collectionName
name of the collection on storegate
void handle(const Incident &inc)
handle for incident service
const std::vector< ParametersROT > * createHits(const ISF::ISFParticle &, const ParametersLayer &) const
Return the cluster on Track – the PrepRawData is contained in this one.
TF1 * m_dEdX_function
function to evaluate dEdx
HitCreatorSilicon(const std::string &, const std::string &, const IInterface *)
Constructor.
ServiceHandle< IIncidentSvc > m_incidentSvc
void createSimHit(const ISF::ISFParticle &isp, const Trk::TrackParameters &, double) const
Return nothing - store the HIT in hit collection.
const ParametersROT * createHit(const ISF::ISFParticle &, const Trk::TrackParameters &) const
Return the cluster on Track – the PrepRawData is contained in this one.
CLHEP::HepRandomEngine * m_randomEngine
Random Engine.
StatusCode finalize()
AlgTool finalize method.
const PixelID * m_pixIdHelper
the Pixel ID helper
StringProperty m_siIdHelperName
where to find the Si helper
StringProperty m_randomEngineName
Name of the random number stream.
DoubleProperty m_siPathToCharge
convert path in silicon to charge
ToolHandle< IInDetConditionsTool > m_condSummaryTool
ToolHandle to ClusterMaker.
ServiceHandle< IAtRndmGenSvc > m_randomSvc
Pointer to the random number generator service.
virtual ~HitCreatorSilicon()=default
Destructor.
SiHitCollection * m_hitColl
the SiHit collection
const SCT_ID * m_sctIdHelper
the SCT ID helper
BooleanProperty m_fastEnergyDepositionModel
use fast energy deposition model (landau approximation )
ISFParticleOrderedQueue.
ParametersBase< TrackParametersDim, Charged > TrackParameters
void initialize()