|
ATLAS Offline Software
|
#include <DetailedMuonPatternTruthBuilder.h>
|
| DetailedMuonPatternTruthBuilder (const std::string &type, const std::string &name, const IInterface *parent) |
|
virtual StatusCode | initialize () |
|
virtual void | buildDetailedMuonPatternTruth (DetailedMuonPatternTruthCollection *output, const MuonPatternCombinationCollection &tracks, const std::vector< const PRD_MultiTruthCollection * > &prdTruth) |
| See description for IDetailedMuonPatternTruthBuilder::buildDetailedTrackTruth() More...
|
|
virtual void | buildDetailedTrackTruth (std::vector< DetailedTrackTruth > *output, const Muon::MuonPatternCombination &pattern, const std::vector< const PRD_MultiTruthCollection * > &prdTruth) |
|
void | buildDetailedTrackTruthFromSegments (std::vector< DetailedSegmentTruth > *output, const Muon::MuonSegment &segment, const std::vector< const PRD_MultiTruthCollection * > &prdTruth) |
|
ServiceHandle< StoreGateSvc > & | evtStore () |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | evtStore () const |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | detStore () const |
| The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
virtual StatusCode | sysInitialize () override |
| Perform system initialization for an algorithm. More...
|
|
virtual StatusCode | sysStart () override |
| Handle START transition. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. More...
|
|
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T > &t) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
| Declare a new Gaudi property. More...
|
|
void | updateVHKA (Gaudi::Details::PropertyBase &) |
|
MsgStream & | msg () const |
|
MsgStream & | msg (const MSG::Level lvl) const |
|
bool | msgLvl (const MSG::Level lvl) const |
|
|
SubDetHitStatistics::SubDetType | findSubDetType (Identifier id) |
|
const MuonSimData::Deposit * | getDeposit (const MuonSimDataCollection &simCol, const HepMC::ConstGenParticlePtr &genPart, const Identifier &id) |
|
const MuonSimDataCollection * | retrieveTruthCollection (const std::string &colName) |
|
void | addTrack (DetailedMuonPatternTruthCollection *output, const ElementLink< DataVector< Muon::MuonPatternCombination > > &track, const std::vector< const PRD_MultiTruthCollection * > &orderedPRD_Truth, const PRD_InverseTruth &inverseTruth) |
|
void | addDetailedTrackTruth (std::vector< DetailedTrackTruth > *output, const Muon::MuonPatternCombination &pattern, const std::vector< const PRD_MultiTruthCollection * > &orderedPRD_Truth, const PRD_InverseTruth &inverseTruth) |
|
SubDetHitStatistics | countPRDsOnTruth (const TruthTrajectory &traj, const PRD_InverseTruth &inverseTruth, std::set< Muon::MuonStationIndex::ChIndex > chIndices) |
|
Amg::Vector3D | getPRDTruthPosition (const Muon::MuonSegment &segment, std::list< HepMC::ConstGenParticlePtr > genPartList, int truthPos, std::set< Muon::MuonStationIndex::ChIndex > chIndices) |
|
void | addDetailedTrackTruthFromSegment (std::vector< DetailedSegmentTruth > *output, const Muon::MuonSegment &segment, const std::vector< const PRD_MultiTruthCollection * > &orderedPRD_Truth, const PRD_InverseTruth &inverseTruth) |
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKey> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &) |
| specialization for handling Gaudi::Property<SG::VarHandleBase> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &) |
| specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
|
|
◆ PRD_InverseTruth
◆ StoreGateSvc_t
◆ DetailedMuonPatternTruthBuilder()
Trk::DetailedMuonPatternTruthBuilder::DetailedMuonPatternTruthBuilder |
( |
const std::string & |
type, |
|
|
const std::string & |
name, |
|
|
const IInterface * |
parent |
|
) |
| |
◆ addDetailedTrackTruth()
Definition at line 729 of file DetailedMuonPatternTruthBuilder.cxx.
734 std::map<HepMcParticleLink, SubDetPRDs> pairStat;
737 const std::vector<Muon::MuonPatternChamberIntersect>& MPCIV =
pattern.chamberData();
738 for (
unsigned int i_MPCI = 0; i_MPCI < MPCIV.size(); i_MPCI++) {
739 if (MPCIV.empty())
continue;
742 std::vector<const Trk::PrepRawData*> PRDV = MPCIV.at(i_MPCI).prepRawDataVec();
745 for (
unsigned int j_PRD = 0; j_PRD < PRDV.size(); j_PRD++) {
746 if (PRDV.empty())
continue;
753 if (orderedPRD_Truth[subdet]) {
756 typedef PRD_MultiTruthCollection::const_iterator iprdt;
757 std::pair<iprdt, iprdt>
range = orderedPRD_Truth[subdet]->equal_range(
id);
762 if (!
i->second.isValid()) {
763 ATH_MSG_WARNING(
"Unexpected invalid HepMcParticleLink in PRD_MultiTruthCollection");
765 pairStat[
i->second].subDetHits[subdet].insert(
id);
768 <<
" particle link:" <<
i->second);
772 ATH_MSG_VERBOSE(
"--> no link, noise ? PRD-ID:" <<
id <<
" subdet:" << subdet);
774 unsigned int BC(0), EV(0);
784 for (std::map<HepMcParticleLink, SubDetPRDs>::const_iterator
i = pairStat.begin();
i != pairStat.end(); ++
i) {
794 std::set<HepMcParticleLink> seeds;
795 for (std::map<HepMcParticleLink, SubDetPRDs>::const_iterator
i = pairStat.begin();
i != pairStat.end(); ++
i) {
796 if (
i->first.isValid()) {
797 seeds.insert(
i->first);
802 traj.push_back(
i->first);
816 typedef std::map<HepMcParticleLink, Sprout> SproutMap;
819 while (!seeds.empty()) {
822 Sprout current_sprout;
823 std::queue<HepMC::ConstGenParticlePtr>
tmp;
835 seeds.erase(curlink);
839 if (p_old != sprouts.end()) {
841 current_sprout.splice(current_sprout.end(), p_old->second);
842 current_sprout.stat += p_old->second.stat;
844 sprouts.erase(p_old);
852 current_sprout.push_back(
current);
855 if (p_newstat != pairStat.end()) { current_sprout.stat += p_newstat->second; }
860 sprouts.insert(std::make_pair(link, current_sprout));
885 for (Sprout::const_iterator ppart =
s->second.begin(); ppart !=
s->second.end(); ++ppart) {
890 std::set<Muon::MuonStationIndex::ChIndex> tempSet;
897 ATH_MSG_VERBOSE(
"addTrack(): #sprouts = " << sprouts.size() <<
", output->size() = " <<
output->size());
◆ addDetailedTrackTruthFromSegment()
Definition at line 943 of file DetailedMuonPatternTruthBuilder.cxx.
947 std::map<HepMcParticleLink, SubDetPRDs> pairStat;
949 std::set<Muon::MuonStationIndex::ChIndex> chIndices;
952 for (
unsigned int i_cROTv = 0; i_cROTv <
segment.numberOfContainedROTs(); i_cROTv++) {
965 if (orderedPRD_Truth[subdet]) {
968 typedef PRD_MultiTruthCollection::const_iterator iprdt;
969 std::pair<iprdt, iprdt>
range = orderedPRD_Truth[subdet]->equal_range(
id);
974 if (!
i->second.isValid()) {
975 ATH_MSG_WARNING(
"Unexpected invalid HepMcParticleLink in PRD_MultiTruthCollection");
977 pairStat[
i->second].subDetHits[subdet].insert(
id);
979 ATH_MSG_VERBOSE(
"PRD-ID:" <<
id <<
" subdet:" << subdet <<
" number:" <<
n <<
" particle link:" <<
i->second);
983 ATH_MSG_VERBOSE(
"--> no link, noise ? PRD-ID:" <<
id <<
" subdet:" << subdet);
985 unsigned int BC(0), EV(0);
994 for (std::map<HepMcParticleLink, SubDetPRDs>::const_iterator
i = pairStat.begin();
i != pairStat.end(); ++
i) {
1004 std::set<HepMcParticleLink> seeds;
1005 for (std::map<HepMcParticleLink, SubDetPRDs>::const_iterator
i = pairStat.begin();
i != pairStat.end(); ++
i) {
1006 if (
i->first.isValid()) {
1007 seeds.insert(
i->first);
1012 traj.push_back(
i->first);
1027 typedef std::map<HepMcParticleLink, Sprout> SproutMap;
1030 while (!seeds.empty()) {
1033 Sprout current_sprout;
1034 std::queue<HepMC::ConstGenParticlePtr>
tmp;
1046 seeds.erase(curlink);
1050 if (p_old != sprouts.end()) {
1052 current_sprout.splice(current_sprout.end(), p_old->second);
1053 current_sprout.stat += p_old->second.stat;
1055 sprouts.erase(p_old);
1063 current_sprout.push_back(
current);
1066 if (p_newstat != pairStat.end()) { current_sprout.stat += p_newstat->second; }
1071 sprouts.insert(std::make_pair(link, current_sprout));
1096 for (Sprout::const_iterator ppart =
s->second.begin(); ppart !=
s->second.end(); ++ppart) {
1109 ATH_MSG_VERBOSE(
"addTrack(): #sprouts = " << sprouts.size() <<
", output->size() = " <<
output->size());
◆ addTrack()
Definition at line 270 of file DetailedMuonPatternTruthBuilder.cxx.
275 std::map<HepMcParticleLink, SubDetPRDs> pairStat;
278 const std::vector<Muon::MuonPatternChamberIntersect>& MPCIV = (*MuPatternCombo)->chamberData();
279 for (
unsigned int i_MPCI = 0; i_MPCI < MPCIV.size(); i_MPCI++) {
280 if (MPCIV.empty())
continue;
283 std::vector<const Trk::PrepRawData*> PRDV = MPCIV.at(i_MPCI).prepRawDataVec();
286 for (
unsigned int j_PRD = 0; j_PRD < PRDV.size(); j_PRD++) {
287 if (PRDV.empty())
continue;
294 if (orderedPRD_Truth[subdet]) {
297 typedef PRD_MultiTruthCollection::const_iterator iprdt;
298 std::pair<iprdt, iprdt>
range = orderedPRD_Truth[subdet]->equal_range(
id);
303 if (!
i->second.isValid()) {
304 ATH_MSG_WARNING(
"Unexpected invalid HepMcParticleLink in PRD_MultiTruthCollection");
306 pairStat[
i->second].subDetHits[subdet].insert(
id);
309 <<
" particle link:" <<
i->second);
313 ATH_MSG_VERBOSE(
"--> no link, noise ? PRD-ID:" <<
id <<
" subdet:" << subdet);
315 unsigned int BC(0), EV(0);
325 for (std::map<HepMcParticleLink, SubDetPRDs>::const_iterator
i = pairStat.begin();
i != pairStat.end(); ++
i) {
334 std::set<HepMcParticleLink> seeds;
335 for (std::map<HepMcParticleLink, SubDetPRDs>::const_iterator
i = pairStat.begin();
i != pairStat.end(); ++
i) {
336 if (
i->first.isValid()) {
337 seeds.insert(
i->first);
342 traj.push_back(
i->first);
356 typedef std::map<HepMcParticleLink, Sprout> SproutMap;
359 while (!seeds.empty()) {
362 Sprout current_sprout;
363 std::queue<HepMC::ConstGenParticlePtr>
tmp;
375 seeds.erase(curlink);
379 if (p_old != sprouts.end()) {
381 current_sprout.splice(current_sprout.end(), p_old->second);
382 current_sprout.stat += p_old->second.stat;
384 sprouts.erase(p_old);
392 current_sprout.push_back(
current);
395 if (p_newstat != pairStat.end()) { current_sprout.stat += p_newstat->second; }
400 sprouts.insert(std::make_pair(link, current_sprout));
426 for (Sprout::const_iterator ppart =
s->second.begin(); ppart !=
s->second.end(); ++ppart) {
431 std::set<Muon::MuonStationIndex::ChIndex> tempSet;
436 std::make_pair(MuPatternCombo,
DetailedTrackTruth(traj, makeSubDetHitStatistics(
s->second.stat), trackStat, truthStat)));
439 ATH_MSG_VERBOSE(
"addTrack(): #sprouts = " << sprouts.size() <<
", output->size() = " <<
output->size());
◆ buildDetailedMuonPatternTruth()
◆ buildDetailedTrackTruth()
Implements Trk::IDetailedMuonPatternTruthBuilder.
Definition at line 191 of file DetailedMuonPatternTruthBuilder.cxx.
194 ATH_MSG_VERBOSE(
"DetailedMuonPatternTruthBuilder::buildDetailedTrackTruth() ");
204 for (std::vector<const PRD_MultiTruthCollection*>::const_iterator
i = prdTruth.begin();
i != prdTruth.end(); ++
i) {
206 if (!(*i)->empty()) {
210 orderedPRD_Truth[subdet] = *
i;
228 "Dumping output collection.\n"
229 " Entries with TruthTrajectories of more then one particle shown at the DEBUG level.\n"
230 " Use VERBOSE level for complete dump.");
◆ buildDetailedTrackTruthFromSegments()
Implements Trk::IDetailedMuonPatternTruthBuilder.
Definition at line 900 of file DetailedMuonPatternTruthBuilder.cxx.
903 ATH_MSG_VERBOSE(
"DetailedMuonPatternTruthBuilder::buildDetailedTrackTruthFromSegments() ");
913 for (std::vector<const PRD_MultiTruthCollection*>::const_iterator
i = prdTruth.begin();
i != prdTruth.end(); ++
i) {
915 if (!(*i)->empty()) {
919 orderedPRD_Truth[subdet] = *
i;
937 "Dumping output collection.\n"
938 " Entries with TruthTrajectories of more then one particle shown at the DEBUG level.\n"
939 " Use VERBOSE level for complete dump.");
◆ countPRDsOnTruth()
Definition at line 443 of file DetailedMuonPatternTruthBuilder.cxx.
449 for (TruthTrajectory::const_iterator
p = traj.begin();
p != traj.end(); ++
p) {
450 typedef PRD_InverseTruth::const_iterator iter;
451 std::pair<iter, iter>
range = inverseTruth.equal_range(*
p);
453 if (chIndices.find(
m_idHelperSvc->chamberIndex(
i->second)) != chIndices.end()) {
456 prds.subDetHits[subdet].insert(
i->second);
461 return makeSubDetHitStatistics(prds);
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleBase
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 245 of file AthCommonDataStore.h.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
253 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleKey
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 221 of file AthCommonDataStore.h.
229 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This is the generic version, for types that do not derive from SG::VarHandleKey
. It just forwards to the base class version of declareProperty
.
Definition at line 333 of file AthCommonDataStore.h.
338 return PBASE::declareProperty(
name, property,
doc);
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This dispatches to either the generic declareProperty
or the one for VarHandle/Key/KeyArray.
Definition at line 352 of file AthCommonDataStore.h.
◆ declareProperty() [6/6]
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ extraDeps_update_handler()
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
◆ findSubDetType()
◆ getDeposit()
Definition at line 1113 of file DetailedMuonPatternTruthBuilder.cxx.
1115 MuonSimDataCollection::const_iterator
it = simCol.find(
id);
1116 if (
it == simCol.end()) {
1123 std::vector<MuonSimData::Deposit>::const_iterator dit =
simData.getdeposits().begin();
1124 std::vector<MuonSimData::Deposit>::const_iterator dit_end =
simData.getdeposits().end();
1125 for (; dit != dit_end; ++dit) {
1131 if (gp == genPart) {
◆ getPRDTruthPosition()
Definition at line 465 of file DetailedMuonPatternTruthBuilder.cxx.
468 double minPos = 2e8, maxPos = 0;
471 if (genPartList.empty()) {
472 ATH_MSG_WARNING(
"No GenParticles associated to this PRD_TruthTrajectory. Exiting segment creation.");
477 if (!mdtSimDataMap) {
489 if (!stgcSimDataMap) {
496 std::map<Muon::MuonStationIndex::StIndex, DetectorLayer> hitsPerLayer;
497 std::map<const Trk::TrkDetElementBase*, std::pair<std::list<const Trk::PrepRawData*>, std::list<const Trk::PrepRawData*> > >
501 for (
unsigned int i_cROTv = 0; i_cROTv <
segment.numberOfContainedROTs(); i_cROTv++) {
512 if (chIndices.find(
m_idHelperSvc->chamberIndex(
id)) == chIndices.end()) {
513 ATH_MSG_DEBUG(
"Muon station doesn't match segment. Continuing");
543 for (
auto it = genPartList.begin();
it != genPartList.end() && !deposit; ++
it) {
551 Amg::Vector2D lp(deposit->second.firstEntry(), deposit->second.secondEntry());
554 double val = isEndcap ? fabs(gpos.z()) : gpos.
perp();
570 if (maxPos < -1e8 && minPos < 1e8) {
576 }
else if (
val > maxPos) {
590 << deposit->second.firstEntry() <<
" pull " <<
pull);
592 detLayer.
meas.push_back(mdt);
600 for (
auto it = genPartList.begin();
it != genPartList.end() && !deposit; ++
it) {
608 Amg::Vector2D lp(deposit->second.firstEntry(), deposit->second.secondEntry());
613 double val = fabs(gpos.z());
628 if (maxPos < -1e8 && detLayer.
minPos < 1e8) {
634 }
else if (
val > maxPos) {
647 <<
" pull " <<
pull);
648 detLayer.
meas.push_back(rot);
660 for (
auto it = genPartList.begin();
it != genPartList.end() && !deposit; ++
it) {
668 Amg::Vector2D lp(deposit->second.firstEntry(), deposit->second.secondEntry());
673 double val = fabs(gpos.z());
688 if (maxPos < -1e8 && minPos < 1e8) {
694 }
else if (
val > maxPos) {
707 <<
" pull " <<
pull);
708 detLayer.
meas.push_back(rot);
715 if (minPos == 2e8 || maxPos == 0) {
716 ATH_MSG_WARNING(
"Min and max positions not found. Filling with meaningless position");
721 return (first3D + last3D) / 2;
724 return (last3D - first3D);
◆ initialize()
StatusCode Trk::DetailedMuonPatternTruthBuilder::initialize |
( |
| ) |
|
|
virtual |
◆ inputHandles()
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.
◆ interfaceID()
static const InterfaceID& Trk::IDetailedMuonPatternTruthBuilder::interfaceID |
( |
| ) |
|
|
inlinestaticinherited |
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ outputHandles()
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.
◆ renounce()
◆ renounceArray()
◆ retrieveTruthCollection()
◆ sysInitialize()
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateVHKA()
◆ m_detStore
◆ m_evtStore
◆ m_idHelperSvc
◆ m_mdtCreator
Initial value:{this, "MdtDriftCircleCreator",
"Muon::MdtDriftCircleOnTrackCreator/MdtDriftCircleOnTrackCreator"}
Definition at line 68 of file DetailedMuonPatternTruthBuilder.h.
◆ m_muonClusterCreator
◆ m_truthTrackBuilder
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
def retrieve(aClass, aKey=None)
JetConstituentVector::iterator iterator
HepMC::ConstGenParticlePtr scptr() const
Dereference/smart pointer.
std::pair< HepMcParticleLink, MuonMCData > Deposit
void addTrack(DetailedMuonPatternTruthCollection *output, const ElementLink< DataVector< Muon::MuonPatternCombination > > &track, const std::vector< const PRD_MultiTruthCollection * > &orderedPRD_Truth, const PRD_InverseTruth &inverseTruth)
Class to represent MM measurements.
Scalar perp() const
perp method - perpenticular length
Eigen::Matrix< double, 2, 1 > Vector2D
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
std::vector< std::string > patterns
ToolHandle< Muon::IMuonClusterOnTrackCreator > m_muonClusterCreator
ToolHandle< Trk::ITruthTrajectoryBuilder > m_truthTrackBuilder
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
bool msgLvl(const MSG::Level lvl) const
void addDetailedTrackTruth(std::vector< DetailedTrackTruth > *output, const Muon::MuonPatternCombination &pattern, const std::vector< const PRD_MultiTruthCollection * > &orderedPRD_Truth, const PRD_InverseTruth &inverseTruth)
std::vector< const Trk::MeasurementBase * > meas
#define ATH_MSG_VERBOSE(x)
void addToInverseMultiMap(InverseMultiMap< OrigMap, CmpT > *result, const OrigMap &rec2truth)
void addDetailedTrackTruthFromSegment(std::vector< DetailedSegmentTruth > *output, const Muon::MuonSegment &segment, const std::vector< const PRD_MultiTruthCollection * > &orderedPRD_Truth, const PRD_InverseTruth &inverseTruth)
virtual void setOwner(IDataHandleHolder *o)=0
SubDetHitStatistics::SubDetType findSubDetType(Identifier id)
double get(ParamDefs par) const
Retrieve specified parameter (const version).
HepMC::ConstGenParticlePtr cptr() const
Dereference.
ToolHandle< Muon::IMdtDriftCircleOnTrackCreator > m_mdtCreator
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
a link optimized in size for a GenParticle in a McEventCollection
InverseMultiMap< PRD_MultiTruthCollection > PRD_InverseTruth
SubDetHitStatistics countPRDsOnTruth(const TruthTrajectory &traj, const PRD_InverseTruth &inverseTruth, std::set< Muon::MuonStationIndex::ChIndex > chIndices)
@ RIGHT
the drift radius is positive (see Trk::AtaStraightLine)
virtual const Surface & surface() const =0
Return surface associated with this detector element.
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
double driftRadius() const
Returns the value of the drift radius.
const Amg::MatrixX & localCovariance() const
Interface method to get the localError.
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
ElementLink implementation for ROOT usage.
Identifier identify() const
return the identifier
index_type eventIndex() const
Return the event number of the referenced GenEvent.
const GenParticle * ConstGenParticlePtr
This class represents the corrected MDT measurements, where the corrections include the effects of wi...
Class to represent measurements from the Monitored Drift Tubes.
Eigen::Matrix< double, 3, 1 > Vector3D
virtual const Trk::PrepRawData * prepRawData() const =0
returns the PrepRawData (also known as RIO) object to which this RIO_OnTrack is associated.
const LocalParameters & localParameters() const
Interface method to get the LocalParameters.
DriftCircleSide
Enumerates the 'side' of the wire on which the tracks passed (i.e.
Amg::Vector3D getPRDTruthPosition(const Muon::MuonSegment &segment, std::list< HepMC::ConstGenParticlePtr > genPartList, int truthPos, std::set< Muon::MuonStationIndex::ChIndex > chIndices)
const MuonSimData::Deposit * getDeposit(const MuonSimDataCollection &simCol, const HepMC::ConstGenParticlePtr &genPart, const Identifier &id)
#define ATH_MSG_WARNING(x)
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
StIndex
enum to classify the different station layers in the muon spectrometer
@ LEFT
the drift radius is negative (see Trk::AtaStraightLine)
Muon::MuonStationIndex::StIndex stIndex
Class to represent sTgc measurements.
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
virtual void localToGlobal(const Amg::Vector2D &locp, const Amg::Vector3D &mom, Amg::Vector3D &glob) const =0
Specified by each surface type: LocalToGlobal method without dynamic memory allocation.
const MuonSimDataCollection * retrieveTruthCollection(const std::string &colName)
Base class for Muon cluster RIO_OnTracks.
Muon::NSW_PadTriggerSegment segment(const NSWL1::PadTrigger &data)
virtual const TrkDetElementBase * detectorElement() const =0
return the detector element corresponding to this PRD The pointer will be zero if the det el is not d...
thread_local event_number_t eventIndex