ATLAS Offline Software
FPGATrackSimGenScanMonitoring.h
Go to the documentation of this file.
1 // Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2 
3 #ifndef FPGATrackSimGenScanMonitoring_H
4 #define FPGATrackSimGenScanMonitoring_H
5 
20 #include "GaudiKernel/ServiceHandle.h"
21 #include "GaudiKernel/ITHistSvc.h"
23 
24 #include "TGraph.h"
25 class TH1D;
26 class TH2D;
27 
31 
33 
35 
36 
38  {
39  public:
40 
42  // AthAlgTool
43 
44  FPGATrackSimGenScanMonitoring(const std::string &, const std::string &, const IInterface *);
45 
46  virtual StatusCode initialize() override;
47 
48  // This is done at the start of execution to create all the graphs
49  // ... also stores some of the configuration parameters for later use
52  void resetDataFlowCounters();
53 
54  // This is done at the end of event execution to store any graphs that were created
56 
57  // Simple accessors for directory
58  const std::string dir() const {return m_dir;}
59 
60  // Takes the truthtracks as input and parses it into a useful form for later use
61  // (e.g. stores which bin the true track is in)
62  void parseTruthInfo(std::vector<FPGATrackSimTruthTrack> const * truthtracks, bool isSingleParticle);
63 
64  // Fill methods
65  void fillHitLevelInput(const FPGATrackSimHit* hit);
66  void fillBinLevelOutput(
69  void fillHitsByLayer(const std::vector<
70  std::vector<const FPGATrackSimBinUtil::StoredHit *>>
71  &hitsByLayer);
72  void fillPairingHits(std::vector<const FPGATrackSimBinUtil::StoredHit *> const *lastlyr,
73  std::vector<const FPGATrackSimBinUtil::StoredHit *> const *lastlastlyr);
74  void fillPairFilterCuts(const FPGATrackSimGenScanTool::HitPair &pair, double r_in, double r_out);
75  void fillPairSetFilterCut(std::vector<TH1D *> &histset, double val,
77  const FPGATrackSimGenScanTool::HitPair &lastpair,
78  bool nminus1);
79 
80 
81  void fillBinningSummary(const std::vector<std::shared_ptr<const FPGATrackSimHit>> &hits);
82 
83  void fillBuildGroupsWithPairs(const std::vector<FPGATrackSimGenScanTool::IntermediateState>& states, unsigned allowed_misses);
84 
85  // Error Checks
86  void sliceCheck();
88  const FPGATrackSimGenScanTool::HitPairSet& filteredpairs,
89  bool passedPairFilter);
90  void pairSetFilterCheck(
91  const FPGATrackSimGenScanTool::HitPairSet &filteredpairs,
92  const std::vector<FPGATrackSimGenScanTool::HitPairSet> &pairsets,
93  unsigned threshold);
94 
95  private:
97  // Handles
98  ServiceHandle<ITHistSvc> m_tHistSvc{this, "THistSvc", "THistSvc"};
99 
101  // Properties
102  Gaudi::Property<std::string> m_dir{this, "dir", {"/GENSCAN/"}, "String name of output directory"};
103  Gaudi::Property<double> m_phiScale{this, "phiScale", {}, "Scale for Delta Phi variable"};
104  Gaudi::Property<double> m_etaScale{this, "etaScale", {}, "Scale for Delta Eta variable"};
105  Gaudi::Property<double> m_drScale{this, "drScale", {}, "Scale for radius differences"};
106 
108  // Pointer to binned hits
110 
111 
113  // Parsed truth/info
114  std::vector<FPGATrackSimTruthTrack> const *m_truthtracks{nullptr};
115  bool m_isSingleParticle = false;
116  bool m_truthIsValid = false;
118  std::vector<FPGATrackSimBinUtil::IdxSet> m_truthbin;
120 
121  // plots are only filled for the truth bin if single particle sample
122  // this gives the distributions of the cut variables when they are
123  // reconstructed in the right bin
125  m_binPlotsActive = ((m_truthbin.back() == idx) || (!m_isSingleParticle));}
126  // this flag governs if pair filter and pairset filter plots filled
127  bool m_binPlotsActive = false;
128 
130  // Data Flow Counters
131  std::vector<unsigned> m_hitsCntByLayer;
132 
134  // Histograms
135  std::vector<TH2D *> m_rZ_allhits;
136  TH1D *m_truthpars_hists[5] = {0, 0, 0, 0, 0};
137  std::vector<TH1D *> m_phiResidual;
138  std::vector<TH1D *> m_etaResidual;
139  std::vector<TH1D *> m_phiTrueBinShift;
140  std::vector<TH1D *> m_etaTrueBinShift;
141 
142  TH1D *m_inputHits = 0;
143 
144  // step-by-step plot
145  std::vector<TH1D *> m_hitsPerStepBin;
146  TH1D * m_hitsPerLayer = 0;
147  TH2D * m_hitsPerLayer2D = 0;
148  TH1D * m_numLyrsPerBin = 0;
149 
151 
152  TH1D *m_phiShift_road = 0;
153  TH1D *m_etaShift_road = 0;
154  TH2D *m_phiShift2D_road = 0;
155  TH2D *m_etaShift2D_road = 0;
156 
157 
158  TH1D *m_pairs = 0;
159  TH1D *m_filteredpairs = 0;
160  TH1D *m_pairsets = 0;
161 
162  // Build Pairs with Groups
163  TH2D* m_unpairedHits = 0;
164  TH2D* m_pairsetsIncr = 0;
165  TH2D* m_pairsetsHits = 0;
166  TH2D* m_binStagesIncr = 0;
167  TH2D* m_totalInputIncr = 0;
168 
169  TH1D *m_pairinghits = 0;
170 
171  TH1D *m_roadFilterFlow = 0;
172 
173  TH1D *m_deltaPhi = 0;
174  TH1D *m_deltaEta = 0;
175  TH1D *m_deltaPhiDR = 0;
176  TH1D *m_deltaEtaDR = 0;
177  TH1D *m_phiOutExtrap = 0;
178  TH1D *m_phiInExtrap = 0;
181  TH1D *m_etaOutExtrap = 0;
182  TH1D *m_etaInExtrap = 0;
183  std::vector<TH1D *> m_deltaPhiByLyr;
184  std::vector<TH1D *> m_deltaEtaByLyr;
185 
186  // This classifies a pair of pairs into categories (described by m_twoPairClasses)
187  // for plotting the pair matching variables
188  // an extra category is tacked on the end to make n-1 plots
189  unsigned pairpairCategory(
191  const FPGATrackSimGenScanTool::HitPair &lastpair) const;
192  const static inline std::vector<std::string> m_twoPairClasses = {
193  "", "_same", "_sequential", "_sameend", "_skip1", "_skip2", "_nm1"};
194  unsigned m_nminus1_idx = 6;
195 
196  public:
197  // These are exposed because of the fill mechanism
198  // FGPATrackSimGenScanTool needs to be pointers to all
199  // of them (not worth writing a bunch of accessors)
200  std::vector<TH1D *> m_deltaDeltaPhi;
201  std::vector<TH1D *> m_deltaDeltaEta;
202  std::vector<TH1D *> m_pairSetMatchPhi;
203  std::vector<TH1D *> m_pairSetMatchEta;
204  std::vector<TH1D *> m_phiCurvature;
205  std::vector<TH1D *> m_etaCurvature;
206  std::vector<TH1D *> m_deltaPhiCurvature;
207  std::vector<TH1D *> m_deltaEtaCurvature;
208  std::vector<TH1D *> m_phiCurvatureMax;
209  std::vector<TH1D *> m_etaCurvatureMax;
210  std::vector<TH1D *> m_phiInExtrapCurved;
211  std::vector<TH1D *> m_phiOutExtrapCurved;
212 
213  private:
214  TH2D *m_pairMatchPhi2D = 0;
215  TH2D *m_pairMatchEta2D = 0;
216 
218  // Event Displays
219 
220  // this struct creates, stores, and fills a set of TGraphs
221  // that act as event displays saving hits in 2-d plane variables
222  // both the standard FPGATrackSimHit R-Z and X-Y are saved,
223  // and for StoredHits in bins, R-Phi and R-Eta are stored using
224  // the FPGATrackSimGenScanTool phiShift and etaShift variables
225  // to show the distance from the bin's center to the hit
226  struct eventDispSet {
227  eventDispSet(std::string name, int maxevts)
228  : m_name(name), m_maxEvts(maxevts) {}
229 
230  TGraph *initGraph(const std::string &name);
231  void AddPoint(TGraph *g, double x, double y);
232 
233  void addEvent(const std::vector<std::shared_ptr<const FPGATrackSimHit>> &hits);
234  void addEvent(const std::vector<FPGATrackSimBinUtil::StoredHit> &hits);
235  void addEvent(const std::vector<const FPGATrackSimBinUtil::StoredHit *> &hits);
236 
238 
239  private:
240  const std::string m_name;
241  const unsigned m_maxEvts;
242 
243  std::vector<TGraph *> m_rZ; // detector coordinates
244  std::vector<TGraph *> m_xY; // detector coordinates
245  std::vector<TGraph *> m_rEta; // road coordinates
246  std::vector<TGraph *> m_rPhi; // road coordinates
247  };
248 
249  // Instantiate event displays for various points in the logical flow
250  eventDispSet m_allHitsGraph{std::string("allHits"), 10};
251  eventDispSet m_roadGraph{std::string("road"), 10};
252  eventDispSet m_lostPairFilterGraph{std::string("lostpairfilter"), 10};
253  eventDispSet m_passPairFilterGraph{std::string("passpairfilter"), 10};
254  eventDispSet m_lostPairSetFilterGraph{std::string("lostpairsetfilter"), 10};
255  eventDispSet m_passPairSetFilterGraph{std::string("passpairsetfilter"), 10};
256 
257  // TTree for layer definitions studies
259  void ClearTreeVectors();
260  TTree *m_bin_module_tree = nullptr; // output tree
261  std::vector<unsigned> m_tree_bin; // 5 tracks parameter bin
262  std::vector<float> m_tree_r;
263  std::vector<float> m_tree_z;
264  std::vector<int> m_tree_id;
265  std::vector<int> m_tree_hash;
266  std::vector<int> m_tree_layer;
267  std::vector<int> m_tree_side;
268  std::vector<int> m_tree_etamod;
269  std::vector<int> m_tree_phimod;
270  std::vector<int> m_tree_dettype;
271  std::vector<int> m_tree_detzone;
272 
274  // make and register histogram or vector of histograms in one line...
275  template <typename HistType, typename... HistDef>
276  StatusCode makeAndRegHist(HistType *&ptr, const HistDef & ... histargs)
277  {
278  ptr = new HistType(histargs...);
279  ATH_MSG_INFO("Booking Hist: " << ptr->GetName() << " min=" << ptr->GetXaxis()->GetXmin() << " max=" << ptr->GetXaxis()->GetXmax());
280  ATH_CHECK(m_tHistSvc->regHist(m_dir + ptr->GetName(), ptr));
281  return StatusCode::SUCCESS;
282  }
283 
284 
285  template <typename HistType, typename... HistDef>
286  StatusCode makeAndRegHistVector(std::vector<HistType*>& vec, unsigned len, const std::vector<std::string>* namevec, const char* namebase, const HistDef & ... histargs)
287  {
288  if (vec.size()==0){
289  for (unsigned i = 0; i < len; i++) {
290  HistType *ptr = 0;
291  std::string name = std::string(namebase);
292  if (!namevec) {
293  name += std::to_string(i);
294  } else {
295  if (namevec->size()==len) {
296  name += (*namevec)[i];
297  } else {
298  return StatusCode::FAILURE;
299  }
300  }
301  ATH_CHECK(makeAndRegHist(ptr, name.c_str(), histargs...));
302  vec.push_back(ptr);
303  }
304  }
305  return StatusCode::SUCCESS;
306  }
307 
308  // Register a graph
309  StatusCode regGraph(TGraph *g) const { return m_tHistSvc->regGraph(m_dir + g->GetName(), g);}
310 
311  };
312 
313 #endif // FPGATrackSimGenScanMonitoring_H
FPGATrackSimGenScanMonitoring::m_truthpars_hists
TH1D * m_truthpars_hists[5]
Definition: FPGATrackSimGenScanMonitoring.h:136
FPGATrackSimGenScanMonitoring::m_tree_layer
std::vector< int > m_tree_layer
Definition: FPGATrackSimGenScanMonitoring.h:266
FPGATrackSimGenScanMonitoring::m_deltaEta
TH1D * m_deltaEta
Definition: FPGATrackSimGenScanMonitoring.h:174
FPGATrackSimGenScanMonitoring::m_phiInExtrapCurveLimit
TH1D * m_phiInExtrapCurveLimit
Definition: FPGATrackSimGenScanMonitoring.h:180
FPGATrackSimGenScanMonitoring::m_phiShift_road
TH1D * m_phiShift_road
Definition: FPGATrackSimGenScanMonitoring.h:152
FPGATrackSimGenScanMonitoring::m_hitsPerStepBin
std::vector< TH1D * > m_hitsPerStepBin
Definition: FPGATrackSimGenScanMonitoring.h:145
FPGATrackSimGenScanMonitoring::m_truthbin
std::vector< FPGATrackSimBinUtil::IdxSet > m_truthbin
Definition: FPGATrackSimGenScanMonitoring.h:118
FPGATrackSimGenScanMonitoring::fillBuildGroupsWithPairs
void fillBuildGroupsWithPairs(const std::vector< FPGATrackSimGenScanTool::IntermediateState > &states, unsigned allowed_misses)
Definition: FPGATrackSimGenScanMonitoring.cxx:569
FPGATrackSimGenScanMonitoring::m_truthtracks
std::vector< FPGATrackSimTruthTrack > const * m_truthtracks
Definition: FPGATrackSimGenScanMonitoring.h:114
FPGATrackSimGenScanMonitoring::m_totalInputIncr
TH2D * m_totalInputIncr
Definition: FPGATrackSimGenScanMonitoring.h:167
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
FPGATrackSimGenScanMonitoring::m_tree_hash
std::vector< int > m_tree_hash
Definition: FPGATrackSimGenScanMonitoring.h:265
FPGATrackSimGenScanMonitoring::pairFilterCheck
void pairFilterCheck(const FPGATrackSimGenScanTool::HitPairSet &pairs, const FPGATrackSimGenScanTool::HitPairSet &filteredpairs, bool passedPairFilter)
Definition: FPGATrackSimGenScanMonitoring.cxx:328
FPGATrackSimGenScanMonitoring::eventDispSet::initGraph
TGraph * initGraph(const std::string &name)
Definition: FPGATrackSimGenScanMonitoring.cxx:588
FPGATrackSimGenScanMonitoring::m_lostPairSetFilterGraph
eventDispSet m_lostPairSetFilterGraph
Definition: FPGATrackSimGenScanMonitoring.h:254
FPGATrackSimGenScanMonitoring::m_binStagesIncr
TH2D * m_binStagesIncr
Definition: FPGATrackSimGenScanMonitoring.h:166
FPGATrackSimGenScanMonitoring::m_deltaEtaByLyr
std::vector< TH1D * > m_deltaEtaByLyr
Definition: FPGATrackSimGenScanMonitoring.h:184
FPGATrackSimGenScanMonitoring::m_dir
Gaudi::Property< std::string > m_dir
Definition: FPGATrackSimGenScanMonitoring.h:102
TRTCalib_Extractor.hits
hits
Definition: TRTCalib_Extractor.py:35
FPGATrackSimGenScanMonitoring::m_pairsetsHits
TH2D * m_pairsetsHits
Definition: FPGATrackSimGenScanMonitoring.h:165
FPGATrackSimGenScanMonitoring::m_phiOutExtrapCurveLimit
TH1D * m_phiOutExtrapCurveLimit
Definition: FPGATrackSimGenScanMonitoring.h:179
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
FPGATrackSimGenScanTool.h
Implements a generalized 5d scan which filters pair of hits in bins linearized about nominal trajecto...
FPGATrackSimGenScanMonitoring::m_deltaEtaDR
TH1D * m_deltaEtaDR
Definition: FPGATrackSimGenScanMonitoring.h:176
FPGATrackSimGenScanMonitoring::m_phiTrueBinShift
std::vector< TH1D * > m_phiTrueBinShift
Definition: FPGATrackSimGenScanMonitoring.h:139
FPGATrackSimGenScanMonitoring::m_tree_detzone
std::vector< int > m_tree_detzone
Definition: FPGATrackSimGenScanMonitoring.h:271
FPGATrackSimGenScanMonitoring::m_phiCurvature
std::vector< TH1D * > m_phiCurvature
Definition: FPGATrackSimGenScanMonitoring.h:204
FPGATrackSimGenScanMonitoring::m_etaResidual
std::vector< TH1D * > m_etaResidual
Definition: FPGATrackSimGenScanMonitoring.h:138
FPGATrackSimGenScanMonitoring::regGraph
StatusCode regGraph(TGraph *g) const
Definition: FPGATrackSimGenScanMonitoring.h:309
FPGATrackSimGenScanMonitoring::fillPairFilterCuts
void fillPairFilterCuts(const FPGATrackSimGenScanTool::HitPair &pair, double r_in, double r_out)
Definition: FPGATrackSimGenScanMonitoring.cxx:469
FPGATrackSimTrackPars
Definition: FPGATrackSimTrackPars.h:22
FPGATrackSimGenScanMonitoring::m_lostPairFilterGraph
eventDispSet m_lostPairFilterGraph
Definition: FPGATrackSimGenScanMonitoring.h:252
FPGATrackSimGenScanMonitoring::allocateDataFlowCounters
void allocateDataFlowCounters()
Definition: FPGATrackSimGenScanMonitoring.cxx:226
FPGATrackSimGenScanMonitoring::m_hitsPerLayer_bin
TH2D * m_hitsPerLayer_bin
Definition: FPGATrackSimGenScanMonitoring.h:150
FPGATrackSimGenScanMonitoring::m_pairSetMatchEta
std::vector< TH1D * > m_pairSetMatchEta
Definition: FPGATrackSimGenScanMonitoring.h:203
FPGATrackSimGenScanMonitoring::m_tree_bin
std::vector< unsigned > m_tree_bin
Definition: FPGATrackSimGenScanMonitoring.h:261
FPGATrackSimGenScanMonitoring::m_pairs
TH1D * m_pairs
Definition: FPGATrackSimGenScanMonitoring.h:158
FPGATrackSimGenScanMonitoring::eventDispSet::registerGraphs
StatusCode registerGraphs(FPGATrackSimGenScanMonitoring *parent)
Definition: FPGATrackSimGenScanMonitoring.cxx:651
FPGATrackSimGenScanMonitoring::makeAndRegHistVector
StatusCode makeAndRegHistVector(std::vector< HistType * > &vec, unsigned len, const std::vector< std::string > *namevec, const char *namebase, const HistDef &... histargs)
Definition: FPGATrackSimGenScanMonitoring.h:286
FPGATrackSimGenScanMonitoring::m_drScale
Gaudi::Property< double > m_drScale
Definition: FPGATrackSimGenScanMonitoring.h:105
vec
std::vector< size_t > vec
Definition: CombinationsGeneratorTest.cxx:9
FPGATrackSimGenScanMonitoring::resetDataFlowCounters
void resetDataFlowCounters()
Definition: FPGATrackSimGenScanMonitoring.cxx:230
FPGATrackSimGenScanMonitoring::m_rZ_allhits
std::vector< TH2D * > m_rZ_allhits
Definition: FPGATrackSimGenScanMonitoring.h:135
FPGATrackSimGenScanMonitoring::m_pairMatchEta2D
TH2D * m_pairMatchEta2D
Definition: FPGATrackSimGenScanMonitoring.h:215
dbg::ptr
void * ptr(T *p)
Definition: SGImplSvc.cxx:74
FPGATrackSimGenScanMonitoring::m_tree_side
std::vector< int > m_tree_side
Definition: FPGATrackSimGenScanMonitoring.h:267
FPGATrackSimGenScanMonitoring::m_truthparset
FPGATrackSimBinUtil::ParSet m_truthparset
Definition: FPGATrackSimGenScanMonitoring.h:119
FPGATrackSimBinnedHits.h
Binning Classes for GenScanTool.
x
#define x
FPGATrackSimGenScanMonitoring::m_etaOutExtrap
TH1D * m_etaOutExtrap
Definition: FPGATrackSimGenScanMonitoring.h:181
FPGATrackSimGenScanMonitoring::m_numLyrsPerBin
TH1D * m_numLyrsPerBin
Definition: FPGATrackSimGenScanMonitoring.h:148
FPGATrackSimGenScanMonitoring::m_etaCurvature
std::vector< TH1D * > m_etaCurvature
Definition: FPGATrackSimGenScanMonitoring.h:205
FPGATrackSimGenScanMonitoring::m_phiCurvatureMax
std::vector< TH1D * > m_phiCurvatureMax
Definition: FPGATrackSimGenScanMonitoring.h:208
FPGATrackSimGenScanMonitoring::m_roadGraph
eventDispSet m_roadGraph
Definition: FPGATrackSimGenScanMonitoring.h:251
FPGATrackSimGenScanMonitoring::m_phiInExtrapCurved
std::vector< TH1D * > m_phiInExtrapCurved
Definition: FPGATrackSimGenScanMonitoring.h:210
FPGATrackSimGenScanMonitoring::eventDispSet::m_xY
std::vector< TGraph * > m_xY
Definition: FPGATrackSimGenScanMonitoring.h:244
FPGATrackSimGenScanMonitoring::m_tHistSvc
ServiceHandle< ITHistSvc > m_tHistSvc
Definition: FPGATrackSimGenScanMonitoring.h:98
FPGATrackSimGenScanMonitoring::m_phiInExtrap
TH1D * m_phiInExtrap
Definition: FPGATrackSimGenScanMonitoring.h:178
FPGATrackSimHit
Definition: FPGATrackSimHit.h:41
python.CreateTierZeroArgdict.pairs
pairs
Definition: CreateTierZeroArgdict.py:201
FPGATrackSimGenScanMonitoring::eventDispSet::eventDispSet
eventDispSet(std::string name, int maxevts)
Definition: FPGATrackSimGenScanMonitoring.h:227
FPGATrackSimGenScanMonitoring::m_etaCurvatureMax
std::vector< TH1D * > m_etaCurvatureMax
Definition: FPGATrackSimGenScanMonitoring.h:209
FPGATrackSimGenScanMonitoring::initialize
virtual StatusCode initialize() override
Definition: FPGATrackSimGenScanMonitoring.cxx:26
FPGATrackSimGenScanMonitoring::dir
const std::string dir() const
Definition: FPGATrackSimGenScanMonitoring.h:58
FPGATrackSimGenScanMonitoring::bookTree
StatusCode bookTree()
Definition: FPGATrackSimGenScanMonitoring.cxx:193
FPGATrackSimGenScanMonitoring::m_pairsetsIncr
TH2D * m_pairsetsIncr
Definition: FPGATrackSimGenScanMonitoring.h:164
FPGATrackSimGenScanMonitoring::eventDispSet::addEvent
void addEvent(const std::vector< std::shared_ptr< const FPGATrackSimHit >> &hits)
Definition: FPGATrackSimGenScanMonitoring.cxx:601
FPGATrackSimGenScanMonitoring::m_deltaPhi
TH1D * m_deltaPhi
Definition: FPGATrackSimGenScanMonitoring.h:173
FPGATrackSimGenScanMonitoring::setBinPlotsActive
void setBinPlotsActive(const FPGATrackSimBinUtil::IdxSet &idx)
Definition: FPGATrackSimGenScanMonitoring.h:124
FPGATrackSimGenScanMonitoring::m_phiShift2D_road
TH2D * m_phiShift2D_road
Definition: FPGATrackSimGenScanMonitoring.h:154
FPGATrackSimGenScanMonitoring::m_deltaDeltaEta
std::vector< TH1D * > m_deltaDeltaEta
Definition: FPGATrackSimGenScanMonitoring.h:201
FPGATrackSimGenScanMonitoring::fillHitLevelInput
void fillHitLevelInput(const FPGATrackSimHit *hit)
Definition: FPGATrackSimGenScanMonitoring.cxx:305
FPGATrackSimGenScanMonitoring::m_allHitsGraph
eventDispSet m_allHitsGraph
Definition: FPGATrackSimGenScanMonitoring.h:250
FPGATrackSimGenScanMonitoring::m_etaTrueBinShift
std::vector< TH1D * > m_etaTrueBinShift
Definition: FPGATrackSimGenScanMonitoring.h:140
FPGATrackSimGenScanMonitoring::eventDispSet
Definition: FPGATrackSimGenScanMonitoring.h:226
FPGATrackSimGenScanMonitoring::m_phiResidual
std::vector< TH1D * > m_phiResidual
Definition: FPGATrackSimGenScanMonitoring.h:137
FPGATrackSimGenScanMonitoring::m_tree_id
std::vector< int > m_tree_id
Definition: FPGATrackSimGenScanMonitoring.h:264
lumiFormat.i
int i
Definition: lumiFormat.py:85
FPGATrackSimGenScanMonitoring::ClearTreeVectors
void ClearTreeVectors()
Definition: FPGATrackSimGenScanMonitoring.cxx:211
FPGATrackSimGenScanMonitoring
Definition: FPGATrackSimGenScanMonitoring.h:38
FPGATrackSimGenScanMonitoring::m_filteredpairs
TH1D * m_filteredpairs
Definition: FPGATrackSimGenScanMonitoring.h:159
FPGATrackSimGenScanMonitoring::m_etaScale
Gaudi::Property< double > m_etaScale
Definition: FPGATrackSimGenScanMonitoring.h:104
python.CaloCondTools.g
g
Definition: CaloCondTools.py:15
FPGATrackSimGenScanMonitoring::m_binPlotsActive
bool m_binPlotsActive
Definition: FPGATrackSimGenScanMonitoring.h:127
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
FPGATrackSimBinUtil.h
Binning Utilities for GenScanTool.
FPGATrackSimGenScanMonitoring::m_deltaPhiDR
TH1D * m_deltaPhiDR
Definition: FPGATrackSimGenScanMonitoring.h:175
FPGATrackSimGenScanMonitoring::eventDispSet::m_rZ
std::vector< TGraph * > m_rZ
Definition: FPGATrackSimGenScanMonitoring.h:243
urldecode::states
states
Definition: urldecode.h:39
AthAlgTool.h
FPGATrackSimGenScanMonitoring::m_etaShift2D_road
TH2D * m_etaShift2D_road
Definition: FPGATrackSimGenScanMonitoring.h:155
FPGATrackSimGenScanMonitoring::m_pairsets
TH1D * m_pairsets
Definition: FPGATrackSimGenScanMonitoring.h:160
FPGATrackSimGenScanMonitoring::m_hitsCntByLayer
std::vector< unsigned > m_hitsCntByLayer
Definition: FPGATrackSimGenScanMonitoring.h:131
FPGATrackSimGenScanMonitoring::m_phiScale
Gaudi::Property< double > m_phiScale
Definition: FPGATrackSimGenScanMonitoring.h:103
FPGATrackSimGenScanTool::HitPairSet
Definition: FPGATrackSimGenScanTool.h:213
FPGATrackSimGenScanMonitoring::fillHitsByLayer
void fillHitsByLayer(const std::vector< std::vector< const FPGATrackSimBinUtil::StoredHit * >> &hitsByLayer)
Definition: FPGATrackSimGenScanMonitoring.cxx:296
test_pyathena.parent
parent
Definition: test_pyathena.py:15
FPGATrackSimGenScanMonitoring::fillPairSetFilterCut
void fillPairSetFilterCut(std::vector< TH1D * > &histset, double val, const FPGATrackSimGenScanTool::HitPair &pair, const FPGATrackSimGenScanTool::HitPair &lastpair, bool nminus1)
Definition: FPGATrackSimGenScanMonitoring.cxx:538
FPGATrackSimGenScanMonitoring::m_pairSetMatchPhi
std::vector< TH1D * > m_pairSetMatchPhi
Definition: FPGATrackSimGenScanMonitoring.h:202
FPGATrackSimGenScanMonitoring::m_isSingleParticle
bool m_isSingleParticle
Definition: FPGATrackSimGenScanMonitoring.h:115
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
FPGATrackSimGenScanMonitoring::sliceCheck
void sliceCheck()
FPGATrackSimGenScanMonitoring::m_etaInExtrap
TH1D * m_etaInExtrap
Definition: FPGATrackSimGenScanMonitoring.h:182
FPGATrackSimGenScanMonitoring::makeAndRegHist
StatusCode makeAndRegHist(HistType *&ptr, const HistDef &... histargs)
Definition: FPGATrackSimGenScanMonitoring.h:276
MC::isSingleParticle
bool isSingleParticle(const T &p)
Identify a particlegun particle.
Definition: HepMCHelpers.h:74
FPGATrackSimBinUtil::ParSet
Definition: FPGATrackSimBinUtil.h:45
FPGATrackSimGenScanMonitoring::m_tree_z
std::vector< float > m_tree_z
Definition: FPGATrackSimGenScanMonitoring.h:263
FPGATrackSimGenScanMonitoring::m_inputHits
TH1D * m_inputHits
Definition: FPGATrackSimGenScanMonitoring.h:142
FPGATrackSimGenScanMonitoring::fillBinLevelOutput
void fillBinLevelOutput(const FPGATrackSimBinUtil::IdxSet &idx, const FPGATrackSimBinnedHits::BinEntry &data)
Definition: FPGATrackSimGenScanMonitoring.cxx:253
FPGATrackSimGenScanMonitoring::m_phiOutExtrapCurved
std::vector< TH1D * > m_phiOutExtrapCurved
Definition: FPGATrackSimGenScanMonitoring.h:211
FPGATrackSimGenScanMonitoring::m_bin_module_tree
TTree * m_bin_module_tree
Definition: FPGATrackSimGenScanMonitoring.h:260
FPGATrackSimBinnedHits::BinEntry
Definition: FPGATrackSimBinnedHits.h:70
FPGATrackSimGenScanMonitoring::m_truthpars
FPGATrackSimTrackPars m_truthpars
Definition: FPGATrackSimGenScanMonitoring.h:117
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
ActsTrk::to_string
std::string to_string(const DetectorType &type)
Definition: GeometryDefs.h:34
FPGATrackSimGenScanMonitoring::pairpairCategory
unsigned pairpairCategory(const FPGATrackSimGenScanTool::HitPair &pair, const FPGATrackSimGenScanTool::HitPair &lastpair) const
Definition: FPGATrackSimGenScanMonitoring.cxx:492
FPGATrackSimGenScanMonitoring::m_passPairFilterGraph
eventDispSet m_passPairFilterGraph
Definition: FPGATrackSimGenScanMonitoring.h:253
threshold
Definition: chainparser.cxx:74
FPGATrackSimHit.h
: FPGATrackSim-specific class to represent an hit in the detector.
FPGATrackSimGenScanMonitoring::eventDispSet::AddPoint
void AddPoint(TGraph *g, double x, double y)
Definition: FPGATrackSimGenScanMonitoring.cxx:595
FPGATrackSimGenScanMonitoring::m_passPairSetFilterGraph
eventDispSet m_passPairSetFilterGraph
Definition: FPGATrackSimGenScanMonitoring.h:255
FPGATrackSimGenScanMonitoring::m_pairMatchPhi2D
TH2D * m_pairMatchPhi2D
Definition: FPGATrackSimGenScanMonitoring.h:214
FPGATrackSimGenScanMonitoring::registerGraphs
StatusCode registerGraphs()
Definition: FPGATrackSimGenScanMonitoring.cxx:236
FPGATrackSimGenScanMonitoring::m_nminus1_idx
unsigned m_nminus1_idx
Definition: FPGATrackSimGenScanMonitoring.h:194
FPGATrackSimGenScanMonitoring::m_deltaPhiByLyr
std::vector< TH1D * > m_deltaPhiByLyr
Definition: FPGATrackSimGenScanMonitoring.h:183
FPGATrackSimGenScanMonitoring::m_hitsPerLayer2D
TH2D * m_hitsPerLayer2D
Definition: FPGATrackSimGenScanMonitoring.h:147
FPGATrackSimGenScanTool::HitPair
Definition: FPGATrackSimGenScanTool.h:180
FPGATrackSimGenScanMonitoring::eventDispSet::m_rEta
std::vector< TGraph * > m_rEta
Definition: FPGATrackSimGenScanMonitoring.h:245
FPGATrackSimGenScanMonitoring::eventDispSet::m_maxEvts
const unsigned m_maxEvts
Definition: FPGATrackSimGenScanMonitoring.h:241
y
#define y
FPGATrackSimGenScanMonitoring::m_roadFilterFlow
TH1D * m_roadFilterFlow
Definition: FPGATrackSimGenScanMonitoring.h:171
FPGATrackSimGenScanMonitoring::eventDispSet::m_rPhi
std::vector< TGraph * > m_rPhi
Definition: FPGATrackSimGenScanMonitoring.h:246
Pythia8_RapidityOrderMPI.val
val
Definition: Pythia8_RapidityOrderMPI.py:14
FPGATrackSimGenScanMonitoring::m_deltaEtaCurvature
std::vector< TH1D * > m_deltaEtaCurvature
Definition: FPGATrackSimGenScanMonitoring.h:207
FPGATrackSimGenScanMonitoring::m_tree_phimod
std::vector< int > m_tree_phimod
Definition: FPGATrackSimGenScanMonitoring.h:269
FPGATrackSimGenScanMonitoring::parseTruthInfo
void parseTruthInfo(std::vector< FPGATrackSimTruthTrack > const *truthtracks, bool isSingleParticle)
Definition: FPGATrackSimGenScanMonitoring.cxx:374
LArNewCalib_DelayDump_OFC_Cali.idx
idx
Definition: LArNewCalib_DelayDump_OFC_Cali.py:69
FPGATrackSimGenScanMonitoring::m_pairinghits
TH1D * m_pairinghits
Definition: FPGATrackSimGenScanMonitoring.h:169
FPGATrackSimGenScanMonitoring::m_binnedhits
const FPGATrackSimBinnedHits * m_binnedhits
Definition: FPGATrackSimGenScanMonitoring.h:109
FPGATrackSimGenScanMonitoring::FPGATrackSimGenScanMonitoring
FPGATrackSimGenScanMonitoring(const std::string &, const std::string &, const IInterface *)
Definition: FPGATrackSimGenScanMonitoring.cxx:21
FPGATrackSimGenScanMonitoring::fillBinningSummary
void fillBinningSummary(const std::vector< std::shared_ptr< const FPGATrackSimHit >> &hits)
Definition: FPGATrackSimGenScanMonitoring.cxx:353
FPGATrackSimGenScanMonitoring::m_twoPairClasses
static const std::vector< std::string > m_twoPairClasses
Definition: FPGATrackSimGenScanMonitoring.h:192
FPGATrackSimGenScanMonitoring::registerHistograms
StatusCode registerHistograms(const FPGATrackSimBinnedHits *binnedhits)
Definition: FPGATrackSimGenScanMonitoring.cxx:44
FPGATrackSimGenScanMonitoring::pairSetFilterCheck
void pairSetFilterCheck(const FPGATrackSimGenScanTool::HitPairSet &filteredpairs, const std::vector< FPGATrackSimGenScanTool::HitPairSet > &pairsets, unsigned threshold)
Definition: FPGATrackSimGenScanMonitoring.cxx:552
FPGATrackSimGenScanMonitoring::m_tree_dettype
std::vector< int > m_tree_dettype
Definition: FPGATrackSimGenScanMonitoring.h:270
FPGATrackSimGenScanMonitoring::fillPairingHits
void fillPairingHits(std::vector< const FPGATrackSimBinUtil::StoredHit * > const *lastlyr, std::vector< const FPGATrackSimBinUtil::StoredHit * > const *lastlastlyr)
Definition: FPGATrackSimGenScanMonitoring.cxx:452
FPGATrackSimGenScanMonitoring::m_truthIsValid
bool m_truthIsValid
Definition: FPGATrackSimGenScanMonitoring.h:116
FPGATrackSimGenScanMonitoring::m_deltaPhiCurvature
std::vector< TH1D * > m_deltaPhiCurvature
Definition: FPGATrackSimGenScanMonitoring.h:206
AthAlgTool
Definition: AthAlgTool.h:26
FPGATrackSimGenScanMonitoring::m_deltaDeltaPhi
std::vector< TH1D * > m_deltaDeltaPhi
Definition: FPGATrackSimGenScanMonitoring.h:200
FPGATrackSimBinUtil::IdxSet
Definition: FPGATrackSimBinUtil.h:50
FPGATrackSimGenScanMonitoring::eventDispSet::m_name
const std::string m_name
Definition: FPGATrackSimGenScanMonitoring.h:240
FPGATrackSimGenScanMonitoring::m_phiOutExtrap
TH1D * m_phiOutExtrap
Definition: FPGATrackSimGenScanMonitoring.h:177
FPGATrackSimTruthTrack.h
FPGATrackSimGenScanMonitoring::m_tree_etamod
std::vector< int > m_tree_etamod
Definition: FPGATrackSimGenScanMonitoring.h:268
FPGATrackSimTrackPars.h
Structs that store the 5 track parameters.
FPGATrackSimGenScanMonitoring::m_tree_r
std::vector< float > m_tree_r
Definition: FPGATrackSimGenScanMonitoring.h:262
FPGATrackSimGenScanMonitoring::m_unpairedHits
TH2D * m_unpairedHits
Definition: FPGATrackSimGenScanMonitoring.h:163
FPGATrackSimGenScanMonitoring::m_etaShift_road
TH1D * m_etaShift_road
Definition: FPGATrackSimGenScanMonitoring.h:153
FPGATrackSimBinnedHits
Definition: FPGATrackSimBinnedHits.h:50
ServiceHandle< ITHistSvc >
FPGATrackSimGenScanMonitoring::m_hitsPerLayer
TH1D * m_hitsPerLayer
Definition: FPGATrackSimGenScanMonitoring.h:146