4#ifndef L0MUONS1TGCVALIDATION_TGCL0ROOTOUTPUTALG_H
5#define L0MUONS1TGCVALIDATION_TGCL0ROOTOUTPUTALG_H
27 virtual StatusCode
execute(
const EventContext& ctx)
override;
28 virtual StatusCode
finalize()
override;
34 this,
"InputKey",
"L0MuonTGCValidationEvent",
35 "Calculated event-local truth-validation data"};
37 this,
"FailOnInvalidData",
true,
38 "Fail instead of skipping structurally inconsistent validation data"};
43 m_tree.newScalar<std::uint32_t>(
"runNumber")};
45 m_tree.newScalar<std::uint64_t>(
"eventNumber")};
47 m_tree.newScalar<std::uint32_t>(
"lumiBlock")};
49 m_tree.newScalar<std::uint32_t>(
"bcid")};
51#define TGCL0_VECTOR_BRANCH(TYPE, MEMBER, NAME) \
52 MuonVal::VectorBranch<TYPE>& MEMBER{m_tree.newVector<TYPE>(NAME)}
61 "truthExtrapolatedStationMask");
70 "truthMatchedCandidateIndex");
72 "truthMatchMeanDeltaR");
74 "truthUnmatchedReason");
76 "truthWireSegmentMatched");
78 "truthStripSegmentMatched");
80 "truthMatchedWireSegmentIndex");
82 "truthMatchedStripSegmentIndex");
84 "truthWireSegmentMatchResidual");
86 "truthStripSegmentMatchResidual");
89 "segmentSubdetectorId");
91 "segmentTriggerSector");
96 "segmentStationMask");
98 "segmentSummedQuality");
105 "segmentOutputResidual");
108 "segmentPivotChannel");
111 "segmentTruthMatchResidual");
114 "candidateSubdetectorId");
116 "candidateTriggerSector");
118 "candidateReadoutSector");
121 "candidateStationMask");
123 "candidateWireStationMask");
125 "candidateStripStationMask");
132#undef TGCL0_VECTOR_BRANCH
Property holding a SG store/key/clid from which a ReadHandle is made.
AthHistogramAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
MuonTester backend for event-level TGC truth-validation data.
TGCL0_VECTOR_BRANCH(std::uint16_t, m_candidateBcTag, "candidateBcTag")
TGCL0_VECTOR_BRANCH(float, m_segmentResidual, "segmentResidual")
TGCL0_VECTOR_BRANCH(int, m_truthMatchedStripSegmentIndex, "truthMatchedStripSegmentIndex")
TGCL0_VECTOR_BRANCH(float, m_truthMatchMeanDeltaR, "truthMatchMeanDeltaR")
TGCL0_VECTOR_BRANCH(std::uint8_t, m_candidateWireStationMask, "candidateWireStationMask")
MuonVal::ScalarBranch< std::uint32_t > & m_bcid
TGCL0_VECTOR_BRANCH(float, m_segmentTruthMatchResidual, "segmentTruthMatchResidual")
TGCL0_VECTOR_BRANCH(std::uint8_t, m_truthWireSegmentMatched, "truthWireSegmentMatched")
TGCL0_VECTOR_BRANCH(float, m_truthCharge, "truthCharge")
TGCL0_VECTOR_BRANCH(int, m_truthMatchedWireSegmentIndex, "truthMatchedWireSegmentIndex")
TGCL0_VECTOR_BRANCH(int, m_truthBarcode, "truthBarcode")
TGCL0_VECTOR_BRANCH(std::uint8_t, m_candidateStripStationMask, "candidateStripStationMask")
TGCL0_VECTOR_BRANCH(std::uint8_t, m_candidateStationMask, "candidateStationMask")
TGCL0_VECTOR_BRANCH(float, m_truthStripSegmentMatchResidual, "truthStripSegmentMatchResidual")
TGCL0_VECTOR_BRANCH(float, m_segmentOutputResidual, "segmentOutputResidual")
virtual StatusCode initialize() override
TGCL0_VECTOR_BRANCH(int, m_truthMatchedCandidateIndex, "truthMatchedCandidateIndex")
TGCL0_VECTOR_BRANCH(std::uint16_t, m_candidateTriggerSector, "candidateTriggerSector")
TGCL0_VECTOR_BRANCH(float, m_truthPhi, "truthPhi")
TGCL0_VECTOR_BRANCH(std::uint16_t, m_segmentTriggerSector, "segmentTriggerSector")
MuonVal::ScalarBranch< std::uint32_t > & m_runNumber
TGCL0_VECTOR_BRANCH(std::uint8_t, m_truthExtrapolatedStationMask, "truthExtrapolatedStationMask")
TGCL0_VECTOR_BRANCH(std::uint8_t, m_segmentNStations, "segmentNStations")
TGCL0_VECTOR_BRANCH(float, m_truthM3Phi, "truthM3Phi")
MuonVal::ScalarBranch< std::uint32_t > & m_lumiBlock
TGCL0_VECTOR_BRANCH(float, m_truthPt, "truthPt")
TGCL0_VECTOR_BRANCH(std::uint8_t, m_truthUnmatchedReason, "truthUnmatchedReason")
TGCL0_VECTOR_BRANCH(int, m_truthPdgId, "truthPdgId")
TGCL0_VECTOR_BRANCH(float, m_segmentPhi, "segmentPhi")
TGCL0_VECTOR_BRANCH(float, m_truthM1Phi, "truthM1Phi")
Gaudi::Property< bool > m_failOnInvalidData
TGCL0_VECTOR_BRANCH(float, m_truthWireSegmentMatchResidual, "truthWireSegmentMatchResidual")
TGCL0_VECTOR_BRANCH(float, m_truthM1Eta, "truthM1Eta")
TGCL0_VECTOR_BRANCH(float, m_truthM3Eta, "truthM3Eta")
TGCL0_VECTOR_BRANCH(int, m_candidateTruthIndex, "candidateTruthIndex")
TGCL0_VECTOR_BRANCH(float, m_segmentEta, "segmentEta")
TGCL0_VECTOR_BRANCH(std::uint8_t, m_truthStripSegmentMatched, "truthStripSegmentMatched")
MuonVal::MuonTesterTree m_tree
MuonVal::ScalarBranch< std::uint64_t > & m_eventNumber
TGCL0_VECTOR_BRANCH(float, m_truthEta, "truthEta")
SG::ReadHandleKey< TgcL0ValidationEvent > m_inputKey
TGCL0_VECTOR_BRANCH(std::uint8_t, m_segmentSummedQuality, "segmentSummedQuality")
virtual StatusCode execute(const EventContext &ctx) override
Execute method.
TGCL0_VECTOR_BRANCH(float, m_truthM2Phi, "truthM2Phi")
TGCL0_VECTOR_BRANCH(float, m_truthM2Eta, "truthM2Eta")
TGCL0_VECTOR_BRANCH(float, m_candidateDeltaPhi, "candidateDeltaPhi")
AthHistogramAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
TGCL0_VECTOR_BRANCH(std::uint16_t, m_candidateSubdetectorId, "candidateSubdetectorId")
TGCL0_VECTOR_BRANCH(std::uint8_t, m_truthMatched, "truthMatched")
virtual StatusCode finalize() override
TGCL0_VECTOR_BRANCH(int, m_segmentTruthIndex, "segmentTruthIndex")
TGCL0_VECTOR_BRANCH(float, m_segmentConsistency, "segmentConsistency")
TGCL0_VECTOR_BRANCH(float, m_candidateEta, "candidateEta")
TGCL0_VECTOR_BRANCH(float, m_candidatePhi, "candidatePhi")
TGCL0_VECTOR_BRANCH(std::uint16_t, m_candidateReadoutSector, "candidateReadoutSector")
TGCL0_VECTOR_BRANCH(std::uint16_t, m_segmentBcTag, "segmentBcTag")
TGCL0_VECTOR_BRANCH(std::uint8_t, m_segmentStationMask, "segmentStationMask")
TGCL0_VECTOR_BRANCH(std::uint16_t, m_segmentSubdetectorId, "segmentSubdetectorId")
TGCL0_VECTOR_BRANCH(std::uint16_t, m_segmentPivotChannel, "segmentPivotChannel")
TGCL0_VECTOR_BRANCH(float, m_candidateDeltaTheta, "candidateDeltaTheta")
void copyToBranches(const TgcL0ValidationEvent &input)
TGCL0_VECTOR_BRANCH(std::uint8_t, m_segmentProjection, "segmentProjection")
Property holding a SG store/key/clid from which a ReadHandle is made.
ROOT-independent validation data for one event.