#ifndef _BRCOMBINETRACK_H #define _BRCOMBINETRACK_H /////////////////////////////////////////////////////////////////////// // // // BrCombineTrack // // // // BRAHMS Combined Tracking Class // // // // Author : Kris Hagel (hagel@comp.tamu.edu) // // Created : 2/Apr/98 // // Version : 1.0 // // Changed : // // // /////////////////////////////////////////////////////////////////////// //ROOT Classes //Brat Classes #ifndef __BRMODULE #include "BrModule.h" #endif #ifndef _BRCLONESARRAY_H #include "BrClonesArray.h" #endif #ifndef _BRDETECTORSETTRACKS_H #include "BrDetectorSetTracks.h" #endif class BrDetectorVolume; class BrDataTable; class BrDetectorTrack; const Int_t max_num_volumes = 50; const Int_t sf_t1_d2_midcut=3; const Int_t sf_t2_d2_midcut=3; //const Double_t degrad = 0.01745329222; //const Double_t raddeg = 57.2957795131; const Int_t max_t34t4tr = 50; class BrCombineTrack : public BrModule { public: BrCombineTrack(); BrCombineTrack(Char_t *Name,Char_t *Title); BrCombineTrack(Char_t *Name,Char_t *Title,Char_t *simparfile,Char_t *fieldfile); BrCombineTrack(Char_t *Name,Char_t *title,Char_t *simparfile,Char_t *fieldfile, BrDetectorVolume *tpc1,BrDetectorVolume *tpc2, BrDetectorVolume *dc3,BrDetectorVolume *dc4,BrDetectorVolume *dc5, BrDetectorVolume *d1,BrDetectorVolume *d2,BrDetectorVolume *d3,BrDetectorVolume *d4, BrDetectorVolume *m0); virtual ~BrCombineTrack(); void Event(BrEventNode* InputTable,BrEventNode* OutputTable); BrDetectorVolume* GetDetectorVolume(const Char_t *vol) const; void AddDetectorVolume(BrDetectorVolume* vol); void ListDetectorParameters(); private: BrDetectorVolume *fVolume_p[max_num_volumes]; Int_t NumDetectorVolumes; void CombineT1T2(BrEventNode *InputTable); void Track12ToTarget(); void CombineT3T4T5(BrEventNode *InputTable,BrEventNode *OututTable); void GetTrack34WithSameT4TR(BrDetectorTrack* t4tr_p,BrTrack34* strack[max_t34t4tr],int* NumFound); BrTrack12 *BrCombineTrack::GetTrack12WithSameT2Tr(BrDetectorTrack *t2tr_p); void CombineD12D34(BrEventNode *InputTable,BrEventNode *OutputTable); void Track345ToTarget(); void CombineMIDST1T2(BrEventNode *InputTable); void Track12MIDSToTarget(); Int_t GetTrackingLevel(Char_t *detector); void CreateClonesArrays(); void ClearClonesArrays(); BrClonesArray *Tracks12; BrClonesArray *T2Match; BrClonesArray *Tracks34; BrClonesArray *Tracks45; BrClonesArray *Tracks345; // Stuff copied directly from Sonata++; variable names need to be changed to conform // to BRAT specifications!!! Leave them for now to get going. This part will also surely // change // Simulation Parameters void ReadSimulationParameters( Char_t *filename ); Bool_t fSimulationParametersRead; void ReadFieldParameters(Char_t *filename); Bool_t fFieldParametersRead; Int_t pr_opt[20]; Float_t t1_par[10],t2_par[10],h1_par[10],t1t2_par[10],t3_par[10],t4_par[10]; Float_t t5_par[10],t345_par[10],t2m_par[10]; // Field Parameters Float_t b0,b1,b2,b3,b4; public: ClassDef(BrCombineTrack,0) // BRAHMS Local Tracking Interface }; #endif