//-*- mode: c++ -*- #ifndef BRAT_BrMrsTrackingModule #define BRAT_BrMrsTrackingModule // $Id: BrMrsTrackingModule.h,v 1.6 2002/01/27 21:16:03 videbaek Exp $ #ifndef ROOT_TObject #include #endif #ifndef ROOT_TH1 #include #endif #ifndef ROOT_TH2 #include #endif #ifndef ROOT_TObjArray #include "TObjArray.h" #endif #ifndef BRAT_BrModule #include #endif #ifndef BRAT_BrEventNode #include #endif #ifndef BRAT_BrDataTable #include #endif #ifndef BRAT_BrBbVertex #include #endif #ifndef BRAT_BrSpectrometerTracks #include "BrSpectrometerTracks.h" #endif #ifndef BRAT_BrModuleMatchTrack #include "BrModuleMatchTrack.h" #endif #ifndef BRAT_BrDetectorVolume #include "BrDetectorVolume.h" #endif #ifndef BRAT_BrMagnetVolume #include "BrMagnetVolume.h" #endif #ifndef BRAT_BrDetectorParamsTof #include "BrDetectorParamsTof.h" #endif class BrMrsTrackingModule : public BrModule { public: BrMrsTrackingModule(); BrMrsTrackingModule(const Char_t*, const Char_t*); virtual ~BrMrsTrackingModule(); virtual void Event(BrEventNode*, BrEventNode*); virtual void Init(); virtual void Begin(); virtual void Finish(); virtual void DefineHistograms(); BrModuleMatchTrack* GetCombineModule(){ return fCombineModule;} void SetUseDb(Bool_t usedDb=kTRUE) {fUseDb=usedDb;} protected: void TrackToVertex(BrDataTable*); void TrackToBbVertex(BrDataTable*, BrBbVertex*); Float_t PartialPath(BrMrsTrack*); private: void SetMagnetField(); BrModuleMatchTrack* fCombineModule; // Module combining front/back track. BrDetectorVolume* fFrontVolume; // Pointer to front volume BrDetectorVolume* fBackVolume; // Pointer to back detector volume BrDetectorVolume** fPanelVol; // Pointers to tof panel volumes BrDetectorParamsTof** fPanelPar; // Pointers to tof panel parameters BrDetectorParamsTof* fTofParams; // Pointers to TOFW parameters BrMagnetVolume* fMagnetVolume; // Pointer to magnet volume TObjArray* fTracksFrontBack; // Container of matched tracks TObjArray* fMrsTracks; // Container of MRS tracks Bool_t fUseDb; // Indicator for picking Magnetfield from Db // Histograms TH1F* hTargetTx; // Target X image histograms in MRS system TH1F* hTargetTy; // Target Y image histograms in MRS system TH1F* hTargetTz; // Target Y image histograms in MRS system TH1F* hP; // Momentum distribution for accepted tracks TH1F* hTheta; // Theta distribution of matched tracks (radians) TH1F* hPhi; // Phi distribution TH1F* hPathLength; // Path length from beam-line to TOFW TH1F* hPartialPath; // Path length from TPM1 to TOFW TH1F* hSlatPos; // Position of projected tracks in slat no. TH1F* hTrkBbDist; // distance track projection to Bb vtx on BB plane TH2F* hTrkBbXY; // track projection on BB plane TH1F* hTrkBbZ; // diff BB Z0 - target Z (only small tubes considered) TH2F* hGhost; // tracks after ghostbusting vs tracks before TH1F* hStatus; // ghostbusting status public: ClassDef(BrMrsTrackingModule, 0) // BRAHMS MRS Tracking Module Interface }; #endif //_____________________________________________________________________ // // $Log: BrMrsTrackingModule.h,v $ // Revision 1.6 2002/01/27 21:16:03 videbaek // Removed hTriggers reference. // // Revision 1.5 2002/01/26 16:13:30 sanders // // Added hTriggers declaration to allow brat to compile... // // Revision 1.4 2002/01/25 17:03:27 videbaek // Take care of errors from combine module // // Revision 1.3 2001/12/07 21:08:52 videbaek // Add SetUseDb() method to control if magnet filed is picked from Db or Not. // default is to do so, but there is a needed particular for MC studies not to use // the rundatabase. This is a lesson for other modules too. // // Revision 1.2 2001/11/19 15:07:40 ouerdane // removed useless member fMrsAngle // // Revision 1.1 2001/11/05 06:42:21 ouerdane // added new classes replacing older spectrometer track modules //