|
ATLAS Offline Software
|
#include <MuidMuonRecovery.h>
|
| MuidMuonRecovery (const std::string &type, const std::string &name, const IInterface *parent) |
|
| ~MuidMuonRecovery ()=default |
|
StatusCode | initialize () override |
|
StatusCode | finalize () override |
|
std::unique_ptr< Trk::Track > | recoverableMatch (const Trk::Track &indetTrack, const Trk::Track &spectrometerTrack, const EventContext &ctx) const override |
| IMuidMuonRecovery interface: algorithmic code for recovering muon spectrometer using the inner detector track. More...
|
|
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 |
|
Definition at line 30 of file MuidMuonRecovery.h.
◆ StoreGateSvc_t
◆ MuidMuonRecovery()
Rec::MuidMuonRecovery::MuidMuonRecovery |
( |
const std::string & |
type, |
|
|
const std::string & |
name, |
|
|
const IInterface * |
parent |
|
) |
| |
◆ ~MuidMuonRecovery()
Rec::MuidMuonRecovery::~MuidMuonRecovery |
( |
| ) |
|
|
default |
◆ 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
◆ finalize()
StatusCode Rec::MuidMuonRecovery::finalize |
( |
| ) |
|
|
override |
◆ initialize()
StatusCode Rec::MuidMuonRecovery::initialize |
( |
| ) |
|
|
override |
◆ 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& Rec::IMuidMuonRecovery::interfaceID |
( |
| ) |
|
|
inlinestaticinherited |
AlgTool and IAlgTool interface methods.
Definition at line 38 of file IMuidMuonRecovery.h.
39 static const InterfaceID IID_IMuidMuonRecovery(
"IMuidMuonRecovery", 1, 0);
40 return IID_IMuidMuonRecovery;
◆ 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.
◆ recoverableMatch()
IMuidMuonRecovery interface: algorithmic code for recovering muon spectrometer using the inner detector track.
Implements Rec::IMuidMuonRecovery.
Definition at line 72 of file MuidMuonRecovery.cxx.
83 <<
" ID track " <<
m_printer->print(indetTrack) << std::endl
84 <<
" MS track " <<
m_printer->print(spectrometerTrack) << std::endl
85 <<
m_printer->printStations(spectrometerTrack));
90 while (!lastIndetPars &&
index > 0) {
101 std::unique_ptr<Trk::TrackParameters> innerParameters, middleParameters, outerParameters;
102 std::unique_ptr<Trk::TrackParameters> lastPars = lastIndetPars->
uniqueClone();
103 bool innerParsSet{
false};
105 std::vector<const Trk::TrackStateOnSurface*> stations;
106 std::set<Muon::MuonStationIndex::StIndex> etaIndices, phiIndices, badEtaIndices, badPhiIndices;
108 unsigned int nmeas = 0;
117 if (!
id.is_valid())
continue;
124 if (phiIndices.count(
index))
continue;
126 phiIndices.insert(
index);
128 if (etaIndices.count(
index))
continue;
131 etaIndices.insert(
index);
136 std::unique_ptr<Trk::TrackParameters> exPars{};
139 exPars = std::move(lastPars);
155 badPhiIndices.insert(
index);
157 badEtaIndices.insert(
index);
182 ATH_MSG_DEBUG(
" local Angles: id (" << idDir.angleXZ() <<
"," << idDir.angleYZ() <<
") ms ("
183 << msDir.angleXZ() <<
"," << msDir.angleYZ() <<
")");
189 if (!innerParsSet && !innerParameters && exPars && lastPars) {
190 innerParameters = std::move(exPars);
191 }
else if (exPars && innerParameters && !middleParameters ) {
192 middleParameters = std::move(exPars);
194 lastPars = std::move(exPars);
198 if (middleParameters) {
199 outerParameters = std::move(lastPars);
201 middleParameters = std::move(innerParameters);
202 if (!middleParameters) {
208 bool cleanEta = badEtaIndices.size() == 1 && etaIndices.size() > 1;
209 bool cleanPhi = badPhiIndices.size() == 1;
211 if (!cleanPhi && !cleanEta) {
216 if (badEtaIndices.size() == etaIndices.size()) {
228 if (!
id.is_valid())
continue;
232 if (cleanEta && !measuresPhi && badEtaIndices.count(
index))
continue;
233 if (cleanPhi && measuresPhi && badPhiIndices.count(
index))
continue;
234 spectrometerMeasurements.push_back(meas);
237 ATH_MSG_DEBUG(
"Number of measurements before cleaning " << nmeas <<
" after cleaning " << spectrometerMeasurements.size());
239 if (spectrometerMeasurements.size() < 6) {
247 combinedTrack =
m_trackBuilder->indetExtension(ctx, indetTrack, spectrometerMeasurements, std::move(innerParameters), std::move(middleParameters),
248 std::move(outerParameters));
◆ 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.
◆ updateVHKA()
◆ m_detStore
◆ m_edmHelperSvc
Initial value:{
this,
"edmHelper",
"Muon::MuonEDMHelperSvc/MuonEDMHelperSvc",
"Handle to the service providing the IMuonEDMHelperSvc interface",
}
Definition at line 52 of file MuidMuonRecovery.h.
◆ m_evtStore
◆ m_extrapolator
Initial value:{
this,
"Extrapolator",
"Trk::Extrapolator/AtlasExtrapolator",
"Extrapolator tool",
}
Definition at line 45 of file MuidMuonRecovery.h.
◆ m_idHelperSvc
Initial value:{
this,
"MuonIdHelperSvc",
"Muon::MuonIdHelperSvc/MuonIdHelperSvc",
}
Definition at line 59 of file MuidMuonRecovery.h.
◆ m_minP
Gaudi::Property<double> Rec::MuidMuonRecovery::m_minP {this, "MinP", 10. * Gaudi::Units::GeV} |
|
private |
◆ m_minPt
Gaudi::Property<double> Rec::MuidMuonRecovery::m_minPt {this, "MinPt", 5. * Gaudi::Units::GeV} |
|
private |
◆ m_printer
Initial value:{
this,
"Printer",
"Muon::MuonEDMPrinterTool/MuonEDMPrinterTool",
"Tool to print EDM objects",
}
Definition at line 64 of file MuidMuonRecovery.h.
◆ m_pullCut
Gaudi::Property<double> Rec::MuidMuonRecovery::m_pullCut {this, "PullCut", 10.} |
|
private |
◆ m_recoveryAttempts
std::atomic<unsigned int> Rec::MuidMuonRecovery::m_recoveryAttempts {0} |
|
mutableprivate |
◆ m_recoveryFitFailure
std::atomic<unsigned int> Rec::MuidMuonRecovery::m_recoveryFitFailure {0} |
|
mutableprivate |
◆ m_recoverySuccess
std::atomic<unsigned int> Rec::MuidMuonRecovery::m_recoverySuccess {0} |
|
mutableprivate |
◆ m_residualCalculator
Initial value:{
this,
"ResidualPullCalculator",
"Trk::ResidualPullCalculator/ResidualPullCalculator",
"Residual calculator tool",
}
Definition at line 71 of file MuidMuonRecovery.h.
◆ m_trackBuilder
Initial value:{
this,
"TrackBuilder",
"Rec::CombinedMuonTrackBuilder/CombinedMuonTrackBuilder",
"Track builder tool",
}
Definition at line 78 of file MuidMuonRecovery.h.
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
ToolHandle< ICombinedMuonTrackBuilder > m_trackBuilder
virtual const Surface & associatedSurface() const override=0
Access to the Surface associated to the Parameters.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
std::unique_ptr< ParametersBase< DIM, T > > uniqueClone() const
clone method for polymorphic deep copy returning unique_ptr; it is not overriden, but uses the existi...
const Trk::TrackStates * trackStateOnSurfaces() const
return a pointer to a const DataVector of const TrackStateOnSurfaces.
@ Unbiased
RP with track state that has measurement not included.
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
bool msgLvl(const MSG::Level lvl) const
ToolHandle< Trk::IExtrapolator > m_extrapolator
ToolHandle< Trk::IResidualPullCalculator > m_residualCalculator
std::atomic< unsigned int > m_recoveryFitFailure
virtual const MuonGM::MdtReadoutElement * detectorElement() const override final
Returns the detector element, assoicated with the PRD of this class.
ServiceHandle< Muon::IMuonEDMHelperSvc > m_edmHelperSvc
void combinedTrack(long int ICH, double *pv0, double *covi, double BMAG, double *par, double *covo)
virtual void setOwner(IDataHandleHolder *o)=0
virtual const MuonGM::CscReadoutElement * detectorElement() const override final
Returns the detector element, associated with the PRD of this class.
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::Property< double > m_minP
std::pair< std::vector< unsigned int >, bool > res
virtual const Surface & surface() const =0
Return surface associated with this detector element.
void globalToLocalDirection(const Amg::Vector3D &glodir, Trk::LocalDirection &locdir) const
This method transforms the global direction to a local direction wrt the plane.
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
represents the three-dimensional global direction with respect to a planar surface frame.
virtual void renounce()=0
std::vector< const MeasurementBase * > MeasurementSet
vector of fittable measurements
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Gaudi::Property< double > m_pullCut
const DataVector< const TrackParameters > * trackParameters() const
Return a pointer to a vector of TrackParameters.
const Perigee * perigeeParameters() const
return Perigee.
represents the track state (measurement, material, fit parameters and quality) at a surface.
std::atomic< unsigned int > m_recoveryAttempts
virtual const Surface & associatedSurface() const =0
Interface method to get the associated Surface.
This class represents the corrected MDT measurements, where the corrections include the effects of wi...
std::atomic< unsigned int > m_recoverySuccess
PublicToolHandle< Muon::MuonEDMPrinterTool > m_printer
Class to represent the calibrated clusters created from CSC strips.
#define ATH_MSG_WARNING(x)
Gaudi::Property< double > m_minPt
@ MuidMuonRecoveryTool
Muons found by the ID seeded muon recovery.
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
StIndex
enum to classify the different station layers in the muon spectrometer
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>