Loading [MathJax]/extensions/tex2jax.js
 |
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 EventContext &ctx, const Identifier &id, const double time, const double charge, const double theta, 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 |
|
const Muon::mmCTPClusterCalibData * | getCTPClusterCalibData (const EventContext &ctx) 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< bool > | m_CalibDriftVelocityFromData {this, "calibrateDriftVelocityFromData", false, "calibrateDriftVelocityFromData"} |
|
SG::ReadCondHandleKey< Muon::mmCTPClusterCalibData > | m_ctpClusterCalibKey {this, "CTPClusterCalibKey", "mmCTPClusterCalibData", "Key of the CTP cluster calibration corrections"} |
|
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 24 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 420 of file NSWCalibTool.cxx.
422 if(!readT0.isValid()){
423 ATH_MSG_ERROR(
"Cannot find conditions data container for T0s!");
426 bool isGood = readT0->getT0(
id, t0);
427 if(!isGood || t0==0){
428 ATH_MSG_DEBUG(
"failed to retrieve good t0 from database, skipping t0 calibration");
432 float newTime =
time + (targetT0 -
t0);
433 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 102 of file NSWCalibTool.cxx.
104 double lorentzAngle {0.};
110 fieldCache.
getField(globalPos.data(), magneticField.data());
113 double phi = globalPos.phi();
114 double bfield = (magneticField.x()*
std::sin(phi)-magneticField.y()*
std::cos(phi))*1000.;
119 if (changeSign) bfield = -bfield;
135 calibClus.push_back(std::move(calibStrip));
137 return StatusCode::SUCCESS;
◆ calibrateStrip() [1/3]
transversal and longitudinal components of the resolution
Implements Muon::INSWCalibTool.
Definition at line 140 of file NSWCalibTool.cxx.
147 return StatusCode::FAILURE;
165 float max_half_drifttime = (vDrift != 0 ) ? 2.5/vDrift : 50.;
169 ATH_MSG_VERBOSE(
"Original drift time: " << time <<
" new max half drift time: " << max_half_drifttime <<
" new time: " << calibStrip.
time <<
" targett0 " <<
m_mmT0TargetValue );
173 double vDriftCorrected = vDrift *
std::cos(lorentzAngle);
181 calibStrip.
dx =
std::sin(lorentzAngle) * calibStrip.
time * vDrift;
183 return StatusCode::SUCCESS;
◆ calibrateStrip() [2/3]
◆ calibrateStrip() [3/3]
◆ 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 286 of file NSWCalibTool.cxx.
291 fieldCache.
getField(globalPos.data(), magneticField.data());
294 const double phi = globalPos.phi();
295 double bfield = (magneticField.x()*
std::sin(phi)-magneticField.y()*
std::cos(phi))*1000.;
300 if (changeSign) bfield = -bfield;
303 for (
const double dist : driftDistances){
305 driftTimes.push_back(time);
307 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();
◆ getCTPClusterCalibData()
Definition at line 91 of file NSWCalibTool.cxx.
94 if (!ctpClusterCalibDB.isValid()) {
95 ATH_MSG_FATAL(
"Failed to retrieve the parameterized errors "<<ctpClusterCalibDB.fullKey());
98 return ctpClusterCalibDB.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 277 of file NSWCalibTool.cxx.
279 if (!readHandle.isValid()) {
283 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 369 of file NSWCalibTool.cxx.
377 float tdoTime = -999.9;
380 if(
t >= lowerBound+i_relBCID*25 &&
t < (lowerBound+25)+i_relBCID*25){
381 tdoTime = i_relBCID*25 -
t;
386 if(tdoTime < lowerBound) {
◆ timeToTdoSTGC()
Definition at line 395 of file NSWCalibTool.cxx.
403 float tdoTime = -999.9;
406 if(
t >= lowerBound+i_relBCID*25 &&
t < (lowerBound+25)+i_relBCID*25){
407 tdoTime = i_relBCID*25 -
t;
412 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_CalibDriftVelocityFromData
Gaudi::Property<bool> Muon::NSWCalibTool::m_CalibDriftVelocityFromData {this, "calibrateDriftVelocityFromData", false, "calibrateDriftVelocityFromData"} |
|
private |
◆ m_condT0Key
◆ m_condTdoPdoKey
◆ m_ctpClusterCalibKey
◆ 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
virtual const Amg::Vector3D & globalPosition() const override final
Returns the global position.
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)
#define ATH_MSG_VERBOSE(x)
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
double getCTPCorrectedDriftVelocity(const Identifier &identifier, const double theta) const
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
constexpr int pow(int base, int exp) noexcept
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