// -*- mode: c++ -*- // // $Id: BrTpcTrackModule.h,v 1.4 2002/06/13 18:49:10 videbaek Exp $ // $Author: videbaek $ // $Date: 2002/06/13 18:49:10 $ // $Copyright: (C) 2001 BRAHMS Collaboration // #ifndef BRAT_BrTpcTrackModule #define BRAT_BrTpcTrackModule // Root classes #ifndef ROOT_TH1 #include #endif class TH2F; // Brat classes #ifndef BRAT_BrModule #include "BrModule.h" #endif #ifndef BRAT_BrEventNode #include "BrEventNode.h" #endif #ifndef BRAT_BrDataTable #include #endif #ifndef ROOT_TObjArray #include "TObjArray.h" #endif #ifndef BRAT_BrDetectorParamsTPC #include "BrDetectorParamsTPC.h" #endif #ifndef BRAT_BrTpcTrackCandidate #include "BrTpcTrackCandidate.h" #endif class BrTpcTrackModule : public BrModule { private: Bool_t fUseCL; // Get Confindence Level instead of Chi2 Int_t fGhostCutOff; // No. of identical hits for defining two tracks as identical (same TrackGroup) Int_t fMaxTrackCandidates; // max number of track candidates BrDataTable *fTrackTable; // Output data table TObjArray *fTrackCandidates; // track candidates Int_t fNTrackCandidates; // Number of track candidates TObjArray *fTrackGroups; // track groups Int_t fNTrackGroups; // Number of TrackGroups // histograms TH1F *hNtracks; // No of track pr event TH1F *hNhits; // No of hits pr track TH1F *hChi2; // Chi^2 for each track TH1F *hCL; // Confidence Level for each track TH1F *hVecErrX; // Error on the slope (x) TH1F *hVecErrY; // Error on slope (y) TH1F *hdevx; // Deviation of hits from fit (x) TH1F *hdevy; // Deviation of hits from fit (y) TH2F *hdevxvsrow; // Deviation of hits from fit (x) TH2F *hdevyvsrow; // Deviation of hits from fit (y) TH1F *hdevRowx[20]; // Deviation of hits from fit vs row (x) TH1F *hdevRowy[20]; // Deviation of hits from fit vs row (y) TH1F *hX; // Distribution in X TH1F *hY; // Distribution in Y protected: // Meaning they can be accessed directly by derived classes BrDataTable *fHitTable; // Input data table (BrTpcHit) BrDetectorParamsTPC *fParams; // Tpc Detector Parameters TObjArray *fHitsInRow; // Array of Hits for each active row. Int_t fStatus; // Status of tracking (0=ok, 1=failed) // histogram TH1F *hStatus; // Status of tracking code virtual BrTpcTrackCandidate* AddNewTrackCandidate(); virtual BrTpcTrackCandidate* AddNewTrackCandidate(BrTpcTrackCandidate *original); virtual void Clear(); virtual void DeleteBadTracks(); virtual void FillTrackGroups(); virtual void SelectBestTracks(BrEventNode *outNode); virtual void SortHitsIntoRowTable(); public: BrTpcTrackModule(); BrTpcTrackModule(const Char_t* name, const Char_t* title); virtual ~BrTpcTrackModule (); virtual Int_t GetNTrackCandidates() {return fNTrackCandidates;} virtual BrTpcTrackCandidate* GetTrackCandidateAt(Int_t i) {return (BrTpcTrackCandidate*)fTrackCandidates->At(i);} virtual void DefineHistograms(); virtual void Init(); virtual void Event(BrEventNode* inNode, BrEventNode* outNode) = 0; virtual void Print(Option_t* option="B") const; // *MENU* virtual void SetGhostCutOff(Int_t cut = 4) {fGhostCutOff = cut;} virtual void SetMaxTrackCandidates(Int_t max = 5000) {fMaxTrackCandidates = max;} virtual void SetUseCL(Bool_t value = kFALSE) {fUseCL = value;} ClassDef(BrTpcTrackModule,0) // DOCUMENT ME }; #endif //____________________________________________________________________ // // $Log: BrTpcTrackModule.h,v $ // Revision 1.4 2002/06/13 18:49:10 videbaek // Add 2d summery devx/y histogram // // Revision 1.3 2001/10/12 10:57:34 pchristi // Added ned histogram with confidence levels of best track. I also // added option to get CL as quality in best track instead of chisquared. // To use you have to call the method SetUseCL(kTRUE). // // Revision 1.2 2001/08/17 16:33:12 jens // Added histograms for track x and y distributions // // Revision 1.1.1.1 2001/06/21 14:55:13 hagel // Initial revision of brat2 // // Revision 1.1 2001/06/17 17:41:55 pchristi // The new tracking classes. // //