ATLAS Offline Software
Loading...
Searching...
No Matches
FPGATrackSimGenScanMonitoring Class Reference

#include <FPGATrackSimGenScanMonitoring.h>

Inheritance diagram for FPGATrackSimGenScanMonitoring:

Classes

struct  eventDispSet

Public Member Functions

 FPGATrackSimGenScanMonitoring (const std::string &, const std::string &, const IInterface *)
virtual StatusCode initialize () override
StatusCode registerHistograms (const FPGATrackSimBinnedHits *binnedhits)
void allocateDataFlowCounters ()
void resetDataFlowCounters ()
StatusCode registerGraphs ()
const std::string dir () const
void parseTruthInfo (std::vector< FPGATrackSimTruthTrack > const *truthtracks, bool isSingleParticle)
void fillHitLevelInput (const FPGATrackSimHit *hit)
void fillBinLevelOutput (const FPGATrackSimBinUtil::IdxSet &idx, const FPGATrackSimBinnedHits::BinEntry &data)
void fillHitsByLayer (const std::vector< std::vector< const FPGATrackSimBinUtil::StoredHit * > > &hitsByLayer)
void fillPairingHits (std::vector< const FPGATrackSimBinUtil::StoredHit * > const *lastlyr, std::vector< const FPGATrackSimBinUtil::StoredHit * > const *lastlastlyr)
void fillPairFilterCuts (const FPGATrackSimGenScanTool::HitPair &pair, double r_in, double r_out)
void fillPairSetFilterCut (std::vector< TH1D * > &histset, double val, const FPGATrackSimGenScanTool::HitPair &pair, const FPGATrackSimGenScanTool::HitPair &lastpair, bool nminus1)
void fillBinningSummary (const std::vector< std::shared_ptr< const FPGATrackSimHit > > &hits)
void fillBuildGroupsWithPairs (const std::vector< FPGATrackSimGenScanTool::IntermediateState > &states, unsigned allowed_misses)
void sliceCheck ()
void pairFilterCheck (const FPGATrackSimGenScanTool::HitPairSet &pairs, const FPGATrackSimGenScanTool::HitPairSet &filteredpairs, bool passedPairFilter)
void pairSetFilterCheck (const FPGATrackSimGenScanTool::HitPairSet &filteredpairs, const std::vector< FPGATrackSimGenScanTool::HitPairSet > &pairsets, unsigned threshold)
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const

Public Attributes

std::vector< TH1D * > m_deltaDeltaPhi
std::vector< TH1D * > m_deltaDeltaEta
std::vector< TH1D * > m_pairSetMatchPhi
std::vector< TH1D * > m_pairSetMatchEta
std::vector< TH1D * > m_phiCurvature
std::vector< TH1D * > m_etaCurvature
std::vector< TH1D * > m_deltaPhiCurvature
std::vector< TH1D * > m_deltaEtaCurvature
std::vector< TH1D * > m_phiCurvatureMax
std::vector< TH1D * > m_etaCurvatureMax
std::vector< TH1D * > m_phiInExtrapCurved
std::vector< TH1D * > m_phiOutExtrapCurved

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed.

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

void setBinPlotsActive (const FPGATrackSimBinUtil::IdxSet &idx)
unsigned pairpairCategory (const FPGATrackSimGenScanTool::HitPair &pair, const FPGATrackSimGenScanTool::HitPair &lastpair) const
StatusCode bookTree ()
void ClearTreeVectors ()
template<typename HistType, typename... HistDef>
StatusCode makeAndRegHist (HistType *&ptr, const HistDef &... histargs)
template<typename HistType, typename... HistDef>
StatusCode makeAndRegHistVector (std::vector< HistType * > &vec, unsigned len, const std::vector< std::string > *namevec, const char *namebase, const HistDef &... histargs)
StatusCode regGraph (TGraph *g) const
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

ServiceHandle< ITHistSvc > m_tHistSvc {this, "THistSvc", "THistSvc"}
Gaudi::Property< std::string > m_dir {this, "dir", {"/GENSCAN/"}, "String name of output directory"}
Gaudi::Property< double > m_phiScale {this, "phiScale", {}, "Scale for Delta Phi variable"}
Gaudi::Property< double > m_etaScale {this, "etaScale", {}, "Scale for Delta Eta variable"}
Gaudi::Property< double > m_drScale {this, "drScale", {}, "Scale for radius differences"}
const FPGATrackSimBinnedHitsm_binnedhits {nullptr}
std::vector< FPGATrackSimTruthTrack > const * m_truthtracks {nullptr}
bool m_isSingleParticle = false
bool m_truthIsValid = false
FPGATrackSimTrackPars m_truthpars
std::vector< FPGATrackSimBinUtil::IdxSetm_truthbin
FPGATrackSimBinUtil::ParSet m_truthparset
bool m_binPlotsActive = false
std::vector< unsigned > m_hitsCntByLayer
std::vector< TH2D * > m_rZ_allhits
TH1D * m_truthpars_hists [5] = {0, 0, 0, 0, 0}
std::vector< TH1D * > m_phiResidual
std::vector< TH1D * > m_etaResidual
std::vector< TH1D * > m_phiTrueBinShift
std::vector< TH1D * > m_etaTrueBinShift
TH1D * m_inputHits = 0
std::vector< TH1D * > m_hitsPerStepBin
TH1D * m_hitsPerLayer = 0
TH2D * m_hitsPerLayer2D = 0
TH1D * m_numLyrsPerBin = 0
TH2D * m_hitsPerLayer_bin = 0
TH1D * m_phiShift_road = 0
TH1D * m_etaShift_road = 0
TH2D * m_phiShift2D_road = 0
TH2D * m_etaShift2D_road = 0
TH1D * m_pairs = 0
TH1D * m_filteredpairs = 0
TH1D * m_pairsets = 0
TH2D * m_unpairedHits = 0
TH2D * m_pairsetsIncr = 0
TH2D * m_pairsetsHits = 0
TH2D * m_binStagesIncr = 0
TH2D * m_totalInputIncr = 0
TH1D * m_pairinghits = 0
TH1D * m_roadFilterFlow = 0
TH1D * m_deltaPhi = 0
TH1D * m_deltaEta = 0
TH1D * m_deltaPhiDR = 0
TH1D * m_deltaEtaDR = 0
TH1D * m_phiOutExtrap = 0
TH1D * m_phiInExtrap = 0
TH1D * m_phiOutExtrapCurveLimit =0
TH1D * m_phiInExtrapCurveLimit =0
TH1D * m_etaOutExtrap = 0
TH1D * m_etaInExtrap = 0
std::vector< TH1D * > m_deltaPhiByLyr
std::vector< TH1D * > m_deltaEtaByLyr
unsigned m_nminus1_idx = 6
TH2D * m_pairMatchPhi2D = 0
TH2D * m_pairMatchEta2D = 0
eventDispSet m_allHitsGraph {std::string("allHits"), 10}
eventDispSet m_roadGraph {std::string("road"), 10}
eventDispSet m_lostPairFilterGraph {std::string("lostpairfilter"), 10}
eventDispSet m_passPairFilterGraph {std::string("passpairfilter"), 10}
eventDispSet m_lostPairSetFilterGraph {std::string("lostpairsetfilter"), 10}
eventDispSet m_passPairSetFilterGraph {std::string("passpairsetfilter"), 10}
TTree * m_bin_module_tree = nullptr
std::vector< unsigned > m_tree_bin
std::vector< float > m_tree_r
std::vector< float > m_tree_z
std::vector< int > m_tree_id
std::vector< int > m_tree_hash
std::vector< int > m_tree_layer
std::vector< int > m_tree_side
std::vector< int > m_tree_etamod
std::vector< int > m_tree_phimod
std::vector< int > m_tree_dettype
std::vector< int > m_tree_detzone
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default)
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
bool m_varHandleArraysDeclared

Static Private Attributes

static const std::vector< std::string > m_twoPairClasses

Detailed Description

Definition at line 37 of file FPGATrackSimGenScanMonitoring.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< AlgTool > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ FPGATrackSimGenScanMonitoring()

FPGATrackSimGenScanMonitoring::FPGATrackSimGenScanMonitoring ( const std::string & algname,
const std::string & name,
const IInterface * ifc )

Definition at line 21 of file FPGATrackSimGenScanMonitoring.cxx.

21 :
22 AthAlgTool(algname, name, ifc)
23{
24}
AthAlgTool()
Default constructor:

Member Function Documentation

◆ allocateDataFlowCounters()

void FPGATrackSimGenScanMonitoring::allocateDataFlowCounters ( )

Definition at line 226 of file FPGATrackSimGenScanMonitoring.cxx.

226 {
227 m_hitsCntByLayer.resize(m_binnedhits->getNLayers(),0);
228}
const FPGATrackSimBinnedHits * m_binnedhits

◆ bookTree()

StatusCode FPGATrackSimGenScanMonitoring::bookTree ( )
private

Definition at line 193 of file FPGATrackSimGenScanMonitoring.cxx.

193 {
194 ATH_MSG_DEBUG("Booking Layers Study Tree");
195 m_bin_module_tree = new TTree("LayerStudy","LayerStudy");
196 m_bin_module_tree->Branch("bin", &m_tree_bin);
197 m_bin_module_tree->Branch("r", &m_tree_r);
198 m_bin_module_tree->Branch("z", &m_tree_z);
199 m_bin_module_tree->Branch("id", &m_tree_id);
200 m_bin_module_tree->Branch("hash", &m_tree_hash);
201 m_bin_module_tree->Branch("layer", &m_tree_layer);
202 m_bin_module_tree->Branch("side", &m_tree_side);
203 m_bin_module_tree->Branch("etamod", &m_tree_etamod);
204 m_bin_module_tree->Branch("phimod", &m_tree_phimod);
205 m_bin_module_tree->Branch("dettype", &m_tree_dettype);
206 m_bin_module_tree->Branch("detzone", &m_tree_detzone);
207
209 return StatusCode::SUCCESS;
210}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_DEBUG(x)

◆ ClearTreeVectors()

void FPGATrackSimGenScanMonitoring::ClearTreeVectors ( )
private

Definition at line 211 of file FPGATrackSimGenScanMonitoring.cxx.

212{
213 m_tree_r.clear();
214 m_tree_z.clear();
215 m_tree_id.clear();
216 m_tree_hash.clear();
217 m_tree_layer.clear();
218 m_tree_side.clear();
219 m_tree_etamod.clear();
220 m_tree_phimod.clear();
221 m_tree_dettype.clear();
222 m_tree_detzone.clear();
223}

◆ declareGaudiProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T, V, H > & hndl,
const SG::VarHandleKeyType &  )
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158 {
160 hndl.value(),
161 hndl.documentation());
162
163 }
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)

◆ declareProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( Gaudi::Property< T, V, H > & t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145 {
146 typedef typename SG::HandleClassifier<T>::type htype;
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>

◆ detStore()

const ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

◆ dir()

const std::string FPGATrackSimGenScanMonitoring::dir ( ) const
inline

Definition at line 58 of file FPGATrackSimGenScanMonitoring.h.

58{return m_dir;}

◆ evtStore()

ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase & ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ fillBinLevelOutput()

void FPGATrackSimGenScanMonitoring::fillBinLevelOutput ( const FPGATrackSimBinUtil::IdxSet & idx,
const FPGATrackSimBinnedHits::BinEntry & data )

Definition at line 253 of file FPGATrackSimGenScanMonitoring.cxx.

255{
257
258 m_roadGraph.addEvent(data.hits);
259
260 if (m_binPlotsActive) {
261 for (auto& hit : data.hits) {
262 m_phiShift_road->Fill(hit.phiShift);
263 m_etaShift_road->Fill(hit.etaShift);
264 m_phiShift2D_road->Fill(hit.phiShift, hit.hitptr->getR());
265 m_etaShift2D_road->Fill(hit.etaShift, hit.hitptr->getR());
266 }
267
268 // Module mapping and Layer definition studies
269 // first sort hits by r+z radii
270 std::vector<FPGATrackSimBinUtil::StoredHit> sorted_hits = data.hits;
271 std::sort(sorted_hits.begin(), sorted_hits.end(),
272 [](const auto &hit1, const auto &hit2) {
273 return hit1.rzrad() < hit2.rzrad();
274 });
275
276 // Fill tree
277 m_tree_bin = std::vector<unsigned>(idx);
279 for (auto &hit : sorted_hits) {
280 m_tree_r.push_back(hit.hitptr->getR());
281 m_tree_z.push_back(hit.hitptr->getZ());
282 m_tree_id.push_back(hit.hitptr->getIdentifier());
283 m_tree_hash.push_back(hit.hitptr->getIdentifierHash());
284 m_tree_layer.push_back(hit.hitptr->getLayerDisk());
285 m_tree_side.push_back(hit.hitptr->getSide());
286 m_tree_etamod.push_back(hit.hitptr->getEtaModule());
287 m_tree_phimod.push_back(hit.hitptr->getPhiModule());
288 m_tree_dettype.push_back((int)hit.hitptr->getDetType());
289 m_tree_detzone.push_back((int)hit.hitptr->getDetectorZone());
290 }
291 ATH_MSG_DEBUG("For tree, bin=" << idx << " mods=" << m_tree_hash);
292 m_bin_module_tree->Fill();
293 }
294}
char data[hepevt_bytes_allocation_ATLAS]
Definition HepEvt.cxx:11
void setBinPlotsActive(const FPGATrackSimBinUtil::IdxSet &idx)
void sort(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end)
Specialization of sort for DataVector/List.

◆ fillBinningSummary()

void FPGATrackSimGenScanMonitoring::fillBinningSummary ( const std::vector< std::shared_ptr< const FPGATrackSimHit > > & hits)

Definition at line 353 of file FPGATrackSimGenScanMonitoring.cxx.

355{
356 m_inputHits->Fill(hits.size());
357 m_allHitsGraph.addEvent(hits);
358
359 for (auto &step : m_binnedhits->getBinTool().steps()) {
360 for (auto bin : m_binnedhits->binnedHits()[step->stepNum()])
361 m_hitsPerStepBin[step->stepNum()]->Fill(bin.data().hitCnt);
362 }
363
364 for (auto bin :m_binnedhits->binnedHits()[m_binnedhits->getBinTool().lastStep()->stepNum()]) {
365 for (unsigned lyr = 0; lyr < m_binnedhits->getNLayers(); lyr++) {
366 unsigned cnt = bin.data().hitsInLyr(lyr);
367 m_hitsPerLayer->Fill(lyr, cnt);
368 m_hitsPerLayer2D->Fill(lyr, cnt);
369 }
370 }
371}

◆ fillBuildGroupsWithPairs()

void FPGATrackSimGenScanMonitoring::fillBuildGroupsWithPairs ( const std::vector< FPGATrackSimGenScanTool::IntermediateState > & states,
unsigned allowed_misses )

Definition at line 569 of file FPGATrackSimGenScanMonitoring.cxx.

571 {
572
573 for (unsigned i = 0; i < states.size(); i++) {
574 m_unpairedHits->Fill(i, states[i].unpairedHits.size());
575 m_pairsetsIncr->Fill(i, states[i].pairsets.size());
576 for (auto &pair : states[i].pairsets) {
577 m_pairsetsHits->Fill(i, pair.hitlist.size());
578 }
579 unsigned totalInput =
580 states[i].pairsets.size() + states[i].unpairedHits.size();
581 m_totalInputIncr->Fill(i, totalInput);
582 m_binStagesIncr->Fill(i, (i <= allowed_misses) || (totalInput > 0));
583 }
584}

◆ fillHitLevelInput()

void FPGATrackSimGenScanMonitoring::fillHitLevelInput ( const FPGATrackSimHit * hit)

Definition at line 305 of file FPGATrackSimGenScanMonitoring.cxx.

306 {
307 const IFPGATrackSimBinDesc* bindesc = m_binnedhits->getBinTool().binDesc();
308 m_rZ_allhits[m_binnedhits->getNLayers()]->Fill(hit->getZ(), hit->getR()); // all layer plot
309 m_rZ_allhits[hit->getLayer()]->Fill(hit->getZ(), hit->getR()); // layer specific plot
310 if (m_truthIsValid)
311 {
312 m_etaResidual[m_binnedhits->getNLayers()]->Fill(bindesc->etaResidual(m_truthparset, hit));
313 m_etaResidual[hit->getLayer()]->Fill(bindesc->etaResidual(m_truthparset, hit));
314 m_phiResidual[m_binnedhits->getNLayers()]->Fill(bindesc->phiResidual(m_truthparset, hit));
315 m_phiResidual[hit->getLayer()]->Fill(bindesc->phiResidual(m_truthparset, hit));
316
318 FPGATrackSimBinUtil::ParSet binCenter = m_binnedhits->getBinTool().lastStep()->binCenter(m_truthbin.back());
319 m_etaTrueBinShift[m_binnedhits->getNLayers()]->Fill(bindesc->etaResidual(binCenter, hit));
320 m_etaTrueBinShift[hit->getLayer()]->Fill(bindesc->etaResidual(binCenter, hit));
321 m_phiTrueBinShift[m_binnedhits->getNLayers()]->Fill(bindesc->phiResidual(binCenter, hit));
322 m_phiTrueBinShift[hit->getLayer()]->Fill(bindesc->phiResidual(binCenter, hit));
323 }
324 }
325}
std::vector< FPGATrackSimBinUtil::IdxSet > m_truthbin
float getZ() const
float getR() const
virtual double phiResidual(const FPGATrackSimBinUtil::ParSet &parset, FPGATrackSimHit const *hit) const =0
virtual double etaResidual(const FPGATrackSimBinUtil::ParSet &parset, FPGATrackSimHit const *hit) const =0

◆ fillHitsByLayer()

void FPGATrackSimGenScanMonitoring::fillHitsByLayer ( const std::vector< std::vector< const FPGATrackSimBinUtil::StoredHit * > > & hitsByLayer)

Definition at line 296 of file FPGATrackSimGenScanMonitoring.cxx.

298{
299 for (unsigned lyr = 0; lyr < m_binnedhits->getNLayers(); lyr++)
300 {
301 m_hitsPerLayer_bin->Fill(lyr, hitsByLayer[lyr].size());
302 }
303}

◆ fillPairFilterCuts()

void FPGATrackSimGenScanMonitoring::fillPairFilterCuts ( const FPGATrackSimGenScanTool::HitPair & pair,
double r_in,
double r_out )

Definition at line 469 of file FPGATrackSimGenScanMonitoring.cxx.

470 {
471 // m_pairs->Fill(pairs.pairList.size());
472 if (m_binPlotsActive) {
473 int lyr = pair.first->hitptr->getLayer();
474 m_deltaPhi->Fill(pair.dPhi());
475 m_deltaEta->Fill(pair.dEta());
476 m_deltaPhiDR->Fill(pair.dPhi() / pair.dR());
477 m_deltaEtaDR->Fill(pair.dEta() / pair.dR());
478 m_deltaPhiByLyr[lyr]->Fill(pair.dPhi());
479 m_deltaEtaByLyr[lyr]->Fill(pair.dEta());
480 m_phiInExtrap->Fill(pair.PhiInExtrap(r_in));
481 m_phiOutExtrap->Fill(pair.PhiOutExtrap(r_out));
482 m_etaInExtrap->Fill(pair.EtaInExtrap(r_in));
483 m_etaOutExtrap->Fill(pair.EtaOutExtrap(r_out));
484 }
485}
double PhiOutExtrap(double r_out) const
double EtaOutExtrap(double r_out) const

◆ fillPairingHits()

void FPGATrackSimGenScanMonitoring::fillPairingHits ( std::vector< const FPGATrackSimBinUtil::StoredHit * > const * lastlyr,
std::vector< const FPGATrackSimBinUtil::StoredHit * > const * lastlastlyr )

Definition at line 452 of file FPGATrackSimGenScanMonitoring.cxx.

454 {
455
456 auto size_if_nonzero_ptr =
457 [](std::vector<const FPGATrackSimBinUtil::StoredHit *> const *ptr) {
458 if (ptr) {
459 return int(ptr->size());
460 } else {
461 return 0;
462 }
463 };
464
465 m_pairinghits->Fill(size_if_nonzero_ptr(lastlyr) +
466 size_if_nonzero_ptr(lastlastlyr));
467}
void * ptr(T *p)
Definition SGImplSvc.cxx:74

◆ fillPairSetFilterCut()

void FPGATrackSimGenScanMonitoring::fillPairSetFilterCut ( std::vector< TH1D * > & histset,
double val,
const FPGATrackSimGenScanTool::HitPair & pair,
const FPGATrackSimGenScanTool::HitPair & lastpair,
bool nminus1 )

Definition at line 538 of file FPGATrackSimGenScanMonitoring.cxx.

541 {
542
543 if (m_binPlotsActive) {
544 unsigned ppcat = pairpairCategory(pair, lastpair);
545 histset[0]->Fill(val); // 0 is "all"
546 histset[ppcat]->Fill(val); // 0 is "all"
547 if (nminus1)
548 histset[m_nminus1_idx]->Fill(val);
549 }
550}
unsigned pairpairCategory(const FPGATrackSimGenScanTool::HitPair &pair, const FPGATrackSimGenScanTool::HitPair &lastpair) const

◆ initialize()

StatusCode FPGATrackSimGenScanMonitoring::initialize ( )
overridevirtual

Definition at line 26 of file FPGATrackSimGenScanMonitoring.cxx.

27{
28 // Dump the configuration to make sure it propagated through right
29 auto props = this->getProperties();
30 for( Gaudi::Details::PropertyBase* prop : props ) {
31 if (prop->ownerTypeName()==this->type()) {
32 ATH_MSG_DEBUG("Property:\t" << prop->name() << "\t : \t" << prop->toString());
33 }
34 }
35
36 ATH_CHECK(m_tHistSvc.retrieve());
37
39
40 return StatusCode::SUCCESS;
41
42}

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< AlgTool > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ makeAndRegHist()

template<typename HistType, typename... HistDef>
StatusCode FPGATrackSimGenScanMonitoring::makeAndRegHist ( HistType *& ptr,
const HistDef &... histargs )
inlineprivate

Definition at line 276 of file FPGATrackSimGenScanMonitoring.h.

277 {
278 ptr = new HistType(histargs...);
279 ATH_MSG_DEBUG("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 }

◆ makeAndRegHistVector()

template<typename HistType, typename... HistDef>
StatusCode FPGATrackSimGenScanMonitoring::makeAndRegHistVector ( std::vector< HistType * > & vec,
unsigned len,
const std::vector< std::string > * namevec,
const char * namebase,
const HistDef &... histargs )
inlineprivate

Definition at line 286 of file FPGATrackSimGenScanMonitoring.h.

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 }
std::vector< size_t > vec
StatusCode makeAndRegHist(HistType *&ptr, const HistDef &... histargs)

◆ msg()

MsgStream & AthCommonMsg< AlgTool >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24 {
25 return this->msgStream();
26 }

◆ msgLvl()

bool AthCommonMsg< AlgTool >::msgLvl ( const MSG::Level lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30 {
31 return this->msgLevel(lvl);
32 }

◆ outputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< AlgTool > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ pairFilterCheck()

void FPGATrackSimGenScanMonitoring::pairFilterCheck ( const FPGATrackSimGenScanTool::HitPairSet & pairs,
const FPGATrackSimGenScanTool::HitPairSet & filteredpairs,
bool passedPairFilter )

Definition at line 328 of file FPGATrackSimGenScanMonitoring.cxx.

331 {
332
333 m_roadFilterFlow->Fill(0);
334 m_pairs->Fill(pairs.pairList.size());
335 m_filteredpairs->Fill(filteredpairs.pairList.size());
336
337 if (passedPairFilter) {
338 // if passed mark progress in flow histogram and make passed Histogram
339 m_roadFilterFlow->Fill(1);
340 m_passPairFilterGraph.addEvent(filteredpairs.hitlist);
341 } else {
342 // If the true bin didn't pass print some debug and make a lost event
343 // display
344 if (m_binPlotsActive) {
345 ATH_MSG_INFO("lost at pair filter : hit layers = "
346 << filteredpairs.lyrCnt() << " "
347 << std::bitset<16>(filteredpairs.hitLayers));
348 m_lostPairFilterGraph.addEvent(pairs.hitlist);
349 }
350 }
351}
#define ATH_MSG_INFO(x)
std::vector< const StoredHit * > hitlist

◆ pairpairCategory()

unsigned FPGATrackSimGenScanMonitoring::pairpairCategory ( const FPGATrackSimGenScanTool::HitPair & pair,
const FPGATrackSimGenScanTool::HitPair & lastpair ) const
private

Definition at line 492 of file FPGATrackSimGenScanMonitoring.cxx.

494 {
495 unsigned minlyr = std::min(lastpair.first->layer, lastpair.second->layer);
496 minlyr = std::min(minlyr, pair.first->layer);
497 minlyr = std::min(minlyr, pair.second->layer);
498
499 unsigned hitbits =
500 ((1 << lastpair.first->layer) | (1 << lastpair.second->layer) |
501 (1 << pair.first->layer) | (1 << pair.second->layer));
502 hitbits = hitbits >> minlyr; // now bit list starts with lowest hit layer
503
504 int hitlyrs = std::popcount(hitbits);
505
506 assert(hitbits & 0x1);
507
508 unsigned retv = 0;
509 if (hitlyrs == 2) // must be same layers
510 {
511 retv = 1;
512 } else if (hitlyrs == 3) {
513 if (hitbits == 0b111) // 3 bits in a row -> adjacent layers
514 {
515 if ((lastpair.first->layer == pair.second->layer) ||
516 (pair.first->layer == lastpair.second->layer)) {
517 retv = 2; // sequential
518 } else {
519 retv = 3; // one is a skip and the other isn't
520 }
521 } else if ((hitbits == 0b1101) || (hitbits == 0b1011)) // skips 1 layer
522 {
523 retv = 4;
524 }
525 } else {
526 retv = 5;
527 }
528
529 ATH_MSG_VERBOSE("pairpairCat "
530 << m_twoPairClasses[retv] << " " << lastpair.first->layer
531 << " " << lastpair.second->layer << " "
532 << pair.first->layer << " " << pair.second->layer << " : "
533 << minlyr << " " << std::bitset<16>(hitbits));
534
535 return retv;
536}
#define ATH_MSG_VERBOSE(x)
static const std::vector< std::string > m_twoPairClasses

◆ pairSetFilterCheck()

void FPGATrackSimGenScanMonitoring::pairSetFilterCheck ( const FPGATrackSimGenScanTool::HitPairSet & filteredpairs,
const std::vector< FPGATrackSimGenScanTool::HitPairSet > & pairsets,
unsigned threshold )

Definition at line 552 of file FPGATrackSimGenScanMonitoring.cxx.

555 {
556 m_pairsets->Fill(pairsets.size());
557
558 for (const auto &pairset : pairsets) {
559 // if over threshold add it to the output
560 if (pairset.lyrCnt() >= threshold) {
561 m_roadFilterFlow->Fill(3);
562 m_passPairSetFilterGraph.addEvent(pairset.hitlist);
563 } else {
564 m_lostPairSetFilterGraph.addEvent(filteredpairs.hitlist);
565 }
566 }
567}

◆ parseTruthInfo()

void FPGATrackSimGenScanMonitoring::parseTruthInfo ( std::vector< FPGATrackSimTruthTrack > const * truthtracks,
bool isSingleParticle )

Definition at line 374 of file FPGATrackSimGenScanMonitoring.cxx.

376{
377 ATH_MSG_DEBUG("In parseTruthInfo ptr = " << truthtracks
378 << " size = " << (truthtracks ? truthtracks->size() : 0));
379 m_isSingleParticle = isSingleParticle;
380 m_truthtracks = truthtracks;
381 m_truthIsValid = false;
382
383 const IFPGATrackSimBinDesc* bindesc = m_binnedhits->getBinTool().binDesc();
384
385 if (!m_truthtracks) return;
386 if (m_truthtracks->size() == 0) return;
387
388 // Convert to binning parameters and find truth bin for each step
389 m_truthpars = (*m_truthtracks)[0].getPars();
393 m_truthbin.clear();
394 for (auto &step : m_binnedhits->getBinTool().steps()) {
395 m_truthbin.push_back(step->binIdx(m_truthparset));
396 }
397
398 // histogram parameters
399 for (unsigned i = 0; i < FPGATrackSimTrackPars::NPARS; i++) {
401 }
402
403 // a closure test
404 FPGATrackSimTrackPars recovered = bindesc->parSetToTrackPars(m_truthparset);
405 ATH_MSG_DEBUG("truth parset:" << m_truthparset << " " << m_truthpars
406 << " ?= " << recovered << " closure:"
412
413 // print if there are multiple tracks for debugging single track MC
414 if (m_truthtracks->size() > 1) {
415 for (unsigned i = 0; i < m_truthtracks->size(); i++) {
416 ATH_MSG_DEBUG("Multiple truth" << i << " of " << m_truthtracks->size()
417 << " " << (*m_truthtracks)[i].getPars());
418 }
419 }
420
421 // find truth bin for later plotting selections
422 ATH_MSG_DEBUG("truthbin " << m_truthtracks << " " << m_truthtracks->size()
423 << " " << m_truthpars << " " << m_truthbin);
424
425 // Check if the truth track falls in the binning range
426 if (!m_binnedhits->getBinTool().inRange(m_truthparset)) {
427 ATH_MSG_INFO("Truth out of range");
428 return;
429 }
430
431 // Check that truth track falls in an actual bin
432 // this should alway pass, except for weird events
433 m_truthIsValid = true;
434 for (auto &step : m_binnedhits->getBinTool().steps()) {
435 if (!step->validBinsFull()[m_truthbin[step->stepNum()]]) {
436 ATH_MSG_INFO("Truth Bin not valid! Step " << step->stepName() << " "
437 << m_truthbin[step->stepNum()]
438 << " : " << m_truthpars);
439 std::vector<FPGATrackSimBinUtil::IdxSet> idxsets =
441 std::vector<unsigned>({0, 1, 2, 3, 4}),
442 m_truthbin[step->stepNum()]);
443 for (FPGATrackSimBinUtil::IdxSet &idxset : idxsets) {
444 ATH_MSG_INFO("Truth Box "
445 << bindesc->parSetToTrackPars(step->binLowEdge(idxset)));
446 }
447 m_truthIsValid = false;
448 }
449 }
450}
std::vector< FPGATrackSimTruthTrack > const * m_truthtracks
virtual const FPGATrackSimTrackPars parSetToTrackPars(const FPGATrackSimBinUtil::ParSet &parset) const =0
virtual const FPGATrackSimBinUtil::ParSet trackParsToParSet(const FPGATrackSimTrackPars &pars) const =0
std::vector< IdxSet > makeVariationSet(const std::vector< unsigned > &scanpars, const IdxSet &idx)

◆ regGraph()

StatusCode FPGATrackSimGenScanMonitoring::regGraph ( TGraph * g) const
inlineprivate

Definition at line 309 of file FPGATrackSimGenScanMonitoring.h.

309{ return m_tHistSvc->regGraph(m_dir + g->GetName(), g);}

◆ registerGraphs()

StatusCode FPGATrackSimGenScanMonitoring::registerGraphs ( )

Definition at line 236 of file FPGATrackSimGenScanMonitoring.cxx.

237{
238 // Make a vector of pointers to all the eventDispSet instances...
239 std::vector<FPGATrackSimGenScanMonitoring::eventDispSet *> allsets(
243
244 // Then loop to register them all
245 for (auto& set : allsets) {
246 ATH_CHECK(set->registerGraphs(this));
247 }
248
249 return StatusCode::SUCCESS;
250}
constexpr std::enable_if_t< is_bitmask_v< E >, E & > set(E &lhs, E rhs)
Convenience function to set bits in a class enum bitmask.
Definition bitmask.h:232

◆ registerHistograms()

StatusCode FPGATrackSimGenScanMonitoring::registerHistograms ( const FPGATrackSimBinnedHits * binnedhits)

Definition at line 44 of file FPGATrackSimGenScanMonitoring.cxx.

45{
46 m_binnedhits = binnedhits;
47 const FPGATrackSimBinTool &bintool = m_binnedhits->getBinTool();
48 const IFPGATrackSimBinDesc* bindesc = bintool.binDesc();
49 int nLyrs = m_binnedhits->getNLayers();
50
51 // This is because if you change the binning class you can change what axis
52 // ranges you need for the plotting
53 ATH_MSG_INFO("Hist scales phi: " << m_phiScale << " eta: " << m_etaScale << " dr:" << m_drScale);
54
56
57 // Truth Parameter distributions, bounds should cover 3x nominal range
58 for (unsigned i = 0; i < FPGATrackSimTrackPars::NPARS; i++) {
60 m_truthpars_hists[i], ("truth" + bindesc->parNames(i)).c_str(),
61 (";" + m_binnedhits->getBinTool().binDesc()->parNames(i) + ";").c_str(), 200,
62 -2 * m_binnedhits->getBinTool().parRange(i),
63 2 * m_binnedhits->getBinTool().parRange(i)));
64 }
65
66 // All Hit level histograms
68 "RZ_allhits", "; Z [mm] ; R [mm] ", 500, -2000, 2000, 500, 0, 500));
69
71 "phiResidual", "phi residual [mm]", 1000, -10, 10));
73 "etaResidual", "eta residual [mm]", 1000, -10, 10));
74
76 "phiTrueBinShift", "phi TrueBinShift [mm]", 1000, -10, 10));
78 "etaTrueBinShift", "eta TrueBinShift [mm]", 1000, -10, 10));
79
80 // Data flow hists
82 makeAndRegHist(m_inputHits, "InputHits", ";Input Hits", 200, 0, 100000));
84 &bintool.stepNames(), "hitsPerStepBin_",
85 "; Hits per bin in step", 1000, 0, 1000));
86 ATH_CHECK(makeAndRegHist(m_pairs, "pairs", ";pairs;", 100, 0, 500));
87 ATH_CHECK(makeAndRegHist(m_pairinghits, "pairinghits", ";Pairing Hits;", 50,
88 0, 50));
89 ATH_CHECK(makeAndRegHist(m_filteredpairs, "filteredpairs", "filteredpairs",
90 100, 0, 500));
91 ATH_CHECK(makeAndRegHist(m_pairsets, "pairsets", ";pairsets;", 100, 0, 100));
93 ";#Hit Layers per Bin", nLyrs + 1, 0, nLyrs + 1));
94 ATH_CHECK(makeAndRegHist(m_hitsPerLayer, "hitsPerLayer", "; Layer ; Hits ",
95 nLyrs, 0, nLyrs));
97 "; Layer ; Hits ", nLyrs, 0, nLyrs, 20, 0,
98 m_isSingleParticle ? 20 : 10000));
99
100
101 // Road statistics
102 ATH_CHECK(makeAndRegHist(m_roadFilterFlow , "roadFilterFlow" , "road filter flow", 10, 0, 10));
103 ATH_CHECK(makeAndRegHist(m_phiShift_road, "phiShift_road", ";Phi Shift", 2000, -1.0*m_phiScale, m_phiScale));
104 ATH_CHECK(makeAndRegHist(m_etaShift_road, "etaShift_road", ";Eta Shift", 2000, -1.0*m_etaScale, m_etaScale));
105 ATH_CHECK(makeAndRegHist(m_phiShift2D_road, "phiShift2D_road", ";Phi Shift; R",
106 400, -1.0*m_phiScale, m_phiScale, 100, 0, 400));
107 ATH_CHECK(makeAndRegHist(m_etaShift2D_road, "etaShift2D_road", ";Phi Shift; R",
108 400, -1.0*m_etaScale, m_etaScale, 100, 0, 400));
109
110 ATH_CHECK(makeAndRegHist(m_hitsPerLayer_bin, "HitsPerLayer_bin",
111 "; Layer; Hits in Bin Passing Threshold",
112 nLyrs, 0, nLyrs, 20, 0, 20));
113
114
115 // Pair Filter Cuts
116 ATH_CHECK(makeAndRegHist(m_phiOutExtrap, "PhiOutExtrap", ";Phi Out Extrap", 2000, -1.0*m_phiScale, m_phiScale));
117 ATH_CHECK(makeAndRegHist(m_phiInExtrap, "PhiInExtrap", ";Phi In Extrap", 2000, -1.0*m_phiScale, m_phiScale));
118 ATH_CHECK(makeAndRegHist(m_phiOutExtrapCurveLimit, "PhiOutExtrapCurveLimit",
119 ";Phi Out Extrap w/ Curve Limit", 2000, -1.0*m_phiScale, m_phiScale));
120 ATH_CHECK(makeAndRegHist(m_phiInExtrapCurveLimit, "PhiInExtrapCurveLimit",
121 ";Phi In Extrap w/ Curve Limit", 2000, -1.0*m_phiScale, m_phiScale));
122 ATH_CHECK(makeAndRegHist(m_etaOutExtrap, "EtaOutExtrap", ";Eta Out Extrap", 2000, -1.0*m_etaScale, m_etaScale));
123 ATH_CHECK(makeAndRegHist(m_etaInExtrap, "EtaInExtrap", ";Eta In Extrap", 2000, -1.0* m_etaScale, m_etaScale));
124 ATH_CHECK(makeAndRegHist(m_deltaPhi, "DeltaPhi", ";Delta Phi [rad]", 2000, -1.0*m_phiScale, m_phiScale));
125 ATH_CHECK(makeAndRegHist(m_deltaEta, "DeltaEta", ";Delta Eta [rad]", 2000, -1.0*m_etaScale, m_etaScale));
126 ATH_CHECK(makeAndRegHist(m_deltaPhiDR, "DeltaPhiDR", ";Delta Phi / Delta R", 2000, -0.1 * m_phiScale, 0.1 * m_phiScale));
127 ATH_CHECK(makeAndRegHist(m_deltaEtaDR, "DeltaEtaDR", ";Delta Eta / Delta R", 2000, -0.1 * m_phiScale, 0.1 * m_phiScale));
128 ATH_CHECK(makeAndRegHistVector(m_deltaPhiByLyr, nLyrs, NULL, "DeltaPhiDR", ";Delta Phi / Delta R", 2000, -0.1 * m_phiScale, 0.1 * m_phiScale));
129 ATH_CHECK(makeAndRegHistVector(m_deltaEtaByLyr, nLyrs, NULL, "DeltaEtaDR", ";Delta Eta / Delta R", 2000, -0.1 * m_phiScale, 0.1 * m_phiScale));
130
131 // Pair Match Cuts
134 "PairSetMatchPhi", ";PairSet Match Phi [mm]", 500,
138 "PairSetMatchEta", ";PairSet Match Eta [mm]", 500,
142 "DeltaDeltaPhi", ";DeltaDelta Phi [mm]", 500, -1.0*m_phiScale / m_drScale,
146 "DeltaDeltaEta", ";DeltaDelta Eta [mm]", 500, -1.0 * m_etaScale / m_drScale,
147 1.0 * m_etaScale / m_drScale));
149 &m_twoPairClasses, "PhiCurvature",
150 ";Phi Curvature ", 5000,
151 -1.0 * m_phiScale / m_drScale / m_drScale,
152 1.0 * m_phiScale / m_drScale / m_drScale));
154 &m_twoPairClasses, "EtaCurvature",
155 ";Eta Curvature ", 5000,
156 -1.0 * m_etaScale / m_drScale / m_drScale,
157 1.0 * m_etaScale / m_drScale / m_drScale));
159 &m_twoPairClasses, "DeltaPhiCurvature",
160 ";Delta Phi Curvature ", 5000,
161 -1.0 * m_phiScale / m_drScale / m_drScale,
162 1.0 * m_phiScale / m_drScale / m_drScale));
164 &m_twoPairClasses, "DeltaEtaCurvature",
165 ";Delta Eta Curvature ", 500,
166 -0.1 * m_etaScale / m_drScale / m_drScale,
167 0.1 * m_etaScale / m_drScale / m_drScale));
169 &m_twoPairClasses, "PhiOutExtrapCurved",
170 ";Phi Out Extrap Curved", 2000, -1.0*m_phiScale,
171 m_phiScale));
173 &m_twoPairClasses, "PhiInExtrapCurved",
174 ";Phi In Extrap Curved ", 2000, -1.0*m_phiScale,
175 m_phiScale));
176 ATH_CHECK(makeAndRegHist(m_pairMatchPhi2D, "PairSetMatchPhi2D",
177 ";PairSet Match Phi vs dRin [mm]", 100, 0, 100, 500,
178 -100.0 * m_phiScale, 100.0 * m_phiScale));
179 ATH_CHECK(makeAndRegHist(m_pairMatchEta2D, "PairSetMatchEta2D",
180 ";PairSet Match Eta vs dRin [mm]", 100, 0, 100, 500,
181 -100.0 * m_etaScale, 100.0 * m_etaScale));
182
183 ATH_CHECK(makeAndRegHist(m_unpairedHits, "UnpairedHits", "; Stage ; Unpaired Hits" , nLyrs+1, 0, nLyrs+1, 20, 0, 20));
184 ATH_CHECK(makeAndRegHist(m_pairsetsIncr, "PairSetsIncr", "; Stage ; Pairsets" , nLyrs+1, 0, nLyrs+1, 20, 0, 20));
185 ATH_CHECK(makeAndRegHist(m_pairsetsHits, "PairSetsHits", "; Stage ; Hits in Pairsets" , nLyrs+1, 0, nLyrs+1, 20, 0, 20));
186 ATH_CHECK(makeAndRegHist(m_totalInputIncr, "TotalInputIncr", "; Stage ; Pairsets+Unpaired" , nLyrs+1, 0, nLyrs+1, 20, 0, 20));
187 ATH_CHECK(makeAndRegHist(m_binStagesIncr, "BinStagesIncr", "; Stage ; Bins at this point" , nLyrs+1, 0, nLyrs+1, 20, 0, 20));
188
189 return StatusCode::SUCCESS;
190}
const std::vector< std::string > & stepNames() const
const IFPGATrackSimBinDesc * binDesc() const
const ToolHandleArray< FPGATrackSimBinStep > & steps() const
StatusCode makeAndRegHistVector(std::vector< HistType * > &vec, unsigned len, const std::vector< std::string > *namevec, const char *namebase, const HistDef &... histargs)
virtual const std::string & parNames(unsigned i) const =0

◆ renounce()

std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > AthCommonDataStore< AthCommonMsg< AlgTool > >::renounce ( T & h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381 {
382 h.renounce();
384 }
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce(T &h)

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::renounceArray ( SG::VarHandleKeyArray & handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ resetDataFlowCounters()

void FPGATrackSimGenScanMonitoring::resetDataFlowCounters ( )

Definition at line 230 of file FPGATrackSimGenScanMonitoring.cxx.

230 {
231 for (auto& bin: m_hitsCntByLayer) { bin =0;}
232}

◆ setBinPlotsActive()

void FPGATrackSimGenScanMonitoring::setBinPlotsActive ( const FPGATrackSimBinUtil::IdxSet & idx)
inlineprivate

Definition at line 124 of file FPGATrackSimGenScanMonitoring.h.

124 {
125 m_binPlotsActive = ((m_truthbin.back() == idx) || (!m_isSingleParticle));}

◆ sliceCheck()

void FPGATrackSimGenScanMonitoring::sliceCheck ( )

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in asg::AsgMetadataTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and DerivationFramework::CfAthAlgTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::updateVHKA ( Gaudi::Details::PropertyBase & )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308 {
309 // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310 // << " size: " << m_vhka.size() << endmsg;
311 for (auto &a : m_vhka) {
313 for (auto k : keys) {
314 k->setOwner(this);
315 }
316 }
317 }
std::vector< SG::VarHandleKeyArray * > m_vhka

Member Data Documentation

◆ m_allHitsGraph

eventDispSet FPGATrackSimGenScanMonitoring::m_allHitsGraph {std::string("allHits"), 10}
private

Definition at line 250 of file FPGATrackSimGenScanMonitoring.h.

250{std::string("allHits"), 10};

◆ m_bin_module_tree

TTree* FPGATrackSimGenScanMonitoring::m_bin_module_tree = nullptr
private

Definition at line 260 of file FPGATrackSimGenScanMonitoring.h.

◆ m_binnedhits

const FPGATrackSimBinnedHits* FPGATrackSimGenScanMonitoring::m_binnedhits {nullptr}
private

Definition at line 109 of file FPGATrackSimGenScanMonitoring.h.

109{nullptr};

◆ m_binPlotsActive

bool FPGATrackSimGenScanMonitoring::m_binPlotsActive = false
private

Definition at line 127 of file FPGATrackSimGenScanMonitoring.h.

◆ m_binStagesIncr

TH2D* FPGATrackSimGenScanMonitoring::m_binStagesIncr = 0
private

Definition at line 166 of file FPGATrackSimGenScanMonitoring.h.

◆ m_deltaDeltaEta

std::vector<TH1D *> FPGATrackSimGenScanMonitoring::m_deltaDeltaEta

Definition at line 201 of file FPGATrackSimGenScanMonitoring.h.

◆ m_deltaDeltaPhi

std::vector<TH1D *> FPGATrackSimGenScanMonitoring::m_deltaDeltaPhi

Definition at line 200 of file FPGATrackSimGenScanMonitoring.h.

◆ m_deltaEta

TH1D* FPGATrackSimGenScanMonitoring::m_deltaEta = 0
private

Definition at line 174 of file FPGATrackSimGenScanMonitoring.h.

◆ m_deltaEtaByLyr

std::vector<TH1D *> FPGATrackSimGenScanMonitoring::m_deltaEtaByLyr
private

Definition at line 184 of file FPGATrackSimGenScanMonitoring.h.

◆ m_deltaEtaCurvature

std::vector<TH1D *> FPGATrackSimGenScanMonitoring::m_deltaEtaCurvature

Definition at line 207 of file FPGATrackSimGenScanMonitoring.h.

◆ m_deltaEtaDR

TH1D* FPGATrackSimGenScanMonitoring::m_deltaEtaDR = 0
private

Definition at line 176 of file FPGATrackSimGenScanMonitoring.h.

◆ m_deltaPhi

TH1D* FPGATrackSimGenScanMonitoring::m_deltaPhi = 0
private

Definition at line 173 of file FPGATrackSimGenScanMonitoring.h.

◆ m_deltaPhiByLyr

std::vector<TH1D *> FPGATrackSimGenScanMonitoring::m_deltaPhiByLyr
private

Definition at line 183 of file FPGATrackSimGenScanMonitoring.h.

◆ m_deltaPhiCurvature

std::vector<TH1D *> FPGATrackSimGenScanMonitoring::m_deltaPhiCurvature

Definition at line 206 of file FPGATrackSimGenScanMonitoring.h.

◆ m_deltaPhiDR

TH1D* FPGATrackSimGenScanMonitoring::m_deltaPhiDR = 0
private

Definition at line 175 of file FPGATrackSimGenScanMonitoring.h.

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_dir

Gaudi::Property<std::string> FPGATrackSimGenScanMonitoring::m_dir {this, "dir", {"/GENSCAN/"}, "String name of output directory"}
private

Definition at line 102 of file FPGATrackSimGenScanMonitoring.h.

102{this, "dir", {"/GENSCAN/"}, "String name of output directory"};

◆ m_drScale

Gaudi::Property<double> FPGATrackSimGenScanMonitoring::m_drScale {this, "drScale", {}, "Scale for radius differences"}
private

Definition at line 105 of file FPGATrackSimGenScanMonitoring.h.

105{this, "drScale", {}, "Scale for radius differences"};

◆ m_etaCurvature

std::vector<TH1D *> FPGATrackSimGenScanMonitoring::m_etaCurvature

Definition at line 205 of file FPGATrackSimGenScanMonitoring.h.

◆ m_etaCurvatureMax

std::vector<TH1D *> FPGATrackSimGenScanMonitoring::m_etaCurvatureMax

Definition at line 209 of file FPGATrackSimGenScanMonitoring.h.

◆ m_etaInExtrap

TH1D* FPGATrackSimGenScanMonitoring::m_etaInExtrap = 0
private

Definition at line 182 of file FPGATrackSimGenScanMonitoring.h.

◆ m_etaOutExtrap

TH1D* FPGATrackSimGenScanMonitoring::m_etaOutExtrap = 0
private

Definition at line 181 of file FPGATrackSimGenScanMonitoring.h.

◆ m_etaResidual

std::vector<TH1D *> FPGATrackSimGenScanMonitoring::m_etaResidual
private

Definition at line 138 of file FPGATrackSimGenScanMonitoring.h.

◆ m_etaScale

Gaudi::Property<double> FPGATrackSimGenScanMonitoring::m_etaScale {this, "etaScale", {}, "Scale for Delta Eta variable"}
private

Definition at line 104 of file FPGATrackSimGenScanMonitoring.h.

104{this, "etaScale", {}, "Scale for Delta Eta variable"};

◆ m_etaShift2D_road

TH2D* FPGATrackSimGenScanMonitoring::m_etaShift2D_road = 0
private

Definition at line 155 of file FPGATrackSimGenScanMonitoring.h.

◆ m_etaShift_road

TH1D* FPGATrackSimGenScanMonitoring::m_etaShift_road = 0
private

Definition at line 153 of file FPGATrackSimGenScanMonitoring.h.

◆ m_etaTrueBinShift

std::vector<TH1D *> FPGATrackSimGenScanMonitoring::m_etaTrueBinShift
private

Definition at line 140 of file FPGATrackSimGenScanMonitoring.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_filteredpairs

TH1D* FPGATrackSimGenScanMonitoring::m_filteredpairs = 0
private

Definition at line 159 of file FPGATrackSimGenScanMonitoring.h.

◆ m_hitsCntByLayer

std::vector<unsigned> FPGATrackSimGenScanMonitoring::m_hitsCntByLayer
private

Definition at line 131 of file FPGATrackSimGenScanMonitoring.h.

◆ m_hitsPerLayer

TH1D* FPGATrackSimGenScanMonitoring::m_hitsPerLayer = 0
private

Definition at line 146 of file FPGATrackSimGenScanMonitoring.h.

◆ m_hitsPerLayer2D

TH2D* FPGATrackSimGenScanMonitoring::m_hitsPerLayer2D = 0
private

Definition at line 147 of file FPGATrackSimGenScanMonitoring.h.

◆ m_hitsPerLayer_bin

TH2D* FPGATrackSimGenScanMonitoring::m_hitsPerLayer_bin = 0
private

Definition at line 150 of file FPGATrackSimGenScanMonitoring.h.

◆ m_hitsPerStepBin

std::vector<TH1D *> FPGATrackSimGenScanMonitoring::m_hitsPerStepBin
private

Definition at line 145 of file FPGATrackSimGenScanMonitoring.h.

◆ m_inputHits

TH1D* FPGATrackSimGenScanMonitoring::m_inputHits = 0
private

Definition at line 142 of file FPGATrackSimGenScanMonitoring.h.

◆ m_isSingleParticle

bool FPGATrackSimGenScanMonitoring::m_isSingleParticle = false
private

Definition at line 115 of file FPGATrackSimGenScanMonitoring.h.

◆ m_lostPairFilterGraph

eventDispSet FPGATrackSimGenScanMonitoring::m_lostPairFilterGraph {std::string("lostpairfilter"), 10}
private

Definition at line 252 of file FPGATrackSimGenScanMonitoring.h.

252{std::string("lostpairfilter"), 10};

◆ m_lostPairSetFilterGraph

eventDispSet FPGATrackSimGenScanMonitoring::m_lostPairSetFilterGraph {std::string("lostpairsetfilter"), 10}
private

Definition at line 254 of file FPGATrackSimGenScanMonitoring.h.

254{std::string("lostpairsetfilter"), 10};

◆ m_nminus1_idx

unsigned FPGATrackSimGenScanMonitoring::m_nminus1_idx = 6
private

Definition at line 194 of file FPGATrackSimGenScanMonitoring.h.

◆ m_numLyrsPerBin

TH1D* FPGATrackSimGenScanMonitoring::m_numLyrsPerBin = 0
private

Definition at line 148 of file FPGATrackSimGenScanMonitoring.h.

◆ m_pairinghits

TH1D* FPGATrackSimGenScanMonitoring::m_pairinghits = 0
private

Definition at line 169 of file FPGATrackSimGenScanMonitoring.h.

◆ m_pairMatchEta2D

TH2D* FPGATrackSimGenScanMonitoring::m_pairMatchEta2D = 0
private

Definition at line 215 of file FPGATrackSimGenScanMonitoring.h.

◆ m_pairMatchPhi2D

TH2D* FPGATrackSimGenScanMonitoring::m_pairMatchPhi2D = 0
private

Definition at line 214 of file FPGATrackSimGenScanMonitoring.h.

◆ m_pairs

TH1D* FPGATrackSimGenScanMonitoring::m_pairs = 0
private

Definition at line 158 of file FPGATrackSimGenScanMonitoring.h.

◆ m_pairSetMatchEta

std::vector<TH1D *> FPGATrackSimGenScanMonitoring::m_pairSetMatchEta

Definition at line 203 of file FPGATrackSimGenScanMonitoring.h.

◆ m_pairSetMatchPhi

std::vector<TH1D *> FPGATrackSimGenScanMonitoring::m_pairSetMatchPhi

Definition at line 202 of file FPGATrackSimGenScanMonitoring.h.

◆ m_pairsets

TH1D* FPGATrackSimGenScanMonitoring::m_pairsets = 0
private

Definition at line 160 of file FPGATrackSimGenScanMonitoring.h.

◆ m_pairsetsHits

TH2D* FPGATrackSimGenScanMonitoring::m_pairsetsHits = 0
private

Definition at line 165 of file FPGATrackSimGenScanMonitoring.h.

◆ m_pairsetsIncr

TH2D* FPGATrackSimGenScanMonitoring::m_pairsetsIncr = 0
private

Definition at line 164 of file FPGATrackSimGenScanMonitoring.h.

◆ m_passPairFilterGraph

eventDispSet FPGATrackSimGenScanMonitoring::m_passPairFilterGraph {std::string("passpairfilter"), 10}
private

Definition at line 253 of file FPGATrackSimGenScanMonitoring.h.

253{std::string("passpairfilter"), 10};

◆ m_passPairSetFilterGraph

eventDispSet FPGATrackSimGenScanMonitoring::m_passPairSetFilterGraph {std::string("passpairsetfilter"), 10}
private

Definition at line 255 of file FPGATrackSimGenScanMonitoring.h.

255{std::string("passpairsetfilter"), 10};

◆ m_phiCurvature

std::vector<TH1D *> FPGATrackSimGenScanMonitoring::m_phiCurvature

Definition at line 204 of file FPGATrackSimGenScanMonitoring.h.

◆ m_phiCurvatureMax

std::vector<TH1D *> FPGATrackSimGenScanMonitoring::m_phiCurvatureMax

Definition at line 208 of file FPGATrackSimGenScanMonitoring.h.

◆ m_phiInExtrap

TH1D* FPGATrackSimGenScanMonitoring::m_phiInExtrap = 0
private

Definition at line 178 of file FPGATrackSimGenScanMonitoring.h.

◆ m_phiInExtrapCurved

std::vector<TH1D *> FPGATrackSimGenScanMonitoring::m_phiInExtrapCurved

Definition at line 210 of file FPGATrackSimGenScanMonitoring.h.

◆ m_phiInExtrapCurveLimit

TH1D* FPGATrackSimGenScanMonitoring::m_phiInExtrapCurveLimit =0
private

Definition at line 180 of file FPGATrackSimGenScanMonitoring.h.

◆ m_phiOutExtrap

TH1D* FPGATrackSimGenScanMonitoring::m_phiOutExtrap = 0
private

Definition at line 177 of file FPGATrackSimGenScanMonitoring.h.

◆ m_phiOutExtrapCurved

std::vector<TH1D *> FPGATrackSimGenScanMonitoring::m_phiOutExtrapCurved

Definition at line 211 of file FPGATrackSimGenScanMonitoring.h.

◆ m_phiOutExtrapCurveLimit

TH1D* FPGATrackSimGenScanMonitoring::m_phiOutExtrapCurveLimit =0
private

Definition at line 179 of file FPGATrackSimGenScanMonitoring.h.

◆ m_phiResidual

std::vector<TH1D *> FPGATrackSimGenScanMonitoring::m_phiResidual
private

Definition at line 137 of file FPGATrackSimGenScanMonitoring.h.

◆ m_phiScale

Gaudi::Property<double> FPGATrackSimGenScanMonitoring::m_phiScale {this, "phiScale", {}, "Scale for Delta Phi variable"}
private

Definition at line 103 of file FPGATrackSimGenScanMonitoring.h.

103{this, "phiScale", {}, "Scale for Delta Phi variable"};

◆ m_phiShift2D_road

TH2D* FPGATrackSimGenScanMonitoring::m_phiShift2D_road = 0
private

Definition at line 154 of file FPGATrackSimGenScanMonitoring.h.

◆ m_phiShift_road

TH1D* FPGATrackSimGenScanMonitoring::m_phiShift_road = 0
private

Definition at line 152 of file FPGATrackSimGenScanMonitoring.h.

◆ m_phiTrueBinShift

std::vector<TH1D *> FPGATrackSimGenScanMonitoring::m_phiTrueBinShift
private

Definition at line 139 of file FPGATrackSimGenScanMonitoring.h.

◆ m_roadFilterFlow

TH1D* FPGATrackSimGenScanMonitoring::m_roadFilterFlow = 0
private

Definition at line 171 of file FPGATrackSimGenScanMonitoring.h.

◆ m_roadGraph

eventDispSet FPGATrackSimGenScanMonitoring::m_roadGraph {std::string("road"), 10}
private

Definition at line 251 of file FPGATrackSimGenScanMonitoring.h.

251{std::string("road"), 10};

◆ m_rZ_allhits

std::vector<TH2D *> FPGATrackSimGenScanMonitoring::m_rZ_allhits
private

Definition at line 135 of file FPGATrackSimGenScanMonitoring.h.

◆ m_tHistSvc

ServiceHandle<ITHistSvc> FPGATrackSimGenScanMonitoring::m_tHistSvc {this, "THistSvc", "THistSvc"}
private

Definition at line 98 of file FPGATrackSimGenScanMonitoring.h.

98{this, "THistSvc", "THistSvc"};

◆ m_totalInputIncr

TH2D* FPGATrackSimGenScanMonitoring::m_totalInputIncr = 0
private

Definition at line 167 of file FPGATrackSimGenScanMonitoring.h.

◆ m_tree_bin

std::vector<unsigned> FPGATrackSimGenScanMonitoring::m_tree_bin
private

Definition at line 261 of file FPGATrackSimGenScanMonitoring.h.

◆ m_tree_dettype

std::vector<int> FPGATrackSimGenScanMonitoring::m_tree_dettype
private

Definition at line 270 of file FPGATrackSimGenScanMonitoring.h.

◆ m_tree_detzone

std::vector<int> FPGATrackSimGenScanMonitoring::m_tree_detzone
private

Definition at line 271 of file FPGATrackSimGenScanMonitoring.h.

◆ m_tree_etamod

std::vector<int> FPGATrackSimGenScanMonitoring::m_tree_etamod
private

Definition at line 268 of file FPGATrackSimGenScanMonitoring.h.

◆ m_tree_hash

std::vector<int> FPGATrackSimGenScanMonitoring::m_tree_hash
private

Definition at line 265 of file FPGATrackSimGenScanMonitoring.h.

◆ m_tree_id

std::vector<int> FPGATrackSimGenScanMonitoring::m_tree_id
private

Definition at line 264 of file FPGATrackSimGenScanMonitoring.h.

◆ m_tree_layer

std::vector<int> FPGATrackSimGenScanMonitoring::m_tree_layer
private

Definition at line 266 of file FPGATrackSimGenScanMonitoring.h.

◆ m_tree_phimod

std::vector<int> FPGATrackSimGenScanMonitoring::m_tree_phimod
private

Definition at line 269 of file FPGATrackSimGenScanMonitoring.h.

◆ m_tree_r

std::vector<float> FPGATrackSimGenScanMonitoring::m_tree_r
private

Definition at line 262 of file FPGATrackSimGenScanMonitoring.h.

◆ m_tree_side

std::vector<int> FPGATrackSimGenScanMonitoring::m_tree_side
private

Definition at line 267 of file FPGATrackSimGenScanMonitoring.h.

◆ m_tree_z

std::vector<float> FPGATrackSimGenScanMonitoring::m_tree_z
private

Definition at line 263 of file FPGATrackSimGenScanMonitoring.h.

◆ m_truthbin

std::vector<FPGATrackSimBinUtil::IdxSet> FPGATrackSimGenScanMonitoring::m_truthbin
private

Definition at line 118 of file FPGATrackSimGenScanMonitoring.h.

◆ m_truthIsValid

bool FPGATrackSimGenScanMonitoring::m_truthIsValid = false
private

Definition at line 116 of file FPGATrackSimGenScanMonitoring.h.

◆ m_truthpars

FPGATrackSimTrackPars FPGATrackSimGenScanMonitoring::m_truthpars
private

Definition at line 117 of file FPGATrackSimGenScanMonitoring.h.

◆ m_truthpars_hists

TH1D* FPGATrackSimGenScanMonitoring::m_truthpars_hists[5] = {0, 0, 0, 0, 0}
private

Definition at line 136 of file FPGATrackSimGenScanMonitoring.h.

136{0, 0, 0, 0, 0};

◆ m_truthparset

FPGATrackSimBinUtil::ParSet FPGATrackSimGenScanMonitoring::m_truthparset
private

Definition at line 119 of file FPGATrackSimGenScanMonitoring.h.

◆ m_truthtracks

std::vector<FPGATrackSimTruthTrack> const* FPGATrackSimGenScanMonitoring::m_truthtracks {nullptr}
private

Definition at line 114 of file FPGATrackSimGenScanMonitoring.h.

114{nullptr};

◆ m_twoPairClasses

const std::vector<std::string> FPGATrackSimGenScanMonitoring::m_twoPairClasses
inlinestaticprivate
Initial value:
= {
"", "_same", "_sequential", "_sameend", "_skip1", "_skip2", "_nm1"}

Definition at line 192 of file FPGATrackSimGenScanMonitoring.h.

192 {
193 "", "_same", "_sequential", "_sameend", "_skip1", "_skip2", "_nm1"};

◆ m_unpairedHits

TH2D* FPGATrackSimGenScanMonitoring::m_unpairedHits = 0
private

Definition at line 163 of file FPGATrackSimGenScanMonitoring.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< AlgTool > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.


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