// -*- mode: c++ -*- #ifndef BRAT_BrDigitizeDC #define BRAT_BrDigitizeDC // $Id: BrDigitizeDC.h,v 1.5 2002/06/24 16:45:37 ufstasze Exp $ // /////////////////////////////////////////////////////////////////////// // // // BrDigitizeDC // // // // BRAHMS DC detector digitization and decode class // // // // Author : Kris Hagel (hagel@comp.tamu.edu) // // Created : 25-MAR-1998 // // Version : 1.0 // // Changed : // // // /////////////////////////////////////////////////////////////////////// //BRAT Includes #ifndef BRAT_BrModule #include "BrModule.h" #endif #ifndef BRAT_BrGeantHit #include "BrGeantHit.h" #endif //ROOT Includes #ifndef ROOT_TH1 #include "TH1.h" #endif #ifndef ROOT_TGraph #include "TGraph.h" #endif class BrDriverDC; class BrTrack2D; class BrDataTable; class BrDetectorParamsDC; class BrDetectorVolume; class BrDetectorDC; class TGeometry; class BrDigitizeDC : public BrModule { public: BrDigitizeDC(); BrDigitizeDC(const Char_t *Name, const Char_t *Title); virtual ~BrDigitizeDC(); void DefineHistograms(); void Init(); void Event(BrEventNode* InputTable,BrEventNode* OutputTable); virtual BrDetectorParamsDC* GetDetectorParamsDC(){return fParams_p;} virtual BrDetectorVolume* GetDetectorVolume(const Char_t *name); virtual void SetPosres(Float_t posres) {fPosres = posres;} virtual Float_t GetPosres() {return fPosres;} void ListDetectorParameters() const; void ListEventStatistics(); void SetBragGeoMode(Bool_t val){fBragGeoMode=val;} void DrawGeantHits(); private: void SetDetectorTrackParams(BrGeantHit *hit); void SetSubModuleTrackParams(BrGeantHit *hit); Bool_t Digitize(BrEventNode *InputTable,BrEventNode *OutputTable); void SortDighit(BrDataTable* DigitizedHits); void SetDetectorParamsDC(BrDetectorParamsDC* par); void SetDetectorParamsDC(const BrDetectorParamsDC& par); BrDriverDC *fDCDriver; //Pawel Bool_t fBragGeoMode; Float_t fTrPar[4]; Int_t fSortDighits; BrDetectorParamsDC* fParams_p; virtual void SetDetectorVolume(BrDetectorVolume* vol); BrDetectorVolume* fVolumeParams_p[4]; BrDetectorVolume* fVolume; Int_t fNumVol; Float_t fPosres; //Position resolution we simulate. Int_t fNumGeantHits[3]; BrDataTable *fGeantHits[3]; Int_t fNumDigHits; BrDetectorDC *fDetectorNode; TH1F *d_Hhits, *d_Ghits; TH1F *fHits[3]; TH1F *d_Dz; TH1F *fhDiffx[3][10]; TH1F *d_Drift; TH1F *h_test; TH1F *fhSpread; TGraph *d_Graphxz; public: ClassDef(BrDigitizeDC,0) // BRAHMS DC Digitization Interface }; #endif // $Log: BrDigitizeDC.h,v $ // Revision 1.5 2002/06/24 16:45:37 ufstasze // Added fBragGeoMode option to be independent from the brag geometry // // Revision 1.4 2002/06/24 16:32:27 staszel // Added fBragGeoOption // // Revision 1.3 2002/06/10 16:39:17 ufstasze // Added some histograms // // Revision 1.2 2001/08/12 13:32:56 cholm // Changed CTOR prototype to comply with BrModule CTOR (const Char_t*'s instead // of just Char_t*'s). // // Revision 1.1.1.1 2001/06/21 14:55:06 hagel // Initial revision of brat2 // // Revision 1.23 2001/04/18 20:27:14 videbaek // Introduced Defined Histograms - and removed defs of those from Init() // // Revision 1.22 2001/01/19 17:56:27 staszel // Changes having to do with development of BrDCTrackingModule // // Revision 1.21 2000/10/25 17:58:03 hagel // Further development of BrDCTrackingModule // // Revision 1.20 2000/10/25 14:46:17 staszel // small changes that refer to BrDriverDC // // Revision 1.19 2000/10/11 14:54:16 staszel // Changes related to BrDriverDC: 3 member variables of BrDriverDC type has // been declared as private. // // Revision 1.18 2000/09/29 02:15:57 hagel // Changes having to do with development of BrDCTrackingModule // // Revision 1.17 1999/12/30 19:43:30 videbaek // leanup of code comments - a few places // // Revision 1.16 1999/04/07 21:19:01 hagel // Added diagnostic histogram h_Diffx // // Revision 1.15 1999/04/01 16:51:42 hagel // Add getter and setter functions for fPosres // // Revision 1.14 1999/03/22 17:37:58 hagel // Add fPosres as data member. Use it instead of par->GetPosres() to // simulate DC position resolution. That decouples this from the // DC tracking routine. In principle, it should be the same however. // Having it decoupled makes some things easier to simulate. // // Revision 1.13 1999/03/16 21:04:11 hagel // 1. Make BrDCPlane inherit from BrPlane3D. BrDCPlane how has information about // where it is located. // 2. Change BrDigitizeDC and BrLocalTrackDC to make use of new BrDCPlane information. // 3. Move Decode(...) from BrDigitizeDC to BrLocalTrackDC. // 4. Change cut parameters to be member data with defaults rather than hardwired. // // Revision 1.12 1999/02/24 16:36:02 hagel // Implemented BrParameterDbManager // // Revision 1.11 1999/01/21 23:23:22 hagel // 1. Changed convention for checking includes. Current convention is: // BRAT_Br...... eg BRAT_BrModule ala ROOT. // 2. Added CVS logs to .h files that didn't have them. // 3. Moved checking of include definition to first line for easier reading // 4. Put checks before all includes in the include files as per BRAT specifications // 5. Added BrGeantHeader to Geant Makefile // 6. All changes have been checked to compile on NT ala Cygnus // // Revision 1.10 1999/01/15 15:35:38 videbaek // Changes from merging fv and kh files. should be cosmetic only // // Revision 1.9 1998/12/18 19:50:30 hagel // Move SetDetectorVolume() to private // // Revision 1.8 1998/12/14 23:37:53 hagel // cleanup of Initial version of Event Display stuff for DC's // // Revision 1.7 1998/12/04 21:37:48 videbaek // changed comments only // // Revision 1.6 1998/09/27 16:56:48 alv // removed fTimer, fCpuTime, EventStatisticsStart and EventStatisticsEnd // (inherit them from BrModule) // // Revision 1.5 1998/07/02 17:54:15 hagel // Add const to GetDetectorVolume // // Revision 1.4 1998/07/02 13:58:48 videbaek // comment updates mainly // //