// -*- mode: c++ -*- // // $Id: BrFsTrackingModule.h,v 1.2 2002/08/08 15:34:26 ufstasze Exp $ // $Author: ufstasze $ // $Date: 2002/08/08 15:34:26 $ // $Copyright: (C) 2002 BRAHMS Collaboration // #ifndef BRAT_BrFsTrackingModule #define BRAT_BrFsTrackingModule #ifndef BRAT_BrModule #include "BrModule.h" #endif #ifndef BRAT_BrEventNode #include "BrEventNode.h" #endif #ifndef BRAT_BrSpectrometerTracks #include "BrSpectrometerTracks.h" #endif #ifndef BRAT_BrDetectorVolume #include "BrDetectorVolume.h" #endif #ifndef BRAT_BrMagnetVolume #include "BrMagnetVolume.h" #endif #ifndef BRAT_BrDetectorParamsTof #include "BrDetectorParamsTof.h" #endif #ifndef BRAT_BrFfsTrackingModule #include "BrFfsTrackingModule.h" #endif #ifndef BRAT_BrDataTable #include "BrDataTable.h" #endif #ifndef ROOT_TH1 #include #endif #ifndef ROOT_TH2 #include #endif #ifndef BRAT_BrFfsTrackingModule #include "BrFfsTrackingModule.h" #endif #ifndef BRAT_BrBfsTrackingModule #include "BrBfsTrackingModule.h" #endif class BrFsTrackingModule : public BrModule { private: Int_t fRunNo; Float_t fOffset_xT3T2; Float_t fSigma_xT3T2; Float_t fOffset_yT3T2; Float_t fSigma_yT3T2; Float_t fOffset_axT3T2; Float_t fSigma_axT3T2; Float_t fOffset_ayT3T2; Float_t fSigma_ayT3T2; Int_t fMatched1,fMatched2; BrFfsTrackingModule* fFfsModule; BrBfsTrackingModule* fBfsModule; BrDetectorVolume* fT3Vol; BrDetectorVolume* fT2Vol; BrDetectorVolume* fH1Vol; BrDetectorParamsTof* fH1Par; BrMagnetVolume* fD1Vol; BrMagnetVolume* fD2Vol; Bool_t fAlignment; Bool_t fUseBbVertex; Bool_t fNewT2T3Matching; Bool_t ReadOffsets(); Bool_t T2TracksCompare(BrBfsTrack*, BrFfsTrack*, BrDataTable*); void SwimTrackBack(BrBfsTrack*, BrDataTable*, BrDetectorVolume*, Float_t); void BuildFsFromBfs(BrDataTable*, BrDataTable*); Bool_t CheckT2T3Match(BrBfsTrack*, BrDataTable*, BrDataTable*); Bool_t CheckT2T3MatchNew(BrBfsTrack*, BrDataTable*, BrDataTable*); TH1F* fhMatchQ; TH1F* fNFsTracks; TH1F* fFsStat; TH1F* fPathLength; TH1F* fPhi; TH1F* fTheta; TH2F* fVertex; TH1F* fD1Swim; TH1F* fPAverage; TH1F* fDalyAll; TH1F* fDalxAll; TH1F* fDalzAll; TH1F* fDyAll; TH1F* fDzAll; TH1F* fDxAll; TH1F* fDalyH1Cut; TH1F* fDalxH1Cut; TH1F* fDalzH1Cut; TH1F* fDyH1Cut; TH1F* fDzH1Cut; TH1F* fDxH1Cut; TH1F* fH1SlatDiff; TH2F* fhDxT3T2; TH2F* fhDyT3T2; TH2F* fhDaxT3T2; TH2F* fhDayT3T2; public: BrFsTrackingModule(); BrFsTrackingModule(const Char_t* name, const Char_t* title); virtual ~BrFsTrackingModule () {} virtual void Init(); virtual void Begin(); virtual void DefineHistograms(); virtual void Event(BrEventNode* inNode, BrEventNode* outNode); virtual void Finish(); virtual void Print(Option_t* option="B") const; // *MENU* BrFfsTrackingModule* GetFfsModule() const { return fFfsModule; } BrBfsTrackingModule* GetBfsModule() const { return fBfsModule; } void UseBbVertex() { fUseBbVertex = kTRUE; } void SetOldT2T3Matching(){ fNewT2T3Matching = kFALSE; } ClassDef(BrFsTrackingModule,0) // match FFS and BFS tracks }; #endif //____________________________________________________________________ // // $Log: BrFsTrackingModule.h,v $ // Revision 1.2 2002/08/08 15:34:26 ufstasze // Added new method CheckT2T3MatchNew. It checks whether bfs matches to ffs by checking the correlation between T2 and T3 track in dx, dy, dax and day // // Revision 1.1 2002/04/09 02:07:40 ouerdane // module matching FFS and BFS. If no FFS match, swim BFS back to vertex // //