Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
FPGATrackSimGenScanMonitoring.h
Go to the documentation of this file.
1 // Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2 
3 #ifndef FPGATrackSimGenScanMonitoring_H
4 #define FPGATrackSimGenScanMonitoring_H
5 
19 #include "GaudiKernel/ServiceHandle.h"
20 #include "GaudiKernel/ITHistSvc.h"
22 
23 #include "TGraph.h"
24 class TH1D;
25 class TH2D;
26 
30 
33 
34 
36  {
37  public:
38 
40  // AthAlgTool
41 
42  FPGATrackSimGenScanMonitoring(const std::string &, const std::string &, const IInterface *);
43 
44  virtual StatusCode initialize() override;
45 
46  // This is done at the start of execution to create all the graphs
47  // ... also stores some of the configuration parameters for later use
49  double rin, double rout);
51  void resetDataFlowCounters();
52 
53  // This is done at the end of event execution to store any graphs that were created
55 
56  // Simple accessors for directory
57  const std::string dir() const {return m_dir;}
58 
59  // Takes the truthtracks as input and parses it into a useful form for later use
60  // (e.g. stores which bin the true track is in)
61  void parseTruthInfo(std::vector<FPGATrackSimTruthTrack> const * truthtracks, bool isSingleParticle,
62  const FPGATrackSimGenScanArray<int>& validBin);
63 
64 
65  // Fill methods
66  void fillHitLevelInput(const FPGATrackSimHit* hit);
67  void fillBinLevelOutput(
70  void fillHitsByLayer(const std::vector<
71  std::vector<const FPGATrackSimGenScanTool::StoredHit *>>
72  &hitsByLayer);
73  void fillPairingHits(std::vector<const FPGATrackSimGenScanTool::StoredHit *> const *lastlyr,
74  std::vector<const FPGATrackSimGenScanTool::StoredHit *> const *lastlastlyr);
76  void fillPairSetFilterCut(std::vector<TH1D *> &histset, double val,
78  const FPGATrackSimGenScanTool::HitPair &lastpair,
79  bool nminus1);
80 
81 
82  void fillInputSummary(const std::vector<std::shared_ptr<const FPGATrackSimHit>> &hits,
83  const FPGATrackSimGenScanArray<int> &validSlice,
84  const FPGATrackSimGenScanArray<int> &validScan);
85  void fillOutputSummary(const FPGATrackSimGenScanArray<int>& validSlice,
86  const FPGATrackSimGenScanArray<int>& validSliceAndScan);
87 
88  void fillBuildGroupsWithPairs(const std::vector<FPGATrackSimGenScanTool::IntermediateState>& states, unsigned allowed_misses);
89 
90  // Counter Increments
91  void incrementInputPerSlice(const std::vector<unsigned>& sliceidx) { m_inputhitsperslice[sliceidx]++; }
93  const std::pair<unsigned, unsigned>& rowRange, const FPGATrackSimHit* hit);
94 
95  // Error Checks
96  void sliceCheck(const std::vector<unsigned>& sliceidx);
98  const FPGATrackSimGenScanTool::HitPairSet& filteredpairs,
99  bool passedPairFilter);
100  void pairSetFilterCheck(
101  const FPGATrackSimGenScanTool::HitPairSet &filteredpairs,
102  const std::vector<FPGATrackSimGenScanTool::HitPairSet> &pairsets,
103  unsigned threshold);
104 
106  return idx==m_truthbin;
107  }
108 
109  private:
111  // Handles
112  ServiceHandle<ITHistSvc> m_tHistSvc{this, "THistSvc", "THistSvc"};
113 
115  // Properties
116  Gaudi::Property<std::string> m_dir{this, "dir", {"/GENSCAN/"}, "String name of output directory"};
117 
119  // Other configuration
120  unsigned m_nLayers = 0;
122  double m_rin=0.0;
123  double m_rout=0.0;
124 
126  // Parsed truth/info
127  std::vector<FPGATrackSimTruthTrack> const *m_truthtracks{nullptr};
128  bool m_isSingleParticle = false;
129  bool m_truthIsValid = false;
133 
134  // plots are only filled for the truth bin if single particle sample
135  // this gives the distributions of the cut variables when they are
136  // reconstructed in the right bin
139  // this flag governs if pair filter and pairset filter plots filled
140  bool m_binPlotsActive = false;
141 
143  // Data Flow Counters
144  std::vector<unsigned> m_hitsCntByLayer;
145 
148 
152 
154  // Histograms
155  std::vector<TH2D *> m_rZ_allhits;
156  TH1D *m_truthpars_hists[5] = {0, 0, 0, 0, 0};
157  std::vector<TH1D *> m_phiResidual;
158  std::vector<TH1D *> m_etaResidual;
159  std::vector<TH1D *> m_phiTrueBinShift;
160  std::vector<TH1D *> m_etaTrueBinShift;
161 
162  TH1D *m_inputHits = 0;
165 
166  TH1D *m_inputHitsPerRow = 0;
170 
171  TH2D *m_hitsPerLayer2D = 0;
172  TH1D *m_hitsPerLayer = 0;
173  TH1D *m_hitsLoadedPerLayer = 0; // loaded in row
174 
175  TH1D *m_hitLyrsAllBins = 0;
176 
177  TH1D *m_phiShift_road = 0;
178  TH1D *m_etaShift_road = 0;
179  TH2D *m_phiShift2D_road = 0;
180  TH2D *m_etaShift2D_road = 0;
182 
183  TH1D *m_pairs = 0;
184  TH1D *m_filteredpairs = 0;
185  TH1D *m_pairsets = 0;
186 
187  // Build Pairs with Groups
188  TH2D* m_unpairedHits = 0;
189  TH2D* m_pairsetsIncr = 0;
190  TH2D* m_pairsetsHits = 0;
191  TH2D* m_binStagesIncr = 0;
192  TH2D* m_totalInputIncr = 0;
193 
194  TH1D *m_pairinghits = 0;
195 
196  TH1D *m_roadFilterFlow = 0;
197 
198  TH1D *m_deltaPhi = 0;
199  TH1D *m_deltaEta = 0;
200  TH1D *m_deltaPhiDR = 0;
201  TH1D *m_deltaEtaDR = 0;
202  TH1D *m_phiOutExtrap = 0;
203  TH1D *m_phiInExtrap = 0;
206  TH1D *m_etaOutExtrap = 0;
207  TH1D *m_etaInExtrap = 0;
208  std::vector<TH1D *> m_deltaPhiByLyr;
209  std::vector<TH1D *> m_deltaEtaByLyr;
210 
211  // This classifies a pair of pairs into categories (described by m_twoPairClasses)
212  // for plotting the pair matching variables
213  // an extra category is tacked on the end to make n-1 plots
214  unsigned pairpairCategory(
216  const FPGATrackSimGenScanTool::HitPair &lastpair) const;
217  const static inline std::vector<std::string> m_twoPairClasses = {
218  "", "_same", "_sequential", "_sameend", "_skip1", "_skip2", "_nm1"};
219  unsigned m_nminus1_idx = 6;
220 
221  public:
222  // These are exposed because of the fill mechanism
223  // FGPATrackSimGenScanTool needs to be pointers to all
224  // of them (not worth writing a bunch of accessors)
225  std::vector<TH1D *> m_deltaDeltaPhi;
226  std::vector<TH1D *> m_deltaDeltaEta;
227  std::vector<TH1D *> m_pairSetMatchPhi;
228  std::vector<TH1D *> m_pairSetMatchEta;
229  std::vector<TH1D *> m_phiCurvature;
230  std::vector<TH1D *> m_etaCurvature;
231  std::vector<TH1D *> m_deltaPhiCurvature;
232  std::vector<TH1D *> m_deltaEtaCurvature;
233  std::vector<TH1D *> m_phiCurvatureMax;
234  std::vector<TH1D *> m_etaCurvatureMax;
235  std::vector<TH1D *> m_phiInExtrapCurved;
236  std::vector<TH1D *> m_phiOutExtrapCurved;
237 
238  private:
239  TH2D *m_pairMatchPhi2D = 0;
240  TH2D *m_pairMatchEta2D = 0;
241 
243  // Event Displays
244 
245  // this struct creates, stores, and fills a set of TGraphs
246  // that act as event displays saving hits in 2-d plane variables
247  // both the standard FPGATrackSimHit R-Z and X-Y are saved,
248  // and for StoredHits in bins, R-Phi and R-Eta are stored using
249  // the FPGATrackSimGenScanTool phiShift and etaShift variables
250  // to show the distance from the bin's center to the hit
251  struct eventDispSet {
252  eventDispSet(std::string name, int maxevts)
253  : m_name(name), m_maxEvts(maxevts) {}
254 
255  TGraph *initGraph(const std::string &name);
256  void AddPoint(TGraph *g, double x, double y);
257 
258  void addEvent(const std::vector<std::shared_ptr<const FPGATrackSimHit>> &hits);
259  void addEvent(const std::vector<FPGATrackSimGenScanTool::StoredHit> &hits);
260  void addEvent(const std::vector<const FPGATrackSimGenScanTool::StoredHit *> &hits);
261 
263 
264  private:
265  const std::string m_name;
266  const unsigned m_maxEvts;
267 
268  std::vector<TGraph *> m_rZ; // detector coordinates
269  std::vector<TGraph *> m_xY; // detector coordinates
270  std::vector<TGraph *> m_rEta; // road coordinates
271  std::vector<TGraph *> m_rPhi; // road coordinates
272  };
273 
274  // Instantiate event displays for various points in the logical flow
275  eventDispSet m_allHitsGraph{std::string("allHits"), 10};
276  eventDispSet m_roadGraph{std::string("road"), 10};
277  eventDispSet m_lostPairFilterGraph{std::string("lostpairfilter"), 10};
278  eventDispSet m_passPairFilterGraph{std::string("passpairfilter"), 10};
279  eventDispSet m_lostPairSetFilterGraph{std::string("lostpairsetfilter"), 10};
280  eventDispSet m_passPairSetFilterGraph{std::string("passpairsetfilter"), 10};
281 
282  // TTree for layer definitions studies
284  void ClearTreeVectors();
285  TTree *m_bin_module_tree = nullptr; // output tree
286  std::vector<unsigned> m_tree_bin; // 5 tracks parameter bin
287  std::vector<float> m_tree_r;
288  std::vector<float> m_tree_z;
289  std::vector<int> m_tree_id;
290  std::vector<int> m_tree_hash;
291  std::vector<int> m_tree_layer;
292  std::vector<int> m_tree_side;
293  std::vector<int> m_tree_etamod;
294  std::vector<int> m_tree_phimod;
295  std::vector<int> m_tree_dettype;
296  std::vector<int> m_tree_detzone;
297 
299  // make and register histogram or vector of histograms in one line...
300  template <typename HistType, typename... HistDef>
301  StatusCode makeAndRegHist(HistType *&ptr, HistDef... histargs)
302  {
303  ptr = new HistType(histargs...);
304  ATH_CHECK(m_tHistSvc->regHist(m_dir + ptr->GetName(), ptr));
305  return StatusCode::SUCCESS;
306  }
307 
308 
309  template <typename HistType, typename... HistDef>
310  StatusCode makeAndRegHistVector(std::vector<HistType*>& vec, unsigned len, const std::vector<std::string>* namevec, const char* namebase, HistDef... histargs)
311  {
312  if (vec.size()==0){
313  for (unsigned i = 0; i < len; i++) {
314  HistType *ptr = 0;
315  std::string name = std::string(namebase);
316  if (!namevec) {
317  name += std::to_string(i);
318  } else {
319  if (namevec->size()==len) {
320  name += (*namevec)[i];
321  } else {
322  return StatusCode::FAILURE;
323  }
324  }
325  ATH_CHECK(makeAndRegHist(ptr, name.c_str(), histargs...));
326  vec.push_back(ptr);
327  }
328  }
329  return StatusCode::SUCCESS;
330  }
331 
332  // Register a graph
333  StatusCode regGraph(TGraph *g) const { return m_tHistSvc->regGraph(m_dir + g->GetName(), g);}
334 
335  };
336 
337 #endif // FPGATrackSimGenScanMonitoring_H
FPGATrackSimGenScanMonitoring::m_truthpars_hists
TH1D * m_truthpars_hists[5]
Definition: FPGATrackSimGenScanMonitoring.h:156
FPGATrackSimGenScanMonitoring::m_tree_layer
std::vector< int > m_tree_layer
Definition: FPGATrackSimGenScanMonitoring.h:291
FPGATrackSimGenScanMonitoring::parseTruthInfo
void parseTruthInfo(std::vector< FPGATrackSimTruthTrack > const *truthtracks, bool isSingleParticle, const FPGATrackSimGenScanArray< int > &validBin)
Definition: FPGATrackSimGenScanMonitoring.cxx:440
FPGATrackSimGenScanMonitoring::fillOutputSummary
void fillOutputSummary(const FPGATrackSimGenScanArray< int > &validSlice, const FPGATrackSimGenScanArray< int > &validSliceAndScan)
Definition: FPGATrackSimGenScanMonitoring.cxx:418
FPGATrackSimGenScanMonitoring::m_deltaEta
TH1D * m_deltaEta
Definition: FPGATrackSimGenScanMonitoring.h:199
FPGATrackSimGenScanMonitoring::m_phiInExtrapCurveLimit
TH1D * m_phiInExtrapCurveLimit
Definition: FPGATrackSimGenScanMonitoring.h:205
FPGATrackSimGenScanMonitoring::m_phiShift_road
TH1D * m_phiShift_road
Definition: FPGATrackSimGenScanMonitoring.h:177
FPGATrackSimGenScanMonitoring::fillBuildGroupsWithPairs
void fillBuildGroupsWithPairs(const std::vector< FPGATrackSimGenScanTool::IntermediateState > &states, unsigned allowed_misses)
Definition: FPGATrackSimGenScanMonitoring.cxx:627
FPGATrackSimGenScanArray< int >
FPGATrackSimGenScanMonitoring::m_truthtracks
std::vector< FPGATrackSimTruthTrack > const * m_truthtracks
Definition: FPGATrackSimGenScanMonitoring.h:127
FPGATrackSimGenScanMonitoring::m_totalInputIncr
TH2D * m_totalInputIncr
Definition: FPGATrackSimGenScanMonitoring.h:192
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
FPGATrackSimGenScanMonitoring::m_inputhitsperrow
FPGATrackSimGenScanArray< int > m_inputhitsperrow
Definition: FPGATrackSimGenScanMonitoring.h:147
FPGATrackSimGenScanMonitoring::fillBinLevelOutput
void fillBinLevelOutput(const FPGATrackSimGenScanBinningBase::IdxSet &idx, const FPGATrackSimGenScanTool::BinEntry &data)
Definition: FPGATrackSimGenScanMonitoring.cxx:266
FPGATrackSimGenScanMonitoring::m_tree_hash
std::vector< int > m_tree_hash
Definition: FPGATrackSimGenScanMonitoring.h:290
FPGATrackSimGenScanMonitoring::pairFilterCheck
void pairFilterCheck(const FPGATrackSimGenScanTool::HitPairSet &pairs, const FPGATrackSimGenScanTool::HitPairSet &filteredpairs, bool passedPairFilter)
Definition: FPGATrackSimGenScanMonitoring.cxx:351
FPGATrackSimGenScanBinningBase::IdxSet
Definition: FPGATrackSimGenScanBinning.h:111
FPGATrackSimGenScanMonitoring::eventDispSet::initGraph
TGraph * initGraph(const std::string &name)
Definition: FPGATrackSimGenScanMonitoring.cxx:648
FPGATrackSimGenScanMonitoring::m_lostPairSetFilterGraph
eventDispSet m_lostPairSetFilterGraph
Definition: FPGATrackSimGenScanMonitoring.h:279
FPGATrackSimGenScanMonitoring::m_binStagesIncr
TH2D * m_binStagesIncr
Definition: FPGATrackSimGenScanMonitoring.h:191
AddEmptyComponent.binning
binning
Definition: AddEmptyComponent.py:34
FPGATrackSimGenScanMonitoring::m_deltaEtaByLyr
std::vector< TH1D * > m_deltaEtaByLyr
Definition: FPGATrackSimGenScanMonitoring.h:209
FPGATrackSimGenScanMonitoring::m_outputRoadsPerRow
TH1D * m_outputRoadsPerRow
Definition: FPGATrackSimGenScanMonitoring.h:168
FPGATrackSimGenScanMonitoring::m_dir
Gaudi::Property< std::string > m_dir
Definition: FPGATrackSimGenScanMonitoring.h:116
TRTCalib_Extractor.hits
hits
Definition: TRTCalib_Extractor.py:35
FPGATrackSimGenScanMonitoring::m_pairsetsHits
TH2D * m_pairsetsHits
Definition: FPGATrackSimGenScanMonitoring.h:190
FPGATrackSimGenScanMonitoring::m_phiOutExtrapCurveLimit
TH1D * m_phiOutExtrapCurveLimit
Definition: FPGATrackSimGenScanMonitoring.h:204
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:201
FPGATrackSimGenScanMonitoring::m_phiTrueBinShift
std::vector< TH1D * > m_phiTrueBinShift
Definition: FPGATrackSimGenScanMonitoring.h:159
FPGATrackSimGenScanMonitoring::m_tree_detzone
std::vector< int > m_tree_detzone
Definition: FPGATrackSimGenScanMonitoring.h:296
FPGATrackSimGenScanMonitoring::m_phiCurvature
std::vector< TH1D * > m_phiCurvature
Definition: FPGATrackSimGenScanMonitoring.h:229
FPGATrackSimGenScanMonitoring::m_etaResidual
std::vector< TH1D * > m_etaResidual
Definition: FPGATrackSimGenScanMonitoring.h:158
FPGATrackSimGenScanMonitoring::regGraph
StatusCode regGraph(TGraph *g) const
Definition: FPGATrackSimGenScanMonitoring.h:333
FPGATrackSimGenScanMonitoring::makeAndRegHist
StatusCode makeAndRegHist(HistType *&ptr, HistDef... histargs)
Definition: FPGATrackSimGenScanMonitoring.h:301
FPGATrackSimTrackPars
Definition: FPGATrackSimTrackPars.h:22
FPGATrackSimGenScanMonitoring::m_lostPairFilterGraph
eventDispSet m_lostPairFilterGraph
Definition: FPGATrackSimGenScanMonitoring.h:277
FPGATrackSimGenScanMonitoring::m_outputroadsperrow
FPGATrackSimGenScanArray< int > m_outputroadsperrow
Definition: FPGATrackSimGenScanMonitoring.h:151
FPGATrackSimGenScanMonitoring::allocateDataFlowCounters
void allocateDataFlowCounters()
Definition: FPGATrackSimGenScanMonitoring.cxx:223
FPGATrackSimGenScanMonitoring::m_pairSetMatchEta
std::vector< TH1D * > m_pairSetMatchEta
Definition: FPGATrackSimGenScanMonitoring.h:228
FPGATrackSimGenScanMonitoring::m_tree_bin
std::vector< unsigned > m_tree_bin
Definition: FPGATrackSimGenScanMonitoring.h:286
FPGATrackSimGenScanMonitoring::m_hitsLoadedPerLayer
TH1D * m_hitsLoadedPerLayer
Definition: FPGATrackSimGenScanMonitoring.h:173
FPGATrackSimGenScanBinningBase::ParSet
Definition: FPGATrackSimGenScanBinning.h:101
FPGATrackSimGenScanMonitoring::setBinPlotsActive
void setBinPlotsActive(const FPGATrackSimGenScanBinningBase::IdxSet &idx)
Definition: FPGATrackSimGenScanMonitoring.h:137
FPGATrackSimGenScanMonitoring::m_pairs
TH1D * m_pairs
Definition: FPGATrackSimGenScanMonitoring.h:183
FPGATrackSimGenScanMonitoring::makeAndRegHistVector
StatusCode makeAndRegHistVector(std::vector< HistType * > &vec, unsigned len, const std::vector< std::string > *namevec, const char *namebase, HistDef... histargs)
Definition: FPGATrackSimGenScanMonitoring.h:310
FPGATrackSimGenScanMonitoring::eventDispSet::registerGraphs
StatusCode registerGraphs(FPGATrackSimGenScanMonitoring *parent)
Definition: FPGATrackSimGenScanMonitoring.cxx:714
vec
std::vector< size_t > vec
Definition: CombinationsGeneratorTest.cxx:9
FPGATrackSimGenScanMonitoring::incrementInputPerScan
void incrementInputPerScan(const FPGATrackSimGenScanBinningBase::IdxSet &idx, const std::pair< unsigned, unsigned > &rowRange, const FPGATrackSimHit *hit)
Definition: FPGATrackSimGenScanMonitoring.cxx:376
FPGATrackSimGenScanMonitoring::resetDataFlowCounters
void resetDataFlowCounters()
Definition: FPGATrackSimGenScanMonitoring.cxx:235
FPGATrackSimGenScanMonitoring::m_rZ_allhits
std::vector< TH2D * > m_rZ_allhits
Definition: FPGATrackSimGenScanMonitoring.h:155
FPGATrackSimGenScanMonitoring::m_nLayers
unsigned m_nLayers
Definition: FPGATrackSimGenScanMonitoring.h:120
FPGATrackSimGenScanMonitoring::m_pairMatchEta2D
TH2D * m_pairMatchEta2D
Definition: FPGATrackSimGenScanMonitoring.h:240
dbg::ptr
void * ptr(T *p)
Definition: SGImplSvc.cxx:74
FPGATrackSimGenScanMonitoring::m_tree_side
std::vector< int > m_tree_side
Definition: FPGATrackSimGenScanMonitoring.h:292
x
#define x
FPGATrackSimGenScanMonitoring::m_etaOutExtrap
TH1D * m_etaOutExtrap
Definition: FPGATrackSimGenScanMonitoring.h:206
FPGATrackSimGenScanMonitoring::m_etaCurvature
std::vector< TH1D * > m_etaCurvature
Definition: FPGATrackSimGenScanMonitoring.h:230
FPGATrackSimGenScanMonitoring::m_phiCurvatureMax
std::vector< TH1D * > m_phiCurvatureMax
Definition: FPGATrackSimGenScanMonitoring.h:233
FPGATrackSimGenScanMonitoring::m_roadGraph
eventDispSet m_roadGraph
Definition: FPGATrackSimGenScanMonitoring.h:276
FPGATrackSimGenScanMonitoring::m_phiInExtrapCurved
std::vector< TH1D * > m_phiInExtrapCurved
Definition: FPGATrackSimGenScanMonitoring.h:235
FPGATrackSimGenScanMonitoring::eventDispSet::m_xY
std::vector< TGraph * > m_xY
Definition: FPGATrackSimGenScanMonitoring.h:269
FPGATrackSimGenScanMonitoring::m_tHistSvc
ServiceHandle< ITHistSvc > m_tHistSvc
Definition: FPGATrackSimGenScanMonitoring.h:112
FPGATrackSimGenScanMonitoring::m_phiInExtrap
TH1D * m_phiInExtrap
Definition: FPGATrackSimGenScanMonitoring.h:203
FPGATrackSimHit
Definition: FPGATrackSimHit.h:41
python.CreateTierZeroArgdict.pairs
pairs
Definition: CreateTierZeroArgdict.py:201
FPGATrackSimGenScanBinning.h
Binning Classes for GenScanTool.
FPGATrackSimGenScanMonitoring::eventDispSet::eventDispSet
eventDispSet(std::string name, int maxevts)
Definition: FPGATrackSimGenScanMonitoring.h:252
FPGATrackSimGenScanMonitoring::m_etaCurvatureMax
std::vector< TH1D * > m_etaCurvatureMax
Definition: FPGATrackSimGenScanMonitoring.h:234
FPGATrackSimGenScanMonitoring::initialize
virtual StatusCode initialize() override
Definition: FPGATrackSimGenScanMonitoring.cxx:23
FPGATrackSimGenScanMonitoring::dir
const std::string dir() const
Definition: FPGATrackSimGenScanMonitoring.h:57
FPGATrackSimGenScanMonitoring::isTruthBin
bool isTruthBin(FPGATrackSimGenScanBinningBase::IdxSet idx) const
Definition: FPGATrackSimGenScanMonitoring.h:105
FPGATrackSimGenScanMonitoring::bookTree
StatusCode bookTree()
Definition: FPGATrackSimGenScanMonitoring.cxx:190
FPGATrackSimGenScanMonitoring::m_truthbin
FPGATrackSimGenScanBinningBase::IdxSet m_truthbin
Definition: FPGATrackSimGenScanMonitoring.h:131
FPGATrackSimGenScanMonitoring::m_pairsetsIncr
TH2D * m_pairsetsIncr
Definition: FPGATrackSimGenScanMonitoring.h:189
FPGATrackSimGenScanMonitoring::m_inputhitsperslice
FPGATrackSimGenScanArray< int > m_inputhitsperslice
Definition: FPGATrackSimGenScanMonitoring.h:146
FPGATrackSimGenScanMonitoring::eventDispSet::addEvent
void addEvent(const std::vector< std::shared_ptr< const FPGATrackSimHit >> &hits)
Definition: FPGATrackSimGenScanMonitoring.cxx:660
FPGATrackSimGenScanMonitoring::m_deltaPhi
TH1D * m_deltaPhi
Definition: FPGATrackSimGenScanMonitoring.h:198
FPGATrackSimGenScanMonitoring::m_phiShift2D_road
TH2D * m_phiShift2D_road
Definition: FPGATrackSimGenScanMonitoring.h:179
FPGATrackSimGenScanMonitoring::m_deltaDeltaEta
std::vector< TH1D * > m_deltaDeltaEta
Definition: FPGATrackSimGenScanMonitoring.h:226
FPGATrackSimGenScanMonitoring::fillHitLevelInput
void fillHitLevelInput(const FPGATrackSimHit *hit)
Definition: FPGATrackSimGenScanMonitoring.cxx:324
FPGATrackSimGenScanMonitoring::m_allHitsGraph
eventDispSet m_allHitsGraph
Definition: FPGATrackSimGenScanMonitoring.h:275
FPGATrackSimGenScanMonitoring::m_etaTrueBinShift
std::vector< TH1D * > m_etaTrueBinShift
Definition: FPGATrackSimGenScanMonitoring.h:160
FPGATrackSimGenScanMonitoring::eventDispSet
Definition: FPGATrackSimGenScanMonitoring.h:251
FPGATrackSimGenScanMonitoring::m_phiResidual
std::vector< TH1D * > m_phiResidual
Definition: FPGATrackSimGenScanMonitoring.h:157
FPGATrackSimGenScanMonitoring::m_tree_id
std::vector< int > m_tree_id
Definition: FPGATrackSimGenScanMonitoring.h:289
lumiFormat.i
int i
Definition: lumiFormat.py:85
FPGATrackSimGenScanMonitoring::ClearTreeVectors
void ClearTreeVectors()
Definition: FPGATrackSimGenScanMonitoring.cxx:208
FPGATrackSimGenScanMonitoring
Definition: FPGATrackSimGenScanMonitoring.h:36
FPGATrackSimGenScanMonitoring::m_filteredpairs
TH1D * m_filteredpairs
Definition: FPGATrackSimGenScanMonitoring.h:184
python.CaloCondTools.g
g
Definition: CaloCondTools.py:15
FPGATrackSimGenScanMonitoring::m_binPlotsActive
bool m_binPlotsActive
Definition: FPGATrackSimGenScanMonitoring.h:140
FPGATrackSimGenScanMonitoring::m_hitLyrsAllBins
TH1D * m_hitLyrsAllBins
Definition: FPGATrackSimGenScanMonitoring.h:175
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
FPGATrackSimGenScanMonitoring::m_deltaPhiDR
TH1D * m_deltaPhiDR
Definition: FPGATrackSimGenScanMonitoring.h:200
FPGATrackSimGenScanMonitoring::eventDispSet::m_rZ
std::vector< TGraph * > m_rZ
Definition: FPGATrackSimGenScanMonitoring.h:268
urldecode::states
states
Definition: urldecode.h:39
FPGATrackSimGenScanMonitoring::m_inputHitsPerSlice
TH1D * m_inputHitsPerSlice
Definition: FPGATrackSimGenScanMonitoring.h:163
AthAlgTool.h
FPGATrackSimGenScanMonitoring::m_etaShift2D_road
TH2D * m_etaShift2D_road
Definition: FPGATrackSimGenScanMonitoring.h:180
FPGATrackSimGenScanMonitoring::m_pairsets
TH1D * m_pairsets
Definition: FPGATrackSimGenScanMonitoring.h:185
FPGATrackSimGenScanMonitoring::m_hitsCntByLayer
std::vector< unsigned > m_hitsCntByLayer
Definition: FPGATrackSimGenScanMonitoring.h:144
FPGATrackSimGenScanTool::HitPairSet
Definition: FPGATrackSimGenScanTool.h:262
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:595
FPGATrackSimGenScanMonitoring::m_pairSetMatchPhi
std::vector< TH1D * > m_pairSetMatchPhi
Definition: FPGATrackSimGenScanMonitoring.h:227
FPGATrackSimGenScanMonitoring::m_isSingleParticle
bool m_isSingleParticle
Definition: FPGATrackSimGenScanMonitoring.h:128
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
FPGATrackSimGenScanMonitoring::m_outputHitsPerRow
TH1D * m_outputHitsPerRow
Definition: FPGATrackSimGenScanMonitoring.h:167
FPGATrackSimGenScanMonitoring::m_etaInExtrap
TH1D * m_etaInExtrap
Definition: FPGATrackSimGenScanMonitoring.h:207
FPGATrackSimGenScanMonitoring::m_truthparset
FPGATrackSimGenScanBinningBase::ParSet m_truthparset
Definition: FPGATrackSimGenScanMonitoring.h:132
MC::isSingleParticle
bool isSingleParticle(const T &p)
Identify a particlegun particle.
Definition: HepMCHelpers.h:74
FPGATrackSimGenScanMonitoring::incrementInputPerSlice
void incrementInputPerSlice(const std::vector< unsigned > &sliceidx)
Definition: FPGATrackSimGenScanMonitoring.h:91
FPGATrackSimGenScanMonitoring::m_tree_z
std::vector< float > m_tree_z
Definition: FPGATrackSimGenScanMonitoring.h:288
FPGATrackSimGenScanMonitoring::m_inputHits
TH1D * m_inputHits
Definition: FPGATrackSimGenScanMonitoring.h:162
FPGATrackSimGenScanMonitoring::m_outputHitsPerBin
TH1D * m_outputHitsPerBin
Definition: FPGATrackSimGenScanMonitoring.h:169
FPGATrackSimGenScanMonitoring::m_phiOutExtrapCurved
std::vector< TH1D * > m_phiOutExtrapCurved
Definition: FPGATrackSimGenScanMonitoring.h:236
FPGATrackSimGenScanMonitoring::m_bin_module_tree
TTree * m_bin_module_tree
Definition: FPGATrackSimGenScanMonitoring.h:285
FPGATrackSimGenScanMonitoring::m_inputHitsPerRow
TH1D * m_inputHitsPerRow
Definition: FPGATrackSimGenScanMonitoring.h:166
FPGATrackSimGenScanMonitoring::m_truthpars
FPGATrackSimTrackPars m_truthpars
Definition: FPGATrackSimGenScanMonitoring.h:130
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
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:548
FPGATrackSimGenScanMonitoring::m_passPairFilterGraph
eventDispSet m_passPairFilterGraph
Definition: FPGATrackSimGenScanMonitoring.h:278
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:655
FPGATrackSimGenScanMonitoring::fillPairingHits
void fillPairingHits(std::vector< const FPGATrackSimGenScanTool::StoredHit * > const *lastlyr, std::vector< const FPGATrackSimGenScanTool::StoredHit * > const *lastlastlyr)
Definition: FPGATrackSimGenScanMonitoring.cxx:506
FPGATrackSimGenScanMonitoring::registerHistograms
StatusCode registerHistograms(unsigned nLayers, const FPGATrackSimGenScanBinningBase *binning, double rin, double rout)
Definition: FPGATrackSimGenScanMonitoring.cxx:41
FPGATrackSimGenScanMonitoring::m_passPairSetFilterGraph
eventDispSet m_passPairSetFilterGraph
Definition: FPGATrackSimGenScanMonitoring.h:280
FPGATrackSimGenScanMonitoring::m_pairMatchPhi2D
TH2D * m_pairMatchPhi2D
Definition: FPGATrackSimGenScanMonitoring.h:239
FPGATrackSimGenScanMonitoring::registerGraphs
StatusCode registerGraphs()
Definition: FPGATrackSimGenScanMonitoring.cxx:249
FPGATrackSimGenScanMonitoring::fillInputSummary
void fillInputSummary(const std::vector< std::shared_ptr< const FPGATrackSimHit >> &hits, const FPGATrackSimGenScanArray< int > &validSlice, const FPGATrackSimGenScanArray< int > &validScan)
Definition: FPGATrackSimGenScanMonitoring.cxx:391
FPGATrackSimGenScanMonitoring::m_rin
double m_rin
Definition: FPGATrackSimGenScanMonitoring.h:122
FPGATrackSimGenScanMonitoring::fillHitsByLayer
void fillHitsByLayer(const std::vector< std::vector< const FPGATrackSimGenScanTool::StoredHit * >> &hitsByLayer)
Definition: FPGATrackSimGenScanMonitoring.cxx:315
FPGATrackSimGenScanMonitoring::m_nminus1_idx
unsigned m_nminus1_idx
Definition: FPGATrackSimGenScanMonitoring.h:219
FPGATrackSimGenScanMonitoring::m_deltaPhiByLyr
std::vector< TH1D * > m_deltaPhiByLyr
Definition: FPGATrackSimGenScanMonitoring.h:208
FPGATrackSimGenScanMonitoring::m_hitsPerLayer2D
TH2D * m_hitsPerLayer2D
Definition: FPGATrackSimGenScanMonitoring.h:171
FPGATrackSimGenScanTool::HitPair
Definition: FPGATrackSimGenScanTool.h:229
FPGATrackSimGenScanMonitoring::eventDispSet::m_rEta
std::vector< TGraph * > m_rEta
Definition: FPGATrackSimGenScanMonitoring.h:270
FPGATrackSimGenScanMonitoring::eventDispSet::m_maxEvts
const unsigned m_maxEvts
Definition: FPGATrackSimGenScanMonitoring.h:266
y
#define y
FPGATrackSimGenScanMonitoring::m_roadFilterFlow
TH1D * m_roadFilterFlow
Definition: FPGATrackSimGenScanMonitoring.h:196
FPGATrackSimGenScanMonitoring::eventDispSet::m_rPhi
std::vector< TGraph * > m_rPhi
Definition: FPGATrackSimGenScanMonitoring.h:271
Pythia8_RapidityOrderMPI.val
val
Definition: Pythia8_RapidityOrderMPI.py:14
FPGATrackSimGenScanMonitoring::m_deltaEtaCurvature
std::vector< TH1D * > m_deltaEtaCurvature
Definition: FPGATrackSimGenScanMonitoring.h:232
FPGATrackSimGenScanMonitoring::m_binning
const FPGATrackSimGenScanBinningBase * m_binning
Definition: FPGATrackSimGenScanMonitoring.h:121
FPGATrackSimGenScanMonitoring::m_tree_phimod
std::vector< int > m_tree_phimod
Definition: FPGATrackSimGenScanMonitoring.h:294
FPGATrackSimGenScanMonitoring::m_outputhitsperrow
FPGATrackSimGenScanArray< int > m_outputhitsperrow
Definition: FPGATrackSimGenScanMonitoring.h:150
LArNewCalib_DelayDump_OFC_Cali.idx
idx
Definition: LArNewCalib_DelayDump_OFC_Cali.py:69
FPGATrackSimGenScanMonitoring::m_pairinghits
TH1D * m_pairinghits
Definition: FPGATrackSimGenScanMonitoring.h:194
FPGATrackSimGenScanMonitoring::m_outputhitsperslice
FPGATrackSimGenScanArray< int > m_outputhitsperslice
Definition: FPGATrackSimGenScanMonitoring.h:149
FPGATrackSimGenScanMonitoring::sliceCheck
void sliceCheck(const std::vector< unsigned > &sliceidx)
Definition: FPGATrackSimGenScanMonitoring.cxx:344
FPGATrackSimGenScanMonitoring::FPGATrackSimGenScanMonitoring
FPGATrackSimGenScanMonitoring(const std::string &, const std::string &, const IInterface *)
Definition: FPGATrackSimGenScanMonitoring.cxx:18
FPGATrackSimGenScanMonitoring::m_twoPairClasses
static const std::vector< std::string > m_twoPairClasses
Definition: FPGATrackSimGenScanMonitoring.h:217
FPGATrackSimGenScanMonitoring::pairSetFilterCheck
void pairSetFilterCheck(const FPGATrackSimGenScanTool::HitPairSet &filteredpairs, const std::vector< FPGATrackSimGenScanTool::HitPairSet > &pairsets, unsigned threshold)
Definition: FPGATrackSimGenScanMonitoring.cxx:610
FPGATrackSimGenScanMonitoring::m_tree_dettype
std::vector< int > m_tree_dettype
Definition: FPGATrackSimGenScanMonitoring.h:295
FPGATrackSimGenScanMonitoring::m_truthIsValid
bool m_truthIsValid
Definition: FPGATrackSimGenScanMonitoring.h:129
FPGATrackSimGenScanMonitoring::m_deltaPhiCurvature
std::vector< TH1D * > m_deltaPhiCurvature
Definition: FPGATrackSimGenScanMonitoring.h:231
AthAlgTool
Definition: AthAlgTool.h:26
FPGATrackSimGenScanMonitoring::fillPairFilterCuts
void fillPairFilterCuts(const FPGATrackSimGenScanTool::HitPair &pair)
Definition: FPGATrackSimGenScanMonitoring.cxx:524
FPGATrackSimGenScanBinningBase
Definition: FPGATrackSimGenScanBinning.h:88
FPGATrackSimGenScanMonitoring::m_deltaDeltaPhi
std::vector< TH1D * > m_deltaDeltaPhi
Definition: FPGATrackSimGenScanMonitoring.h:225
FPGATrackSimGenScanTool::BinEntry
Definition: FPGATrackSimGenScanTool.h:214
FPGATrackSimGenScanMonitoring::m_outputHitsPerSlice
TH1D * m_outputHitsPerSlice
Definition: FPGATrackSimGenScanMonitoring.h:164
FPGATrackSimGenScanMonitoring::eventDispSet::m_name
const std::string m_name
Definition: FPGATrackSimGenScanMonitoring.h:265
FPGATrackSimGenScanMonitoring::m_phiOutExtrap
TH1D * m_phiOutExtrap
Definition: FPGATrackSimGenScanMonitoring.h:202
FPGATrackSimTruthTrack.h
FPGATrackSimGenScanMonitoring::m_tree_etamod
std::vector< int > m_tree_etamod
Definition: FPGATrackSimGenScanMonitoring.h:293
FPGATrackSimTrackPars.h
Structs that store the 5 track parameters.
FPGATrackSimGenScanMonitoring::m_tree_r
std::vector< float > m_tree_r
Definition: FPGATrackSimGenScanMonitoring.h:287
FPGATrackSimGenScanMonitoring::m_hitsPerLayer_road
TH2D * m_hitsPerLayer_road
Definition: FPGATrackSimGenScanMonitoring.h:181
FPGATrackSimGenScanMonitoring::m_unpairedHits
TH2D * m_unpairedHits
Definition: FPGATrackSimGenScanMonitoring.h:188
FPGATrackSimGenScanMonitoring::m_etaShift_road
TH1D * m_etaShift_road
Definition: FPGATrackSimGenScanMonitoring.h:178
ServiceHandle< ITHistSvc >
FPGATrackSimGenScanMonitoring::m_hitsPerLayer
TH1D * m_hitsPerLayer
Definition: FPGATrackSimGenScanMonitoring.h:172
FPGATrackSimGenScanMonitoring::m_rout
double m_rout
Definition: FPGATrackSimGenScanMonitoring.h:123