ATLAS Offline Software
Loading...
Searching...
No Matches
TrackClusterAssValidationUtils.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 TrackClusterAssValidationUtils_H
6#define TrackClusterAssValidationUtils_H
7
8namespace InDet {
9
11 // Header file for class PartPropCache
13
15 {
17 // Public methods:
19 public:
23 PartPropCache(const PartPropCache&) = default;
25 PartPropCache(int uidCharge,int rapidity);
27 ~PartPropCache() = default;
31 int id () const {return abs(m_uidCharge);}
32#if !defined(HEPMC3)
33 int barcode () const {return abs(m_uidCharge);}
34#endif
35 int charge () const {return ((m_uidCharge>0) - (m_uidCharge<0));} //returns 1, -1 or 0 depending on sign
36 int rapidity() const {return m_rapidity;}
37
38 protected:
41 };
42
44 // Inline methods
46
47 inline PartPropCache::PartPropCache (int uidCharge,int rapidity)
48 {
49 m_uidCharge = uidCharge ;
51 }
52
53
55 public:
56 int m_efficiency [6]={} ;
57 int m_efficiencyN [6][5]={};
58 int m_efficiencyBTE[6][5][4]={};
59 int m_efficiencyPOS[6]={} ;
60 int m_efficiencyNEG[6]={} ;
67 int m_total [50]={} ;
68 int m_fake [50]={} ;
69 int m_events{} ;
72 int m_eventsBTE[4]={0} ;
73
74
76 for (int i=0; i<6; ++i) { m_efficiency[i]+=a_stat.m_efficiency[i];}
77 for (int i=0; i<6; ++i) { for (int j=0; j<5; ++j) { m_efficiencyN[i][j]+=a_stat.m_efficiencyN[i][j];}}
78 for (int i=0; i<6; ++i) { for (int j=0; j<5; ++j) { for (int k=0; k<4; ++k) { m_efficiencyBTE[i][j][k]+=a_stat.m_efficiencyBTE[i][j][k];} } }
79 for (int i=0; i<6; ++i) { m_efficiencyPOS[i]+=a_stat.m_efficiencyPOS[i];}
80 for (int i=0; i<6; ++i) { m_efficiencyNEG[i]+=a_stat.m_efficiencyNEG[i];}
87 for (int i=0; i<50; ++i) { m_total[i]+=a_stat.m_total[i];}
88 for (int i=0; i<50; ++i) { m_fake[i]+=a_stat.m_fake[i];}
89
90 return *this;
91 }
92
93 };
94
95
96 struct EventStat_t {
97 public:
98 int m_events{} ;
101 int m_eventsBTE[4]={};
102
105 int m_particleClustersBTE [50][4]={};
107
116 //
121
122
124 m_events += a_stat.m_events;
125 m_eventsPOS += a_stat.m_eventsPOS;
126 m_eventsNEG += a_stat.m_eventsNEG;
127 for (int i=0; i<4; ++i) { m_eventsBTE[i] += a_stat.m_eventsBTE[i]; }
128 for (int i=0; i<50; ++i) {m_particleClusters[i] += a_stat.m_particleClusters[i]; };
129 for (int i=0; i<50; ++i) {m_particleSpacePoints[i] += a_stat.m_particleSpacePoints[i]; };
130 for (int i=0; i<50; ++i) {for (int j=0; j<4; ++j) { m_particleClustersBTE[i][j] += a_stat.m_particleClustersBTE[i][j]; } }
131 for (int i=0; i<50; ++i) {for (int j=0; j<4; ++j) { m_particleSpacePointsBTE[i][j] += a_stat.m_particleSpacePointsBTE[i][j];} }
144 return *this;
145 }
146 };
147
148}
149#endif // TrackClusterAssValidationUtils_H
150
~PartPropCache()=default
destructor does nothing
PartPropCache & operator=(const PartPropCache &)=default
assignment defaulted
PartPropCache(const PartPropCache &)=default
copy c'tor defaulted
Primary Vertex Finder.
EventStat_t & operator+=(const EventStat_t &a_stat)
TrackCollectionStat_t & operator+=(const TrackCollectionStat_t &a_stat)