36 std::cerr <<
"WARNING(MillRecoTree::MillTrees): " 37 <<
"trying to mill trees that have not been verified" 81 std::cout <<
"got ObjArray of branches from fTreeIn" <<
std::endl;
83 if(!branches || branches->GetEntries()==0 )
86 catch(TObjArray* branches){
87 std::cerr <<
"ERROR(MillRecoTree::VerifyBranches): no branches found in passed input tree" 93 std::cout <<
"WARNING(MillRecoTree::VerifyBranches): Mismatch in number of branches (expected " 97 std::cout <<
"found genTree with " << branches->GetEntriesFast() <<
" branches" <<
std::endl;
100 TIter next(branches);
101 TBranch* branch =
nullptr;
102 while( (branch=(TBranch*)next())) {
107 std::cout <<
" chopping branch '" << branch->GetFullName() <<
"'" <<
std::endl;
127 std::cout <<
"WARNING(MillRecoTree): ignoring unknown branch '" 128 << branch->GetFullName() <<
"'" <<
std::endl;
167 float trackpars[5], trackcovar[15];
const float TrackIonizBkd(const size_t &itrack) const override
track average ionization rate from backward fit
vector< float > * fTrkVtxDirZ
const float TrackVtxDirectionZ(const size_t &itrack) const override
z-direction cosine at track vertex
vector< float > * fTrkLenBac
length of the track in cm from backwards fit
vector< float > * fCalClustEigen1X
Eigenvectors of the cluster in ascending order (principal axis with smallest inertial mass) normalise...
vector< float > * fTrkCovMat8Beg
vector< float > * fTrkIonizBac
vector< float > * fTrkCovMat7End
vector< float > * fTrkVtxDirY
vector< float > * fVtxY
y-position of vertex [cm]
vector< float > * fTrackPhiBeg
Track phi (par[3]) at beginning of track [rad].
vector< float > * fVtxZ
z-position of vertex [cm]
const float TrackEndDirectionZ(const size_t &itrack) const override
z-direction cosine at track end
vector< float > * fVtxCovar31
vector< float > * fCalClustZ
z-position of the cluster [cm]
vector< size_t > * fTrkNHits
number of hits
vector< float > * fCalClustEigen3X
Eigenvectors of the cluster in ascending order (principal axis with smallest inertial mass) normalise...
vector< float > * fTrkCovMat10Beg
vector< float > * fCalClustEigen2X
Eigenvectors of the cluster in ascending order (principal axis with smallest inertial mass) normalise...
vector< float > * fVeeVtxZ
z-position of vertex [cm]
void MillTrees() override
main method
vector< float > * fTrkCovMat1Beg
covariance matrix at beginning of track – assuming symmetry
vector< float > * fCalClustR3
cluster shape parameter r3
vector< float > * fTrkVtxZ
vector< float > * fVeeEKshort
const float CalClustTheta(const size_t &icluster) const override
vector< float > * fTrkChiFwd
chisquared forward fit
vector< float > * fTrkCovMat3Beg
vector< float > * fCalClustEigen3Y
vector< float > * fVeePzLamb1
vector< float > * fTrackYEnd
Track y-coord (par[0]) at end of track [cm].
vector< float > * fTrkVtxY
vector< float > * fTrkVtxX
track vertex position 4-vector cm,ns
vector< int > * fTrkChgBac
const float TrackVtxDirectionX(const size_t &itrack) const override
x-direction cosine at track vertex
vector< float > * fTrkCovMat14End
vector< float > * fTrackXBeg
Track x-coord at beginning of track [cm].
const float TrackLenFwd(const size_t &itrack) const override
track length from forward fit
vector< float > * fTrkVtxT
vector< float > * fVtxX
x-position of vertex [cm]
vector< float > * fTrkCovMat10End
vector< float > * fTrkCovMat4Beg
vector< float > * fCalClustX
x-position of the cluster [cm]
StructuredRecoTree * fRecoIn
points to input structured recoTree we are flattening
vector< float > * fTrkEndY
vector< float > * fCalClustEllip
cluster shape parameter ellipsoid
TTree * fTreeIn
pointer to the analyzed TTree or TChain
vector< float > * fVtxCovar21
vector< float > * fVeeVtxY
y-position of vertex [cm]
vector< float > * fTrkEndDirX
track end direction
vector< float > * fVeeELamb1
vector< float > * fTrkCovMat7Beg
vector< float > * fVeePxLamb1
four-momentum of vee, for Kshort hypothesis [GeV]
vector< float > * fVeeVtxCovar31
vector< float > * fTrkCovMat4End
vector< float > * fTrkCovMat9End
vector< float > * fTrkChiBac
chisquared backward fit
vector< float > * fTrkCovMat15Beg
const size_t NVertex() const override
number of vertices in this event
vector< float > * fTrkCovMat12End
vector< float > * fCalClustEigen1Z
vector< float > * fTrkVtxDirX
track vertex direction
vector< float > * fCalClustTheta
intrasic direction of the cluster theta
vector< float > * fTrkMomEnd
momentum of the track at the end in GeV/c
vector< float > * fVeeELamb2
vector< float > * fTrkCovMat11Beg
const vector< TLorentzVector > * VeeMomentumPerHypothesis(const size_t &ivee) const override
4-momentum for vee if it matches {Kshort, Lambda1, Lambda2}
vector< float > * fCalClustEigen2Y
vector< float > * fTrkCovMat9Beg
const float * CalClustShape(const size_t &icluster) const override
const size_t NTrackHit(const size_t &itrack) const override
number of reconstructed hits used in track fit
vector< float > * fTrackPhiEnd
Track phi (par[3]) at end of track [rad].
vector< float > * fTrkCovMat13End
vector< float > * fTrkLenFwd
length of the track in cm from forwards fit
vector< float > * fTrkCovMat5End
const float TrackVtxDirectionY(const size_t &itrack) const override
y-direction cosine at track vertex
vector< float > * fTrkCovMat8End
std::map< std::string, RecoBranch > nameToRecoBranch
std::string CharStarToString(const char *cstr)
void TrackCovarBeg(const size_t &itrack, float pars[15]) const override
track fit covariance matrix (assume symmetry) at track's assumed start
vector< float > * fVtxT
time of vertex [ns]
vector< float > * fVtxCovar13
std::map< RecoBranch, bool > branchToDrawOpt
const TLorentzVector * CalClustPosition(const size_t &icluster) const override
vector< float > * fTrkEndX
track end position 4-vector cm,ns
const int TrackChiSqrBkd(const size_t &itrack) const override
chi-squared of track fit in backward direction
vector< float > * fTrackZEnd
Track z-coord (par[1]) at end of track [cm].
bool SetBranchAddresses() override
void VertexCovariance(const size_t &ivertex, float covar[][3]) const override
given a vertex index, fill given position covariance matrix
vector< float > * fVeeVtxCovar13
const TVector3 * TrackMomEnd(const size_t &itrack) const override
momentum 3-vector as track's assumed end point
bool VerifyBranches() override
vector< float > * fTrkCovMat5Beg
vector< float > * fTrkEndDirZ
vector< float > * fTrackXEnd
Track x-coord at end of track [cm].
const size_t NTrack() const override
number of tracks in this event
vector< float > * fCalClustTdiff
time difference between the first and last layer of the cluster [ns]
vector< float > * fTrackCurvEnd
Track curvature (par[2]) at end of track [cm^-1].
void TrackParBeg(const size_t &itrack, float pars[5]) const override
track fit parameters at the track's assumed start
vector< float > * fTrackYBeg
Track y-coord (par[0]) at beginning of track [cm].
vector< float > * fTrkCovMat3End
const size_t NCalCluster() const override
number of ECal clusters in this event
vector< float > * fCalClustEigen3Z
vector< float > * fTrkCovMat6Beg
vector< float > * fVeeVtxCovar11
uncertainties in vertex position [cm]
void TrackParEnd(const size_t &itrack, float pars[5]) const override
track fit parameters at the track's assumed end
const vector< TVector3 > * CalClustEigenVecs(const size_t &icluster) const override
const TLorentzVector * VeeVertex(const size_t &ivee) const override
=============== Vee =======================
vector< float > * fCalClustWidth
cluster shape parameter width
const TLorentzVector * TrackEnd(const size_t &itrack) const override
4-position of track's assumed end point
vector< float > * fVeePzKshort
vector< float > * fCalClustR2
cluster shape parameter r2
const float CalClustEnergy(const size_t &icluster) const override
reconstructed ECal cluster energy
vector< float > * fVeePxLamb2
four-momentum of vee, for Kshort hypothesis [GeV]
vector< float > * fTrkIonizFwd
vector< float > * fTrkEndZ
vector< float > * fTrkEndDirY
vector< float > * fVtxCovar32
vector< float > * fCalClustPhi
intrasic direction of the cluster phi
void TrackCovarEnd(const size_t &itrack, float pars[15]) const override
track fit covariance matrix (assume symmetry) at track's assumed end
vector< float > * fTrkCovMat15End
vector< int > * fTrkChgFwd
vector< float > * fCalClustEigen2Z
vector< float > * fVeeVtxCovar22
vector< float > * fTrkCovMat13Beg
vector< float > * fVeePzLamb2
vector< float > * fTrkCovMat2Beg
vector< float > * fTrackLambEnd
Track lambda (par[4]) at end of track [rad].
const float CalClustTimeDifference(const size_t &icluster) const override
vector< float > * fTrkCovMat12Beg
vector< float > * fTrkCovMat1End
covariance matrix at end of track – assuming symmetry
vector< float > * fVeeVtxX
x-position of vertex [cm]
const TObjArray * GetBranchList() const
vector< float > * fVeeVtxCovar32
vector< float > * fVtxCovar23
vector< float > * fTrackCurvBeg
Track curvature (par[2]) at beginning of track [cm^-1].
vector< float > * fTrkCovMat14Beg
vector< float > * fVeeVtxCovar33
const TLorentzVector * GetVertex(const size_t &ivertex) const override
vertex 4-position for vertex with index ivertex
const float VeeChiSquared(const size_t &ivee) const override
vector< float > * fTrkCovMat2End
const size_t NVee() const override
number of vees in this event
const TVector3 * TrackMomBeg(const size_t &itrack) const override
momentum 3-vector as track's assumed start point
vector< float > * fTrkMomBeg
momentum of the track at the vertex in GeV/c
vector< float > * fCalClustEnergy
energy of the ECal cluster [GeV]
vector< float > * fVeePxKshort
four-momentum of vee, for Kshort hypothesis [GeV]
void VeeCovariance(const size_t &ivee, float covar[][3]) const override
given a vee index, fill given position covariance matrix
vector< float > * fVeeVtxCovar21
vector< float > * fVtxCovar12
const TLorentzVector * TrackVertex(const size_t &itrack) const override
4-position of track's assumed start point
const float CalClustEnergyError(const size_t &icluster) const override
const int TrackChgBkd(const size_t &itrack) const override
charge sign of track if current hypothesis wrong
vector< float > * fVtxCovar22
vector< float > * fCalClustT
time of the cluster [ns]
vector< float > * fVeeVtxCovar23
vector< float > * fVeeVtxCovar12
vector< float > * fTrackZBeg
Track z-coord (par[1]) at beginning of track [cm].
vector< float > * fCalClustEnergyError
uncertainty of the cluster energy [GeV]
virtual void GetEntry(const UInt_t &ientry)
vector< float > * fVeePyKshort
Int_t fEvent
event number for tree entry
const float TrackEndDirectionY(const size_t &itrack) const override
y-direction cosine at track end
vector< float > * fTrkCovMat11End
vector< float > * fTrackLambBeg
Track lambda (par[4]) at beginning of track [rad].
const float CalClustPhi(const size_t &icluster) const override
vector< float > * fCalClustEigen1Y
const float TrackLenBkd(const size_t &itrack) const override
track length from backward fit
vector< float > * fVeeChisqr
chi-squared
vector< float > * fVtxCovar11
uncertainties in vertex position [cm]
vector< float > * fCalClustVol
cluster shape parameter volume
vector< float > * fTrkCovMat6End
const float TrackEndDirectionX(const size_t &itrack) const override
x-direction cosine at track end
const int TrackChiSqrFwd(const size_t &itrack) const override
chi-squared of track fit in forward direction
vector< float > * fVeePyLamb1
vector< float > * fCalClustY
y-position of the cluster [cm]
QTextStream & endl(QTextStream &s)
vector< float > * fVeeVtxT
time of vertex [ns]
vector< float > * fTrkEndT
vector< float > * fCalClustR1
cluster shape parameter r1
const float TrackIonizFwd(const size_t &itrack) const override
track average ionization rate from forward fit
vector< float > * fVtxCovar33
const int TrackChgFwd(const size_t &itrack) const override
charge sign of track if current hypothesis correct
vector< float > * fVeePyLamb2