ATLAS Offline Software
Loading...
Searching...
No Matches
iFatras::HitCreatorSilicon Class Reference

RIOOnTrack creation, starting from intersection on an active surface. More...

#include <HitCreatorSilicon.h>

Inheritance diagram for iFatras::HitCreatorSilicon:
Collaboration diagram for iFatras::HitCreatorSilicon:

Public Member Functions

 HitCreatorSilicon (const std::string &, const std::string &, const IInterface *)
 Constructor.
virtual ~HitCreatorSilicon ()=default
 Destructor.
StatusCode initialize ()
 AlgTool initailize method.
StatusCode finalize ()
 AlgTool finalize method.
void handle (const Incident &inc)
 handle for incident service
void createSimHit (const ISF::ISFParticle &isp, const Trk::TrackParameters &, double) const
 Return nothing - store the HIT in hit collection.
void createSimHit (const ISF::ISFParticle &isp, const Trk::TrackParameters &pars, double time, const InDetDD::SiDetectorElement &hitSiDetElement, bool isSiDetElement) const
 templated function Return nothing - store the HIT in hit collection
const ParametersROTcreateHit (const ISF::ISFParticle &, const Trk::TrackParameters &) const
 Return the cluster on Track – the PrepRawData is contained in this one.
const std::vector< ParametersROT > * createHits (const ISF::ISFParticle &, const ParametersLayer &) const
 Return the cluster on Track – the PrepRawData is contained in this one.

Protected Member Functions

double energyDeposit_fast (const ISF::ISFParticle &isp, bool &isPix, bool &isSCT) const
 Calculate Energyloss with simple Landau approximation.
double energyDeposit_exact (const ISF::ISFParticle &isp, bool &isPix, bool &isSCT) const
 Calculate Energyloss with exact Landau*Gauss.

Protected Attributes

ServiceHandle< IIncidentSvc > m_incidentSvc {this, "IncidentService", "IncidentSvc"}
SiHitCollectionm_hitColl {}
 the SiHit collection
StringProperty m_collectionName {this, "CollectionName", "PixelHits"}
 name of the collection on storegate
ServiceHandle< IAtRndmGenSvcm_randomSvc {this, "RandomNumberService", "AtRndmGenSvc"}
 Pointer to the random number generator service.
StringProperty m_randomEngineName {this, "RandomStreamName", "FatrasRnd"}
 Name of the random number stream.
CLHEP::HepRandomEngine * m_randomEngine {}
 Random Engine.
StringProperty m_siIdHelperName {this, "IdHelperName", "PixelID"}
 where to find the Si helper
const PixelIDm_pixIdHelper {}
 the Pixel ID helper
const SCT_IDm_sctIdHelper {}
 the SCT ID helper
ToolHandle< IInDetConditionsToolm_condSummaryTool {this, "ConditionsTool", "PixelConditionsSummaryTool"}
 ToolHandle to ClusterMaker.
BooleanProperty m_useConditionsTool {this, "UseConditionsTool", true}
TF1 * m_dEdX_function {}
 function to evaluate dEdx
DoubleProperty m_siPathToCharge {this, "PathToChargeConversion", 500.}
 convert path in silicon to charge
BooleanProperty m_fastEnergyDepositionModel {this, "FastEnergyDepositionModel", true}
 use fast energy deposition model (landau approximation )

Detailed Description

RIOOnTrack creation, starting from intersection on an active surface.

Author
Andreas.Salzburger -at- cern.ch

Definition at line 50 of file HitCreatorSilicon.h.

Constructor & Destructor Documentation

◆ HitCreatorSilicon()

iFatras::HitCreatorSilicon::HitCreatorSilicon ( const std::string & t,
const std::string & n,
const IInterface * p )

Constructor.

Definition at line 47 of file HitCreatorSilicon.cxx.

47 :
48 base_class(t,n,p)
49{
50}

◆ ~HitCreatorSilicon()

virtual iFatras::HitCreatorSilicon::~HitCreatorSilicon ( )
virtualdefault

Destructor.

Member Function Documentation

◆ createHit()

const ParametersROT * iFatras::HitCreatorSilicon::createHit ( const ISF::ISFParticle & ,
const Trk::TrackParameters &  ) const
inline

Return the cluster on Track – the PrepRawData is contained in this one.

Definition at line 76 of file HitCreatorSilicon.h.

76{ return 0; }

◆ createHits()

const std::vector< ParametersROT > * iFatras::HitCreatorSilicon::createHits ( const ISF::ISFParticle & ,
const ParametersLayer &  ) const
inline

Return the cluster on Track – the PrepRawData is contained in this one.

Definition at line 79 of file HitCreatorSilicon.h.

79{ return 0; }

◆ createSimHit() [1/2]

void iFatras::HitCreatorSilicon::createSimHit ( const ISF::ISFParticle & isp,
const Trk::TrackParameters & pars,
double time ) const

Return nothing - store the HIT in hit collection.

Definition at line 326 of file HitCreatorSilicon.cxx.

326 {
327
328 // get surface and DetElement base
329 const Trk::Surface &hitSurface = pars.associatedSurface();
330 const Trk::TrkDetElementBase* detElementBase = hitSurface.associatedDetectorElement();
331
332 // the detector element cast -> needed
333 const InDetDD::SiDetectorElement* SiDetElement = dynamic_cast<const InDetDD::SiDetectorElement*>((detElementBase));
334
335 // return triggered if no siDetElement or no current particle link to the stack
336 if ( !SiDetElement ){
337 ATH_MSG_WARNING("[ sihit ] No Silicon Detector element available. Ignore this one.");
338 return;
339 }
340
341 return createSimHit( isp, pars, time, *SiDetElement, 1);
342
343}
#define ATH_MSG_WARNING(x)
const TrkDetElementBase * associatedDetectorElement() const
return associated Detector Element
void createSimHit(const ISF::ISFParticle &isp, const Trk::TrackParameters &, double) const
Return nothing - store the HIT in hit collection.

◆ createSimHit() [2/2]

void iFatras::HitCreatorSilicon::createSimHit ( const ISF::ISFParticle & isp,
const Trk::TrackParameters & pars,
double time,
const InDetDD::SiDetectorElement & hitSiDetElement,
bool isSiDetElement ) const

templated function Return nothing - store the HIT in hit collection

<

Todo
: fix edge effects

Definition at line 345 of file HitCreatorSilicon.cxx.

345 {
346
347 // get surface and DetElement base
348 const Trk::Surface &hitSurface = pars.associatedSurface();
349
350 // get the identifier and hash identifier
351 Identifier hitId = hitSurface.associatedDetectorElementIdentifier();
352 IdentifierHash hitIdHash = hitSiDetElement.identifyHash();
353 // check conditions of the intersection
354 if ( m_useConditionsTool ) {
355 const EventContext& ctx = Gaudi::Hive::currentContext();
356 bool isActive = m_condSummaryTool->isActive(hitIdHash, hitId, ctx); // active = "element returns data"
357 bool isGood = isActive ? m_condSummaryTool->isGood(hitIdHash, hitId, ctx) : false; // good = "data are reliable"
358 if (!isActive)
359 ATH_MSG_VERBOSE("[ sihit ] ID " << hitId << ", hash " << hitIdHash << " is not active. ");
360 else if (!isGood)
361 ATH_MSG_VERBOSE("[ sihit ] ID " << hitId << ", hash " << hitIdHash << " is active but not good. ");
362 else
363 ATH_MSG_VERBOSE("[ sihit ] ID " << hitId << ", hash " << hitIdHash << " is active and good.");
364 if (!isActive || !isGood) return;
365 }
366
367 // intersection
368 const Amg::Vector2D& intersection = pars.localPosition();
369 double interX = intersection.x();
370 double interY = intersection.y();
371 // thickness of the module
372 const double thickness = hitSiDetElement.thickness();
373 // get the momentum direction into the local frame
374 Amg::Vector3D particleDir = pars.momentum().unit();
375 const Amg::Transform3D& sTransform = hitSurface.transform();
376 Amg::Vector3D localDirection = sTransform.inverse().linear() * particleDir;
377 localDirection *= thickness/cos(localDirection.theta());
378 // moving direction
379 int movingDirection = localDirection.z() > 0. ? 1 : -1;
380 // get he local distance of the intersection in x,y
381 double distX = localDirection.x();
382 double distY = localDirection.y();
383 // local entries in x,y
384 double localEntryX = interX-0.5*distX;
385 double localEntryY = interY-0.5*distY;
386 double localExitX = interX+0.5*distX;
387 double localExitY = interY+0.5*distY;
389 const Amg::Transform3D &hitTransform = hitSiDetElement.transformHit().inverse();
390 // transform into the hit frame
391 Amg::Vector3D localEntry(hitTransform*(sTransform*Amg::Vector3D(localEntryX,localEntryY,-0.5*movingDirection*thickness)));
392 Amg::Vector3D localExit(hitTransform*(sTransform*Amg::Vector3D(localExitX,localExitY,0.5*movingDirection*thickness)));
393
394 bool isPix = hitSiDetElement.isPixel();
395 bool isSCT = hitSiDetElement.isSCT();
396
397 // Landau approximation
398 const double dEdX = m_fastEnergyDepositionModel ?
399 energyDeposit_fast(isp,isPix,isSCT)
400 : energyDeposit_exact(isp,isPix,isSCT);
401
402 const double energyDeposit = dEdX * (localExit - localEntry).mag();
403
404 // create the silicon hit
405 const HepGeom::Point3D<double> localEntryHep( localEntry.x(), localEntry.y(), localEntry.z() );
406 const HepGeom::Point3D<double> localExitHep( localExit.x(), localExit.y(), localExit.z() );
407
408 if ( isSiDetElement )
409 ATH_MSG_VERBOSE("[ sihit ] Adding an SiHit SiDetElement to the SiHitCollection.");
410 else
411 ATH_MSG_VERBOSE("[ sihit ] SiHit SiDetElement not found to add to the SiHitCollection.");
412
413 HepMcParticleLink partLink(HepMC::uniqueID(isp), 0,
416 m_hitColl->Emplace(localEntryHep,
417 localExitHep,
418 energyDeposit,
419 time,
420 partLink,
421 m_pixIdHelper ? 0 : 1,
422 m_pixIdHelper ? m_pixIdHelper->barrel_ec(hitId) : m_sctIdHelper->barrel_ec(hitId),
423 m_pixIdHelper ? m_pixIdHelper->layer_disk(hitId) : m_sctIdHelper->layer_disk(hitId),
424 m_pixIdHelper ? m_pixIdHelper->eta_module(hitId) : m_sctIdHelper->eta_module(hitId),
425 m_pixIdHelper ? m_pixIdHelper->phi_module(hitId) : m_sctIdHelper->phi_module(hitId),
426 m_pixIdHelper ? 0 : m_sctIdHelper->side(hitId));
427
428}
#define ATH_MSG_VERBOSE(x)
virtual IdentifierHash identifyHash() const override final
identifier hash (inline)
const GeoTrf::Transform3D & transformHit() const
Local (simulation/hit frame) to global transform.
const Amg::Transform3D & transform() const
Returns HepGeom::Transform3D by reference.
Identifier associatedDetectorElementIdentifier() const
return Identifier of the associated Detector Element
double energyDeposit_exact(const ISF::ISFParticle &isp, bool &isPix, bool &isSCT) const
Calculate Energyloss with exact Landau*Gauss.
const PixelID * m_pixIdHelper
the Pixel ID helper
double energyDeposit_fast(const ISF::ISFParticle &isp, bool &isPix, bool &isSCT) const
Calculate Energyloss with simple Landau approximation.
ToolHandle< IInDetConditionsTool > m_condSummaryTool
ToolHandle to ClusterMaker.
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 )
std::vector< std::string > intersection(std::vector< std::string > &v1, std::vector< std::string > &v2)
Eigen::Affine3d Transform3D
Eigen::Matrix< double, 2, 1 > Vector2D
Eigen::Matrix< double, 3, 1 > Vector3D
int uniqueID(const T &p)
@ energyDeposit

◆ energyDeposit_exact()

double iFatras::HitCreatorSilicon::energyDeposit_exact ( const ISF::ISFParticle & isp,
bool & isPix,
bool & isSCT ) const
protected

Calculate Energyloss with exact Landau*Gauss.

Definition at line 245 of file HitCreatorSilicon.cxx.

245 {
246 int pdg_id= isp.pdgCode();
247 Amg::Vector3D mom = isp.momentum();
248 double Momentum = sqrt((mom.x()*mom.x()) +( mom.y()*mom.y())+(mom.z()*mom.z()));
249 m_dEdX_function->SetNpx(4);
250 double xmin = 0;
251 double xmax = 0.;
252 if(abs(pdg_id)==11){ // electrons
253 m_dEdX_function->SetParameters(0.009807, 0.3 ,453.7,0.03733);
254 xmax = 1.;
255 }
256 else{ // Kaonen, Protonen, Pionen, Myonen
257
258 double rest_mass= isp.mass();
259 double para0 = -1.12409e-02;
260 double para1 = 1.42786e-11;
261 double beta = Momentum/ sqrt((Momentum*Momentum)+(rest_mass*rest_mass));
262 double MPV = (para0/pow(beta,2))*(log(para1*(pow(beta,2)/(1-pow(beta,2))))-pow(beta,2));
263 if(Momentum < 1000){ // momentum < 1GeV
264 if(abs(pdg_id)==211){ // Pionen
265 if(isSCT){
266 m_dEdX_function->SetParameters(0.0250, MPV ,453.7,0.0109);
267 }
268 if(isPix){
269 m_dEdX_function->SetParameters(0.0205, MPV ,453.7,0.0219);
270 }
271 }
272 else if(abs(pdg_id)==321){ //Kaonen
273 if(isSCT){
274 m_dEdX_function->SetParameters(0.0458, MPV ,453.7,0.0064);
275 }
276 if(isPix){
277 m_dEdX_function->SetParameters(0.0465, MPV,453.7,0.000);
278 }
279 }
280 else if(abs(pdg_id)==13){ // Muonen
281 if(isSCT){
282 m_dEdX_function->SetParameters(0.0140, MPV,453.7,0.0245);
283 }
284 if(isPix){
285 m_dEdX_function->SetParameters(0.0064, MPV ,453.7,0.0480);
286 }
287 }
288 else if(abs(pdg_id)==2212){ // Protonen
289 if(isSCT){
290 m_dEdX_function->SetParameters(0.0458, MPV ,453.7,0.0064);
291 }
292 if(isPix){
293 m_dEdX_function->SetParameters(0.0465, MPV ,453.7,0.000);
294 }
295 }
296
297 }
298 else if(Momentum>= 1000){
299 if(isSCT){
300 m_dEdX_function->SetParameters(0.0135, MPV ,453.7,0.0245);
301 }
302 if(isPix){
303 m_dEdX_function->SetParameters(0.0102, MPV ,453.7,0.0297);
304 }
305 }
306 xmax = MPV*10.;
307 } // Parametrisierung fuer Kaonen, Protonen, Pionen, Myonen ENDE
308
309 double ymin = 0;
310 double ymax = m_dEdX_function -> GetMaximum(xmin, xmax);
311 double energyLoss = 0;
312
313 for (int count=0; count <1000; count++) {
314 double ry = CLHEP::RandFlat::shoot(m_randomEngine)*(ymax-ymin) + ymin;
315 double rx = CLHEP::RandFlat::shoot(m_randomEngine)*(xmax-xmin) + xmin;
316 double y = m_dEdX_function->Eval(rx);
317 if ( ry <= y ){ energyLoss = rx; break;}
318 }
319
320
321
322 return energyLoss;
323}
#define y
constexpr int pow(int base, int exp) noexcept
const Amg::Vector3D & momentum() const
The current momentum vector of the ISFParticle.
int pdgCode() const
PDG value.
double mass() const
mass of the particle
TF1 * m_dEdX_function
function to evaluate dEdx
CLHEP::HepRandomEngine * m_randomEngine
Random Engine.
int count(std::string s, const std::string &regx)
count how many occurances of a regx are in a string
Definition hcg.cxx:146
double xmax
Definition listroot.cxx:61
double ymin
Definition listroot.cxx:63
double xmin
Definition listroot.cxx:60
double ymax
Definition listroot.cxx:64

◆ energyDeposit_fast()

double iFatras::HitCreatorSilicon::energyDeposit_fast ( const ISF::ISFParticle & isp,
bool & isPix,
bool & isSCT ) const
protected

Calculate Energyloss with simple Landau approximation.

Definition at line 177 of file HitCreatorSilicon.cxx.

177 {
178
179 int pdg_id= isp.pdgCode();
180 Amg::Vector3D mom = isp.momentum();
181 double Momentum = sqrt((mom.x()*mom.x()) +( mom.y()*mom.y())+(mom.z()*mom.z()));
182 double randLand = CLHEP::RandLandau::shoot(m_randomEngine);
183 double energyLoss=0;
184 if(abs(pdg_id)==11){ // electrons
185 energyLoss = (randLand*0.032)+0.32;
186 }
187 else{ // kaons, protons, pions, myons
188 double rest_mass= isp.mass();
189 double para0 = -1.12409e-02;
190 double para1 = 1.42786e-11;
191 // ST : TEMPORARY remove beta dependence ( fixed to 1 GeV )
192 Momentum = 1000.;
193 // ST
194 double beta = Momentum/ sqrt((Momentum*Momentum)+(rest_mass*rest_mass));
195 double MPV = (para0/pow(beta,2))*(log(para1*(pow(beta,2)/(1-pow(beta,2))))-pow(beta,2));
196
197 if( Momentum< 1000){ //momentum < 1GeV
198 if(abs(pdg_id)==211){ // Pionen
199 if(isSCT){
200 energyLoss = (randLand*0.023)+(MPV+0.008);
201 }
202 if(isPix){
203 energyLoss = (randLand*0.0225)+(MPV+0.008);
204 }
205 }
206 else if(abs(pdg_id)==321){ //Kaonen
207 if(isSCT){
208 energyLoss = (randLand*0.048)+(MPV+0.01);
209 }
210 if(isPix){
211 energyLoss = (randLand*0.0465)+(MPV+0.01);
212 }
213 }
214 else if(abs(pdg_id)==13){ // Muonen
215 if(isSCT){
216 energyLoss = (randLand*0.025)+(MPV+0.011);
217 }
218 if(isPix){
219 energyLoss = (randLand*0.048)+(MPV+0.011);
220 }
221 }
222 else if(abs(pdg_id)==2212){ // Protonen
223 if(isSCT){
224 energyLoss = (randLand*0.0458)+(MPV+0.008);
225 }
226 if(isPix){
227 energyLoss = (randLand*0.0465)+(MPV+0.008);
228 }
229 }
230
231 }//end momentum < 1GeV
232 else if(Momentum >= 1000){
233 if(isSCT){
234 energyLoss = (randLand*0.025)+(MPV+0.013);
235 }
236 if(isPix){
237 energyLoss = (randLand*0.025)+(MPV+0.014);
238 }
239 }//end Momentum >= 1GeV
240 } // End kaons, protons, pions, myons
241
242 return energyLoss;
243}

◆ finalize()

StatusCode iFatras::HitCreatorSilicon::finalize ( )

AlgTool finalize method.

Definition at line 87 of file HitCreatorSilicon.cxx.

88{
89 delete m_dEdX_function;
90 return StatusCode::SUCCESS;
91}

◆ handle()

void iFatras::HitCreatorSilicon::handle ( const Incident & inc)

handle for incident service

Definition at line 94 of file HitCreatorSilicon.cxx.

94 {
95 // check the incident type
96 if ( inc.type() == IncidentType::BeginEvent ){
97 // check if the hit collection already contains:
98 // (a) if yes ... try to retrieve it
100 if ( (evtStore()->retrieve(m_hitColl , m_collectionName)).isFailure() )
101 ATH_MSG_ERROR( "[ --- ] Unable to retrieve SiHitCollection " << m_collectionName);
102 // (b) if no ... try to create it
103 } else {
105 if ( (evtStore()->record(m_hitColl, m_collectionName, true)).isFailure() ) {
106 ATH_MSG_ERROR( "[ --- ] Unable to record SiHitCollection " << m_collectionName);
107 delete m_hitColl; m_hitColl=0;
108 }
109 }
110 }
111 return;
112}
#define ATH_MSG_ERROR(x)
AtlasHitsVector< SiHit > SiHitCollection
StringProperty m_collectionName
name of the collection on storegate
bool contains(const std::string &s, const std::string &regx)
does a string contain the substring
Definition hcg.cxx:114
retrieve(aClass, aKey=None)
Definition PyKernel.py:110

◆ initialize()

StatusCode iFatras::HitCreatorSilicon::initialize ( )

AlgTool initailize method.

Definition at line 54 of file HitCreatorSilicon.cxx.

55{
56 // Random number service
57 ATH_CHECK ( m_randomSvc.retrieve() );
58
59 //Get own engine with own seeds:
61 if (!m_randomEngine) {
62 ATH_MSG_ERROR( "[ --- ] Could not get random engine '" << m_randomEngineName << "'" );
63 return StatusCode::FAILURE;
64 }
65
66 ATH_CHECK ( m_condSummaryTool.retrieve( DisableTool{ !m_useConditionsTool } ) );
67
68 // Get the Pixel Identifier-helper:
69 if ( m_siIdHelperName == "PixelID" ) {
71 }
72 else if ( m_siIdHelperName == "SCT_ID" ) {
74 }
75
76 // Athena/Gaudi framework
77 ATH_CHECK (m_incidentSvc.retrieve());
78
79 // register to the incident service: BeginEvent for TrackCollection
80 m_incidentSvc->addListener( this, IncidentType::BeginEvent);
81 m_dEdX_function = new TF1 ("fitfunc2", langaufun_fast, 0.,10.,4);
82 ATH_MSG_VERBOSE( "[ sihit ] initialize() successful." );
83 return StatusCode::SUCCESS;
84}
#define ATH_CHECK
Evaluate an expression and check for errors.
double langaufun_fast(double *x, double *par)
ServiceHandle< IIncidentSvc > m_incidentSvc
StringProperty m_siIdHelperName
where to find the Si helper
StringProperty m_randomEngineName
Name of the random number stream.
ServiceHandle< IAtRndmGenSvc > m_randomSvc
Pointer to the random number generator service.

Member Data Documentation

◆ m_collectionName

StringProperty iFatras::HitCreatorSilicon::m_collectionName {this, "CollectionName", "PixelHits"}
protected

name of the collection on storegate

Definition at line 88 of file HitCreatorSilicon.h.

88{this, "CollectionName", "PixelHits"};

◆ m_condSummaryTool

ToolHandle<IInDetConditionsTool> iFatras::HitCreatorSilicon::m_condSummaryTool {this, "ConditionsTool", "PixelConditionsSummaryTool"}
protected

ToolHandle to ClusterMaker.

Handle to Pixel/SCT conditions tool

Definition at line 100 of file HitCreatorSilicon.h.

100{this, "ConditionsTool", "PixelConditionsSummaryTool"};

◆ m_dEdX_function

TF1* iFatras::HitCreatorSilicon::m_dEdX_function {}
protected

function to evaluate dEdx

Definition at line 102 of file HitCreatorSilicon.h.

102{};

◆ m_fastEnergyDepositionModel

BooleanProperty iFatras::HitCreatorSilicon::m_fastEnergyDepositionModel {this, "FastEnergyDepositionModel", true}
protected

use fast energy deposition model (landau approximation )

Definition at line 105 of file HitCreatorSilicon.h.

105{this, "FastEnergyDepositionModel", true};

◆ m_hitColl

SiHitCollection* iFatras::HitCreatorSilicon::m_hitColl {}
protected

the SiHit collection

Definition at line 87 of file HitCreatorSilicon.h.

87{};

◆ m_incidentSvc

ServiceHandle<IIncidentSvc> iFatras::HitCreatorSilicon::m_incidentSvc {this, "IncidentService", "IncidentSvc"}
protected

Definition at line 84 of file HitCreatorSilicon.h.

84{this, "IncidentService", "IncidentSvc"};

◆ m_pixIdHelper

const PixelID* iFatras::HitCreatorSilicon::m_pixIdHelper {}
protected

the Pixel ID helper

Definition at line 96 of file HitCreatorSilicon.h.

96{};

◆ m_randomEngine

CLHEP::HepRandomEngine* iFatras::HitCreatorSilicon::m_randomEngine {}
protected

Random Engine.

Definition at line 93 of file HitCreatorSilicon.h.

93{};

◆ m_randomEngineName

StringProperty iFatras::HitCreatorSilicon::m_randomEngineName {this, "RandomStreamName", "FatrasRnd"}
protected

Name of the random number stream.

Definition at line 92 of file HitCreatorSilicon.h.

92{this, "RandomStreamName", "FatrasRnd"};

◆ m_randomSvc

ServiceHandle<IAtRndmGenSvc> iFatras::HitCreatorSilicon::m_randomSvc {this, "RandomNumberService", "AtRndmGenSvc"}
protected

Pointer to the random number generator service.

Random Svc

Definition at line 91 of file HitCreatorSilicon.h.

91{this, "RandomNumberService", "AtRndmGenSvc"};

◆ m_sctIdHelper

const SCT_ID* iFatras::HitCreatorSilicon::m_sctIdHelper {}
protected

the SCT ID helper

Definition at line 97 of file HitCreatorSilicon.h.

97{};

◆ m_siIdHelperName

StringProperty iFatras::HitCreatorSilicon::m_siIdHelperName {this, "IdHelperName", "PixelID"}
protected

where to find the Si helper

Definition at line 95 of file HitCreatorSilicon.h.

95{this, "IdHelperName", "PixelID"};

◆ m_siPathToCharge

DoubleProperty iFatras::HitCreatorSilicon::m_siPathToCharge {this, "PathToChargeConversion", 500.}
protected

convert path in silicon to charge

Definition at line 104 of file HitCreatorSilicon.h.

104{this, "PathToChargeConversion", 500.};

◆ m_useConditionsTool

BooleanProperty iFatras::HitCreatorSilicon::m_useConditionsTool {this, "UseConditionsTool", true}
protected

Definition at line 101 of file HitCreatorSilicon.h.

101{this, "UseConditionsTool", true};

The documentation for this class was generated from the following files: