31 auto props = this->getProperties();
32 for( Gaudi::Details::PropertyBase* prop : props ) {
33 if (prop->ownerTypeName()==this->type()) {
34 ATH_MSG_DEBUG(
"Property:\t" << prop->name() <<
"\t : \t" << prop->toString());
42 return StatusCode::SUCCESS;
66 (
";" +
m_binnedhits->getBinTool().binDesc()->parNames(i) +
";").c_str(), 2000,
83 "; Z [mm] ; R [mm] ", 500, -2000, 2000, 500, 0, 500));
86 "phi residual [mm]", 1000, -10, 10));
88 "eta residual [mm]", 1000, -10, 10));
91 "; R[mm]; phi residual [mm]", 1200, 0, 1200, 1000, -100, 100));
93 "; R[mm]; eta residual [mm]", 1200, 0, 1200, 1000, -100, 100));
96 "; R[mm]; phi scale", 1200, 0, 1200, 1000, -2, 2.0));
98 "; R[mm]; eta scale", 1200, 0, 1200, 1000, -2.0, 2.0));
101 "phiTrueBinShift",
"phi TrueBinShift [mm]", 1000, -10, 10));
103 "etaTrueBinShift",
"eta TrueBinShift [mm]",1000, -10, 10));
113 "ptDist",
"pT [GeV]",400, 0, 100));
115 "etaDist",
"#eta",1000, -5, 5));
117 "phiDist",
"#phi",640, 0, 2*std::numbers::pi));
119 "d0Dist",
"d_{0} [mm]",120, -3.0, 3.0));
121 "z0Dist",
"z_{0} [mm]",400, -200.0, 200.0));
123 return StatusCode::SUCCESS;
161 return StatusCode::SUCCESS;
194 for (
auto& hit :
data.hits) {
202 for (
int i = 0; i < 2; i++) {
216 std::vector<FPGATrackSimBinUtil::StoredHit> sorted_hits =
data.hits;
217 std::sort(sorted_hits.begin(), sorted_hits.end(),
218 [](
const auto &hit1,
const auto &hit2) {
219 return hit1.rzrad() < hit2.rzrad();
226 for (
auto &hit : sorted_hits) {
244 const std::vector<std::shared_ptr<const FPGATrackSimHit>> &hits)
254 for (
unsigned lyr = 0; lyr <
m_binnedhits->getNLayers(); lyr++) {
255 unsigned cnt =
bin.data().hitsInLyr(lyr);
275 ptbin = std::min(std::max(ptbin,0),4);
295 ATH_MSG_DEBUG(
"In parseTruthInfo, truthtracks size = " << truthtracks.size());
301 if (truthtracks.size() == 0)
return;
321 <<
" ?= " << recovered <<
" closure:"
337 if (truthtracks.size() > 1) {
338 for (
unsigned i = 0; i < truthtracks.size(); i++) {
339 ATH_MSG_INFO(
"Multiple truth" << i <<
" of " << truthtracks.size()
340 <<
" " << (truthtracks)[i].getPars());
358 if (!step->validBinsFull()[
m_truthbin[step->stepNum()]]) {
359 ATH_MSG_INFO(
"Truth Bin not valid! Step " << step->stepName() <<
" "
362 std::vector<FPGATrackSimBinUtil::IdxSet> idxsets =
364 std::vector<unsigned>({0, 1, 2, 3, 4}),
391 minpars[par] = std::min(minpars[par],trackpars[par]);
392 maxpars[par] = std::max(maxpars[par],trackpars[par]);
#define ATH_CHECK
Evaluate an expression and check for errors.
Binning Utilities for GenScanTool.
Binning Classes for GenScanTool.
Structs that store the 5 track parameters.
char data[hepevt_bytes_allocation_ATLAS]
Defines Parameters used for binning.
bool inRange(const double *boundaries, const double value, const double tolerance=0.02)
static double dPhiHitTrkFromPars(double r, const FPGATrackSimTrackPars &pars)
virtual double phiResidual(const FPGATrackSimBinUtil::ParSet &parset, FPGATrackSimHit const *hit) const =0
virtual double etaResidual(const FPGATrackSimBinUtil::ParSet &parset, FPGATrackSimHit const *hit) const =0
virtual const std::string & parNames(unsigned i) const =0
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)
void sort(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end)
Specialization of sort for DataVector/List.