![]() |
ATLAS Offline Software
|
Interface for the reconstruction to MDT calibration and alignment corrections. More...
#include <MdtDriftCircleOnTrackCreator.h>
Classes | |
| struct | CalibrationOutput |
| struct to hold output of calibration More... | |
Public Types | |
| enum | TimingMode { ATLTIME =0 , NO_CORRECTIONS = 1 , COSMICS_TRIGGERTIME = 2 , COSMICS_TOF =3 , NumberOfTimingModes } |
| using | MdtRotPtr = MdtDriftCircleOnTrack* |
Public Member Functions | |
| MdtDriftCircleOnTrackCreator (const std::string &, const std::string &, const IInterface *) | |
| virtual | ~MdtDriftCircleOnTrackCreator ()=default |
| virtual StatusCode | initialize () override final |
| virtual MdtRotPtr | createRIO_OnTrack (const MdtPrepData &prd, const Amg::Vector3D &globalPos, const Amg::Vector3D *gdir=nullptr, const double t0Shift=0., const MuonDriftCircleErrorStrategy *strategy=nullptr, const double beta=1, const double tTrack=1) const override final |
| Calibrate a MdtPrepData object. | |
| virtual void | updateSign (MdtDriftCircleOnTrack &rot, const Trk::DriftCircleSide si) const override final |
| Update of the sign of the drift radius. | |
| virtual MdtRotPtr | updateError (const MdtDriftCircleOnTrack &DCT, const Trk::TrackParameters *pars=nullptr, const MuonDriftCircleErrorStrategy *strategy=nullptr) const override |
| Update error of a ROT without changing the drift radius. | |
| virtual Trk::RIO_OnTrack * | correct (const Trk::PrepRawData &prd, const Trk::TrackParameters &tp, const EventContext &) const override |
| Base class method for correct. | |
| virtual MdtRotPtr | correct (const MdtPrepData &prd, const Trk::TrackParameters &tp, const MuonDriftCircleErrorStrategy *strategy, const double beta, const double tTrack) const override final |
| Returns calibrated MdtDriftCircleOnTrack. | |
| virtual const MuonDriftCircleErrorStrategy & | errorStrategy () const override |
| Returns the default error strategy object. | |
| 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 |
| DeclareInterfaceID (Muon::IMdtDriftCircleOnTrackCreator, 1, 0) | |
| virtual RIO_OnTrack * | correct (const PrepRawData &hit, const TrackParameters &trk, const EventContext &ctx) const=0 |
| Returns calibrated MdtDriftCircleOnTrack. | |
Static Public Member Functions | |
| static const InterfaceID & | interfaceID () |
| The AlgTool InterfaceID. | |
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 | |
| double | timeOfFlight (const Amg::Vector3D &pos, const double beta, const double tTrack, const double tShift) const |
| CalibrationOutput | getLocalMeasurement (const EventContext &ctx, const MdtPrepData &DC, const MdtCalibInput &calibInput, const MuonDriftCircleErrorStrategy &strategy) const |
| preform the mdt calibration | |
| double | getTriggerTime () const |
| currently returns 0. | |
| double | mooreErrorStrategy (const MuonDriftCircleErrorStrategy &myStrategy, double sigmaR, const Identifier &id) const |
| double | mooreErrorStrategyMC (const MuonDriftCircleErrorStrategy &myStrategy, double sigmaR, const Identifier &id) const |
| double | mooreErrorStrategyLoose (const MuonDriftCircleErrorStrategy &myStrategy, double sigmaR, const Identifier &id) const |
| double | mooreErrorStrategyTight (const MuonDriftCircleErrorStrategy &myStrategy, double sigmaR, const Identifier &id) const |
| double | muonErrorStrategy (const MuonDriftCircleErrorStrategy &myStrategy, double sigmaR, const Identifier &id) const |
| Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKey> | |
Static Private Member Functions | |
| static double | parametrisedSigma (double r) |
Private Attributes | |
| ServiceHandle< Muon::IMuonIdHelperSvc > | m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"} |
| ToolHandle< IMdtCalibrationTool > | m_mdtCalibrationTool {this, "CalibrationTool", ""} |
| Gaudi::Property< bool > | m_doMdt {this, "doMDT", true} |
| Process MDT ROTs. | |
| Gaudi::Property< int > | m_timeCorrectionType {this, "TimingMode", 0} |
| Gaudi::Property< double > | m_fixedError {this, "FixedError", 1.} |
| < Error used when m_doFixed error =true or m_scaleErrorManually = true | |
| Gaudi::Property< double > | m_globalToLocalTolerance |
| MuonDriftCircleErrorStrategy | m_errorStrategy {MuonDriftCircleErrorStrategyInput{}} |
| < Error strategy for created ROTs | |
| Gaudi::Property< std::string > | m_defaultStrategy |
| if set to true, the ROT creator create 'tube' hits with a local position of 0 and an error of tube radius/sqrt(12) | |
| Gaudi::Property< bool > | m_createTubeHits {this, "CreateTubeHit", false} |
| Scale ROTs depending on local alignment (i.e. | |
| Gaudi::Property< bool > | m_scaleMdtCov {this, "DoErrorScaling", true} |
| Fixed error (not tube radius) | |
| Gaudi::Property< bool > | m_doFixedError {this, "DoFixedError", true} |
| Use parameterised errors. | |
| Gaudi::Property< bool > | m_useErrorParametrisation {this, "UseParametrisedError", false} |
| Use the predicted track position to correct the Error. | |
| Gaudi::Property< bool > | m_errorAtPredictedPosition {this, "UseErrorAtPredictedPosition", false} |
| Add a term to the error to account for very poorly aligned stations. | |
| Gaudi::Property< bool > | m_stationError {this, "DoStationError", false} |
| Add a special error to account for the T0 refit. | |
| Gaudi::Property< bool > | m_t0Refit {this, "T0RefitError", false} |
| Use error strategy for segments by default. | |
| Gaudi::Property< bool > | m_doSegments {this, "DoSegmentErrors", true} |
| Deweight individual chambers. | |
| Gaudi::Property< bool > | m_doIndividualChamberReweights {this, "DeweightIndividualChambers", true} |
| toggle between MC and data alignment errors (to be removed in rel. | |
| Gaudi::Property< bool > | m_isMC {this, "IsMC", false} |
| toggle whether the time of flight is included in the t0 shifts | |
| Gaudi::Property< bool > | m_applyToF {this, "ApplyToF", true} |
| toggle between loose errors (initial before alignment) and tight after alignment | |
| Gaudi::Property< bool > | m_looseErrors |
| Gaudi::Property< bool > | m_wasConfigured |
| int | m_BME_idx {-1} |
| 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 |
Static Private Attributes | |
| static constexpr double | s_inverseSpeedOfLight {1. / Gaudi::Units::c_light} |
Interface for the reconstruction to MDT calibration and alignment corrections.
It should be used by reconstruction and pattern recognition to create Muon::MdtDriftCircleOnTrack (s).
It offers several interfaces:
The tool is capable of handling serveral different timing cases (click links to see definitions):
JobOptions Flags:
Definition at line 69 of file MdtDriftCircleOnTrackCreator.h.
|
inherited |
Definition at line 26 of file IMdtDriftCircleOnTrackCreator.h.
|
privateinherited |
Definition at line 388 of file AthCommonDataStore.h.
Definition at line 71 of file MdtDriftCircleOnTrackCreator.h.
| Muon::MdtDriftCircleOnTrackCreator::MdtDriftCircleOnTrackCreator | ( | const std::string & | ty, |
| const std::string & | na, | ||
| const IInterface * | pa ) |
Definition at line 26 of file MdtDriftCircleOnTrackCreator.cxx.
|
virtualdefault |
|
inherited |
Returns calibrated MdtDriftCircleOnTrack.
Overrides the IRIO_OnTrackCreator method to add an error strategy object.
| prd | Reference to a Trk::PrepRawData object (which should always be a Muon::MdtPrepData in this case) |
| tp | Reference to the extrapolated/predicted TrackParameters at this MdtPrepData |
|
finaloverridevirtual |
Returns calibrated MdtDriftCircleOnTrack.
Implementation of IRIO_OnTrackCreator method
| prd | Reference to a Trk::PrepRawData object (which should always be a Muon::MdtPrepData in this case) |
| tp | Reference to the extrapolated/predicted TrackParameters at this MdtPrepData |
Implements Muon::IMdtDriftCircleOnTrackCreator.
Definition at line 374 of file MdtDriftCircleOnTrackCreator.cxx.
|
overridevirtual |
Base class method for correct.
Implements Trk::IRIO_OnTrackCreator.
Definition at line 384 of file MdtDriftCircleOnTrackCreator.cxx.
|
finaloverridevirtual |
Calibrate a MdtPrepData object.
The result is stored in a new MdtDriftCircleOnTrack object. Included calibrations:
| prd | MdtPrepData object |
| globalPos | GlobalPosition (including second coordinate along the tube) |
| gdir | GlobalDirection of track |
| strategy | optional drift circle error strategy to override the default |
Implements Muon::IMdtDriftCircleOnTrackCreator.
Definition at line 139 of file MdtDriftCircleOnTrackCreator.cxx.
|
inlineprivateinherited |
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
|
inherited |
|
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.
|
inlineoverridevirtual |
Returns the default error strategy object.
Implements Muon::IMdtDriftCircleOnTrackCreator.
Definition at line 163 of file MdtDriftCircleOnTrackCreator.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 |
preform the mdt calibration
copy new values
Use same value
Definition at line 295 of file MdtDriftCircleOnTrackCreator.cxx.
|
inlineprivate |
currently returns 0.
Definition at line 196 of file MdtDriftCircleOnTrackCreator.h.
|
finaloverridevirtual |
Definition at line 35 of file MdtDriftCircleOnTrackCreator.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 |
The AlgTool InterfaceID.
Definition at line 42 of file IRIO_OnTrackCreator.h.
|
private |
Definition at line 481 of file MdtDriftCircleOnTrackCreator.cxx.
|
private |
Need to check whether this Identifier is still existent
Definition at line 576 of file MdtDriftCircleOnTrackCreator.cxx.
|
private |
Definition at line 494 of file MdtDriftCircleOnTrackCreator.cxx.
|
private |
Need to check whether this Identifier is still valid?
Definition at line 666 of file MdtDriftCircleOnTrackCreator.cxx.
|
inlineinherited |
Definition at line 24 of file AthCommonMsg.h.
|
inlineinherited |
Definition at line 30 of file AthCommonMsg.h.
|
private |
Definition at line 764 of file MdtDriftCircleOnTrackCreator.cxx.
|
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.
|
staticprivate |
These are presumably fitted from data but no clue where and how
Definition at line 476 of file MdtDriftCircleOnTrackCreator.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.
|
private |
Definition at line 468 of file MdtDriftCircleOnTrackCreator.cxx.
|
overridevirtual |
Update error of a ROT without changing the drift radius.
| DCT | reference to the Muon::MdtDriftCircleOnTrack of which the sign should be updated. |
| pars | track prediction at DCT used when using the track prediction to update the error |
| strategy | optional drift circle error strategy to override the default |
| pars | pars |
Implements Muon::IMdtDriftCircleOnTrackCreator.
Definition at line 396 of file MdtDriftCircleOnTrackCreator.cxx.
|
finaloverridevirtual |
Update of the sign of the drift radius.
The method creates a new MdtDriftCircleOnTrack, the old input MdtDriftCircleOnTrack is not deleted. The user should take care of the memory managment of both MdtDriftCircleOnTracks.
| rot | reference to the Muon::MdtDriftCircleOnTrack of which the sign should be updated. |
| si | Trk::DriftCircleSide indicating whether the muon passed on the left or right side of the wire. |
Implements Muon::IMdtDriftCircleOnTrackCreator.
Definition at line 277 of file MdtDriftCircleOnTrackCreator.cxx.
|
inlineinherited |
Definition at line 308 of file AthCommonDataStore.h.
|
private |
toggle between loose errors (initial before alignment) and tight after alignment
Definition at line 269 of file MdtDriftCircleOnTrackCreator.h.
|
private |
Definition at line 279 of file MdtDriftCircleOnTrackCreator.h.
|
private |
Scale ROTs depending on local alignment (i.e.
location in detector)
Definition at line 246 of file MdtDriftCircleOnTrackCreator.h.
|
private |
if set to true, the ROT creator create 'tube' hits with a local position of 0 and an error of tube radius/sqrt(12)
Definition at line 241 of file MdtDriftCircleOnTrackCreator.h.
|
privateinherited |
Pointer to StoreGate (detector store by default)
Definition at line 393 of file AthCommonDataStore.h.
|
private |
Use parameterised errors.
Definition at line 250 of file MdtDriftCircleOnTrackCreator.h.
|
private |
toggle between MC and data alignment errors (to be removed in rel.
21!)
Definition at line 265 of file MdtDriftCircleOnTrackCreator.h.
|
private |
Process MDT ROTs.
Defined in TimingMode enum.
Definition at line 226 of file MdtDriftCircleOnTrackCreator.h.
|
private |
Deweight individual chambers.
Definition at line 263 of file MdtDriftCircleOnTrackCreator.h.
|
private |
Add a term to the error to account for very poorly aligned stations.
Definition at line 257 of file MdtDriftCircleOnTrackCreator.h.
|
private |
< Error strategy for created ROTs
Default error strategy for the error strategy object
Definition at line 238 of file MdtDriftCircleOnTrackCreator.h.
|
privateinherited |
Pointer to StoreGate (event store by default)
Definition at line 390 of file AthCommonDataStore.h.
|
private |
< Error used when m_doFixed error =true or m_scaleErrorManually = true
Definition at line 231 of file MdtDriftCircleOnTrackCreator.h.
|
private |
Definition at line 233 of file MdtDriftCircleOnTrackCreator.h.
|
private |
Definition at line 221 of file MdtDriftCircleOnTrackCreator.h.
|
private |
toggle whether the time of flight is included in the t0 shifts
Definition at line 267 of file MdtDriftCircleOnTrackCreator.h.
|
private |
Definition at line 272 of file MdtDriftCircleOnTrackCreator.h.
|
private |
Definition at line 223 of file MdtDriftCircleOnTrackCreator.h.
|
private |
Fixed error (not tube radius)
Definition at line 248 of file MdtDriftCircleOnTrackCreator.h.
|
private |
Add a special error to account for the T0 refit.
Definition at line 259 of file MdtDriftCircleOnTrackCreator.h.
|
private |
Use error strategy for segments by default.
Definition at line 261 of file MdtDriftCircleOnTrackCreator.h.
|
private |
Definition at line 228 of file MdtDriftCircleOnTrackCreator.h.
|
private |
Use the predicted track position to correct the Error.
See Muon::MdtDriftCircleOnTrack::ErrorAtPredictedPosition The error will be adjusted to be that corresponding to the predicted position. This is useful to fix problems with tracks very close to the wire.
Definition at line 252 of file MdtDriftCircleOnTrackCreator.h.
|
privateinherited |
Definition at line 399 of file AthCommonDataStore.h.
|
privateinherited |
Definition at line 398 of file AthCommonDataStore.h.
|
private |
Definition at line 274 of file MdtDriftCircleOnTrackCreator.h.
|
staticconstexprprivate |
Definition at line 277 of file MdtDriftCircleOnTrackCreator.h.