ATLAS Offline Software
Loading...
Searching...
No Matches
SegmentRefitTest.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4#ifndef MUONTRACKFINDINGTEST_SEGMENTREFITTEST_H
5#define MUONTRACKFINDINGTEST_SEGMENTREFITTEST_H
6
9
13
14namespace MuonValR4{
19 public:
21 virtual StatusCode initialize() override final;
22 virtual StatusCode execute() override final;
23 virtual StatusCode finalize() override final;
24
25 private:
27 SG::ReadHandleKey<xAOD::MuonSegmentContainer> m_preFitKey{this, "PreFitContainer", "MuonSegmentsFromR4"};
29 SG::ReadHandleKey<xAOD::MuonSegmentContainer> m_postFitKey{this, "PostFitContainer", "ActsRefitSegments"};
33 ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc{this, "IdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
34
36 MuonVal::MuonTesterTree m_tree{"SegmentRefitTree", "SegmentRefitTest"};
38 MuonVal::ScalarBranch<int>& m_chamberIndex{m_tree.newScalar<int>("chamberIndex")};
40 MuonVal::ScalarBranch<short>& m_stationSide{m_tree.newScalar<short>("stationSide")};
42 MuonVal::ScalarBranch<int>& m_stationPhi{m_tree.newScalar<int>("stationPhi")};
44 MuonVal::ScalarBranch<float>& m_preFitLocX{m_tree.newScalar<float>("preFitLocX")};
46 MuonVal::ScalarBranch<float>& m_preFitLocY{m_tree.newScalar<float>("preFitLocY")};
48 MuonVal::ScalarBranch<float>& m_preFitTheta{m_tree.newScalar<float>("preFitTheta")};
50 MuonVal::ScalarBranch<float>& m_preFitPhi{m_tree.newScalar<float>("preFitPhi")};
52 MuonVal::ScalarBranch<float>& m_uncertLocX{m_tree.newScalar<float>("uncertLocX")};
54 MuonVal::ScalarBranch<float>& m_uncertLocY{m_tree.newScalar<float>("uncertLocY")};
56 MuonVal::ScalarBranch<float>& m_uncertTheta{m_tree.newScalar<float>("uncertTheta")};
58 MuonVal::ScalarBranch<float>& m_uncertPhi{m_tree.newScalar<float>("uncertPhi")};
59
61 MuonVal::ScalarBranch<float>& m_preFitChi2{m_tree.newScalar<float>("preFitChi2")};
63 MuonVal::ScalarBranch<unsigned short>& m_preFitNdoF{m_tree.newScalar<unsigned short>("preFitNdoF")};
65 MuonVal::ScalarBranch<unsigned short>& m_preFitNPrecHits{m_tree.newScalar<unsigned short>("preFitNPrecHits")};
67 MuonVal::ScalarBranch<unsigned short>& m_preFitNTrigEtaHits{m_tree.newScalar<unsigned short>("preFitNTrigEtaHits")};
69 MuonVal::ScalarBranch<unsigned short>& m_preFitNTrigPhiHits{m_tree.newScalar<unsigned short>("preFitNTrigPhiHits")};
71 MuonVal::ScalarBranch<unsigned char>& m_goodFit{m_tree.newScalar<unsigned char>("goodFit", false)};
73 MuonVal::ScalarBranch<float>& m_seedFitLocX{m_tree.newScalar<float>("seedFitLocX", 0.f)};
75 MuonVal::ScalarBranch<float>& m_seedFitLocY{m_tree.newScalar<float>("seedFitLocY", 0.f)};
77 MuonVal::ScalarBranch<float>& m_seedFitTheta{m_tree.newScalar<float>("seedFitTheta", 0.f)};
79 MuonVal::ScalarBranch<float>& m_seedFitPhi{m_tree.newScalar<float>("seedFitPhi", 0.f)};
81 MuonVal::ScalarBranch<float>& m_postFitLocX{m_tree.newScalar<float>("postFitLocX", 0.f)};
83 MuonVal::ScalarBranch<float>& m_postFitLocY{m_tree.newScalar<float>("postFitLocY", 0.f)};
85 MuonVal::ScalarBranch<float>& m_postFitTheta{m_tree.newScalar<float>("postFitTheta", 0.f)};
87 MuonVal::ScalarBranch<float>& m_postFitPhi{m_tree.newScalar<float>("postFitPhi", 0.f)};
89 MuonVal::ScalarBranch<float>& m_postFitChi2{m_tree.newScalar<float>("postFitChi2", 0.f)};
91 MuonVal::ScalarBranch<unsigned short>& m_postFitNdoF{m_tree.newScalar<unsigned short>("postFitNdoF", 0)};
93 MuonVal::ScalarBranch<unsigned short>& m_postFitNPrecHits{m_tree.newScalar<unsigned short>("postFitNPrecHits", 0)};
95 MuonVal::ScalarBranch<unsigned short>& m_postFitNTrigEtaHits{m_tree.newScalar<unsigned short>("postFitNTrigEtaHits", 0)};
97 MuonVal::ScalarBranch<unsigned short>& m_postFitNTrigPhiHits{m_tree.newScalar<unsigned short>("postFitNTrigPhiHits", 0)};
98 };
99}
100
101#endif
Property holding a SG store/key/clid from which a ReadHandle is made.
AthHistogramAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
Simple tester class to refit the Mdt segments with the Acts global chi2 fitter In the ideal case,...
MuonVal::ScalarBranch< unsigned short > & m_preFitNPrecHits
Number of precision hits before the refit.
SG::ReadHandleKey< xAOD::MuonSegmentContainer > m_postFitKey
Declare the data dependency on the post fit segment container.
MuonVal::ScalarBranch< short > & m_stationSide
+1 for A-, -1 of C-side
MuonVal::ScalarBranch< float > & m_preFitLocY
Local Y before the refit.
MuonVal::ScalarBranch< float > & m_postFitLocY
Local Y after the refit.
MuonVal::MuonTesterTree m_tree
The output muon tester tree.
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
IdHelperSvc to decode the Identifiers.
MuonVal::ScalarBranch< unsigned short > & m_preFitNTrigPhiHits
Number of phi trigger hits before the refit.
MuonVal::ScalarBranch< float > & m_uncertLocY
Uncertainty on the fitted local Y (prefit)
MuonVal::ScalarBranch< unsigned char > & m_goodFit
Flag whether the fit has succeeded or not.
MuonVal::ScalarBranch< unsigned short > & m_preFitNdoF
nDoF of the segment before the refit
MuonVal::ScalarBranch< float > & m_uncertTheta
Uncertainty on the fitted local Theta (prefit)
virtual StatusCode execute() override final
MuonVal::ScalarBranch< unsigned short > & m_postFitNTrigPhiHits
Number of phi trigger hits before the refit.
MuonVal::ScalarBranch< float > & m_preFitTheta
Local Theta before the refit.
MuonVal::ScalarBranch< float > & m_uncertPhi
Uncertainty on the fitted local Phi (prefit)
virtual StatusCode initialize() override final
MuonVal::ScalarBranch< int > & m_chamberIndex
chamber index field
MuonVal::ScalarBranch< float > & m_seedFitPhi
Local Phi after the refit.
MuonVal::ScalarBranch< float > & m_postFitLocX
Local X after the refit.
MuonVal::ScalarBranch< float > & m_seedFitTheta
Local Theta after the refit.
MuonVal::ScalarBranch< float > & m_postFitPhi
Local Phi after the refit.
MuonVal::ScalarBranch< unsigned short > & m_postFitNPrecHits
Number of precision hits after the refit.
MuonVal::ScalarBranch< float > & m_postFitChi2
Chi2 of the segment after the refit.
MuonVal::ScalarBranch< float > & m_uncertLocX
Uncertainty on the fitted local X (prefit)
MuonVal::ScalarBranch< float > & m_preFitLocX
Local X before the refit.
AthHistogramAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
MuonVal::ScalarBranch< unsigned short > & m_postFitNdoF
nDoF of the segment after the refit
SG::ReadDecorHandleKey< xAOD::MuonSegmentContainer > m_linkKey
Construct a link from the refitted segment to the input segment.
MuonVal::ScalarBranch< unsigned short > & m_preFitNTrigEtaHits
Number of eta trigger hits before the refit.
MuonVal::ScalarBranch< float > & m_seedFitLocX
Local X after the refit.
MuonVal::ScalarBranch< float > & m_postFitTheta
Local Theta after the refit.
MuonVal::ScalarBranch< int > & m_stationPhi
phi index of the station
MuonVal::ScalarBranch< float > & m_seedFitLocY
Local Y after the refit.
virtual StatusCode finalize() override final
MuonVal::ScalarBranch< float > & m_preFitChi2
Chi2 of the segment before the refit.
SG::ReadHandleKey< xAOD::MuonSegmentContainer > m_preFitKey
Declare the data dependency on the standard Mdt+Rpc+Tgc segment container.
MuonVal::ScalarBranch< float > & m_preFitPhi
Local Phi before the refit.
MuonVal::ScalarBranch< unsigned short > & m_postFitNTrigEtaHits
Number of eta trigger hits before the refit.
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
Property holding a SG store/key/clid from which a ReadHandle is made.
Lightweight algorithm to read xAOD MDT sim hits and (fast-digitised) drift circles from SG and fill a...