|
ATLAS Offline Software
|
#include <NSWCalibTool.h>
|
| NSWCalibTool (const std::string &, const std::string &, const IInterface *) |
|
virtual | ~NSWCalibTool ()=default |
|
StatusCode | calibrateClus (const EventContext &ctx, const Muon::MMPrepData *prepData, const Amg::Vector3D &globalPos, std::vector< NSWCalib::CalibratedStrip > &calibClus) const override |
|
StatusCode | distToTime (const EventContext &ctx, const Muon::MMPrepData *prepData, const Amg::Vector3D &globalPos, const std::vector< double > &driftDistances, std::vector< double > &driftTimes) const override |
|
StatusCode | calibrateStrip (const Identifier &id, const double time, const double charge, const double lorentzAngle, NSWCalib::CalibratedStrip &calibStrip) const override |
|
StatusCode | calibrateStrip (const EventContext &ctx, const Muon::MM_RawData *mmRawData, NSWCalib::CalibratedStrip &calibStrip) const override |
|
StatusCode | calibrateStrip (const EventContext &ctx, const Muon::STGC_RawData *sTGCRawData, NSWCalib::CalibratedStrip &calibStrip) const override |
|
bool | tdoToTime (const EventContext &ctx, const bool inCounts, const int tdo, const Identifier &chnlId, float &time, const int relBCID) const override |
|
bool | timeToTdo (const EventContext &ctx, const float time, const Identifier &chnlId, int &tdo, int &relBCID) const override |
|
bool | chargeToPdo (const EventContext &ctx, const float charge, const Identifier &chnlId, int &pdo) const override |
|
bool | pdoToCharge (const EventContext &ctx, const bool inCounts, const int pdo, const Identifier &chnlId, float &charge) const override |
|
virtual StatusCode | initialize () override |
|
NSWCalib::MicroMegaGas | mmGasProperties () const override |
|
float | mmPeakTime () const override |
|
float | stgcPeakTime () 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 |
|
|
const NswCalibDbTimeChargeData * | getCalibData (const EventContext &ctx) const |
|
bool | loadMagneticField (const EventContext &ctx, MagField::AtlasFieldCache &fieldCache) const |
|
bool | timeToTdoMM (const NswCalibDbTimeChargeData *tdoPdoData, const float time, const Identifier &chnlId, int &tdo, int &relBCID) const |
|
bool | timeToTdoSTGC (const NswCalibDbTimeChargeData *tdoPdoData, const float time, const Identifier &chnlId, int &tdo, int &relBCID) const |
|
float | applyT0Calibration (const EventContext &ctx, const Identifier &id, float time) const |
|
StatusCode | initializeGasProperties () |
|
bool | localStripPosition (const Identifier &id, Amg::Vector2D &locPos) const |
|
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...
|
|
|
ServiceHandle< Muon::IMuonIdHelperSvc > | m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"} |
|
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > | m_fieldCondObjInputKey {this, "AtlasFieldCacheCondObj", "fieldCondObj"} |
|
SG::ReadCondHandleKey< MuonGM::MuonDetectorManager > | m_muDetMgrKey {this, "DetectorManagerKey", "MuonDetectorManager", "Key of input MuonDetectorManager condition data"} |
|
SG::ReadCondHandleKey< NswCalibDbTimeChargeData > | m_condTdoPdoKey {this, "condTdoPdoKey", "NswCalibDbTimeChargeData", "Key of NswCalibDbTimeChargeData object containing calibration data (TDO and PDO)"} |
|
SG::ReadCondHandleKey< NswT0Data > | m_condT0Key {this, "condT0Key", "NswT0Data", "Key of NswT0Data containing the t0 calibration data"} |
|
Gaudi::Property< bool > | m_isData {this, "isData", false, "Processing data"} |
|
Gaudi::Property< double > | m_vDrift {this, "DriftVelocity",0.047, "Drift velocity"} |
|
Gaudi::Property< double > | m_timeRes {this, "TimeResolution", 25., "Time resolution"} |
|
Gaudi::Property< double > | m_longDiff {this, "longDiff", 0.019} |
|
Gaudi::Property< double > | m_transDiff {this, "transDiff", 0.036} |
|
Gaudi::Property< double > | m_ionUncertainty {this,"ionUncertainty", 4.0} |
|
Gaudi::Property< float > | m_mmPeakTime {this, "mmPeakTime", 200.} |
|
Gaudi::Property< float > | m_stgcPeakTime {this, "sTgcPeakTime", 0.} |
|
Gaudi::Property< std::string > | m_gasMixture {this, "GasMixture", "ArCo2_937"} |
|
Gaudi::Property< float > | m_mmLatencyMC {this,"mmLatencyMC",25} |
|
Gaudi::Property< float > | m_mmLatencyData {this,"mmLatencyData",0} |
|
Gaudi::Property< float > | m_stgcLatencyMC {this,"stgcLatencyMC",-50} |
|
Gaudi::Property< float > | m_stgcLatencyData {this,"stgcLatencyData",-50} |
|
Gaudi::Property< bool > | m_applyMmT0Calib {this, "applyMmT0Calib", false, "apply the MM t0 calibration"} |
|
Gaudi::Property< bool > | m_applysTgcT0Calib {this, "applysTgcT0Calib", false, "apply the sTGC t0 calibration"} |
|
Gaudi::Property< bool > | m_applyMmBFieldCalib {this, "applyMmBFieldCalib", true, "apply the MM BField correction in reconstruction"} |
|
Gaudi::Property< float > | m_mmT0TargetValue {this, "mmT0TargetValue", 50.0, "target mean value for the MM t0 calibration"} |
|
Gaudi::Property< float > | m_stgcT0TargetValue {this,"stgcT0TargetValue", 0.0 ,"target mean value for the sTGC t0 calibration"} |
|
double | m_interactionDensitySigma {0.0F} |
|
double | m_interactionDensityMean {0.0F} |
|
angleFunction | m_lorentzAngleFunction {NSWCalib::MicroMegaGas::dummy_func()} |
|
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 |
|
Definition at line 23 of file NSWCalibTool.h.
◆ angleFunction
◆ StoreGateSvc_t
◆ TimeCalibConst
◆ TimeCalibType
◆ NSWCalibTool()
Muon::NSWCalibTool::NSWCalibTool |
( |
const std::string & |
t, |
|
|
const std::string & |
n, |
|
|
const IInterface * |
p |
|
) |
| |
◆ ~NSWCalibTool()
virtual Muon::NSWCalibTool::~NSWCalibTool |
( |
| ) |
|
|
virtualdefault |
◆ applyT0Calibration()
float Muon::NSWCalibTool::applyT0Calibration |
( |
const EventContext & |
ctx, |
|
|
const Identifier & |
id, |
|
|
float |
time |
|
) |
| const |
|
private |
Definition at line 385 of file NSWCalibTool.cxx.
387 if(!readT0.isValid()){
388 ATH_MSG_ERROR(
"Cannot find conditions data container for T0s!");
391 bool isGood = readT0->getT0(
id, t0);
392 if(!isGood || t0==0){
393 ATH_MSG_DEBUG(
"failed to retrieve good t0 from database, skipping t0 calibration");
397 float newTime =
time + (targetT0 -
t0);
398 ATH_MSG_DEBUG(
"doing T0 calibration for RDO " <<
m_idHelperSvc->toString(
id) <<
" time " << time <<
" t0 from database " << t0 <<
" t0 target " << targetT0 <<
" new time " << newTime);
◆ calibrateClus()
magnetic field
get the component parallel to to the eta strips (same used in digitization)
swap sign depending on the readout side
loop over prepData strips
Implements Muon::INSWCalibTool.
Definition at line 91 of file NSWCalibTool.cxx.
93 double lorentzAngle {0.};
99 fieldCache.
getField(globalPos.data(), magneticField.data());
102 double phi = globalPos.phi();
103 double bfield = (magneticField.x()*
std::sin(phi)-magneticField.y()*
std::cos(phi))*1000.;
108 if (changeSign) bfield = -bfield;
121 calibClus.push_back(std::move(calibStrip));
123 return StatusCode::SUCCESS;
◆ calibrateStrip() [1/3]
◆ calibrateStrip() [2/3]
◆ calibrateStrip() [3/3]
transversal and longitudinal components of the resolution
Implements Muon::INSWCalibTool.
Definition at line 126 of file NSWCalibTool.cxx.
132 return StatusCode::FAILURE;
148 return StatusCode::SUCCESS;
◆ chargeToPdo()
bool Muon::NSWCalibTool::chargeToPdo |
( |
const EventContext & |
ctx, |
|
|
const float |
charge, |
|
|
const Identifier & |
chnlId, |
|
|
int & |
pdo |
|
) |
| const |
|
overridevirtual |
◆ 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()
◆ distToTime()
retrieve the magnetic field
get the component parallel to to the eta strips (same used in digitization)
swap sign depending on the readout side
loop over drift distances
Implements Muon::INSWCalibTool.
Definition at line 251 of file NSWCalibTool.cxx.
256 fieldCache.
getField(globalPos.data(), magneticField.data());
259 const double phi = globalPos.phi();
260 double bfield = (magneticField.x()*
std::sin(phi)-magneticField.y()*
std::cos(phi))*1000.;
265 if (changeSign) bfield = -bfield;
268 for (
const double dist : driftDistances){
270 driftTimes.push_back(time);
272 return StatusCode::SUCCESS;
◆ 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
◆ getCalibData()
Definition at line 81 of file NSWCalibTool.cxx.
84 if(!readTdoPdo.isValid()){
85 ATH_MSG_ERROR(
"Cannot find conditions data container for TDOs and PDOs!");
88 return readTdoPdo.cptr();
◆ initialize()
StatusCode Muon::NSWCalibTool::initialize |
( |
| ) |
|
|
overridevirtual |
◆ initializeGasProperties()
StatusCode Muon::NSWCalibTool::initializeGasProperties |
( |
| ) |
|
|
private |
Definition at line 66 of file NSWCalibTool.cxx.
69 return StatusCode::FAILURE;
78 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()
static const InterfaceID& Muon::INSWCalibTool::interfaceID |
( |
| ) |
|
|
inlinestaticinherited |
Definition at line 63 of file INSWCalibTool.h.
64 static const InterfaceID IID_INSWCalibTool(
"Muon::INSWCalibTool",1,0);
65 return IID_INSWCalibTool;
◆ loadMagneticField()
Definition at line 242 of file NSWCalibTool.cxx.
244 if (!readHandle.isValid()) {
248 readHandle.cptr()->getInitializedCache(fieldCache);
◆ localStripPosition()
◆ mmGasProperties()
◆ mmPeakTime()
float Muon::NSWCalibTool::mmPeakTime |
( |
| ) |
const |
|
inlineoverridevirtual |
◆ 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.
◆ pdoToCharge()
bool Muon::NSWCalibTool::pdoToCharge |
( |
const EventContext & |
ctx, |
|
|
const bool |
inCounts, |
|
|
const int |
pdo, |
|
|
const Identifier & |
chnlId, |
|
|
float & |
charge |
|
) |
| const |
|
overridevirtual |
◆ renounce()
◆ renounceArray()
◆ stgcPeakTime()
float Muon::NSWCalibTool::stgcPeakTime |
( |
| ) |
const |
|
inlineoverridevirtual |
◆ 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.
◆ tdoToTime()
◆ timeToTdo()
bool Muon::NSWCalibTool::timeToTdo |
( |
const EventContext & |
ctx, |
|
|
const float |
time, |
|
|
const Identifier & |
chnlId, |
|
|
int & |
tdo, |
|
|
int & |
relBCID |
|
) |
| const |
|
overridevirtual |
◆ timeToTdoMM()
Definition at line 334 of file NSWCalibTool.cxx.
342 float tdoTime = -999.9;
345 if(
t >= lowerBound+i_relBCID*25 &&
t < (lowerBound+25)+i_relBCID*25){
346 tdoTime = i_relBCID*25 -
t;
351 if(tdoTime < lowerBound) {
◆ timeToTdoSTGC()
Definition at line 360 of file NSWCalibTool.cxx.
368 float tdoTime = -999.9;
371 if(
t >= lowerBound+i_relBCID*25 &&
t < (lowerBound+25)+i_relBCID*25){
372 tdoTime = i_relBCID*25 -
t;
377 if(tdoTime < lowerBound) {
◆ updateVHKA()
◆ m_applyMmBFieldCalib
Gaudi::Property<bool> Muon::NSWCalibTool::m_applyMmBFieldCalib {this, "applyMmBFieldCalib", true, "apply the MM BField correction in reconstruction"} |
|
private |
◆ m_applyMmT0Calib
Gaudi::Property<bool> Muon::NSWCalibTool::m_applyMmT0Calib {this, "applyMmT0Calib", false, "apply the MM t0 calibration"} |
|
private |
◆ m_applysTgcT0Calib
Gaudi::Property<bool> Muon::NSWCalibTool::m_applysTgcT0Calib {this, "applysTgcT0Calib", false, "apply the sTGC t0 calibration"} |
|
private |
◆ m_condT0Key
◆ m_condTdoPdoKey
◆ m_detStore
◆ m_evtStore
◆ m_fieldCondObjInputKey
◆ m_gasMixture
Gaudi::Property<std::string> Muon::NSWCalibTool::m_gasMixture {this, "GasMixture", "ArCo2_937"} |
|
private |
◆ m_idHelperSvc
◆ m_interactionDensityMean
double Muon::NSWCalibTool::m_interactionDensityMean {0.0F} |
|
private |
◆ m_interactionDensitySigma
double Muon::NSWCalibTool::m_interactionDensitySigma {0.0F} |
|
private |
◆ m_ionUncertainty
Gaudi::Property<double> Muon::NSWCalibTool::m_ionUncertainty {this,"ionUncertainty", 4.0} |
|
private |
◆ m_isData
Gaudi::Property<bool> Muon::NSWCalibTool::m_isData {this, "isData", false, "Processing data"} |
|
private |
◆ m_longDiff
Gaudi::Property<double> Muon::NSWCalibTool::m_longDiff {this, "longDiff", 0.019} |
|
private |
◆ m_lorentzAngleFunction
◆ m_mmLatencyData
Gaudi::Property<float> Muon::NSWCalibTool::m_mmLatencyData {this,"mmLatencyData",0} |
|
private |
◆ m_mmLatencyMC
Gaudi::Property<float> Muon::NSWCalibTool::m_mmLatencyMC {this,"mmLatencyMC",25} |
|
private |
◆ m_mmPeakTime
Gaudi::Property<float> Muon::NSWCalibTool::m_mmPeakTime {this, "mmPeakTime", 200.} |
|
private |
◆ m_mmT0TargetValue
Gaudi::Property<float> Muon::NSWCalibTool::m_mmT0TargetValue {this, "mmT0TargetValue", 50.0, "target mean value for the MM t0 calibration"} |
|
private |
◆ m_muDetMgrKey
◆ m_stgcLatencyData
Gaudi::Property<float> Muon::NSWCalibTool::m_stgcLatencyData {this,"stgcLatencyData",-50} |
|
private |
◆ m_stgcLatencyMC
Gaudi::Property<float> Muon::NSWCalibTool::m_stgcLatencyMC {this,"stgcLatencyMC",-50} |
|
private |
◆ m_stgcPeakTime
Gaudi::Property<float> Muon::NSWCalibTool::m_stgcPeakTime {this, "sTgcPeakTime", 0.} |
|
private |
◆ m_stgcT0TargetValue
Gaudi::Property<float> Muon::NSWCalibTool::m_stgcT0TargetValue {this,"stgcT0TargetValue", 0.0 ,"target mean value for the sTGC t0 calibration"} |
|
private |
◆ m_timeRes
Gaudi::Property<double> Muon::NSWCalibTool::m_timeRes {this, "TimeResolution", 25., "Time resolution"} |
|
private |
◆ m_transDiff
Gaudi::Property<double> Muon::NSWCalibTool::m_transDiff {this, "transDiff", 0.036} |
|
private |
◆ m_varHandleArraysDeclared
◆ m_vDrift
Gaudi::Property<double> Muon::NSWCalibTool::m_vDrift {this, "DriftVelocity",0.047, "Drift velocity"} |
|
private |
◆ m_vhka
The documentation for this class was generated from the following files:
virtual bool stripPosition(const Identifier &id, Amg::Vector2D &pos) const override final
strip position – local or global If the strip number is outside the range of valid strips,...
const Identifier identify() const
static constexpr double s_lowerTimeBound
Eigen::Matrix< double, 2, 1 > Vector2D
bool timeAndChargeInCounts() const
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
const Identifier & identify() const
const MuonChannelDesign * getDesign(const Identifier &id) const
returns the MuonChannelDesign class for the given identifier
std::vector< ALFA_RawData_p1 > t0
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
const std::vector< Identifier > & rdoList() const
return the List of rdo identifiers (pointers)
const std::string & key() const
Return the StoreGate ID for the referenced object.
static constexpr int s_BCWindow
virtual void setOwner(IDataHandleHolder *o)=0
static constexpr double s_lowerTimeBound
virtual bool stripPosition(const Identifier &id, Amg::Vector2D &pos) const override final
strip position - should be renamed to channel position If the strip number is outside the range of va...
const std::vector< int > & stripCharges() const
returns the list of charges
bool stripGlobalPosition(const Identifier &id, Amg::Vector3D &gpos) const
An sTgcReadoutElement corresponds to a single STGC module; therefore typicaly a barrel muon station c...
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
const std::vector< uint16_t > & stripNumbers() const
returns the list of strip numbers
const std::vector< short int > & stripTimes() const
returns the list of times
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Identifier identify() const
return the identifier
bool stripGlobalPosition(const Identifier &id, Amg::Vector3D &gpos) const
double charge(const T &p)
StatusCode initialize(bool used=true)
Eigen::Matrix< double, 3, 1 > Vector3D
def time(flags, cells_name, *args, **kw)
The MuonDetectorManager stores the transient representation of the Muon Spectrometer geometry and pro...
#define ATH_MSG_WARNING(x)
const MMReadoutElement * getMMReadoutElement(const Identifier &id) const
access via extended identifier (requires unpacking)
Local cache for magnetic field (based on MagFieldServices/AtlasFieldSvcTLS.h)
An MMReadoutElement corresponds to a single STGC module; therefore typicaly a barrel muon station con...
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
void getField(const double *ATH_RESTRICT xyz, double *ATH_RESTRICT bxyz, double *ATH_RESTRICT deriv=nullptr)
get B field value at given position xyz[3] is in mm, bxyz[3] is in kT if deriv[9] is given,...
const sTgcReadoutElement * getsTgcReadoutElement(const Identifier &id) const
access via extended identifier (requires unpacking)
unsigned int charge() const
double channelWidth() const
calculate local channel width
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
bool timeAndChargeInCounts() const
const CalibConstants * getCalibForChannel(const CalibDataType type, const Identifier &channelId) const
Retrieves the calibration constant for a particular readout channel.
static constexpr int s_BCWindow