![]() |
ATLAS Offline Software
|
tool to select tracks More...
#include <MuonChamberHoleRecoveryTool.h>
Classes | |
| struct | RecoveryState |
Public Types | |
| using | NewTrackStates = std::vector<std::unique_ptr<const Trk::TrackStateOnSurface>> |
Public Member Functions | |
| MuonChamberHoleRecoveryTool (const std::string &, const std::string &, const IInterface *) | |
| virtual | ~MuonChamberHoleRecoveryTool ()=default |
| StatusCode | initialize () override |
| std::unique_ptr< Trk::Track > | recover (const Trk::Track &track, const EventContext &ctx) const override |
| returns a new track with holes recovered | |
| void | createHoleTSOSsForClusterChamber (const Identifier &detElId, const EventContext &ctx, const Trk::TrackParameters &pars, std::set< Identifier > &layIds, NewTrackStates &states) const override |
| ServiceHandle< StoreGateSvc > & | evtStore () |
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. | |
| const ServiceHandle< StoreGateSvc > & | detStore () const |
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. | |
| virtual StatusCode | sysInitialize () override |
| Perform system initialization for an algorithm. | |
| virtual StatusCode | sysStart () override |
| Handle START transition. | |
| virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. | |
| virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. | |
| Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T, V, H > &t) |
| void | updateVHKA (Gaudi::Details::PropertyBase &) |
| MsgStream & | msg () const |
| bool | msgLvl (const MSG::Level lvl) const |
| virtual void | createHoleTSOSsForClusterChamber (const Identifier &detElId, const EventContext &ctx, const Trk::TrackParameters &pars, std::set< Identifier > &layIds, std::vector< std::unique_ptr< const Trk::TrackStateOnSurface > > &states) const =0 |
Static Public Member Functions | |
| static const InterfaceID & | interfaceID () |
| access to tool interface | |
Protected Member Functions | |
| void | renounceArray (SG::VarHandleKeyArray &handlesArray) |
| remove all handles from I/O resolution | |
| 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. | |
Private Types | |
| typedef ServiceHandle< StoreGateSvc > | StoreGateSvc_t |
Private Member Functions | |
| bool | getNextMuonMeasurement (RecoveryState &trkRecov, RecoveryState::CopyTarget target) const |
| Increments the internal iterator of the RecoveryState until the next muon measurement on track is found Measurements inside the MS volume or any scatterer are copied automatically copied onto the target vector. | |
| void | recoverHitsInChamber (const EventContext &ctx, RecoveryState &trkRecov) const |
| Loops over all muon hits in a muon chamber and tries to find missed ones by checking each tracking layer for hits. | |
| std::set< Identifier > | holesInMdtChamber (const EventContext &ctx, const Amg::Vector3D &position, const Amg::Vector3D &direction, const Identifier &chId, const std::set< Identifier > &tubeIds) const |
| calculate holes in a given chamber using local straight line extrapolation | |
| void | recoverMdtHits (const EventContext &ctx, const Identifier &chId, const Trk::TrackParameters &pars, NewTrackStates &newStates, std::set< Identifier > &knownLayers) const |
| void | recoverClusterHits (const EventContext &ctx, const Identifier &chId, const Trk::TrackParameters &chambPars, NewTrackStates &newStates, std::set< Identifier > &knownLayers) const |
| std::set< Identifier > | layersOnTrkIds (const Trk::Track &track) const |
| Returns a set of all layer Identifiers of the associated track hits. | |
| const Trk::TrkDetElementBase * | getDetectorElement (const EventContext &ctx, const Identifier &id) const |
| Returns the detector element associated with the muon Identifier. | |
| std::set< Identifier > | getHoleLayerIds (const Identifier &detElId, const std::set< Identifier > &knownLayers) const |
| Returns a set of all layer Identifiers (GasGap + channel orientation) in a muon chamber of type X excluding the ones in the knownLayers set. | |
| template<class Prd> | |
| NewTrackStates | recoverChamberClusters (const EventContext &ctx, const SG::ReadHandleKey< MuonPrepDataContainerT< Prd > > &prdKey, const Identifier &chambId, const Trk::TrackParameters &parsInChamb, std::set< Identifier > &knownLayers) const |
| Attempts to recover all missing hits in a chamber. | |
| template<class Prd> | |
| std::vector< const Prd * > | loadPrepDataHits (const EventContext &ctx, const SG::ReadHandleKey< MuonPrepDataContainerT< Prd > > &key, const std::set< Identifier > &layerIds) const |
| Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKey> | |
Private Attributes | |
| ServiceHandle< Muon::IMuonIdHelperSvc > | m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"} |
| ServiceHandle< Muon::IMuonEDMHelperSvc > | m_edmHelperSvc |
| ServiceHandle< Trk::ITrackingVolumesSvc > | m_trackingVolumesSvc {this, "TrackingVolumesSvc", "Trk::TrackingVolumesSvc/TrackingVolumesSvc"} |
| PublicToolHandle< Muon::MuonEDMPrinterTool > | m_printer {this, "EDMPrinter", "Muon::MuonEDMPrinterTool/MuonEDMPrinterTool"} |
| ToolHandle< Trk::IExtrapolator > | m_extrapolator {this, "Extrapolator", "Trk::Extrapolator/MuonExtrapolator"} |
| ToolHandle< Muon::IMdtDriftCircleOnTrackCreator > | m_mdtRotCreator |
| ToolHandle< Muon::IMuonClusterOnTrackCreator > | m_cscRotCreator |
| ToolHandle< Muon::IMuonClusterOnTrackCreator > | m_clusRotCreator |
| ToolHandle< Trk::IResidualPullCalculator > | m_pullCalculator |
| SG::ReadCondHandleKey< MuonGM::MuonDetectorManager > | m_DetectorManagerKey |
| SG::ReadHandleKey< Muon::MdtPrepDataContainer > | m_key_mdt {this, "MdtPrepDataContainer", "MDT_DriftCircles", "MDT PRDs"} |
| SG::ReadHandleKey< Muon::CscPrepDataContainer > | m_key_csc {this, "CscPrepDataContainer", "CSC_Clusters", "CSC PRDS"} |
| SG::ReadHandleKey< Muon::TgcPrepDataContainer > | m_key_tgc {this, "TgcPrepDataContainer", "TGC_Measurements", "TGC PRDs"} |
| SG::ReadHandleKey< Muon::RpcPrepDataContainer > | m_key_rpc {this, "RpcPrepDataContainer", "RPC_Measurements", "RPC PRDs"} |
| SG::ReadHandleKey< Muon::sTgcPrepDataContainer > | m_key_stgc {this, "sTgcPrepDataContainer", "STGC_Measurements", "sTGC PRDs"} |
| SG::ReadHandleKey< Muon::MMPrepDataContainer > | m_key_mm {this, "MMPrepDataContainer", "MM_Measurements", "MM PRDs"} |
| SG::ReadCondHandleKey< Muon::MuonIntersectGeoData > | m_chamberGeoKey {this, "ChamberGeoKey", "MuonStationIntersects", "Pointer to hole search service"} |
| Gaudi::Property< bool > | m_addMeasurements {this, "AddMeasurements", true} |
| Gaudi::Property< bool > | m_detectBadSort {this, "DetectBadSorting", false} |
| Gaudi::Property< double > | m_associationPullCutEta {this, "AssociationPullCutEta", 3} |
| Gaudi::Property< double > | m_associationPullCutPhi {this, "AssociationPullCutPhi", 10} |
| Gaudi::Property< double > | m_adcCut {this, "AdcCut", 50} |
| StoreGateSvc_t | m_evtStore |
| Pointer to StoreGate (event store by default) | |
| StoreGateSvc_t | m_detStore |
| Pointer to StoreGate (detector store by default) | |
| std::vector< SG::VarHandleKeyArray * > | m_vhka |
| bool | m_varHandleArraysDeclared |
tool to select tracks
Definition at line 34 of file MuonChamberHoleRecoveryTool.h.
| using Muon::MuonChamberHoleRecoveryTool::NewTrackStates = std::vector<std::unique_ptr<const Trk::TrackStateOnSurface>> |
Definition at line 40 of file MuonChamberHoleRecoveryTool.h.
|
privateinherited |
Definition at line 388 of file AthCommonDataStore.h.
| Muon::MuonChamberHoleRecoveryTool::MuonChamberHoleRecoveryTool | ( | const std::string & | ty, |
| const std::string & | na, | ||
| const IInterface * | pa ) |
Definition at line 89 of file MuonChamberHoleRecoveryTool.cxx.
|
virtualdefault |
|
pure virtualinherited |
|
override |
Definition at line 344 of file MuonChamberHoleRecoveryTool.cxx.
|
inlineprivateinherited |
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 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.
|
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
|
private |
Returns the detector element associated with the muon Identifier.
Definition at line 354 of file MuonChamberHoleRecoveryTool.cxx.
|
private |
Returns a set of all layer Identifiers (GasGap + channel orientation) in a muon chamber of type X excluding the ones in the knownLayers set.
the second gas gap of the three layer stations does not have a phi measurement
Definition at line 459 of file MuonChamberHoleRecoveryTool.cxx.
|
private |
Increments the internal iterator of the RecoveryState until the next muon measurement on track is found Measurements inside the MS volume or any scatterer are copied automatically copied onto the target vector.
Copy all track states inside the MS
Scatteres AEOTs, material etc.
Definition at line 121 of file MuonChamberHoleRecoveryTool.cxx.
|
private |
calculate holes in a given chamber using local straight line extrapolation
| pars | TrackParameters in the chamber |
| chId | Identifier of the chamber |
| tubeIds | set containing the Identifier of the hits that should not be counted as holes |
Definition at line 378 of file MuonChamberHoleRecoveryTool.cxx.
|
override |
Definition at line 94 of file MuonChamberHoleRecoveryTool.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.
|
inlinestaticinherited |
access to tool interface
Definition at line 23 of file IMuonHoleRecoveryTool.h.
|
private |
Returns a set of all layer Identifiers of the associated track hits.
Definition at line 156 of file MuonChamberHoleRecoveryTool.cxx.
|
private |
Create a subset of Identifiers
Sort the Mdt prepdatas per Identifier as there's the possibily 2 DC can exist for the same channel
Definition at line 413 of file MuonChamberHoleRecoveryTool.cxx.
|
inlineinherited |
Definition at line 24 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.
|
overridevirtual |
returns a new track with holes recovered
Copy all parameters befor the MS onto the new track state
Start an iterative recovery looping over each chamber
Implements Muon::IMuonHoleRecoveryTool.
Definition at line 177 of file MuonChamberHoleRecoveryTool.cxx.
|
private |
Attempts to recover all missing hits in a chamber.
The hit is out of bounds --> continue
Loop over all prd candidates
The surface cannot be reached. Discard the prd
Compare the pad & local positions
Calculate the pull by hand
For one reason or another, the pads have 1D covariances
Check whether the pull is reasonable
Assign the best pad onto the track
Calculate the track pull
the best clusters are found. Put them onto the track
Next loop over the reamining parameters at surface to create holes
Definition at line 530 of file MuonChamberHoleRecoveryTool.cxx.
|
private |
Definition at line 324 of file MuonChamberHoleRecoveryTool.cxx.
|
private |
Loops over all muon hits in a muon chamber and tries to find missed ones by checking each tracking layer for hits.
If a new chamber is reached another iteration of the method is called
Collect all hits in a chamber
New chamber added
Definition at line 193 of file MuonChamberHoleRecoveryTool.cxx.
|
private |
calculate Amg::Vector2D using surf to obtain sign
calculate side
update sign
pointer to resPull
Overwrite the previous drift circle if the pull of this one is better or it's an outlier
Definition at line 217 of file MuonChamberHoleRecoveryTool.cxx.
|
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.
|
overridevirtualinherited |
Perform system initialization for an algorithm.
We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.
Reimplemented in asg::AsgMetadataTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and DerivationFramework::CfAthAlgTool.
|
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 |
Definition at line 197 of file MuonChamberHoleRecoveryTool.h.
|
private |
Definition at line 192 of file MuonChamberHoleRecoveryTool.h.
|
private |
Definition at line 195 of file MuonChamberHoleRecoveryTool.h.
|
private |
Definition at line 196 of file MuonChamberHoleRecoveryTool.h.
|
private |
Definition at line 190 of file MuonChamberHoleRecoveryTool.h.
|
private |
Definition at line 173 of file MuonChamberHoleRecoveryTool.h.
|
private |
Definition at line 171 of file MuonChamberHoleRecoveryTool.h.
|
private |
Definition at line 193 of file MuonChamberHoleRecoveryTool.h.
|
private |
Definition at line 179 of file MuonChamberHoleRecoveryTool.h.
|
privateinherited |
Pointer to StoreGate (detector store by default)
Definition at line 393 of file AthCommonDataStore.h.
|
private |
Definition at line 158 of file MuonChamberHoleRecoveryTool.h.
|
privateinherited |
Pointer to StoreGate (event store by default)
Definition at line 390 of file AthCommonDataStore.h.
|
private |
Definition at line 167 of file MuonChamberHoleRecoveryTool.h.
|
private |
Definition at line 157 of file MuonChamberHoleRecoveryTool.h.
|
private |
Definition at line 183 of file MuonChamberHoleRecoveryTool.h.
|
private |
Definition at line 182 of file MuonChamberHoleRecoveryTool.h.
|
private |
Definition at line 187 of file MuonChamberHoleRecoveryTool.h.
|
private |
Definition at line 185 of file MuonChamberHoleRecoveryTool.h.
|
private |
Definition at line 186 of file MuonChamberHoleRecoveryTool.h.
|
private |
Definition at line 184 of file MuonChamberHoleRecoveryTool.h.
|
private |
Definition at line 168 of file MuonChamberHoleRecoveryTool.h.
|
private |
Definition at line 166 of file MuonChamberHoleRecoveryTool.h.
|
private |
Definition at line 176 of file MuonChamberHoleRecoveryTool.h.
|
private |
Definition at line 161 of file MuonChamberHoleRecoveryTool.h.
|
privateinherited |
Definition at line 399 of file AthCommonDataStore.h.
|
privateinherited |
Definition at line 398 of file AthCommonDataStore.h.