|
ATLAS Offline Software
|
Interface for the reconstruction to calibration and alignment corrections. It should be used by reconstruction and pattern recognition to create Muon::MuonClusterOnTrack objects (s).
More...
#include <CscClusterOnTrackCreator.h>
|
| CscClusterOnTrackCreator (const std::string &, const std::string &, const IInterface *) |
|
virtual | ~CscClusterOnTrackCreator () |
|
virtual StatusCode | initialize () override |
|
virtual MuonClusterOnTrack * | createRIO_OnTrack (const Trk::PrepRawData &RIO, const Amg::Vector3D &GP) const override |
| Create new Muon::MuonClusterOnTrack from a Trk::PrepRawData and a predicted Trk::TrackParameter. More...
|
|
virtual MuonClusterOnTrack * | createRIO_OnTrack (const Trk::PrepRawData &RIO, const Amg::Vector3D &GP, const Amg::Vector3D &GD) const override |
| Create new Muon::MuonClusterOnTrack from a Trk::PrepRawData and a prediction of the global position and direction. More...
|
|
virtual MuonClusterOnTrack * | correct (const Trk::PrepRawData &RIO, const Trk::TrackParameters &TP, const EventContext &) const override |
| Create new Muon::MuonClusterOnTrack from a Trk::PrepRawData and the predicted Trk::TrackParameter at the measurement surface. More...
|
|
virtual MuonClusterOnTrack * | correct (const Trk::PrepRawData &RIO, const Amg::Vector3D &GP, const Amg::Vector3D &GD) const override |
|
virtual const ToolHandle< ICscStripFitter > & | GetICscStripFitter () const override |
| These functions are provided from the interface. More...
|
|
virtual const ToolHandle< ICscClusterFitter > & | GetICscClusterFitter () const override |
|
virtual const ToolHandle< ICscClusterUtilTool > & | GetICscClusterUtilTool () const override |
|
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 |
|
|
ServiceHandle< Muon::IMuonIdHelperSvc > | m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"} |
|
ToolHandle< ICscStripFitter > | m_stripFitter {this, "CscStripFitter", "CalibCscStripFitter/CalibCscStripFitter"} |
|
ToolHandle< ICscClusterFitter > | m_clusterFitter {this, "CscClusterFitter", "QratCscClusterFitter/QratCscClusterFitter"} |
|
ToolHandle< ICscClusterUtilTool > | m_clusterUtilTool {this, "CscClusterUtilTool", "CscClusterUtilTool/CscClusterUtilTool"} |
|
SG::ReadCondHandleKey< RIO_OnTrackErrorScaling > | m_cscErrorScalingKey |
|
Gaudi::Property< double > | m_errorScaler {this, "ErrorScaler" , 1.} |
|
Gaudi::Property< double > | m_errorScalerBeta {this, "ErrorScalerBeta", 0.} |
|
Gaudi::Property< double > | m_minimumError {this, "MinimumError" , 0.05} |
|
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 |
|
Interface for the reconstruction to calibration and alignment corrections. It should be used by reconstruction and pattern recognition to create Muon::MuonClusterOnTrack objects (s).
It offers several interfaces:
JobOptions Flags:
- doCSC: switch on/off CSC ROT creation (default = true)
- doRPC: switch on/off RPC ROT creation (default = true)
- doTGC: switch on/off TGC ROT creation (default = true)
- [CSC,TGC,RPC]ErrorScalingKey: if not empty use error scaling conditions data to scale the corresponding muon covariances
- CscClusterFitter: Tool to fit charge and width of CSC clusters
- CscStripFitter: Tool to fit charge + time of a CSC strip
- CscStripPrepDataLocation: Storegate key of the CscStripPrepData collection
Definition at line 51 of file CscClusterOnTrackCreator.h.
◆ StoreGateSvc_t
◆ CscClusterOnTrackCreator()
Muon::CscClusterOnTrackCreator::CscClusterOnTrackCreator |
( |
const std::string & |
ty, |
|
|
const std::string & |
na, |
|
|
const IInterface * |
pa |
|
) |
| |
Definition at line 27 of file CscClusterOnTrackCreator.cxx.
30 declareInterface<IMuonClusterOnTrackCreator>(
this);
31 declareInterface<IRIO_OnTrackCreator>(
this);
◆ ~CscClusterOnTrackCreator()
Muon::CscClusterOnTrackCreator::~CscClusterOnTrackCreator |
( |
| ) |
|
|
virtualdefault |
◆ correct() [1/2]
◆ correct() [2/2]
◆ createRIO_OnTrack() [1/2]
Create new Muon::MuonClusterOnTrack from a Trk::PrepRawData and a predicted Trk::TrackParameter.
- Parameters
-
RIO | Trk::PrepRawData object to be calibrated |
GP | Predicted intersect position of the muon with the measurement plane |
- Returns
- a pointer to a new Muon::MuonClusterOnTrack object, zero if calibration failed. The ownership of the new Muon::MuonClusterOnTrack is passed to the client calling the tool
Implements Muon::IMuonClusterOnTrackCreator.
Definition at line 56 of file CscClusterOnTrackCreator.cxx.
57 MuonClusterOnTrack* MClT =
nullptr;
62 ATH_MSG_WARNING(
"RIO does not have associated detectorElement!, cannot produce ROT");
79 double positionAlongStrip = 0;
81 if (!
EL->surface(RIO.
identify()).globalToLocal(GP, GP, lp)) {
83 ATH_MSG_WARNING(
"Extrapolated GlobalPosition not on detector surface! Distance " << lpos.z());
95 loce = Trk::ErrorScalingCast<MuonEtaPhiRIO_OnTrackErrorScaling>(
110 MClT =
new CscClusterOnTrack(MClus, std::move(locpar), std::move(loce),
111 positionAlongStrip, MClus->status(), MClus->timeStatus(), MClus->time());
◆ createRIO_OnTrack() [2/2]
Create new Muon::MuonClusterOnTrack from a Trk::PrepRawData and a prediction of the global position and direction.
It is only implemented for the CSCs, for RPC and TGC Trk::PrepRawData the result is the same as for the routine without the direction.
- Parameters
-
RIO | Trk::PrepRawData object to be calibrated |
GP | Predicted intersect position of the muon with the measurement plane |
GD | Predicted direction at the intersect position of the muon with the measurement plane |
- Returns
- a pointer to a new Muon::MuonClusterOnTrack object, zero if calibration failed. The ownership of the new Muon::MuonClusterOnTrack is passed to the client calling the tool
Implements Muon::IMuonClusterOnTrackCreator.
Definition at line 119 of file CscClusterOnTrackCreator.cxx.
123 ATH_MSG_WARNING(
"CscClusterOnTrackCreator::createRIO_OnTrack is called by the other muon tech");
127 MuonClusterOnTrack* MClT =
nullptr;
131 ATH_MSG_WARNING(
"RIO does not have associated detectorElement!, cannot produce ROT");
155 double positionAlongStrip = 0;
157 if (!
EL->surface(RIO.
identify()).globalToLocal(GP, GP, lp)) {
159 ATH_MSG_WARNING(
"Extrapolated GlobalPosition not on detector surface! Distance " << lpos.z());
171 loce = Trk::ErrorScalingCast<MuonEtaPhiRIO_OnTrackErrorScaling>(
180 MClT =
new CscClusterOnTrack(MClus, std::move(locpar), std::move(loce), positionAlongStrip, MClus->status(), MClus->timeStatus(), MClus->time());
186 double tantheta =
d.x() /
d.z();
188 std::vector<ICscClusterFitter::Result>
results, results0;
192 if (
results.empty() || results0.empty()) {
194 return new CscClusterOnTrack(MClus, std::move(locpar), std::move(loce),
195 positionAlongStrip, MClus->status(), MClus->timeStatus(), MClus->time());
203 <<
"cluStatus: " <<
res.clusterStatus <<
"fitStatus: " <<
res.fitStatus);
204 return new CscClusterOnTrack(MClus, std::move(locpar), std::move(loce),
205 positionAlongStrip, MClus->status(), MClus->timeStatus(), MClus->time());
211 <<
" :: tanangle : " << tantheta);
218 double nominal_error =
res.dposition;
219 double errorCorrected =
224 newloce.setIdentity();
225 newloce *= errorCorrected * errorCorrected;
229 Trk::ErrorScalingCast<MuonEtaPhiRIO_OnTrackErrorScaling>(
231 ->getScaledCovariance(std::move(newloce),
Trk::distPhi);
237 MClT =
new CscClusterOnTrack(MClus, std::move(locpar), std::move(newloce),
238 positionAlongStrip, MClus->status(), MClus->timeStatus(), MClus->time());
239 ATH_MSG_VERBOSE(
"global postion of MClT :::: " << MClT->globalPosition());
◆ 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
◆ GetICscClusterFitter()
◆ GetICscClusterUtilTool()
◆ GetICscStripFitter()
◆ initialize()
StatusCode Muon::CscClusterOnTrackCreator::initialize |
( |
| ) |
|
|
overridevirtual |
Definition at line 37 of file CscClusterOnTrackCreator.cxx.
40 ATH_MSG_ERROR(
"The given detector layout does not contain any CSC chamber, "<<
41 "there must be something wrong in the configuration,"
42 <<
" since the CscClusterOnTrackCreator cannot be needed.");
43 return StatusCode::FAILURE;
52 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()
const InterfaceID & Muon::ICscClusterOnTrackCreator::interfaceID |
( |
| ) |
|
|
inlinestaticinherited |
◆ 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.
◆ 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_clusterFitter
◆ m_clusterUtilTool
◆ m_cscErrorScalingKey
Initial value:{
this, "CSCErrorScalingKey", "" ,
"Key for CSC error scaling conditions data. No error scaling if empty."}
Definition at line 97 of file CscClusterOnTrackCreator.h.
◆ m_detStore
◆ m_errorScaler
Gaudi::Property<double> Muon::CscClusterOnTrackCreator::m_errorScaler {this, "ErrorScaler" , 1.} |
|
private |
◆ m_errorScalerBeta
Gaudi::Property<double> Muon::CscClusterOnTrackCreator::m_errorScalerBeta {this, "ErrorScalerBeta", 0.} |
|
private |
◆ m_evtStore
◆ m_idHelperSvc
◆ m_minimumError
Gaudi::Property<double> Muon::CscClusterOnTrackCreator::m_minimumError {this, "MinimumError" , 0.05} |
|
private |
◆ m_stripFitter
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
virtual const Amg::Transform3D & transform() const override
Return local to global transform.
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
ToolHandle< ICscClusterFitter > m_clusterFitter
const Amg::Vector3D & position() const
Access method for the position.
Eigen::Matrix< double, 2, 1 > Vector2D
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
const Amg::MatrixX & localCovariance() const
return const ref to the error matrix
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
#define ATH_MSG_VERBOSE(x)
const std::string & key() const
Return the StoreGate ID for the referenced object.
virtual MuonClusterOnTrack * correct(const Trk::PrepRawData &RIO, const Trk::TrackParameters &TP, const EventContext &) const override
Create new Muon::MuonClusterOnTrack from a Trk::PrepRawData and the predicted Trk::TrackParameter at ...
std::pair< double, ParamDefs > DefinedParameter
virtual void setOwner(IDataHandleHolder *o)=0
ToolHandle< ICscClusterUtilTool > m_clusterUtilTool
Gaudi::Property< double > m_minimumError
Eigen::Affine3d Transform3D
std::pair< std::vector< unsigned int >, bool > res
virtual const Surface & surface() const =0
Return surface associated with this detector element.
This module defines the arguments passed from the BATCH driver to the BATCH worker.
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
SG::ReadCondHandleKey< RIO_OnTrackErrorScaling > m_cscErrorScalingKey
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Identifier identify() const
return the identifier
@ CscStatusUnspoiled
Clean cluster with precision fit.
double error(const Amg::MatrixX &mat, int index)
return diagonal error of the matrix caller should ensure the matrix is symmetric and the index is in ...
Gaudi::Property< double > m_errorScalerBeta
const Amg::Vector2D & localPosition() const
return the local position reference
StatusCode initialize(bool used=true)
Eigen::Matrix< double, 3, 1 > Vector3D
const Amg::Vector3D & momentum() const
Access method for the momentum.
@ CscStatusSplitUnspoiled
Clean cluster with precision fit after split cluster.
#define ATH_MSG_WARNING(x)
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Gaudi::Property< double > m_errorScaler
ToolHandle< ICscStripFitter > m_stripFitter
virtual MuonClusterOnTrack * createRIO_OnTrack(const Trk::PrepRawData &RIO, const Amg::Vector3D &GP) const override
Create new Muon::MuonClusterOnTrack from a Trk::PrepRawData and a predicted Trk::TrackParameter.
const Amg::Transform3D & transform() const
Returns HepGeom::Transform3D by reference.
Polygon globalToLocal(const Polygon &pol, float z, const Trk::PlaneSurface &surf)
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
virtual const TrkDetElementBase * detectorElement() const =0
return the detector element corresponding to this PRD The pointer will be zero if the det el is not d...