Loading [MathJax]/extensions/tex2jax.js
 |
ATLAS Offline Software
|
Tool to calculate track truth.
More...
#include <MuonTrackTruthTool.h>
|
| ~MuonTrackTruthTool ()=default |
| destructor More...
|
|
StatusCode | initialize () |
| AlgTool initilize. More...
|
|
ResultVec | match (const TruthTree &truth_tree, const TrackCollection &tracks) const |
| perform truth matching for a given set of tracks More...
|
|
SegmentResultVec | match (const TruthTree &truth_tree, const std::vector< const MuonSegment * > &segments) const |
| perform truth matching for a given set of segments More...
|
|
MuonTrackTruth | getTruth (const TruthTree &truth_tree, const Trk::Track &track, bool restrictedTruth=false) const |
| get track truth More...
|
|
MuonTrackTruth | getTruth (const TruthTree &truth_tree, const std::vector< const MuonSegment * > &segments, bool restrictedTruth=false) const |
| get segment truth for a list of segments, the segments will be considered to belong to the same muon More...
|
|
MuonTrackTruth | getTruth (const TruthTree &truth_tree, const Muon::MuonSegment &segment) const |
| get segment truth More...
|
|
MuonTrackTruth | getTruth (const TruthTree &truth_tree, const std::vector< const Trk::MeasurementBase * > &measurements, bool restrictedTruth=false) const |
| get truth for a give set of hits. More...
|
|
const TruthTree | createTruthTree (const TrackRecordCollection *truthTrackCol, const McEventCollection *mcEventCollection, const std::vector< const MuonSimDataCollection * > &muonSimData, const CscSimDataCollection *cscSimDataMap) const |
| create truth tree from sim data More...
|
|
HepMC::ConstGenParticlePtr | getMother (const TruthTrajectory &traj, const int barcodeIn) const |
| Returns the mother particle of the particle with barcodeIn if it is found in the truth trajectory. More...
|
|
HepMC::ConstGenParticlePtr | getAncestor (const TruthTrajectory &traj, const int barcodeIn) const |
| Returns the ancestor particle of the particle with barcodeIn if it is found in the truth trajectory. More...
|
|
HepMC::ConstGenParticlePtr | getInitial (const TruthTrajectory &traj, const int barcodeIn) const |
| Returns the initial particle of the particle with barcodeIn if it is found in the truth trajectory. More...
|
|
unsigned int | getNumberOfScatters (const TruthTrajectory &traj, const int barcodeIn) const |
| Returns the number of steps a particle took while maintaining its PDG ID. More...
|
|
|
MuonTrackTruth | getTruth (const std::vector< const Trk::MeasurementBase * > &measurements, const TruthTreeEntry &truthEntry, bool restrictedTruth) const |
|
void | addSimDataToTree (TruthTree &truth_tree, std::map< int, int > &barcode_map, const MuonSimDataCollection *simDataCol) const |
|
void | addCscSimDataToTree (TruthTree &truth_tree, std::map< int, int > &barcode_map, const CscSimDataCollection *simDataCol) const |
|
void | addMdtTruth (MuonTechnologyTruth &trackTruth, const Identifier &id, const Trk::MeasurementBase &meas, const MuonSimDataCollection &simCol) const |
|
void | addClusterTruth (MuonTechnologyTruth &trackTruth, const Identifier &id, const Trk::MeasurementBase &meas, const MuonSimDataCollection &simCol) const |
|
void | addClusterTruth (MuonTechnologyTruth &trackTruth, const Identifier &id, const Trk::MeasurementBase &meas, const CscSimDataCollection &simCol) const |
|
void | addMissedHits (MuonTechnologyTruth &truth, const std::set< Identifier > &ids, const std::set< Identifier > &chids, const MuonSimDataCollection &simCol, bool restrictedTruth) const |
|
void | addMissedHits (MuonTechnologyTruth &truth, const std::set< Identifier > &ids, const std::set< Identifier > &chids, const CscSimDataCollection &simCol, bool restrictedTruth) const |
|
int | manipulateBarCode (int barcode) const |
|
bool | selectPdg (int pdg) const |
|
const std::pair< HepMC::ConstGenParticlePtr, unsigned int > | getInitialPair (const TruthTrajectory &traj, const int barcodeIn) const |
| Returns the initial particle of the particle with barcodeIn if it is found in the truth trajectory. More...
|
|
|
ServiceHandle< Muon::IMuonIdHelperSvc > | m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"} |
|
PublicToolHandle< Muon::MuonEDMPrinterTool > | m_printer {this, "Printer", "Muon::MuonEDMPrinterTool/MuonEDMPrinterTool"} |
|
ToolHandle< Trk::ITruthTrajectoryBuilder > | m_truthTrajectoryBuilder |
|
Gaudi::Property< bool > | m_manipulateBarCode {this, "ManipulateBarCode", false} |
|
Gaudi::Property< bool > | m_doSummary {this, "DoSummary", false} |
|
Gaudi::Property< bool > | m_matchAllParticles {this, "MatchAllParticles", true} |
|
Gaudi::Property< unsigned int > | m_minHits {this, "MinHits", 4} |
|
Gaudi::Property< std::vector< int > > | m_pdgsToBeConsidered {this, "ConsideredPDGs", {}} |
|
std::set< int > | m_selectedPdgs |
|
Tool to calculate track truth.
Definition at line 43 of file MuonTrackTruthTool.h.
◆ ~MuonTrackTruthTool()
Muon::MuonTrackTruthTool::~MuonTrackTruthTool |
( |
| ) |
|
|
default |
◆ addClusterTruth() [1/2]
Definition at line 616 of file MuonTrackTruthTool.cxx.
621 CscSimDataCollection::const_iterator
it = simCol.find(
id);
622 if (
it == simCol.end()) {
623 truth.wrongHits.insert(layid);
624 truth.wrongChambers.insert(chid);
628 std::vector<CscSimData::Deposit>::const_iterator dit =
it->second.getdeposits().begin();
629 std::vector<CscSimData::Deposit>::const_iterator dit_end =
it->second.getdeposits().end();
630 for (; dit != dit_end; ++dit) {
631 truth.matchedHits.insert(layid);
632 truth.matchedChambers.insert(chid);
◆ addClusterTruth() [2/2]
Definition at line 560 of file MuonTrackTruthTool.cxx.
565 MuonSimDataCollection::const_iterator
it = simCol.end();
567 bool goodCluster =
false;
568 const CompetingMuonClustersOnTrack* crot =
dynamic_cast<const CompetingMuonClustersOnTrack*
>(&meas);
570 for (
unsigned int i = 0;
i < crot->numberOfContainedROTs(); ++
i) {
571 const MuonClusterOnTrack*
cluster = &crot->rioOnTrack(
i);
572 if (!cluster)
continue;
575 if (
it != simCol.end()) {
587 const std::vector<Identifier> &rdoList = prd->
rdoList();
588 std::vector<Identifier>::const_iterator rit = rdoList.begin();
589 std::vector<Identifier>::const_iterator rit_end = rdoList.end();
590 for (; rit != rit_end; ++rit) {
591 it = simCol.find(*rit);
592 if (
it != simCol.end()) {
598 it = simCol.find(
id);
599 if (
it != simCol.end()) goodCluster =
true;
603 if (!goodCluster ||
it == simCol.end()) {
604 truth.wrongHits.insert(
id);
608 std::vector<MuonSimData::Deposit>::const_iterator dit =
it->second.getdeposits().begin();
609 std::vector<MuonSimData::Deposit>::const_iterator dit_end =
it->second.getdeposits().end();
610 for (; dit != dit_end; ++dit) {
611 truth.matchedHits.insert(layid);
612 truth.matchedChambers.insert(chid);
◆ addCscSimDataToTree()
void Muon::MuonTrackTruthTool::addCscSimDataToTree |
( |
TruthTree & |
truth_tree, |
|
|
std::map< int, int > & |
barcode_map, |
|
|
const CscSimDataCollection * |
simDataCol |
|
) |
| const |
|
private |
Definition at line 319 of file MuonTrackTruthTool.cxx.
322 CscSimDataCollection::const_iterator
it = simDataCol->begin();
323 CscSimDataCollection::const_iterator it_end = simDataCol->end();
324 for (;
it != it_end; ++
it) {
328 std::vector<CscSimData::Deposit>::const_iterator dit =
it->second.getdeposits().begin();
329 std::vector<CscSimData::Deposit>::const_iterator dit_end =
it->second.getdeposits().end();
330 for (; dit != dit_end; ++dit) {
332 std::map<int, int>::const_iterator bit = barcode_map.find(barcodeIn);
333 if (bit == barcode_map.end()) {
335 <<
" " <<
m_idHelperSvc->toString(
id) <<
" barcode " << barcodeIn);
352 eit->second.cscHits.insert(*
it);
◆ addMdtTruth()
Definition at line 525 of file MuonTrackTruthTool.cxx.
527 const MdtDriftCircleOnTrack* mdt =
dynamic_cast<const MdtDriftCircleOnTrack*
>(&meas);
536 MuonSimDataCollection::const_iterator
it = simCol.find(
id);
537 if (
it == simCol.end()) {
538 truth.wrongHits.insert(
id);
539 truth.wrongChambers.insert(chid);
543 std::vector<MuonSimData::Deposit>::const_iterator dit =
it->second.getdeposits().begin();
544 std::vector<MuonSimData::Deposit>::const_iterator dit_end =
it->second.getdeposits().end();
545 for (; dit != dit_end; ++dit) {
546 double radius = dit->second.firstEntry();
549 double checkSign = fabs(mdt->driftRadius()) > 0.3 ?
radius * mdt->driftRadius() : 1;
550 if (checkSign >= 0) {
551 truth.matchedHits.insert(
id);
552 truth.matchedChambers.insert(chid);
554 truth.wrongHits.insert(
id);
555 truth.wrongChambers.insert(chid);
◆ addMissedHits() [1/2]
Definition at line 498 of file MuonTrackTruthTool.cxx.
501 CscSimDataCollection::const_iterator
it = simCol.begin();
502 CscSimDataCollection::const_iterator it_end = simCol.end();
503 for (;
it != it_end; ++
it) {
506 int isOnTrack =
ids.count(
id);
507 if (isOnTrack)
continue;
511 bool chamberHasHits = chids.count(chid);
512 if (restrictedTruth && !chamberHasHits)
continue;
515 std::vector<CscSimData::Deposit>::const_iterator dit =
it->second.getdeposits().begin();
516 std::vector<CscSimData::Deposit>::const_iterator dit_end =
it->second.getdeposits().end();
517 for (; dit != dit_end; ++dit) {
518 truth.missedHits.insert(
id);
520 if (!chamberHasHits) truth.missedChambers.insert(chid);
◆ addMissedHits() [2/2]
Definition at line 469 of file MuonTrackTruthTool.cxx.
472 MuonSimDataCollection::const_iterator
it = simCol.begin();
473 MuonSimDataCollection::const_iterator it_end = simCol.end();
474 for (;
it != it_end; ++
it) {
479 int isOnTrack =
ids.count(
id);
480 if (isOnTrack)
continue;
484 bool chamberHasHits = chids.count(chid);
485 if (restrictedTruth && !chamberHasHits)
continue;
488 std::vector<MuonSimData::Deposit>::const_iterator dit =
it->second.getdeposits().begin();
489 std::vector<MuonSimData::Deposit>::const_iterator dit_end =
it->second.getdeposits().end();
490 for (; dit != dit_end; ++dit) {
491 truth.missedHits.insert(
id);
493 if (!chamberHasHits) truth.missedChambers.insert(chid);
◆ addSimDataToTree()
void Muon::MuonTrackTruthTool::addSimDataToTree |
( |
TruthTree & |
truth_tree, |
|
|
std::map< int, int > & |
barcode_map, |
|
|
const MuonSimDataCollection * |
simDataCol |
|
) |
| const |
|
private |
Definition at line 266 of file MuonTrackTruthTool.cxx.
269 MuonSimDataCollection::const_iterator
it = simDataCol->begin();
270 MuonSimDataCollection::const_iterator it_end = simDataCol->end();
271 for (;
it != it_end; ++
it) {
275 std::vector<MuonSimData::Deposit>::const_iterator dit =
it->second.getdeposits().begin();
276 std::vector<MuonSimData::Deposit>::const_iterator dit_end =
it->second.getdeposits().end();
277 for (; dit != dit_end; ++dit) {
278 int barcodeIn = dit->first.barcode();
279 std::map<int, int>::const_iterator bit = barcode_map.find(barcodeIn);
280 if (bit == barcode_map.end()) {
282 <<
" " <<
m_idHelperSvc->toString(
id) <<
" barcode " << barcodeIn);
296 eit->second.mdtHits.insert(*
it);
303 eit->second.rpcHits.insert(*
it);
305 eit->second.tgcHits.insert(*
it);
307 eit->second.stgcHits.insert(*
it);
309 eit->second.mmHits.insert(*
it);
◆ createTruthTree()
create truth tree from sim data
Definition at line 110 of file MuonTrackTruthTool.cxx.
114 std::map<int, int> barcode_map;
116 if (truthTrackCol->
empty()) {
121 const HepMC::GenEvent* genEvent =
nullptr;
122 if (!mcEventCollection->
empty()) {
124 if (mcEventCollection->
size() == 1) genEvent = mcEventCollection->
front();
131 for (; tr_it != tr_it_end; ++tr_it) {
132 int PDGCode((*tr_it).GetPDGCode());
133 int barcode = (*tr_it).barcode();
140 if (barcode_map.count(
barcode)) {
146 std::unique_ptr<TruthTrajectory> truthTrajectory;
151 truthTrajectory = std::make_unique<TruthTrajectory>();
153 if (!truthTrajectory->empty()) {
155 barcode = truthTrajectory->front().barcode();
158 auto particle = truthTrajectory->front().cptr();
159 ATH_MSG_VERBOSE(
" found GenParticle: size " << truthTrajectory->size() <<
" fs barcode " <<
barcode <<
"particle "<< particle);
160 if (
particle->production_vertex()) {
162 <<
particle->production_vertex()->position().z());
167 std::vector<HepMcParticleLink>::const_iterator pit = truthTrajectory->begin();
168 std::vector<HepMcParticleLink>::const_iterator pit_end = truthTrajectory->end();
169 for (; pit != pit_end; ++pit) {
170 int code = (*pit).barcode();
177 <<
particle->production_vertex()->position().z());
200 entry.truthTrack = &(*tr_it);
202 entry.truthTrajectory = std::move(truthTrajectory);
210 unsigned int ngood(0);
211 std::vector<int> badBarcodes;
216 unsigned int nhits =
it->second.mdtHits.size() +
it->second.rpcHits.size() +
it->second.tgcHits.size() +
217 it->second.cscHits.size() +
it->second.stgcHits.size() +
it->second.mmHits.size();
218 if (!
it->second.truthTrack) erase =
true;
222 ATH_MSG_VERBOSE(
" Erasing entry: barcode " <<
it->second.truthTrack->barcode() <<
" manip "
224 badBarcodes.push_back(
it->first);
227 ATH_MSG_VERBOSE(
" Keeping entry: barcode " <<
it->second.truthTrack->barcode() <<
" manip "
234 for (; badIt != badIt_end; ++badIt)
truth_tree.erase(*badIt);
244 for (;
it != it_end; ++
it) {
245 if (!
it->second.truthTrack)
248 ATH_MSG_INFO(
" PDG " <<
it->second.truthTrack->GetPDGCode() <<
" barcode " <<
it->second.truthTrack->barcode()
251 if (!
it->second.mdtHits.empty())
ATH_MSG_INFO(
" mdt " <<
it->second.mdtHits.size());
252 if (!
it->second.rpcHits.empty())
ATH_MSG_INFO(
" rpc " <<
it->second.rpcHits.size());
253 if (!
it->second.tgcHits.empty())
ATH_MSG_INFO(
" tgc " <<
it->second.tgcHits.size());
254 if (!
it->second.cscHits.empty())
ATH_MSG_INFO(
" csc " <<
it->second.cscHits.size());
255 if (!
it->second.stgcHits.empty())
ATH_MSG_INFO(
" stgc " <<
it->second.stgcHits.size());
256 if (!
it->second.mmHits.empty())
ATH_MSG_INFO(
" mm " <<
it->second.mmHits.size());
257 if (
it->second.mdtHits.empty() &&
it->second.rpcHits.empty() &&
it->second.tgcHits.empty() &&
it->second.cscHits.empty() &&
258 it->second.stgcHits.empty() &&
it->second.mmHits.empty())
◆ getAncestor()
Returns the ancestor particle of the particle with barcodeIn if it is found in the truth trajectory.
Ancestor here means the last particle at generator level that has a status code different from final state, e.g. Z
Definition at line 658 of file MuonTrackTruthTool.cxx.
659 bool foundBC =
false;
660 for (
const auto& pit : traj) {
662 if (pit.barcode() == barcodeIn || foundBC) {
◆ getInitial()
Returns the initial particle of the particle with barcodeIn if it is found in the truth trajectory.
For example a mu undergoing a mubrem would create a second mu, in which case this method returns the mu prior to bremsstrahlung. This interface calls the method getInitialPair.
Definition at line 737 of file MuonTrackTruthTool.cxx.
◆ getInitialPair()
Returns the initial particle of the particle with barcodeIn if it is found in the truth trajectory.
For example a mu undergoing a mubrem would create a second mu, in which case this method returns the mu prior to bremsstrahlung. The number of such scatters is returned in the .second.
Definition at line 677 of file MuonTrackTruthTool.cxx.
679 std::pair<HepMC::ConstGenParticlePtr, unsigned int> thePair(
nullptr, 0);
680 unsigned int scat = 0;
682 bool foundBC =
false;
686 for (
auto pit = traj.begin(); pit != traj.end(); ++pit) {
687 if ((*pit).barcode() == barcodeIn || foundBC) {
695 if (
particle->pdg_id() == pdgFinal) {
696 const auto& pit_p = *pit;
697 if ((theFirst != pit_p.scptr()) && (
particle->momentum().t() != ePrev))
702 theFirst = (*pit).scptr();
709 theFirst = (*pit).cptr();
710 pdgFinal = (*pit)->pdg_id();
712 if ((*pit)->pdg_id() == pdgFinal) {
714 if ((theFirst != pit_p.cptr()) && ((*pit).cptr()->momentum().t() != ePrev))
719 theFirst = (*pit).cptr();
729 if (theFirst && theFirst->pdg_id() != pdgFinal)
ATH_MSG_ERROR(
"Wrong pdgId association in getFirst()");
730 ATH_MSG_DEBUG(
"Number of scatters = " << scat <<
" pdgId = " << pdgFinal);
732 thePair.first = theFirst;
733 thePair.second = scat;
◆ getMother()
Returns the mother particle of the particle with barcodeIn if it is found in the truth trajectory.
It traces the decay chain until if finds the first particle that is different flavor from the starting one.
Definition at line 636 of file MuonTrackTruthTool.cxx.
638 int pdgFinal = ((traj.empty()) ? -999 : traj.front().cptr()->pdg_id());
639 bool foundBC =
false;
640 for (
const auto& pit : traj) {
642 if (pit.barcode() == barcodeIn || foundBC) {
650 if (
particle->pdg_id() != pdgFinal) {
◆ getNumberOfScatters()
Returns the number of steps a particle took while maintaining its PDG ID.
This method calls getInitialPair for calculating this number.
Definition at line 741 of file MuonTrackTruthTool.cxx.
◆ getTruth() [1/5]
Definition at line 421 of file MuonTrackTruthTool.cxx.
423 MuonTrackTruth trackTruth;
424 trackTruth.truthTrack = truthEntry.truthTrack;
425 trackTruth.truthTrajectory = truthEntry.truthTrajectory;
427 std::vector<const Trk::MeasurementBase*>::const_iterator mit = measurements.begin();
428 std::vector<const Trk::MeasurementBase*>::const_iterator mit_end = measurements.end();
429 for (; mit != mit_end; ++mit) {
432 if (!meas) {
continue; }
441 if (!
id.is_valid() || !
m_idHelperSvc->mdtIdHelper().is_muon(
id))
continue;
444 addMdtTruth(trackTruth.mdts,
id, *meas, truthEntry.mdtHits);
458 addMissedHits(trackTruth.mdts, trackTruth.mdts.matchedHits, trackTruth.mdts.matchedChambers, truthEntry.mdtHits, restrictedTruth);
459 addMissedHits(trackTruth.cscs, trackTruth.cscs.matchedHits, trackTruth.cscs.matchedChambers, truthEntry.cscHits, restrictedTruth);
460 addMissedHits(trackTruth.rpcs, trackTruth.rpcs.matchedHits, trackTruth.rpcs.matchedChambers, truthEntry.rpcHits, restrictedTruth);
461 addMissedHits(trackTruth.tgcs, trackTruth.tgcs.matchedHits, trackTruth.tgcs.matchedChambers, truthEntry.tgcHits, restrictedTruth);
462 addMissedHits(trackTruth.stgcs, trackTruth.stgcs.matchedHits, trackTruth.stgcs.matchedChambers, truthEntry.stgcHits,
464 addMissedHits(trackTruth.mms, trackTruth.mms.matchedHits, trackTruth.mms.matchedChambers, truthEntry.mmHits, restrictedTruth);
◆ getTruth() [2/5]
◆ getTruth() [3/5]
get segment truth for a list of segments, the segments will be considered to belong to the same muon
Definition at line 366 of file MuonTrackTruthTool.cxx.
368 std::set<Identifier>
ids;
369 std::vector<const Trk::MeasurementBase*> measurements;
370 std::vector<const MuonSegment*>::const_iterator sit = segments.begin();
371 std::vector<const MuonSegment*>::const_iterator sit_end = segments.end();
372 for (; sit != sit_end; ++sit) {
373 std::vector<const Trk::MeasurementBase*>::const_iterator mit = (*sit)->containedMeasurements().begin();
374 std::vector<const Trk::MeasurementBase*>::const_iterator mit_end = (*sit)->containedMeasurements().end();
375 for (; mit != mit_end; ++mit) {
384 if (!
id.is_valid() || !
m_idHelperSvc->mdtIdHelper().is_muon(
id))
continue;
385 if (
ids.count(
id))
continue;
386 measurements.push_back(meas);
◆ getTruth() [4/5]
get truth for a give set of hits.
If restrictedTruth is set to true only missed hits in chambers with hits will be counted.
Definition at line 393 of file MuonTrackTruthTool.cxx.
395 MuonTrackTruth bestMatch;
396 bestMatch.truthTrack =
nullptr;
397 bestMatch.truthTrajectory =
nullptr;
399 unsigned int nmatchedHitsBest = 0;
403 for (;
tit != tit_end; ++
tit) {
404 unsigned int nhits =
tit->second.mdtHits.size() +
tit->second.cscHits.size() +
tit->second.rpcHits.size() +
405 tit->second.tgcHits.size() +
tit->second.stgcHits.size() +
tit->second.mmHits.size();
406 if (nhits == 0)
continue;
408 MuonTrackTruth trackTruth =
getTruth(measurements,
tit->second, restrictedTruth);
409 unsigned int nmatchedHits = trackTruth.numberOfMatchedHits();
410 ATH_MSG_DEBUG(
" performed truth match for particle with barcode: " <<
tit->first <<
" overlap " << nmatchedHits <<
" fraction "
411 << (
double)nmatchedHits / (
double)nhits);
412 if (nmatchedHits > 0 && nmatchedHits > nmatchedHitsBest) {
413 bestMatch = trackTruth;
414 nmatchedHitsBest = nmatchedHits;
◆ getTruth() [5/5]
◆ initialize()
StatusCode Muon::MuonTrackTruthTool::initialize |
( |
| ) |
|
◆ manipulateBarCode()
int Muon::MuonTrackTruthTool::manipulateBarCode |
( |
int |
barcode | ) |
const |
|
private |
◆ match() [1/2]
MuonTrackTruthTool::SegmentResultVec Muon::MuonTrackTruthTool::match |
( |
const TruthTree & |
truth_tree, |
|
|
const std::vector< const MuonSegment * > & |
segments |
|
) |
| const |
perform truth matching for a given set of segments
Definition at line 91 of file MuonTrackTruthTool.cxx.
94 result.reserve(segments.size());
97 std::vector<const MuonSegment*>::const_iterator sit = segments.begin();
98 std::vector<const MuonSegment*>::const_iterator sit_end = segments.end();
99 for (; sit != sit_end; ++sit) {
◆ match() [2/2]
MuonTrackTruthTool::ResultVec Muon::MuonTrackTruthTool::match |
( |
const TruthTree & |
truth_tree, |
|
|
const TrackCollection & |
tracks |
|
) |
| const |
perform truth matching for a given set of tracks
Definition at line 68 of file MuonTrackTruthTool.cxx.
75 for (;
tit != tit_end; ++
tit) {
77 if (!
match.truthTrack)
continue;
79 if (
match.numberOfMatchedHits() == 0)
continue;
◆ selectPdg()
bool Muon::MuonTrackTruthTool::selectPdg |
( |
int |
pdg | ) |
const |
|
inlineprivate |
◆ m_doSummary
Gaudi::Property<bool> Muon::MuonTrackTruthTool::m_doSummary {this, "DoSummary", false} |
|
private |
◆ m_idHelperSvc
◆ m_manipulateBarCode
Gaudi::Property<bool> Muon::MuonTrackTruthTool::m_manipulateBarCode {this, "ManipulateBarCode", false} |
|
private |
◆ m_matchAllParticles
Gaudi::Property<bool> Muon::MuonTrackTruthTool::m_matchAllParticles {this, "MatchAllParticles", true} |
|
private |
◆ m_minHits
Gaudi::Property<unsigned int> Muon::MuonTrackTruthTool::m_minHits {this, "MinHits", 4} |
|
private |
◆ m_pdgsToBeConsidered
Gaudi::Property<std::vector<int> > Muon::MuonTrackTruthTool::m_pdgsToBeConsidered {this, "ConsideredPDGs", {}} |
|
private |
◆ m_printer
◆ m_selectedPdgs
std::set<int> Muon::MuonTrackTruthTool::m_selectedPdgs |
|
private |
◆ m_truthTrajectoryBuilder
Initial value:{
this, "TruthTrajectoryBuilder", "Muon::MuonDecayTruthTrajectoryBuilder/MuonDecayTruthTrajectoryBuilder"}
Definition at line 137 of file MuonTrackTruthTool.h.
The documentation for this class was generated from the following files:
JetConstituentVector::iterator iterator
Const iterator class for DataVector/DataList.
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
const std::vector< Identifier > & rdoList() const
return the List of rdo identifiers (pointers)
#define ATH_MSG_VERBOSE(x)
AtlasHitsVector< TrackRecord >::const_iterator TrackRecordConstIterator
const_iterator begin() const
void stable_sort(std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, std::reverse_iterator< DataModel_detail::iterator< DVL > > end, Compare comp)
Specialization of stable_sort for DataVector/List.
Class to handle pseudo-measurements in fitters and on track objects.
GenParticle * barcode_to_particle(const GenEvent *e, int id)
const T * front() const
Access the first element in the collection as an rvalue.
const GenParticle * ConstGenParticlePtr
virtual const Trk::PrepRawData * prepRawData() const =0
returns the PrepRawData (also known as RIO) object to which this RIO_OnTrack is associated.
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
bool isStable(const T &p)
Identify if the particle is stable, i.e. has not decayed.
#define ATH_MSG_WARNING(x)
const_iterator end() const
Identifier identify() const
return the identifier -extends MeasurementBase
size_type size() const noexcept
Returns the number of elements in the collection.
bool empty() const noexcept
Returns true if the collection is empty.
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
Muon::NSW_PadTriggerSegment segment(const NSWL1::PadTrigger &data)