ATLAS Offline Software
|
The MuonInDetToMuonSystemExtensionAlg processes further the InDetCandidates created by the MuonCombinedInDetCandidateAlg. More...
#include <MuonInDetToMuonSystemExtensionAlg.h>
Classes | |
struct | InDetCandidateCache |
struct | MuidCoCache |
Helper struct to cache the MuidCo track and it's associated segments while keeping the association InDetCandidate <– > muidCo Tag. More... | |
Public Member Functions | |
MuonInDetToMuonSystemExtensionAlg (const std::string &name, ISvcLocator *pSvcLocator) | |
~MuonInDetToMuonSystemExtensionAlg ()=default | |
StatusCode | initialize () override |
StatusCode | execute (const EventContext &ctx) const override |
virtual StatusCode | sysInitialize () override |
Override sysInitialize. More... | |
virtual bool | isClonable () const override |
Specify if the algorithm is clonable. More... | |
virtual unsigned int | cardinality () const override |
Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant. More... | |
virtual StatusCode | sysExecute (const EventContext &ctx) override |
Execute an algorithm. More... | |
virtual const DataObjIDColl & | extraOutputDeps () const override |
Return the list of extra output dependencies. More... | |
virtual bool | filterPassed (const EventContext &ctx) const |
virtual void | setFilterPassed (bool state, const EventContext &ctx) 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 | 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 |
Protected Member Functions | |
void | renounceArray (SG::VarHandleKeyArray &handlesArray) |
remove all handles from I/O resolution More... | |
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. More... | |
Private Types | |
using | MuidCoVector = std::vector< MuidCoCache > |
typedef ServiceHandle< StoreGateSvc > | StoreGateSvc_t |
Private Member Functions | |
StatusCode | selectCandidates (const EventContext &ctx, InDetCandidateCache &cache) const |
Select the MuidCo candidates and put the associated id tracks on a black list. More... | |
StatusCode | findHitSectors (const EventContext &ctx, InDetCandidateCache &output_cache) const |
Find the sectors in the MS with muon signals. More... | |
StatusCode | findSegments (const EventContext &ctx, InDetCandidateCache &output_cache) const |
Select good segments. More... | |
bool | hasMatchingSegment (const MuonCombined::InDetCandidate &id_cand, const InDetCandidateCache &cache) const |
Searches for segments within theta < 0.2 && sharing the same sector. More... | |
bool | hasMatchingSeed (const MuonCombined::InDetCandidate &id_cand, const InDetCandidateCache &cache) const |
Searches for hough seeds within theta < 0.2 && sharing the same sector. More... | |
StatusCode | create (const EventContext &ctx, InDetCandidateCache &cache) const |
Create the InDetCandidaes with system extensions. More... | |
StatusCode | createStaus (const EventContext &ctx, const InDetCandidateCollection *ext_candidates, const MuidCoVector &tag_map) const |
void | maskHits (const Muon::MuonSegment *muon_seg, InDetCandidateCache &output_cache) const |
Mask the hits of the corresponding muon segment as used. More... | |
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... | |
Private Attributes | |
SG::ReadHandleKey< InDetCandidateCollection > | m_inputCandidate {this, "InputInDetCandidates", "InDetCandidates"} |
SG::WriteHandleKey< InDetCandidateCollection > | m_bulkInDetCandKey {this, "WriteInDetCandidates", "InDetCandidatesSystemExtened"} |
Collection of InDet candidates written for MuGirl and MuonSegmentTag. More... | |
SG::WriteHandleKey< InDetCandidateCollection > | m_stauInDetCandKey {this, "WriteStauCandidates", ""} |
Collection of InDet candidates written for MuGirlStau. More... | |
SG::ReadHandleKey< Muon::HoughDataPerSectorVec > | m_houghDataPerSectorVecKey |
Use the hough data to find sectors in the speectrometer traversed by a muon. More... | |
SG::ReadHandleKey< Trk::SegmentCollection > | m_segmentKey |
Let's exploit the segments to get rid of as much tracks as possible. More... | |
PublicToolHandle< Muon::IMuonSegmentSelectionTool > | m_segmentSelector |
ToolHandle< Muon::IMuonSystemExtensionTool > | m_muonSystemExtensionTool {this, "MuonSystemExtensionTool", "", "Muon system extension tool"} |
The system extension tool extrapolates the candidate through the spectrometer. More... | |
SG::ReadHandleKey< MuonCombined::InDetCandidateToTagMap > | m_combTagMap {this, "CombinedTagMap", "muidcoTagMap", "Combined muon tag map"} |
That is the collection of MuidCo candidates. More... | |
ServiceHandle< Muon::IMuonIdHelperSvc > | m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"} |
ServiceHandle< Muon::IMuonEDMHelperSvc > | m_edmHelperSvc |
Gaudi::Property< bool > | m_restrictExtension {this, "UseOnlyHitSectors", false} |
Restrict the extrapolation of ID tracks to sectors in the MS where at least a hit is recorded. More... | |
Gaudi::Property< int > | m_houghMin {this, "minHoughHits", 4, "Minimum number of hits required for a hough maximum to be accepted"} |
The hough maxima always contain at least 2 hits. More... | |
Gaudi::Property< int > | m_segmentQuality {this, "segQuality", 1, "Quality cut on the segment."} |
Gaudi::Property< bool > | m_excludeNSW {this, "noNSWforSeeding", false, "Ignore hits/segments from the NSW"} |
Prelimnary studies have shown that the NSWs generate a massive amount of fake candidates. More... | |
Gaudi::Property< float > | m_extThreshold {this, "ExtensionPtThreshold", 2500} |
Minimum pt threshold of the IdCandidate to be extrapolated through the spectrometer. More... | |
Gaudi::Property< bool > | m_extendSAF {this, "ExtendSAF", false} |
Shall SAF tracks be equiped with a muon system extension used by MuGirl later. More... | |
Gaudi::Property< bool > | m_extendBulk {this, "ExtendBulk", true} |
Shall ordinary ID tracks be equiped with a muon system extension used by MuGirl later. More... | |
const Muon::MuonSectorMapping | m_sector_mapping {} |
DataObjIDColl | m_extendedExtraObjects |
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks. More... | |
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 |
The MuonInDetToMuonSystemExtensionAlg processes further the InDetCandidates created by the MuonCombinedInDetCandidateAlg.
The idea is that the latter is only selecting the Id tracks based on the outcome of the Id selection tool and whether a CaloExtension could be successfully attached. This information is full sufficient to run the MuonCombinedAlg and the MuonCalo algorithms, but not the SegmentTagging or muGirl. InDetCandidates, not combined to a full muon track by MuidCo (STACO generates to much noise) are copied and then equipped with the muonSystem extension.
Definition at line 34 of file MuonInDetToMuonSystemExtensionAlg.h.
|
private |
Definition at line 76 of file MuonInDetToMuonSystemExtensionAlg.h.
|
privateinherited |
Definition at line 388 of file AthCommonDataStore.h.
MuonInDetToMuonSystemExtensionAlg::MuonInDetToMuonSystemExtensionAlg | ( | const std::string & | name, |
ISvcLocator * | pSvcLocator | ||
) |
Definition at line 31 of file MuonInDetToMuonSystemExtensionAlg.cxx.
|
default |
|
overridevirtualinherited |
Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant.
Override this to return 0 for reentrant algorithms.
Override this to return 0 for reentrant algorithms.
Definition at line 55 of file AthReentrantAlgorithm.cxx.
|
private |
Create the InDetCandidaes with system extensions.
We want these tracks to be extrapolated through the spectrometer reject those no meeting the basic requirements
Prepare the system extension
The candidate already has somehow a system extension --> it's just a matter of copying it
The system extension does not own the MuonEntryLayerIntersection()-> it's fine
If the id candidate has a matching segment, then we know that this track can be potentially reconstructed by MuTagIMO
Definition at line 102 of file MuonInDetToMuonSystemExtensionAlg.cxx.
|
private |
This will copy the existing candidates to the new container without calling the system extension tool
For the staus it is quite unclear what is the overlap between MuidCo and MuGirlStau. So in order to be on the safe side we add the MuidCo candidate tracks as well, but we also try to avoid the extrapolator like a cat does for a bubble bath. By taking the perigee parameters of the associated muon segments, we have a much much shorter path to extrapolate the track to the MuonLayerInterSection surfaces.
Definition at line 338 of file MuonInDetToMuonSystemExtensionAlg.cxx.
|
inlineprivateinherited |
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
|
inlineprivateinherited |
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
|
inlineprivateinherited |
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
|
inlineprivateinherited |
specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>
Definition at line 199 of file AthCommonDataStore.h.
|
inlineinherited |
Declare a new Gaudi property.
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.
|
inlineinherited |
Declare a new Gaudi property.
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.
|
inlineinherited |
Definition at line 259 of file AthCommonDataStore.h.
|
inlineinherited |
Declare a new Gaudi property.
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.
|
inlineinherited |
Declare a new Gaudi property.
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.
|
inlineinherited |
Definition at line 145 of file AthCommonDataStore.h.
|
inlineinherited |
The standard StoreGateSvc/DetectorStore
Returns (kind of) a pointer to the StoreGateSvc
.
Definition at line 95 of file AthCommonDataStore.h.
|
inlineinherited |
The standard StoreGateSvc
(event store) Returns (kind of) a pointer to the StoreGateSvc
.
Definition at line 85 of file AthCommonDataStore.h.
|
inlineinherited |
The standard StoreGateSvc
(event store) Returns (kind of) a pointer to the StoreGateSvc
.
Definition at line 90 of file AthCommonDataStore.h.
|
override |
Definition at line 49 of file MuonInDetToMuonSystemExtensionAlg.cxx.
|
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
|
overridevirtualinherited |
Return the list of extra output dependencies.
This list is extended to include symlinks implied by inheritance relations.
Definition at line 79 of file AthReentrantAlgorithm.cxx.
|
inlinevirtualinherited |
Definition at line 135 of file AthReentrantAlgorithm.h.
|
private |
Find the sectors in the MS with muon signals.
Helper function to cound whether all three stations are actually complete
The phi-hit vector has a size of 3 representing the forward-backward and barrel sections
Hits built into a MuidCo track
Subtract the hits used by MuidCo from the hough seeds
Find the chamber with the largest number of hits
Average the theta
Loop over the maxima & find the hit sectors
Remove all hits from the seed that are built into a segment
If the seed has still more than the minimum. Then let's mark the sector as hit
Cache the eta value additionally
Definition at line 179 of file MuonInDetToMuonSystemExtensionAlg.cxx.
|
private |
Select good segments.
Check if the segment is part of a MuidCo muon
Mask all hits from the Hough seeds
Definition at line 260 of file MuonInDetToMuonSystemExtensionAlg.cxx.
|
private |
Searches for hough seeds within theta < 0.2 && sharing the same sector.
Definition at line 322 of file MuonInDetToMuonSystemExtensionAlg.cxx.
|
private |
Searches for segments within theta < 0.2 && sharing the same sector.
Definition at line 293 of file MuonInDetToMuonSystemExtensionAlg.cxx.
|
override |
Definition at line 34 of file MuonInDetToMuonSystemExtensionAlg.cxx.
|
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.
|
overridevirtualinherited |
Specify if the algorithm is clonable.
Reentrant algorithms are clonable.
Reimplemented in Simulation::BeamEffectsAlg, InDet::SiTrackerSpacePointFinder, InDet::SCT_Clusterization, InDet::SiSPSeededTrackFinder, SCTRawDataProvider, InDet::GNNSeedingTrackMaker, SCT_PrepDataToxAOD, RoIBResultToxAOD, InDet::SiSPGNNTrackMaker, SCT_CablingCondAlgFromCoraCool, SCT_ReadCalibDataTestAlg, SCT_CablingCondAlgFromText, SCT_ReadCalibChipDataTestAlg, SCT_TestCablingAlg, SCT_ConfigurationConditionsTestAlg, ITkPixelCablingAlg, ITkStripCablingAlg, SCTEventFlagWriter, SCT_ConditionsSummaryTestAlg, SCT_ModuleVetoTestAlg, SCT_MonitorConditionsTestAlg, SCT_LinkMaskingTestAlg, SCT_MajorityConditionsTestAlg, SCT_RODVetoTestAlg, SCT_SensorsTestAlg, SCT_TdaqEnabledTestAlg, SCT_SiliconConditionsTestAlg, SCTSiLorentzAngleTestAlg, SCT_ByteStreamErrorsTestAlg, SCT_ConditionsParameterTestAlg, SCT_FlaggedConditionTestAlg, SCT_StripVetoTestAlg, SCT_RawDataToxAOD, and SCTSiPropertiesTestAlg.
Definition at line 44 of file AthReentrantAlgorithm.cxx.
|
private |
Mask the hits of the corresponding muon segment as used.
Definition at line 379 of file MuonInDetToMuonSystemExtensionAlg.cxx.
|
inlineinherited |
Definition at line 24 of file AthCommonMsg.h.
|
inlineinherited |
Definition at line 27 of file AthCommonMsg.h.
|
inlineinherited |
Definition at line 30 of file AthCommonMsg.h.
|
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.
|
inlineprotectedinherited |
Definition at line 380 of file AthCommonDataStore.h.
|
inlineprotectedinherited |
remove all handles from I/O resolution
Definition at line 364 of file AthCommonDataStore.h.
|
private |
Select the MuidCo candidates and put the associated id tracks on a black list.
Definition at line 75 of file MuonInDetToMuonSystemExtensionAlg.cxx.
|
inlinevirtualinherited |
Definition at line 139 of file AthReentrantAlgorithm.h.
|
overridevirtualinherited |
Execute an algorithm.
We override this in order to work around an issue with the Algorithm base class storing the event context in a member variable that can cause crashes in MT jobs.
Definition at line 67 of file AthReentrantAlgorithm.cxx.
|
overridevirtualinherited |
Override sysInitialize.
Override sysInitialize from the base class.
Loop through all output handles, and if they're WriteCondHandles, automatically register them and this Algorithm with the CondSvc
Scan through all outputHandles, and if they're WriteCondHandles, register them with the CondSvc
Reimplemented from AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >.
Reimplemented in InputMakerBase, and HypoBase.
Definition at line 96 of file AthReentrantAlgorithm.cxx.
|
overridevirtualinherited |
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
|
inlineinherited |
Definition at line 308 of file AthCommonDataStore.h.
|
private |
Collection of InDet candidates written for MuGirl and MuonSegmentTag.
Definition at line 46 of file MuonInDetToMuonSystemExtensionAlg.h.
|
private |
That is the collection of MuidCo candidates.
Definition at line 63 of file MuonInDetToMuonSystemExtensionAlg.h.
|
privateinherited |
Pointer to StoreGate (detector store by default)
Definition at line 393 of file AthCommonDataStore.h.
|
private |
Definition at line 67 of file MuonInDetToMuonSystemExtensionAlg.h.
|
privateinherited |
Pointer to StoreGate (event store by default)
Definition at line 390 of file AthCommonDataStore.h.
|
private |
Prelimnary studies have shown that the NSWs generate a massive amount of fake candidates.
Definition at line 113 of file MuonInDetToMuonSystemExtensionAlg.h.
|
private |
Shall ordinary ID tracks be equiped with a muon system extension used by MuGirl later.
Definition at line 119 of file MuonInDetToMuonSystemExtensionAlg.h.
|
privateinherited |
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
Empty if no symlinks were found.
Definition at line 153 of file AthReentrantAlgorithm.h.
|
private |
Shall SAF tracks be equiped with a muon system extension used by MuGirl later.
Definition at line 117 of file MuonInDetToMuonSystemExtensionAlg.h.
|
private |
Minimum pt threshold of the IdCandidate to be extrapolated through the spectrometer.
Definition at line 115 of file MuonInDetToMuonSystemExtensionAlg.h.
|
private |
Use the hough data to find sectors in the speectrometer traversed by a muon.
Definition at line 51 of file MuonInDetToMuonSystemExtensionAlg.h.
|
private |
The hough maxima always contain at least 2 hits.
If a muon track passes through a chamber one expects more than that. Apply a minimum cuts on the hits in the hough maximum to reject background --> needs to be further tuned
Definition at line 109 of file MuonInDetToMuonSystemExtensionAlg.h.
|
private |
Definition at line 65 of file MuonInDetToMuonSystemExtensionAlg.h.
|
private |
Definition at line 43 of file MuonInDetToMuonSystemExtensionAlg.h.
|
private |
The system extension tool extrapolates the candidate through the spectrometer.
Definition at line 61 of file MuonInDetToMuonSystemExtensionAlg.h.
|
private |
Restrict the extrapolation of ID tracks to sectors in the MS where at least a hit is recorded.
Definition at line 106 of file MuonInDetToMuonSystemExtensionAlg.h.
|
private |
Definition at line 121 of file MuonInDetToMuonSystemExtensionAlg.h.
|
private |
Let's exploit the segments to get rid of as much tracks as possible.
Definition at line 54 of file MuonInDetToMuonSystemExtensionAlg.h.
|
private |
Definition at line 111 of file MuonInDetToMuonSystemExtensionAlg.h.
|
private |
Definition at line 57 of file MuonInDetToMuonSystemExtensionAlg.h.
|
private |
Collection of InDet candidates written for MuGirlStau.
Definition at line 48 of file MuonInDetToMuonSystemExtensionAlg.h.
|
privateinherited |
Definition at line 399 of file AthCommonDataStore.h.
|
privateinherited |
Definition at line 398 of file AthCommonDataStore.h.