ATLAS Offline Software
HelperStructs.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3  */
4 
5 #ifndef TRKEXINTERFACES_HELPERSTRUCTS_H
6 #define TRKEXINTERFACES_HELPERSTRUCTS_H
7 
9 
10 namespace Trk {
11 struct HitInfo
12 {
13  std::unique_ptr<const Trk::TrackParameters> trackParms; // intersection
14  float time; // timing
15  int detID; // sensitive detector id
16  float deposit; // interaction energy deposit (secondaries subtracted)
17 
21  HitInfo(std::unique_ptr<const Trk::TrackParameters> parms,
22  float time,
23  int id,
24  float deposit)
25  : trackParms(std::move(parms))
26  , time(time)
27  , detID(id)
28  , deposit(deposit)
29  {
30  }
31 };
32 
33 struct PathLimit
34 {
35  float x0Max; // path limit after which sampled process occurs
36  float x0Collected; // x0 traversed so far
37  float l0Collected; // l0 traversed so far
38  float weightedZ; // type of material traversed (divide by collected x0 to get average Z)
39  int process; // type of pre-sampled material process
40 
44  PathLimit( float pathLimit, int proc) :
45  x0Max(pathLimit), x0Collected(0.0), l0Collected(0.0),weightedZ(0.0), process(proc)
46  {}
47 
51  void updateMat( float dX0, float Z, float dL0) {
52  x0Collected += dX0; weightedZ += dX0*Z;
53  l0Collected += dL0>0. ? dL0 : dX0/0.37/Z; // use approximation if l0 not available
54  }
55 };
56 
57 struct TimeLimit
58 {
59  float tMax; // pre-sampled life-time
60  float time; // timing
61  int process; // type of pre-sampled decay process
62 
66  TimeLimit( float timeMax, float time, int proc) :
67  tMax(timeMax), time(time), process(proc)
68  {}
69 
73  void updateTime( float dt) { time += dt; }
74 };
75 }
76 
77 #endif
Trk::HitInfo::detID
int detID
Definition: HelperStructs.h:15
TrackParameters.h
Trk::PathLimit::process
int process
Definition: HelperStructs.h:39
Trk::PathLimit::updateMat
void updateMat(float dX0, float Z, float dL0)
collected material update
Definition: HelperStructs.h:51
Trk::TimeLimit::process
int process
Definition: HelperStructs.h:61
Trk::HitInfo::HitInfo
HitInfo(std::unique_ptr< const Trk::TrackParameters > parms, float time, int id, float deposit)
Constructor.
Definition: HelperStructs.h:21
Trk::HitInfo::time
float time
Definition: HelperStructs.h:14
Trk::HitInfo::trackParms
std::unique_ptr< const Trk::TrackParameters > trackParms
Definition: HelperStructs.h:13
Trk::TimeLimit::tMax
float tMax
Definition: HelperStructs.h:59
Trk::PathLimit::weightedZ
float weightedZ
Definition: HelperStructs.h:38
Trk::PathLimit::x0Collected
float x0Collected
Definition: HelperStructs.h:36
CaloNoise_fillDB.dt
dt
Definition: CaloNoise_fillDB.py:58
Trk::PathLimit::PathLimit
PathLimit(float pathLimit, int proc)
Constructor.
Definition: HelperStructs.h:44
Trk::TimeLimit
Definition: HelperStructs.h:58
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
id
SG::auxid_t id
Definition: Control/AthContainers/Root/debug.cxx:191
mc.proc
proc
Definition: mc.PhPy8EG_A14NNPDF23_gg4l_example.py:22
Trk::PathLimit
Definition: HelperStructs.h:34
Trk::PathLimit::l0Collected
float l0Collected
Definition: HelperStructs.h:37
Trk::TimeLimit::TimeLimit
TimeLimit(float timeMax, float time, int proc)
Constructor.
Definition: HelperStructs.h:66
Trk::TimeLimit::time
float time
Definition: HelperStructs.h:60
Trk::TimeLimit::updateTime
void updateTime(float dt)
timing update
Definition: HelperStructs.h:73
Trk::HitInfo
Definition: HelperStructs.h:12
Trk::PathLimit::x0Max
float x0Max
Definition: HelperStructs.h:35
Trk::HitInfo::deposit
float deposit
Definition: HelperStructs.h:16