|
ATLAS Offline Software
|
Go to the documentation of this file.
32 return StatusCode::SUCCESS;
39 ATH_CHECK((getAndFillContainer<Muon::MdtPrepDataContainer, xAOD::MdtDriftCircleContainer, xAOD::MdtDriftCircleAuxContainer > (m_mdtPrepRawDataKey, m_mdtxAODKey, ctx)));
40 ATH_CHECK((getAndFillContainer<Muon::RpcPrepDataContainer, xAOD::RpcStripContainer, xAOD::RpcStripAuxContainer > (m_rpcPrepRawDataKey, m_rpcxAODKey, ctx) ));
41 ATH_CHECK((getAndFillContainer<Muon::TgcPrepDataContainer, xAOD::TgcStripContainer, xAOD::TgcStripAuxContainer > (m_tgcPrepRawDataKey, m_tgcxAODKey, ctx) ));
42 ATH_CHECK((getAndFillContainer<Muon::MMPrepDataContainer, xAOD::MMClusterContainer, xAOD::MMClusterAuxContainer > (m_mmPrepRawDataKey, m_mmxAODKey, ctx) ));
43 ATH_CHECK((getAndFillContainer<Muon::sTgcPrepDataContainer, xAOD::sTgcStripContainer, xAOD::sTgcStripAuxContainer > (m_stgcPrepRawDataKey, m_stgcStripxAODKey, ctx)));
44 ATH_CHECK((getAndFillContainer<Muon::sTgcPrepDataContainer, xAOD::sTgcWireContainer, xAOD::sTgcWireAuxContainer > (m_stgcPrepRawDataKey, m_stgcWirexAODKey, ctx)));
45 ATH_CHECK((getAndFillContainer<Muon::sTgcPrepDataContainer, xAOD::sTgcPadContainer, xAOD::sTgcPadAuxContainer > (m_stgcPrepRawDataKey, m_stgcPadxAODKey, ctx)));
47 return StatusCode::SUCCESS;
51 template <
class INTYPE,
class OUTTYPE,
class OUTTYPEAUX>
54 const EventContext& ctx)
const {
56 ATH_MSG_VERBOSE(
"No key configured to convert "<<
typeid(INTYPE).
name()<<
" into xAOD objects. Skipping.");
57 return StatusCode::SUCCESS;
69 std::make_unique<OUTTYPEAUX>()) );
70 ATH_MSG_DEBUG(
"Recorded xAOD container with key: " << outputContainer.
key() );
72 for (
const auto *coll : *handle) {
73 for (
const auto * prd : *coll) {
74 auto * xprd =
new typename OUTTYPE::base_value_type();
75 outputContainer->push_back(xprd);
76 if (!fillxPRD(*prd, *xprd)) {
77 outputContainer->pop_back();
82 return StatusCode::SUCCESS;
93 const MdtIdHelper& id_helper{m_idHelperSvc->mdtIdHelper()};
101 xprd.
setMeasurement(m_idHelperSvc->detElementHash(prdId), localPosition, localCovariance);
115 const RpcIdHelper& idHelper{m_idHelperSvc->rpcIdHelper()};
127 xprd.
setMeasurement(m_idHelperSvc->detElementHash(prdId), localPosition, localCovariance);
139 const TgcIdHelper& idHelper{m_idHelperSvc->tgcIdHelper()};
148 xprd.
setMeasurement(m_idHelperSvc->detElementHash(prdId), localPosition, localCovariance);
157 const MmIdHelper& idHelper{m_idHelperSvc->mmIdHelper()};
165 xprd.
setMeasurement(m_idHelperSvc->detElementHash(prdId), localPosition, localCovariance);
185 const sTgcIdHelper& idHelper{m_idHelperSvc->stgcIdHelper()};
207 const sTgcIdHelper& idHelper{m_idHelperSvc->stgcIdHelper()};
224 const sTgcIdHelper& idHelper{m_idHelperSvc->stgcIdHelper()};
void setStripTimes(const std::vector< int16_t > &stripTimes)
void setTdc(int16_t tdc)
Setter methods.
float driftDist() const
Returns the Drift Distance.
Class to represent MM measurements.
void setChannelNumber(uint16_t chan)
void setGasGap(uint8_t gapNum)
StatusCode getAndFillContainer(const SG::ReadHandleKey< INTYPE > &inKey, const SG::WriteHandleKey< OUTTYPE > &outKey, const EventContext &) const
void setStripNumbers(const std::vector< uint16_t > &strips)
Set the list of individual strip clusters.
void setDriftDist(float value)
Sets the drift distance.
SG::WriteHandleKey< xAOD::RpcStripContainer > m_rpcxAODKey
void setStripNumber(uint16_t strip)
Sets the associated strip number identifier field.
void setTimeOverThreshold(float timeoverthreshold)
Sets the TDC counts.
void setDoubletPhi(uint8_t doubPhi)
Sets the doubletPhi identifier field.
const Amg::MatrixX & localCovariance() const
return const ref to the error matrix
SG::ReadHandleKey< Muon::TgcPrepDataContainer > m_tgcPrepRawDataKey
virtual IdentifierHash collectionHash() const
Returns the IdentifierHash corresponding to the PRD collection in the PRD container.
float timeOverThreshold() const
Returns the time over threshold.
bool fillxPRD(const PRD &prd, xPRD &xprd) const
Identifier32 get_identifier32() const
Get the 32-bit version Identifier, will be invalid if >32 bits needed.
MeasVector< N > toStorage(const AmgVector(N)&amgVec)
Converts the double precision of the AmgVector into the floating point storage precision of the MeasV...
void setAngle(float value)
Sets the microTPC angle.
void setStripDriftErrors(const std::vector< DriftCov_t > &stripDriftErrors)
void setAmbiguityFlag(uint8_t ambi)
Sets the ADC counts.
SG::WriteHandleKey< xAOD::sTgcStripContainer > m_stgcStripxAODKey
#define ATH_MSG_VERBOSE(x)
void setStripDriftDist(const std::vector< float > &stripDriftDist)
Property holding a SG store/key/clid from which a ReadHandle is made.
bool empty() const
Test if the key is blank.
int adc() const
Returns the ADC (typically range is 0 to 250)
value_type get_compact() const
Get the compact id.
void setStripCharges(const std::vector< int > &charges)
Set the individual list of contributing charges.
const std::vector< AmgVector(2)> & stripDriftErrors() const
returns the list of drift distances
float angle() const
Returns the microTPC angle.
void setCharge(uint32_t value)
Sets the calibrated charge.
virtual StatusCode initialize() override
float time() const
Returns the time.
void setStatus(MdtDriftCircleStatus st)
Sets the status of the drift circle.
void setGasGap(uint8_t gap)
const std::vector< uint16_t > & stripNumbers() const
returns the list of strip numbers
const std::vector< int > & stripCharges() const
returns the list of charges
void setIdentifier(const DetectorIdentType measId)
Sets the full Identifier of the measurement.
const std::vector< int > & stripCharges() const
returns the list of charges
uint16_t getBcBitMap() const
Returns the bcBitMap of this PRD bit2 for Previous BC, bit1 for Current BC, bit0 for Next BC.
Property holding a SG store/key/clid from which a WriteHandle is made.
void setAdc(int16_t adc)
Sets the ADC counts.
SG::ReadHandleKey< Muon::MMPrepDataContainer > m_mmPrepRawDataKey
Class to represent RPC measurements.
void setBcBitMap(uint16_t)
void setAuthor(Author a)
Set the author of the producing algorithm.
void setGasGap(uint8_t gap)
Sets the associated gasGap identifier field.
::StatusCode StatusCode
StatusCode definition for legacy code.
void setMeasuresPhi(uint8_t measPhi)
sets the measuresPhi value
void setStripCharges(const std::vector< int > &stripCharges)
void setTriggerInfo(uint32_t triggerinfo)
Set the trigger info of the hit
SG::WriteHandleKey< xAOD::MMClusterContainer > m_mmxAODKey
void setMeasuresPhi(uint8_t measPhi)
SG::WriteHandleKey< xAOD::sTgcWireContainer > m_stgcWirexAODKey
SG::ReadHandleKey< Muon::MdtPrepDataContainer > m_mdtPrepRawDataKey
void setQuality(Quality q)
Set the quality flag.
const std::vector< uint16_t > & stripNumbers() const
returns the list of strip numbers
int triggerInfo() const
Returns the trigger coincidence - usually false, unless ijk>5 or highpt&&ijk==0.
virtual bool isValid() override final
Can the handle be successfully dereferenced?
const std::vector< short int > & stripTimes() const
returns the list of times
Eigen::Matrix< float, N, 1 > MeasVector
Abrivation of the Matrix & Covariance definitions.
Identifier identify() const
return the identifier
virtual StatusCode execute(const EventContext &ctx) const override
void setChannelNumber(uint16_t channel)
Set the channel number of the measurement.
SG::ReadHandleKey< Muon::RpcPrepDataContainer > m_rpcPrepRawDataKey
int tdc() const
Returns the TDC (typically range is 0 to 2500).
const Amg::Vector2D & localPosition() const
return the local position reference
short int time() const
Returns the time (in ns)
Class to represent measurements from the Monitored Drift Tubes.
virtual const std::string & key() const override final
Return the StoreGate ID for the referenced object.
void setTime(float time)
Sets the the triger time of the hit.
SG::WriteHandleKey< xAOD::MdtDriftCircleContainer > m_mdtxAODKey
void setChiSqProb(float value)
Sets the microTPC chisq probability.
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
SG::WriteHandleKey< xAOD::sTgcPadContainer > m_stgcPadxAODKey
SG::ReadHandleKey< Muon::sTgcPrepDataContainer > m_stgcPrepRawDataKey
void setMeasurement(const DetectorIDHashType idHash, MeasVector< N > locPos, MeasMatrix< N > locCov)
Sets IdentifierHash, local position and local covariance of the measurement.
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
Class to represent TGC measurements.
void setStripTimes(const std::vector< short int > ×)
Set the list of indivual strip times.
void setLayer(uint8_t layer_n)
Sets the layer number.
void setTime(uint16_t value)
Sets the TDC counts.
void setTime(short int t)
: Set the calibrated time of the wire measurement
void setCharge(int q)
: Set the collected charge on the wire
Eigen::Matrix< float, N, N > MeasMatrix
void setGasGap(uint8_t gap)
Set the associated gas gap of the measurement.
https://gitlab.cern.ch/atlas/athena/-/blob/master/MuonSpectrometer/MuonReconstruction/MuonRecEvent/Mu...
void setStripNumbers(const std::vector< uint16_t > &stripNumbers)
MdtDriftCircleStatus status() const
Returns the status of the measurement.
const std::vector< float > & stripDriftDist() const
returns the list of drift distances
int ambiguityFlag() const
Returns the number of ambiguities associated with this RpcPrepData.
int charge() const
Returns the AD.
Class to represent sTgc measurements.
SG::WriteHandleKey< xAOD::TgcStripContainer > m_tgcxAODKey
float chisqProb() const
Returns the microTPC chisq Prob.
int charge() const
Returns the bcBitMap of this PRD bit2 for Previous BC, bit1 for Current BC, bit0 for Next BC.
void setChannelNumber(uint16_t strip)
const std::vector< short int > & stripTimes() const
returns the list of times
void setTube(uint16_t tube_n)
Sets the tube number.