8 #ifndef GARANA_RECOTREE_H_ 9 #define GARANA_RECOTREE_H_ 30 virtual const size_t NTrack()
const = 0;
31 virtual const size_t NVertex()
const = 0;
32 virtual const size_t NVee()
const = 0;
33 virtual const size_t NCalCluster()
const = 0;
36 virtual const TLorentzVector* TrackVertex(
const size_t& itrack)
const = 0;
37 virtual const TLorentzVector*
TrackEnd(
const size_t& itrack)
const = 0;
38 virtual const size_t NTrackHit(
const size_t& itrack)
const = 0;
39 virtual const TVector3* TrackMomBeg(
const size_t& itrack)
const = 0;
40 virtual const TVector3* TrackMomEnd(
const size_t& itrack)
const = 0;
41 virtual const float TrackVtxDirectionX(
const size_t& itrack)
const = 0;
42 virtual const float TrackVtxDirectionY(
const size_t& itrack)
const = 0;
43 virtual const float TrackVtxDirectionZ(
const size_t& itrack)
const = 0;
44 virtual const float TrackEndDirectionX(
const size_t& itrack)
const = 0;
45 virtual const float TrackEndDirectionY(
const size_t& itrack)
const = 0;
46 virtual const float TrackEndDirectionZ(
const size_t& itrack)
const = 0;
47 virtual const float TrackLenFwd(
const size_t& itrack)
const = 0;
48 virtual const float TrackLenBkd(
const size_t& itrack)
const = 0;
49 virtual const float TrackIonizFwd(
const size_t& itrack)
const = 0;
50 virtual const float TrackIonizBkd(
const size_t& itrack)
const = 0;
51 virtual const int TrackChiSqrFwd(
const size_t& itrack)
const = 0;
52 virtual const int TrackChiSqrBkd(
const size_t& itrack)
const = 0;
53 virtual const int TrackChgFwd(
const size_t& itrack)
const = 0;
54 virtual const int TrackChgBkd(
const size_t& itrack)
const = 0;
55 virtual void TrackParBeg(
const size_t& itrack,
float pars[5])
const = 0;
56 virtual void TrackParEnd(
const size_t& itrack,
float pars[5])
const = 0;
57 virtual void TrackCovarBeg(
const size_t& itrack,
float pars[15])
const = 0;
58 virtual void TrackCovarEnd(
const size_t& itrack,
float pars[15])
const = 0;
60 virtual const TLorentzVector* TrackTruePosBeg(
const size_t& itrack)
const = 0;
61 virtual const TLorentzVector* TrackTruePosEnd(
const size_t& itrack)
const = 0;
62 virtual const TLorentzVector* TrackTrueMomBeg(
const size_t& itrack)
const = 0;
63 virtual const TLorentzVector* TrackTrueMomEnd(
const size_t& itrack)
const = 0;
64 virtual const float TrackTrueEnergy(
const size_t& itrack)
const = 0;
65 virtual const size_t TrackNTrueTrack(
const size_t& itrack)
const = 0;
66 virtual const int TrackTrkIdMaxDeposit(
const size_t& itrack)
const = 0;
67 virtual const float TrackMaxDeposit(
const size_t& itrack)
const = 0;
68 const float TrackMaxDepositFrac(
const size_t& itrack)
const;
69 virtual const pair<int,float>* TrackTrueDeposit(
const size_t& itrack,
size_t& itrue)
const = 0;
70 virtual const vector<pair<int,float>>* TrackTrueDeposits(
const size_t& itrack)
const = 0;
73 virtual const TLorentzVector* GetVertex(
const size_t& ivertex)
const = 0;
74 virtual void VertexCovariance(
const size_t& ivertex,
float covar[][3])
const = 0;
77 virtual const TLorentzVector* VeeVertex(
const size_t& ivee)
const = 0;
78 virtual void VeeCovariance(
const size_t& ivee,
float covar[][3])
const = 0;
79 virtual const vector<TLorentzVector>* VeeMomentumPerHypothesis(
const size_t& ivee)
const = 0;
80 virtual const float VeeChiSquared(
const size_t& ivee)
const = 0;
83 virtual const TLorentzVector* CalClustPosition(
const size_t& icluster)
const = 0;
84 virtual const float CalClustEnergy(
const size_t& icluster)
const = 0;
85 virtual const float CalClustEnergyError(
const size_t& icluster)
const = 0;
86 virtual const float CalClustTrueEnergy(
const size_t& icluster)
const = 0;
87 virtual const size_t CalClustNTrueTrack(
const size_t& icluster)
const = 0;
88 virtual const int CalClustTrkIdMaxDeposit(
const size_t& icluster)
const = 0;
89 virtual const float CalClustMaxDeposit(
const size_t& icluster)
const = 0;
90 const float CalClustMaxDepositFrac(
const size_t& icluster)
const;
91 virtual const std::pair<int,float>* CalClustTrueDeposit(
const size_t& icluster,
const size_t& itrack)
const = 0;
92 virtual const float CalClustTimeDifference(
const size_t& icluster)
const = 0;
93 virtual const float* CalClustShape(
const size_t& icluster)
const = 0;
94 virtual const float CalClustTheta(
const size_t& icluster)
const = 0;
95 virtual const float CalClustPhi(
const size_t& icluster)
const = 0;
96 virtual const vector<TVector3>* CalClustEigenVecs(
const size_t& icluster)
const = 0;
99 void GetTrackG4PIndices (
const size_t& itrk, vector<UInt_t>&
ig4ps )
const;
100 void GetVertexTrackIndices (
const size_t& ivtx, vector<UInt_t>& itracks)
const;
101 void GetVeeTrackIndices (
const size_t& ivee, vector<UInt_t>& itracks)
const;
102 void GetCalClusterTrackIndices(
const size_t& iclust, vector<UInt_t>& itracks)
const;
103 void GetCalClusterG4Indices (
const size_t& iclust, vector<UInt_t>& ig4ps)
const;
108 vector<vector<UInt_t>>* fTrackG4PIndices =
nullptr;
109 vector<vector<UInt_t>>* fVertTrackIndices =
nullptr;
110 vector<vector<UInt_t>>* fVeeTrackIndices =
nullptr;
111 vector<vector<UInt_t>>* fCalClusterTrackIndices =
nullptr;
112 vector<vector<UInt_t>>* fCalClusterG4Indices =
nullptr;
114 TBranch* b_TrackG4PIndices =
nullptr;
115 TBranch* b_VertTrackIndices =
nullptr;
116 TBranch* b_VeeTrackIndices =
nullptr;
117 TBranch* b_CalClusterTrackIndices =
nullptr;
118 TBranch* b_CalClusterG4Indices =
nullptr;