![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
ATLAS Offline Software
|
Go to the documentation of this file.
10 ISvcLocator* pSvcLocator)
20 return StatusCode::SUCCESS;
25 return StatusCode::SUCCESS;
31 const EventContext & context = Gaudi::Hive::currentContext();
38 return StatusCode::FAILURE;
40 if (!readDriftCircles.
isValid()){
42 return StatusCode::FAILURE;
48 std::map<Identifier, const xAOD::MdtDriftCircle*> driftCircleMap{};
54 auto empl_res = driftCircleMap.emplace(driftCircleID,
driftCircle);
56 if (!empl_res.second) {
59 ATH_MSG_WARNING(
" The conflicting instance is at r = "<<empl_res.first->second->driftRadius());
63 std::map<Identifier, const xAOD::MuonSimHit*> simHitIDsSeen;
68 if (std::abs(simHit->pdgId()) != 13)
continue;
71 auto empl_res = simHitIDsSeen.emplace(
ID,simHit);
73 if (!empl_res.second) {
77 <<simHit->localPosition().perp()
78 <<
", "<<simHit->localPosition().z()
79 <<
", "<<simHit->globalTime()
80 <<
" from a "<<simHit->pdgId()
81 <<
" with BC "<<simHit->genParticleLink().barcode());
83 <<
exist->localPosition().perp()
84 <<
", "<<
exist->localPosition().z()
85 <<
", "<<
exist->globalTime()
86 <<
" from a "<<
exist->pdgId()
87 <<
" with BC "<<
exist->genParticleLink().barcode());
100 auto foundDriftCircle = driftCircleMap.find(
ID);
101 if(foundDriftCircle != driftCircleMap.end()){
110 return StatusCode::SUCCESS;
MuonVal::ScalarBranch< int > & m_out_tube
IDENTIFIER_TYPE value_type
std::vector< Identifier > ID
StatusCode init(OWNER *instance)
Initialize method.
MuonVal::ScalarBranch< bool > & m_out_hasDigi
MuonVal::ScalarBranch< int > & m_out_stationEta
MuonVal::ScalarBranch< int > & m_out_stationPhi
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
MuonVal::ScalarBranch< int > & m_out_multilayer
::StatusCode StatusCode
StatusCode definition for legacy code.
MuonVal::ScalarBranch< int > & m_out_stationName
MuonVal::ScalarBranch< float > & m_out_digiDriftRadius
MuonVal::ScalarBranch< int > & m_out_tubeLayer
MuonVal::ScalarBranch< float > & m_out_barcode
virtual bool isValid() override final
Can the handle be successfully dereferenced?
Lightweight algorithm to read xAOD MDT sim hits and (fast-digitised) drift circles from SG and fill a...
virtual StatusCode initialize() override
virtual StatusCode execute() override
MuonVal::ScalarBranch< float > & m_out_digiDriftRadiusCov
MDTFastDigiTester(const std::string &name, ISvcLocator *pSvcLocator)
SG::ReadHandleKey< xAOD::MdtDriftCircleContainer > m_inDriftCircleKey
#define ATH_MSG_WARNING(x)
MuonVal::ScalarBranch< float > & m_out_simDriftRadius
bool fill(const EventContext &ctx)
Fills the tree per call.
StatusCode write()
Finally write the TTree objects.
virtual StatusCode finalize() override
https://gitlab.cern.ch/atlas/athena/-/blob/master/MuonSpectrometer/MuonReconstruction/MuonRecEvent/Mu...
SG::ReadHandleKey< xAOD::MuonSimHitContainer > m_inSimHitKey
MuonVal::MuonTesterTree m_tree