#ifndef BRAT_BrTPMTrackVertexModule #define BRAT_BrTPMTrackVertexModule /////////////////////////////////////////////////////////////////////// // // // BrTPMTrackVertexModule // // // // BRAHMS Vertexing Class // // calculate vertex from x0 and y0 (x and y positions at z=0) // // and vectors dx/dz and dy/dz // // currently it assumes that there is only one vertex. // // // // Author : JH Lee // // Created : 2/June/99 // // Version : 1.0 // // Changed : // // // /////////////////////////////////////////////////////////////////////// //ROOT Classes #ifndef ROOT_TH1 #include "TH1.h" #endif #ifndef ROOT_TH2 #include "TH2.h" #endif #ifndef ROOT_TProfile #include "TProfile.h" #endif //Brat Classes #ifndef BRAT_BrModule #include "BrModule.h" #endif #ifndef BRAT_BrVector3D #include "BrVector3D.h" #endif #ifndef BRAT_BrEventNode #include "BrEventNode.h" #endif #ifndef BRAT_BrDataTable #include "BrDataTable.h" #endif #ifndef BRAT_BrGeometryDbManager #include "BrGeometryDbManager.h" #endif #ifndef BRAT_BrPlane3D #include "BrPlane3D.h" #endif #ifndef BRAT_BrVertex #include "BrVertex.h" #endif class BrDetectorVolume; class BrTPMTrackVertexModule : public BrModule { public: BrTPMTrackVertexModule(); BrTPMTrackVertexModule(Char_t *Name,Char_t *Title); virtual ~BrTPMTrackVertexModule(); void Event(BrEventNode* InputTable,BrEventNode* OutputTable); void FindVertex(BrDataTable *FrontDetectorTracks, BrVertex* vtxdata); void ListVertexParameters(); void ListEventStatistics(); void Init(); void DefineHistograms(); Int_t GetVertex_found(){return fVertex_found;} void SetVertex_useplane(Int_t value) {fVertex_useplane=value;} void SetMinNoTracks(Int_t value) {fMinNoTracks = value; } void SetVertex_dist_cut(Float_t value) {fVertex_dist_cut=value;} void SetVertex_chisq_cut(Float_t value){fVertex_chisq_cut=value;} Int_t GetVertex_useplane() { return fVertex_useplane; } Int_t GetMinNoTracks() { return fMinNoTracks; } Float_t GetVertex_dist_cut() { return fVertex_dist_cut; } Float_t GetVertex_chisq_cut(){ return fVertex_chisq_cut; } private: BrDetectorVolume* fFrontVolume; Int_t fVertex_found; // Set to 1 when vertex is determined Int_t fVertex_useplane; // Set to 1 if using turnable plane method Int_t fMinNoTracks; // Minimum number of tracks Float_t fVertex_dist_cut; // closest approach cut for the vertex (for the iteration) Float_t fVertex_chisq_cut; // chi-sq cut for the vertex (for the iteration) BrPlane3D* fVert_plane; TH1F *hVertex_x; TH1F *hVertex_y; TH2F *hVertex_y_vs_x; TH2F *hVertex_x_vs_z; TProfile *hVertex_x_vs_z_prof; TH1F *hVertex_z; TH1F *hVertex_z_wide; TH1F *hVertex_ca; TH1F *hVertex_chisq; void SetDefaultParameters(); public: ClassDef(BrTPMTrackVertexModule,0) }; #endif