// CylTrackNtuple.h #ifndef CylTrackNtuple_H #define CylTrackNtuple_H // Manage an ntuple for cylindrical tracks. // // The ntuple is in HBOOK format and is number 101. // // The entries are: // stat - status flag: 0 for MC-reco match // 1 for MC only (unfound track) // 2 for reco only (fake track) // mr - MC radius // mphi - MC phi position // mz - MC z in cm // malf - MC alpha = phi_direction - phi_position // mtlm - MC tan(lambda) = dz/dsT // mqpt - MC q/pT (e/GeV/c) // mr - reco radius // rphi - reco phi position // rz - reco z // ralf - reco alpha = phi_direction - phi_position // rtlm - reco tan(lambda) = dz/dsT // rqpt - reco q/pT // epp - diagonal error matrix element for phi // ezz - diagonal error matrix element for z // eaa - diagonal error matrix element for alpha // ell - diagonal error matrix element for tan(lambda) // eqq - diagonal error matrix element for curvature // nhit - # hits on the reco track // chsq - chi-square for the reco track fit // mchsq - match chi-square = (Tmc-Treco) E (Tmc-Treco) // malf2 - MC2 alpha = phi_direction - phi_position // mz2 - MC2 z in cm // mphid2- MC2 phi_direction // mtlm2 - MC2 tan(lambda) = dz/dsT // mqpt2 - MC2 q/pT (e/GeV/c) // // #include "ptr/Ptr.h" #include "trffit/McRecoTrackNtuple.h" #include "trfbase/SurfacePtr.h" #include "trfutil/Tuple.h" namespace trf { class CylTrackNtuple : public McRecoTrackNtuple { private: // data // surface for checking type SurfacePtr _psrf; // current event number int _evt; private: // methods // fill the MC part of the ntuple void _fill_mc(const VTrack& trv, double mphi); // fill the final MC part of the ntuple void _fill_mc2(const VTrack& trv, double mphi); // fill the reco part of the ntuple void _fill_reco(const HTrack& trh, double rphi); public: // methods // constructor CylTrackNtuple(bool mc, bool reco, bool mc2); // destructor ~CylTrackNtuple(); // set the event number void set_event(int evt) { _evt = evt; }; // Fill ntuple from the full triplet of tracks. void fill(const VTrack& trv, const HTrack& trh, const VTrack& trv2); // Fill ntuple from a MC-reco pair. void fill(const VTrack& trv, const HTrack& trh); // Fill ntuple from a MC-MC pair. void fill(const VTrack& trv, const VTrack& trv2); // Fill ntuple from a unmatched MC track. void fill(const VTrack& trv); // Fill ntuple from an unmatched reco track. void fill(const HTrack& trh); }; } // end namespace trf #endif