 |
ATLAS Offline Software
|
class to manipulate MuPatCandidateBase objects
More...
#include <MuPatCandidateTool.h>
|
| MuPatCandidateTool (const std::string &, const std::string &, const IInterface *) |
| default AlgTool constructor More...
|
|
virtual | ~MuPatCandidateTool ()=default |
| destructor More...
|
|
virtual StatusCode | initialize () override |
| initialize method, method taken from bass-class AlgTool More...
|
|
bool | extendWithSegment (MuPatTrack &can, MuPatSegment &segInfo, std::unique_ptr< Trk::Track > &track) const |
| extend a track candidate with a segment More...
|
|
std::unique_ptr< MuPatTrack > | createCandidate (MuPatSegment &segInfo, std::unique_ptr< Trk::Track > &track) const |
| create a track candidate from one segment More...
|
|
std::unique_ptr< MuPatTrack > | createCandidate (MuPatSegment &segInfo1, MuPatSegment &segInfo2, std::unique_ptr< Trk::Track > &track) const |
| create a track candidate from two segments More...
|
|
std::unique_ptr< MuPatTrack > | createCandidate (std::unique_ptr< Trk::Track > &track) const |
| create a track candidate from a track More...
|
|
bool | updateTrack (MuPatTrack &candidate, std::unique_ptr< Trk::Track > &track) const |
| set the new track in the candidate, and update candidate contents. More...
|
|
bool | recalculateCandidateSegmentContent (MuPatTrack &candidate) const |
| recalculate the chamber indices on the candidate and reset them. More...
|
|
std::unique_ptr< MuPatSegment > | createSegInfo (const EventContext &ctx, const MuonSegment &segment) const |
| create a MuPatSegment object from a segment More...
|
|
std::set< const MuonGM::MuonReadoutElement * > | readoutElements (const MuPatCandidateBase &entry) const |
| get list of the readout elements of the hits on the entry More...
|
|
std::string | print (const MuPatSegment &segment, int level=0) const |
| print the measurements on the track to string More...
|
|
std::string | print (const std::vector< MuPatSegment * > &segments, int level=0) const |
|
std::string | print (const MuPatCandidateBase &candidate, int level=0) const |
|
std::string | print (const MuPatTrack &track, int level=0) const |
|
std::string | print (const std::vector< std::unique_ptr< MuPatTrack > > &tracks, int level=0) const |
|
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, V, H > &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 |
|
|
void | updateHits (MuPatCandidateBase &entry, const MeasVec &measurements, bool recreateMDT=false, bool recreateCSC=false, bool createComp=false) const |
| update hits for a MuPatCandidateBase More...
|
|
void | addCluster (const Trk::MeasurementBase &meas, std::vector< const MuonClusterOnTrack * > &rots) const |
| extract MuonClusterOnTrack('s) from measurement More...
|
|
void | createAndAddCompetingROTs (const std::vector< const MuonClusterOnTrack * > &rots, MeasVec &hits, MeasVec &allHits, MuPatCandidateBase &entry) const |
| create CompetingMuonClustersOnTracks from ROTs and add them to the MeasVec. More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKey> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyArrayType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleType &) |
| specialization for handling Gaudi::Property<SG::VarHandleBase> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &t, const SG::NotHandleType &) |
| specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
|
|
|
ToolHandle< IMdtDriftCircleOnTrackCreator > | m_mdtRotCreator |
|
ToolHandle< IMuonClusterOnTrackCreator > | m_cscRotCreator |
|
ToolHandle< IMuonCompetingClustersOnTrackCreator > | m_compClusterCreator |
|
ServiceHandle< Muon::IMuonIdHelperSvc > | m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"} |
|
ServiceHandle< IMuonEDMHelperSvc > | m_edmHelperSvc |
|
PublicToolHandle< MuonEDMPrinterTool > | m_printer {this, "MuonPrinterTool", "Muon::MuonEDMPrinterTool/MuonEDMPrinterTool"} |
|
ToolHandle< MuPatHitTool > | m_hitHandler {this, "HitTool", "Muon::MuPatHitTool/MuPatHitTool", "Tool to manipulate hit lists"} |
|
ToolHandle< Muon::IMuonSegmentSelectionTool > | m_segmentSelector |
|
Gaudi::Property< bool > | m_createCompetingROTsPhi {this, "CreateCompetingROTsPhi", false} |
|
Gaudi::Property< bool > | m_createCompetingROTsEta {this, "CreateCompetingROTsEta", true} |
|
Gaudi::Property< bool > | m_doMdtRecreation {this, "DoMdtRecreation", false} |
|
Gaudi::Property< bool > | m_doCscRecreation {this, "DoCscRecreation", true} |
|
StoreGateSvc_t | m_evtStore |
| Pointer to StoreGate (event store by default) More...
|
|
StoreGateSvc_t | m_detStore |
| Pointer to StoreGate (detector store by default) More...
|
|
std::vector< SG::VarHandleKeyArray * > | m_vhka |
|
bool | m_varHandleArraysDeclared |
|
class to manipulate MuPatCandidateBase objects
Definition at line 49 of file MuPatCandidateTool.h.
◆ MeasCit
◆ MeasIt
◆ MeasVec
◆ StoreGateSvc_t
◆ MuPatCandidateTool()
Muon::MuPatCandidateTool::MuPatCandidateTool |
( |
const std::string & |
t, |
|
|
const std::string & |
n, |
|
|
const IInterface * |
p |
|
) |
| |
default AlgTool constructor
Definition at line 34 of file MuPatCandidateTool.cxx.
36 declareInterface<MuPatCandidateTool>(
this);
◆ ~MuPatCandidateTool()
virtual Muon::MuPatCandidateTool::~MuPatCandidateTool |
( |
| ) |
|
|
virtualdefault |
◆ addCluster()
extract MuonClusterOnTrack('s) from measurement
Definition at line 283 of file MuPatCandidateTool.cxx.
284 const MuonClusterOnTrack* clus =
dynamic_cast<const MuonClusterOnTrack*
>(&meas);
286 rots.push_back(clus);
288 const CompetingMuonClustersOnTrack* compclus =
dynamic_cast<const CompetingMuonClustersOnTrack*
>(&meas);
290 rots.insert(rots.end(), compclus->containedROTs().begin(), compclus->containedROTs().end());
293 ATH_MSG_WARNING(
" Trigger Measurement is not a MuonClusterOnTrack or CompetingMuonClustersOnTrack!! "
◆ copyCandidate()
copy a candidate without copying the track (lazy pointer copy)
- Parameters
-
[in] | can | the MuPatTrack to be copied |
[out] | the | new candidate, ownership is passed to caller. The new candidate will not own the track (lazy pointer copy) |
Definition at line 95 of file MuPatCandidateTool.cxx.
97 std::unique_ptr<MuPatTrack>
can = std::make_unique<MuPatTrack>(*canIn);
◆ createAndAddCompetingROTs()
create CompetingMuonClustersOnTracks from ROTs and add them to the MeasVec.
NEVER pass mixed eta/phi hits!!
Definition at line 299 of file MuPatCandidateTool.cxx.
302 typedef std::map<Identifier, std::vector<const MuonClusterOnTrack*> > IdClusMap;
304 IdClusMap idClusters;
307 for (
const MuonClusterOnTrack* clus : rots) {
310 idClusters[detId].push_back(clus);
313 ATH_MSG_DEBUG(
" creating CompetingMuonClustersOnTrack for " << idClusters.size() <<
" chambers ");
315 IdClusIt chit = idClusters.begin();
316 IdClusIt chit_end = idClusters.end();
317 for (; chit != chit_end; ++chit) {
319 msg(
MSG::VERBOSE )<<__FILE__<<
":"<<__LINE__ <<
" in " <<
m_idHelperSvc->toStringDetEl(chit->first) <<
" clusters: " << chit->second.size()
321 for (
const MuonClusterOnTrack* cl_it : chit->second) {
325 if (cl_it == chit->second.back())
332 if (chit->second.empty()) {
333 ATH_MSG_WARNING(
" empty list, could not create CompetingMuonClustersOnTrack in chamber "
339 if (chit->second.size() == 1) {
340 hits.push_back(chit->second.front());
341 allHits.push_back(chit->second.front());
346 std::list<const Trk::PrepRawData*> prds;
349 for (; cl_it != cl_it_end; ++cl_it) {
358 std::unique_ptr<const CompetingMuonClustersOnTrack> comprot =
m_compClusterCreator->createBroadCluster(prds, 0);
363 hits.push_back(comprot.get());
364 allHits.push_back(comprot.get());
367 trash_bin.addToTrash(std::move(comprot));
◆ createCandidate() [1/3]
create a track candidate from one segment
- Parameters
-
[in] | seg1 | the first MuPatSegment to be added, ownership is NOT passed! |
[in] | seg2 | the second MuPatSegment to be added, ownership is NOT passed! |
[in] | track | the new track, ownership is passed to the candidate |
[out] | the | new candidate, ownership is passed to caller |
Definition at line 101 of file MuPatCandidateTool.cxx.
103 std::unique_ptr<MuPatTrack> candidate = std::make_unique< MuPatTrack>(&segInfo,
track);
◆ createCandidate() [2/3]
create a track candidate from two segments
- Parameters
-
[in] | seg1 | the first MuPatSegment to be added, ownership is NOT passed! |
[in] | seg2 | the second MuPatSegment to be added, ownership is NOT passed! |
[in] | track | the new track, ownership is passed to the candidate |
[out] | the | new candidate, ownership is passed to caller |
Definition at line 113 of file MuPatCandidateTool.cxx.
116 std::unique_ptr<MuPatTrack> candidate = std::make_unique<MuPatTrack>(&segInfo1, &segInfo2,
track);
◆ createCandidate() [3/3]
std::unique_ptr< MuPatTrack > Muon::MuPatCandidateTool::createCandidate |
( |
std::unique_ptr< Trk::Track > & |
track | ) |
const |
create a track candidate from a track
- Parameters
-
[in] | track | the new track, ownership is passed to the candidate |
[out] | the | new candidate, ownership is passed to caller |
Definition at line 121 of file MuPatCandidateTool.cxx.
123 std::vector<MuPatSegment*> segments;
126 std::unique_ptr<MuPatTrack> candidate = std::make_unique<MuPatTrack>(segments,
track);
◆ createSegInfo()
create a MuPatSegment object from a segment
- Parameters
-
[in] | segment | input segment |
[out] | the | MuPatSegment object, ownership is passed to caller |
Definition at line 53 of file MuPatCandidateTool.cxx.
59 std::unique_ptr<MuPatSegment>
info = std::make_unique<MuPatSegment>();
66 info->addChamber(chIdx);
68 if (!
info->name.empty())
info->name +=
"+";
70 std::ostringstream oss;
72 info->name += oss.str();
79 info->segQuality =
dynamic_cast<const MuonSegmentQuality*
>(
segment.fitQuality());
◆ 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]
◆ extendWithSegment()
extend a track candidate with a segment
- Parameters
-
[in] | can | the MuPatTrack to be extended |
[in] | track | the new track, ownership is passed to the candidate |
[in] | seg | the MuPatSegment to be added, ownership is NOT passed! |
[out] | true | if any segment was removed from the track, false if not |
Definition at line 89 of file MuPatCandidateTool.cxx.
◆ 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
◆ initialize()
StatusCode Muon::MuPatCandidateTool::initialize |
( |
| ) |
|
|
overridevirtual |
initialize method, method taken from bass-class AlgTool
Definition at line 39 of file MuPatCandidateTool.cxx.
50 return StatusCode::SUCCESS;
◆ 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& Muon::MuPatCandidateTool::interfaceID |
( |
| ) |
|
|
inlinestatic |
access to tool interface
Definition at line 66 of file MuPatCandidateTool.h.
67 static const InterfaceID IID_MuPatCandidateTool(
"Muon::MuPatCandidateTool", 1, 0);
68 return IID_MuPatCandidateTool;
◆ 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.
◆ print() [1/5]
Definition at line 492 of file MuPatCandidateTool.cxx.
493 const MuPatSegment* seg =
dynamic_cast<const MuPatSegment*
>(&candidate);
496 const MuPatTrack*
track =
dynamic_cast<const MuPatTrack*
>(&candidate);
499 return "Unknown candidate type";
◆ print() [2/5]
std::string Muon::MuPatCandidateTool::print |
( |
const MuPatSegment & |
segment, |
|
|
int |
level = 0 |
|
) |
| const |
print the measurements on the track to string
This really belongs in MuonEDMPrinterTool in package MuonRecHelperTools. However, due to the tight tag collecting policy for release 15.5.0, this change is not likely to get accepted there. To be moved there as soon as release 16 is open
Definition at line 447 of file MuPatCandidateTool.cxx.
448 std::ostringstream oss;
450 if (
level == 0)
return oss.str();
452 if (
segment.hitList().size() >= 2) {
453 DistanceAlongParameters distCal{};
454 oss <<
" length " << distCal(
segment.hitList().front(),
segment.hitList().back());
◆ print() [3/5]
std::string Muon::MuPatCandidateTool::print |
( |
const MuPatTrack & |
track, |
|
|
int |
level = 0 |
|
) |
| const |
Definition at line 470 of file MuPatCandidateTool.cxx.
471 std::ostringstream oss;
474 if (
level == 0)
return oss.str();
476 const std::vector<MuPatSegment*>& segs =
track.segments();
477 oss << std::endl <<
print(segs, 0);
◆ print() [4/5]
std::string Muon::MuPatCandidateTool::print |
( |
const std::vector< MuPatSegment * > & |
segments, |
|
|
int |
level = 0 |
|
) |
| const |
Definition at line 460 of file MuPatCandidateTool.cxx.
461 std::vector<MuPatSegment*>::const_iterator
it = segments.begin();
462 std::vector<MuPatSegment*>::const_iterator it_end = segments.end();
463 std::ostringstream oss;
464 oss <<
" Segment candidate vector: " << segments.size();
◆ print() [5/5]
std::string Muon::MuPatCandidateTool::print |
( |
const std::vector< std::unique_ptr< MuPatTrack > > & |
tracks, |
|
|
int |
level = 0 |
|
) |
| const |
Definition at line 482 of file MuPatCandidateTool.cxx.
483 std::ostringstream oss;
484 oss <<
"MuPatTracks " << tracks.size() << std::endl;
485 std::vector<std::unique_ptr<MuPatTrack> >::const_iterator
tit = tracks.begin();
486 std::vector<std::unique_ptr<MuPatTrack> >::const_iterator tit_end = tracks.end();
◆ readoutElements()
get list of the readout elements of the hits on the entry
Definition at line 420 of file MuPatCandidateTool.cxx.
421 std::set<const MuonGM::MuonReadoutElement*> roEls;
425 for (;
it != it_end; ++
it) {
426 if (!(*it)->info().id.is_valid())
continue;
433 const CompetingMuonClustersOnTrack* crot =
dynamic_cast<const CompetingMuonClustersOnTrack*
>(&meas);
435 const std::vector<const MuonClusterOnTrack*>& rots = crot->containedROTs();
436 if (!rots.empty()) rot = rots.front();
441 if (roEl) roEls.insert(roEl);
◆ recalculateCandidateSegmentContent()
bool Muon::MuPatCandidateTool::recalculateCandidateSegmentContent |
( |
MuPatTrack & |
candidate | ) |
const |
recalculate the chamber indices on the candidate and reset them.
Return whether segment has been removed.
Definition at line 371 of file MuPatCandidateTool.cxx.
374 if (!
states)
return false;
376 std::set<MuonStationIndex::ChIndex> chambers;
399 ATH_MSG_VERBOSE(
" recalculateCandidateSegmentContent, old chambers " << candidate.chambers().size() <<
" new chambers "
407 bool bRemovedSegments = candidate.resetChambersOnCandidate(chambers);
410 candidate.hitList().clear();
411 m_hitHandler->create(candidate.track(), candidate.hitList());
413 updateHits(candidate, candidate.track().measurementsOnTrack()->stdcont());
417 return bRemovedSegments;
◆ renounce()
◆ renounceArray()
◆ 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.
◆ updateHits()
void Muon::MuPatCandidateTool::updateHits |
( |
MuPatCandidateBase & |
entry, |
|
|
const MeasVec & |
measurements, |
|
|
bool |
recreateMDT = false , |
|
|
bool |
recreateCSC = false , |
|
|
bool |
createComp = false |
|
) |
| const |
|
private |
update hits for a MuPatCandidateBase
Definition at line 131 of file MuPatCandidateTool.cxx.
133 MeasVec etaHits{}, phiHits{}, fakePhiHits{}, allHits{};
135 unsigned int nmdtHitsMl1{0}, nmdtHitsMl2{0}, ncscHitsEta{0}, ncscHitsPhi{0}, nrpcHitsEta{0}, nrpcHitsPhi{0}, ntgcHitsEta{0},
138 entry.clearChambers();
140 bool hasEndcap{
false}, hasSmall{
false}, hasLarge{
false}, hassloverlap{
false}, previssmall{
false};
146 std::vector<const MuonClusterOnTrack*> triggerHitsPhi{}, triggerHitsEta{};
149 bool is_first_meas =
true;
152 if (!
id.is_valid()) {
153 fakePhiHits.push_back(meas);
165 bool measuresPhi =
false;
171 if (isMdt || isCsc || isNSW) {
173 entry.chamberIds().insert(chId);
180 " recreation of MDTs requiered although not configured via jobO, ignoring request. Please check jobO ");
182 const auto* mdt =
dynamic_cast<const MdtDriftCircleOnTrack*
>(meas);
188 meas =
entry.addToTrash
189 (std::unique_ptr<const MdtDriftCircleOnTrack>
190 (
m_mdtRotCreator->createRIO_OnTrack(*mdt->prepRawData(), mdt->globalPosition())));
198 if (
isSmall != previssmall && !is_first_meas && stIndex == prevstIndex) hassloverlap =
true;
200 is_first_meas =
false;
202 prevstIndex = stIndex;
204 unsigned int ml =
m_idHelperSvc->mdtIdHelper().multilayer(
id);
205 nmdtHitsMl1 += (ml ==1);
206 nmdtHitsMl2 += (ml ==2);
212 nrpcHitsPhi += (measuresPhi && isRpc);
213 nrpcHitsEta += (!measuresPhi && isRpc);
215 ntgcHitsPhi += (measuresPhi && isTgc);
216 ntgcHitsEta += (!measuresPhi && isTgc);
218 ncscHitsPhi+= (measuresPhi && isCsc);
219 ncscHitsEta+= (!measuresPhi && isCsc);
220 if (isCsc && recreateCSC) {
221 const auto* csc =
dynamic_cast<const CscClusterOnTrack*
>(meas);
227 meas =
entry.addToTrash
228 (std::unique_ptr<const MuonClusterOnTrack>
229 (
m_cscRotCreator->createRIO_OnTrack(*csc->prepRawData(), csc->globalPosition())));
234 if (createComp && (isRpc || isTgc)) {
245 allHits.push_back(meas);
248 phiHits.push_back(meas);
250 etaHits.push_back(meas);
259 entry.nmdtHitsMl1 = nmdtHitsMl1;
260 entry.nmdtHitsMl2 = nmdtHitsMl2;
261 entry.ncscHitsEta = ncscHitsEta;
262 entry.ncscHitsPhi = ncscHitsPhi;
263 entry.nrpcHitsEta = nrpcHitsEta;
264 entry.nrpcHitsPhi = nrpcHitsPhi;
265 entry.ntgcHitsEta = ntgcHitsEta;
266 entry.ntgcHitsPhi = ntgcHitsPhi;
267 if (!triggerHitsEta.empty() && etaHits.empty()) {
270 entry.setEtaHits(etaHits);
271 if (!triggerHitsPhi.empty() && phiHits.empty()) {
274 entry.setPhiHits(phiHits);
275 entry.setFakePhiHits(fakePhiHits);
276 entry.setAllHits(allHits);
277 entry.hasEndcap(hasEndcap);
278 entry.hasSmallChamber(hasSmall);
279 entry.hasLargeChamber(hasLarge);
280 entry.hasSLOverlap(hassloverlap);
◆ updateTrack()
bool Muon::MuPatCandidateTool::updateTrack |
( |
MuPatTrack & |
candidate, |
|
|
std::unique_ptr< Trk::Track > & |
track |
|
) |
| const |
set the new track in the candidate, and update candidate contents.
Candidate takes ownership of track. Returns whether segments have been removed compared to the pre-existing list of segments.
Definition at line 108 of file MuPatCandidateTool.cxx.
109 candidate.updateTrack(
track);
◆ updateVHKA()
◆ m_compClusterCreator
Initial value:{
this, "CompetingClustersCreator", "Muon::TriggerChamberClusterOnTrackCreator/TriggerChamberClusterOnTrackCreator",
"tool to create competing clusters on track"}
Definition at line 157 of file MuPatCandidateTool.h.
◆ m_createCompetingROTsEta
Gaudi::Property<bool> Muon::MuPatCandidateTool::m_createCompetingROTsEta {this, "CreateCompetingROTsEta", true} |
|
private |
◆ m_createCompetingROTsPhi
Gaudi::Property<bool> Muon::MuPatCandidateTool::m_createCompetingROTsPhi {this, "CreateCompetingROTsPhi", false} |
|
private |
◆ m_cscRotCreator
Initial value:{
this, "CscRotCreator", "Muon::CscClusterOnTrackCreator/CscClusterOnTrackCreator", "tool to calibrate CSC hits"}
Definition at line 155 of file MuPatCandidateTool.h.
◆ m_detStore
◆ m_doCscRecreation
Gaudi::Property<bool> Muon::MuPatCandidateTool::m_doCscRecreation {this, "DoCscRecreation", true} |
|
private |
◆ m_doMdtRecreation
Gaudi::Property<bool> Muon::MuPatCandidateTool::m_doMdtRecreation {this, "DoMdtRecreation", false} |
|
private |
◆ m_edmHelperSvc
Initial value:{this, "edmHelper", "Muon::MuonEDMHelperSvc/MuonEDMHelperSvc",
"Handle to the service providing the IMuonEDMHelperSvc interface"}
Definition at line 161 of file MuPatCandidateTool.h.
◆ m_evtStore
◆ m_hitHandler
◆ m_idHelperSvc
◆ m_mdtRotCreator
Initial value:{
this, "MdtRotCreator", "Muon::MdtDriftCircleOnTrackCreator/MdtDriftCircleOnTrackCreator", "tool to calibrate MDT hits"}
Definition at line 153 of file MuPatCandidateTool.h.
◆ m_printer
◆ m_segmentSelector
Initial value:{
this, "SegmentSelector", "Muon::MuonSegmentSelectionTool/MuonSegmentSelectionTool", "Tool to resolve track ambiguities"}
Definition at line 165 of file MuPatCandidateTool.h.
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
JetConstituentVector::iterator iterator
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
bool msgLvl(const MSG::Level lvl) const
#define ATH_MSG_VERBOSE(x)
virtual void setOwner(IDataHandleHolder *o)=0
Base class for the XxxReadoutElement, with Xxx = Mdt, Rpc, Tgc, Csc.
@ Outlier
This TSoS contains an outlier, that is, it contains a MeasurementBase/RIO_OnTrack which was not used ...
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
ChIndex chIndex(const std::string &index)
convert ChIndex name string to enum
MuPatHitList::const_iterator MuPatHitCit
const std::string & chName(ChIndex index)
convert ChIndex into a string
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
StIndex
enum to classify the different station layers in the muon spectrometer
represents the track state (measurement, material, fit parameters and quality) at a surface.
#define ATH_MSG_WARNING(x)
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
ChIndex
enum to classify the different chamber layers in the muon spectrometer
virtual const TrkDetElementBase * detectorElement() const =0
returns the detector element, assoicated with the PRD of this class
@ Measurement
This is a measurement, and will at least contain a Trk::MeasurementBase.
bool isSmall(const ChIndex index)
Returns true if the chamber index is in a small sector.
Muon::NSW_PadTriggerSegment segment(const NSWL1::PadTrigger &data)