//-*- mode: c++ -*- // // $Id: BrTrackTree.h,v 1.12 2002/03/21 21:27:00 ejkim Exp $ // $Author: ejkim $ // $Date: 2002/03/21 21:27:00 $ // ////////////////////////////////////////////////////////////////////////// // // // Event // // // // Description of the event and track parameters // // // ////////////////////////////////////////////////////////////////////////// #ifndef BRAT_BrTrackTree #define BRAT_BrTrackTree #ifndef ROOT_TObject #include "TObject.h" #endif #ifndef ROOT_TClonesArray #include "TClonesArray.h" #endif #ifndef BRAT_BrEventHeader #include "BrEventHeader.h" #endif #ifndef BRAT_BrSpectrometerTracks #include "BrSpectrometerTracks.h" #endif #ifndef BRAT_BrVertex #include "BrVertex.h" #endif #ifndef BRAT_BrBbRdo #include "BrBbRdo.h" #endif #ifndef BRAT_BrZdcRdo #include "BrZdcRdo.h" #endif #ifndef BRAT_BrTofDig #include "BrTofDig.h" #endif #ifndef BRAT_BrTpcFibDig #include "BrTpcFibDig.h" #endif #ifndef BRAT_BrDetectorTrack #include "BrDetectorTrack.h" #endif #ifndef BRAT_BrBbVertex #include "BrBbVertex.h" #endif #ifndef BRAT_BrTofPid #include "BrTofPid.h" #endif #ifndef BRAT_BrDvDig #include "BrDvDig.h" #endif class BrTrackTree : public TObject { private: BrEventHeader fEventHeader; TClonesArray *fMrsTracks; TClonesArray *fFfsTracks; TClonesArray *fBfsTracks; TClonesArray *fTOFWHits; TClonesArray *fTPM1Tracks; TClonesArray *fTPM2Tracks; TClonesArray *fTofwPid; TClonesArray *fTD1Hits; TClonesArray *fTMRSHits; TClonesArray *fTOF1Hits; TClonesArray *fTOF2Hits; TClonesArray *fTOFWCalHits; static TClonesArray *fgMrsTracks; static TClonesArray *fgTPM1Tracks; static TClonesArray *fgTPM2Tracks; static TClonesArray *fgFfsTracks; static TClonesArray *fgBfsTracks; static TClonesArray *fgTOFWHits; static TClonesArray *fgTOF1Hits; static TClonesArray *fgTOF2Hits; static TClonesArray *fgTD1Hits; static TClonesArray *fgTMRSHits; static TClonesArray *fgTofwPid; static TClonesArray *fgTOFWCalHits; Int_t fNMrsTracks; Int_t fNTPM1Tracks; Int_t fNTPM2Tracks; Int_t fNFfsTracks; Int_t fNBfsTracks; Int_t fNTOFWHits; Int_t fNTofwPid; Int_t fNTOF1Hits; Int_t fNTOF2Hits; Int_t fNTD1Hits; Int_t fNTMRSHits; Int_t fNTOFWCalHits; Int_t fNTPM1Clusters; Int_t fNTPM2Clusters; Int_t fTileMult; Int_t fSiMult; Float_t fMultMult; Float_t fMultCent; Float_t fTileCent; Float_t fSiCent; BrBbRdo fRdoBB; BrZdcRdo fRdoZDC; BrVertex fMrsTrackVertex; BrVertex fMRSClusterVertex; BrBbVertex fBbVertex; BrTpcFibDig fFibTpm2F; BrTpcFibDig fFibTpm2B; BrDvDig fDvDig; public: BrTrackTree(); virtual ~BrTrackTree(); void Clear(Option_t *option =""); void Reset(Option_t *option =""); //Setters //Tracks void AddTPM1Track(BrDetectorTrack *tpm1Track); void AddTPM2Track(BrDetectorTrack *tpm2Track); void AddMrsTrack(BrMrsTrack *mrsTrack); void AddFfsTrack(BrFfsTrack *ffsTrack); void AddBfsTrack(BrBfsTrack *bfsTrack); void AddTOFWHit(BrTofDig *tofwHit); void AddTofwPid(BrTofPid *tofwPid); void AddTOF1Hit(BrTofDig *tof1Hit); void AddTOF2Hit(BrTofDig *tof2Hit); void AddTD1Hit(BrTofDig *td1Hit); void AddTMRSHit(BrTofDig *tmrsHit); void AddTOFWCalHit(BrTofDig *tofwCalHit); //Vertices void SetRdoBB(BrBbRdo *rdoBB) {fRdoBB = *rdoBB;} void SetRdoZDC(BrZdcRdo *rdoZDC) {fRdoZDC = *rdoZDC;} void SetMrsTrackVertex(BrVertex *vertex) {fMrsTrackVertex = *vertex;} void SetMRSClusterVertex(BrVertex *vertex) {fMRSClusterVertex = *vertex;} void SetBbVertex(BrBbVertex *bbvtx) {fBbVertex = *bbvtx;} //cluster void SetTPM1Clusters(const Int_t nclusters) {fNTPM1Clusters = nclusters;} void SetTPM2Clusters(const Int_t nclusters) {fNTPM2Clusters = nclusters;} // centrality void SetMultCent(const Float_t cent) {fMultCent = cent;} void SetTileCent(const Float_t cent) {fTileCent = cent;} void SetSiCent(const Float_t cent) {fSiCent = cent;} //multiplicity void SetTileMult(const Int_t mult) {fTileMult = mult;} void SetSiMult(const Int_t mult) {fSiMult = mult;} void SetMultMult(const Float_t mult) {fMultMult = mult;} //Fib information void SetFibTpm2F(BrTpcFibDig *fibTpm2) {fFibTpm2F = *fibTpm2;} void SetFibTpm2B(BrTpcFibDig *fibTpm2) {fFibTpm2B = *fibTpm2;} void SetDvDig(BrDvDig *dvm) {fDvDig = *dvm;} //Event Header void SetEventHeader(BrEventHeader *header); //Getters Int_t GetNTPM1Tracks() { return fNTPM1Tracks;} Int_t GetNTPM2Tracks() { return fNTPM2Tracks;} Int_t GetNMrsTracks() { return fNMrsTracks;} Int_t GetNFfsTracks() { return fNFfsTracks;} Int_t GetNBfsTracks() { return fNBfsTracks;} Int_t GetNTOFWHits() { return fNTOFWHits;} Int_t GetNTofwPid() { return fNTofwPid;} Int_t GetNTOF1Hits() { return fNTOF1Hits;} Int_t GetNTOF2Hits() { return fNTOF2Hits;} Int_t GetNTD1Hits() { return fNTD1Hits;} Int_t GetNTMRSHits() { return fNTMRSHits;} Int_t GetNTOFWCalHits() { return fNTOFWCalHits;} Int_t GetNTPM1Clusters() { return fNTPM1Clusters;} Int_t GetNTPM2Clusters() { return fNTPM2Clusters;} Int_t GetTileMult() { return fTileMult;} Int_t GetSiMult() { return fSiMult;} Float_t GetMultMult() { return fMultMult;} Float_t GetMultCent() { return fMultCent;} Float_t GetTileCent() { return fTileCent;} Float_t GetSiCent() { return fSiCent;} BrBbRdo* GetRdoBB() { return &fRdoBB;} BrZdcRdo* GetRdoZDC() { return &fRdoZDC;} BrVertex* GetMrsTrackVertex() { return &fMrsTrackVertex;} BrVertex* GetMRSClusterVertex() { return &fMRSClusterVertex;} BrBbVertex* GetBbVertex() { return &fBbVertex;} BrTpcFibDig* GetFibTpm2F() { return &fFibTpm2F;} BrTpcFibDig* GetFibTpm2B() { return &fFibTpm2B;} BrDvDig* GetDvDig() { return &fDvDig;} BrMrsTrack* GetMrsTrack(const Int_t i) { return (BrMrsTrack*)fMrsTracks->At(i);} BrFfsTrack* GetFfsTrack(const Int_t i) { return (BrFfsTrack*)fFfsTracks->At(i);} BrBfsTrack* GetBfsTrack(const Int_t i) { return (BrBfsTrack*)fBfsTracks->At(i);} BrDetectorTrack* GetTPM1Track(const Int_t i) { return (BrDetectorTrack*) fTPM1Tracks->At(i);} BrDetectorTrack* GetTPM2Track(const Int_t i) { return (BrDetectorTrack*) fTPM2Tracks->At(i);} BrTofDig* GetTOFWHit(const Int_t i) { return (BrTofDig*)fTOFWHits->At(i);} BrTofPid* GetTofwPid(const Int_t i) { return (BrTofPid*)fTofwPid->At(i);} BrTofDig* GetTOF1Hit(const Int_t i) { return (BrTofDig*)fTOF1Hits->At(i);} BrTofDig* GetTOF2Hit(const Int_t i) { return (BrTofDig*)fTOF2Hits->At(i);} BrTofDig* GetTD1Hit(const Int_t i) { return (BrTofDig*)fTD1Hits->At(i);} BrTofDig* GetTMRSHit(const Int_t i) { return (BrTofDig*)fTMRSHits->At(i);} BrTofDig* GetTOFWCalHit(const Int_t i) { return (BrTofDig*)fTOFWCalHits->At(i);} TClonesArray* GetMrsTrackList() { return fMrsTracks;} TClonesArray* GetFfsTrackList() { return fFfsTracks;} TClonesArray* GetBfsTrackList() { return fBfsTracks;} TClonesArray* GetTOFWHitList() { return fTOFWHits;} TClonesArray* GetTOF1HitList() { return fTOF1Hits;} TClonesArray* GetTOF2HitList() { return fTOF2Hits;} TClonesArray* GetTD1HitList() { return fTD1Hits;} TClonesArray* GetTMRSHitList() { return fTMRSHits;} TClonesArray* GetTPM1TrackList() { return fTPM1Tracks;} TClonesArray* GetTPM2TrackList() { return fTPM2Tracks;} TClonesArray* GetTofwPidList() { return fTofwPid;} TClonesArray* GetTOFWCalHitList() { return fTOFWCalHits;} public: ClassDef(BrTrackTree,2) //Event structure }; #endif // $Log: BrTrackTree.h,v $ // Revision 1.12 2002/03/21 21:27:00 ejkim // Add TOFWCal Object for DANA!!! // // Revision 1.11 2002/01/03 18:06:41 ejkim // add trigger counter for pp running // // Revision 1.10 2001/12/14 19:32:07 ejkim // added DVM information // // Revision 1.9 2001/12/12 21:27:26 ejkim // Instead of "BrPid", put "BrTofPid". // // Revision 1.8 2001/12/12 19:39:40 ejkim // Added BrBbVertex & TofPid Tofw Information // // Revision 1.7 2001/11/07 20:29:21 ejkim // added TPM2 Fib object // // Revision 1.6 2001/11/05 06:53:17 ouerdane // changed FFS to Ffs, MRS to Mrs etc // // Revision 1.5 2001/07/16 20:35:37 ejkim // *** empty log message *** // // Revision 1.4 2001/07/13 16:04:07 cholm // Eun-Joo had forgot to bump the version number of this class when she // added new members. I can not stress the importance of this too // little. // // Revision 1.3 2001/07/13 15:34:46 ejkim // Add TPM1/TPM2 Number of Clusters, MultCent etc // // Revision 1.2 2001/06/22 17:35:35 cholm // Change names so that every data class has the same format so that // we have that down from the very beginning, so that we will not have to // worry about that later on. The affected classes are: // // // BrRdoBB -> BrBbRdo // BrRdoZDC -> BrZdcRdo // BrTPCCluster -> BrTpcCluster // BrTPCClusterTable -> BrTpcClusterTable // // Revision 1.1.1.1 2001/06/21 14:55:02 hagel // Initial revision of brat2 // // Revision 1.9 2001/03/23 14:21:48 ejkim // Add TPM2 track // // Revision 1.8 2001/02/02 17:34:57 videbaek // Use include flag to check for new old version of TileDig.. // // Revision 1.7 2001/01/29 20:36:52 cholm // Updated to use the new data objects for the multiplicity array. See the // relevant classes (BrTileDig, BrTileRdo, BrSiDig, BrSiRdo) for more details. // // Revision 1.6 2001/01/07 20:50:57 videbaek // Add method to get TPM1 tracks from tree. // // Revision 1.5 2001/01/02 14:17:03 videbaek // Added stuff for FS // // Revision 1.4 2000/12/22 18:38:17 videbaek // Add TPM1 tracks to tracktree // // Revision 1.3 2000/12/20 18:44:19 hagel // Enhancements to use with reading // // Revision 1.2 2000/12/20 00:15:15 hagel // Improvements to bring into spec // // Revision 1.1 2000/12/19 03:22:50 hagel // Initial Revision //