// // #ifndef SubBaseObject_hh_seen #define SubBaseObject_hh_seen #include "TObject.h" #include "TBits.h" #include "TObjString.h" #include "TVector3.h" #include "TLorentzVector.h" #include "IoaAnalysisUtils.hxx" #include "ITrueVertex.hxx" /// /// This is a base class used by the IGlobalReconModule. Had to be defined /// separately to avoid errors when using TFile::MakeProject to generate /// class libraries from output files. /// namespace COMET { /// An object to describe the true G4 particle associated to the IGlobalPID class ITrueParticle : public TObject { public: virtual ~ITrueParticle(); int ID; ///< Trajectoy Id double Pur; ///< The purity for matching the rec particle with the true particle double Eff; ///< The efficiency for matching the rec particle with the true particle COMET::ITrueVertex Vertex; ///< True vertex associated to this TrueParticle ClassDef(ITrueParticle, 1); }; class ISubBaseObject : public TObject { public: virtual ~ISubBaseObject(); UInt_t UniqueID; ///< Unique identifier for sub-detector recon objects unsigned long Status; ///< The status for the fit. int Detector; ///< Integer specifying which subdetector(s) the object belongs to. See IGlobalReconModule::GetDetectorNumber for the options. int NHits; ///< The number of hits. int NNodes; ///< The number of nodes. int NDOF; ///< The number of degrees of freedom. double Chi2; ///< The chi2 of the fit. double EDeposit; ///< Deposited energy. int NConstituents; ///< The number of constituents. double Length; ///< The length of the track or shower (RMS) TLorentzVector FrontPosition; ///< The position of the object. TLorentzVector BackPosition; ///< The position of the object. TLorentzVector FrontPositionVar; ///< The variance of the position variance; TLorentzVector BackPositionVar; ///< The variance of the position variance; TVector3 FrontDirection; ///< The direction of the object. TVector3 BackDirection; ///< The direction of the object. TVector3 FrontDirectionVar; ///< The variance of the direction of the object. TVector3 BackDirectionVar; ///< The variance of thedirection of the object. double FrontMomentum; ///< the momentum of the object double BackMomentum; ///< the momentum of the object double FrontMomentumError; ///< the error on the momentum of the object double BackMomentumError; ///< the error on the momentum of the object ITrueParticle TrueParticle; ///< The true particle ClassDef(ISubBaseObject, 1); }; class ISubBaseShowerObject : public ISubBaseObject{ public: virtual ~ISubBaseShowerObject(); TVector3 Cone; ///< The opening angles of the cone (only for showers) ClassDef(ISubBaseShowerObject, 1); }; } // comet namespace #endif