#ifndef BRAT_BrDetectorParamsDC #define BRAT_BrDetectorParamsDC // $Id: BrDetectorParamsDC.h,v 1.1.1.1 2001/06/21 14:55:00 hagel Exp $ // /////////////////////////////////////////////////////////////////////// // // // BrDetectorParamsDC // // // /////////////////////////////////////////////////////////////////////// //Root Includes #ifndef ROOT_TObjArray #include "TObjArray.h" #endif //Brat Includes #ifndef BRAT_BrDetectorParamsBase #include "BrDetectorParamsBase.h" #endif #ifndef BRAT_BrDCPlane #include "BrDCPlane.h" #endif #ifndef BRAT_BrDriverDC #include "BrDriverDC.h" #endif class BrDetectorParamsDC : public BrDetectorParamsBase { public: BrDetectorParamsDC(); BrDetectorParamsDC(Char_t *name,Char_t *title); BrDetectorParamsDC(Char_t *name, Char_t *title, BrDCPlane *p1 , BrDCPlane *p2=0, BrDCPlane *p3=0, BrDCPlane *p4=0, BrDCPlane *p5=0, BrDCPlane *p6=0, BrDCPlane *p7=0, BrDCPlane *p8=0, BrDCPlane *p9=0, BrDCPlane *p10=0,BrDCPlane *p11=0,BrDCPlane *p12=0, BrDCPlane *p13=0,BrDCPlane *p14=0,BrDCPlane *p15=0,BrDCPlane *p16=0); BrDetectorParamsDC(Char_t *name,Char_t *title,Char_t *asciifilename); virtual ~BrDetectorParamsDC(); void ListParameters() const; void SetDefaultParams(); void SetDefaultPlanes(); virtual Float_t GetTwoPar() {return fTwoPar;} virtual Float_t GetEff() {return fEff;} virtual Float_t GetDriftv() {return fDriftv;} virtual Float_t GetPldis() {return fPldis;} virtual Int_t GetNplane() {return fDCPlaneList->GetEntries();} virtual Float_t GetPosres() {return fPosres;} virtual void SetEff(Float_t eff) {fEff=eff;} virtual void SetTwoPar(Float_t twopar) {fTwoPar = twopar;} virtual void SetDriftv(Float_t driftv) {fDriftv = driftv;} virtual void SetPldis(Float_t pldis) {fPldis = pldis;} virtual void SetPosres(Float_t posres) {fPosres = posres;} // void AddPlane(TBrDCPlane* plane) {fDCPlane[fNplane++]=plane;} // TBrDCPlane* GetPlaneAt(Int_t i) {return fDCPlane[i];} void AddPlane(BrDCPlane* plane); BrDCPlane* GetPlaneAt(Int_t i){return (BrDCPlane*)fDCPlaneList->At(i);} virtual void SetASCIIParameters(Char_t *line); private: Float_t fTwoPar; Float_t fEff; Float_t fDriftv; Float_t fPldis; Int_t fNplane; Float_t fPosres; TObjArray* fDCPlaneList; Float_t GetDefaultPlaneZ(Int_t ipl,Int_t nplanes); BrDriverDC *fDCDriver; public: ClassDef(BrDetectorParamsDC,1) // BRAHMS DC Parameter class }; #endif // $Log: BrDetectorParamsDC.h,v $ // Revision 1.1.1.1 2001/06/21 14:55:00 hagel // Initial revision of brat2 // // Revision 1.10 2000/10/25 17:58:03 hagel // Further development of BrDCTrackingModule // // Revision 1.9 1999/12/30 19:43:29 videbaek // leanup of code comments - a few places // // Revision 1.8 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.7 1999/03/07 00:00:43 hagel // 1. Implemented BrFSTrackingModule. Started with BrMRSTrackingModule and made // appropriate changes to handle the forward spectrometer. It uses the new // track classes as well as extensively using geometry classes. It also uses // new methods and functionality as described below. // 2. Changed BrMagnetVolume // a. Added method SwimBack(BrLine3D &,Double_t momentum): takes a // track at the exit of magnet and given the momentum, calculates // where the track would come into the front of the magnet. // b. Added method GlobalToLocal(BrLine3D &): does a combination of // GlobalToLocal(BrVector3D &,BrVector3D&,0) and // GlobalToLocal(BrVector3D &,BrVector3D&,1) // c. Added method LocalToGlobal(BrLine3D &): does a combination of // LocalToGlobal(BrVector3D &,BrVector3D&,0) and // LocalToGlobal(BrVector3D &,BrVector3D&,1) // d. Changed BrDetectorVolume: same additions of methods GlobalToLocal // and LocalToGlobal as in BrMagnetVolume // 2. Added a parameter base class BrDetectorParamsBase: helps when reading // in database files. Declared ASCII reading routines to be virtual. // Has main ReadASCIIFile which decodes the ASCII parameter files, then // calls the detector specific methods SetASCIIParameter // 3. Implemented SetASCIIParameter in BrDetectorParamsDC, BrDetectorParamsTPC, // BrDetectorParamsTof, BrDetectorParamsBB // 4. Implemented BrParameterDbManager. It currently works similarly to // BrGeometryDbManager and creates the BrDetectorParamsXXX objects when // called. These objects then read in ASCII parameter files with a currently // "well defined" format using the above implemented routines using a constructor: // BrDetectorParamsXXX(Char_t *name, Char_t *title,Char_t *ASCIIFileName); // 5. If no parameter file is specified, it executes the constructor we // have been using so far, namely BrDetectorParamsXXX(Char_t *name,Char_t *title). // These constructors generate default parameters and are semi-intelligent // which means they generate approximately appropriate parameters depending // upon which detector they are. I should say that the parameters were // deemed appropriate at the time of writing the SetDefaultParams routine. // a. It is used in the same way as BrGeometryDbManager, that is: // BrParameterDbManager *gParamDb = BrParameterDbManager::Instance(); // gParamDb->SetDbParameterFileName("DetectorParameters.txt"); // 6. Added a new directory, params, in BRAT. This directory has the file // DetectorParameters.txt in it. If the BrParameterDbManager is started // and the DetectorParameter.txt file is specified, it will look in the // $BRATSYS/params directory if it cannot find the file in the directory // that the user has set default to. // 7. Implemented BrParameterDbManager in DC digitize and tracking code. The // SetDetectorParams methods have been moved to private and can no longer be // used from the macro or program. // 8. Implemented BrParameterDbManager in TPC digitize and tracking code. // 9. Implemented BrParameterDbManager in Tof Calibrate and GeneratePid code. // 10 Changed the GetEntries() in BrDataTable to use the GetLast()+1 method in // TObjArray. This should be much faster, but has the caveat that it assumes // that all slots in TObjArray are full. That seems to me to be the case // in how we use TObjArray at least in BrDataTable, but if problems arise due // to this change, it can always be easily changed back. It has been used a // fair amount before checking in and no problems were found. // // Modified Files: // base/inc/BrBase_LinkDef.h base/inc/BrDataTable.h // base/inc/BrDetectorVolume.h base/inc/BrMagnetVolume.h // base/inc/LinkDefBratBaseINC.h base/src/BrDataTable.cxx // base/src/BrDetectorVolume.cxx base/src/BrEventNode.cxx // base/src/BrMagnetVolume.cxx base/src/BrTableManager.cxx // base/src/Makefile bb/inc/BrDetectorParamsBB.h // bb/src/BrDetectorParamsBB.cxx db/inc/BrParameterDbManager.h // db/src/BrParameterDbManager.cxx dc/inc/BrDetectorParamsDC.h // dc/src/BrDetectorDC.cxx dc/src/BrDetectorParamsDC.cxx // dc/src/BrDigitizeDC.cxx dc/src/BrLocalTrackDC.cxx // geometry/inc/BrPlane3D.h geometry/src/BrPlane3D.cxx // params/DetectorParameters.txt tof/inc/BrDetectorParamsTof.h // tof/src/BrDetectorParamsTof.cxx tof/src/BrGeneratePid.cxx // tpc/inc/BrDetectorParamsTPC.h tpc/src/BrDetectorParamsTPC.cxx // tpc/src/BrDetectorTPC.cxx tpc/src/BrDigitizeTPC.cxx // tpc/src/BrLocalTrackTPC.cxx track/inc/BrDetectorTrack.h // track/inc/BrFSTrackingModule.h // track/inc/BrSpectrometerTracks.h track/src/BrDetectorTrack.cxx // track/src/BrFSTrackingModule.cxx // track/src/BrSpectrometerTracks.cxx // // Revision 1.6 1999/02/04 17:23:11 hagel // Added ReadASCIIFile() // // Revision 1.5 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.4 1999/01/12 20:25:13 hagel // Add CVS logs to several modules missing it //