// -*- mode: c++ -*- // // $Id: BrVertexCalibration.h,v 1.5 2002/08/15 16:14:57 videbaek Exp $ // #ifndef BRAT_BrVertexCalibration #define BRAT_BrVertexCalibration #ifndef BRAT_BrCalibration #include "BrCalibration.h" #endif class BrVertexCalibration : public BrCalibration { public: enum EBrCalException { kCalException = -1111 // for very odd calibration parameters }; enum EBrVertexDetector { kTpc = 0, kBb = 1, kZdc = 2, kInel = 3 }; enum EBrSubDetector { kSubTpc = 0, // 1 is for sigma kSubZdc = 0, // 1 is for sigma kSubCfd = 2, // 3 is for sigma kSubInel = 0, // 1 is for sigma kBbBig = 0, // 1 is for sigma kBbSmall = 2, // 3 is for sigma kBbFast = 4 // 5 is for sigma }; // ---------- BrVertexCalibration(); BrVertexCalibration(Char_t*, Char_t*); virtual ~BrVertexCalibration(); // ---------- getters Float_t GetVertexOffset(EBrVertexDetector, EBrSubDetector) const; Float_t GetVertexSigma(EBrVertexDetector, EBrSubDetector) const; Float_t GetTpcOffset() const { return GetVertexOffset(kTpc, kSubTpc); } // in Y Float_t GetZdcOffset() const { return GetVertexOffset(kZdc, kSubZdc); } // in Y Float_t GetZCfdOffset() const { return GetVertexOffset(kZdc, kSubCfd); } // in Y Float_t GetBbSmallOffset() const { return GetVertexOffset(kBb, kBbSmall);} // in Z Float_t GetBbBigOffset() const { return GetVertexOffset(kBb, kBbBig); } // in Z Float_t GetBbFastOffset() const { return GetVertexOffset(kBb, kBbFast); } // in Z Float_t GetTpcSigma() const { return GetVertexSigma(kTpc, kSubTpc); } // in Y Float_t GetZdcSigma() const { return GetVertexSigma(kZdc, kSubZdc); } // in Z Float_t GetZCdfSigma() const { return GetVertexSigma(kZdc, kSubCfd); } // in Z Float_t GetInelOffset() const { return GetVertexOffset(kInel, kSubInel); } // in Z Float_t GetBbSmallSigma() const { return GetVertexSigma(kBb, kBbSmall);} // in Z Float_t GetBbBigSigma() const { return GetVertexSigma(kBb, kBbBig); } // in Z Float_t GetBbFastSigma() const { return GetVertexSigma(kBb, kBbFast); } // in Z Float_t GetInelSigma() const { return GetVertexSigma(kInel, kSubInel); } // in Y // ----------- setters void SetVertexOffset(EBrVertexDetector det, EBrSubDetector sub, Float_t off, Float_t sigma); void SetTpcOffset(Float_t off, Float_t sig) { SetVertexOffset(kTpc, kSubTpc, off, sig); } void SetZdcOffset(Float_t off, Float_t sig) { SetVertexOffset(kZdc, kSubZdc, off, sig); } void SetZCdfOffset(Float_t off, Float_t sig) { SetVertexOffset(kZdc, kSubCfd, off, sig); } void SetBbSmallOffset(Float_t off, Float_t sig) { SetVertexOffset(kBb, kBbSmall, off, sig); } void SetBbBigOffset(Float_t off, Float_t sig) { SetVertexOffset(kBb, kBbBig, off, sig); } void SetBbFastOffset(Float_t off, Float_t sig) { SetVertexOffset(kBb, kBbFast, off, sig); } void SetInelOffset(Float_t off, Float_t sig) { SetVertexOffset(kInel,kSubInel, off, sig); } // ----------- access mode Int_t GetAccessMode(const Char_t* detname) const; // get access mode of calibration element // other methods Bool_t BrVertexCalibration::ValidCalibration(EBrVertexDetector, EBrSubDetector); Bool_t BrVertexCalibration::ValidDetector(EBrVertexDetector) const; private: BrCalibrationData fVertexOffset[4]; //! vertex offsets for TPM1, BB, ZDC and Inel public: ClassDef(BrVertexCalibration, 3) // Vertex offset Calibration }; #endif //____________________________________________________________________ // // $Log: BrVertexCalibration.h,v $ // Revision 1.5 2002/08/15 16:14:57 videbaek // Add possibility for vertex from CFD in zdc vertex. // // Revision 1.4 2002/05/03 21:22:20 zdc // Added Zdc to general vertex calibration object. // Zdc database object. // // Revision 1.3 2002/05/03 13:57:25 videbaek // added code for pp Inel vertex // // Revision 1.2 2001/11/05 06:47:24 ouerdane // added sigma info for vertex analysis // // Revision 1.1 2001/11/02 10:37:33 ouerdane // Added class BrVertexCalibration holding the offsets of the different vertices: // BB: big, small and fastest tubes in Z (aligned with TPM1) // TPM1: Y offset with beam line // ZDC: along Z // // The calibration is done so far for the BB counters (cf. modules/calib/vertex) // Like for other calibrations, the result is stored first to an ascii file // and then can be committed to the DB after a check). // // A new entry in the sql DB ahs been created for that purpose: // the "detector" is called VERTEX, its type is BEAM. The parameters are: // // tpcVertexOffset 1 element so far (TPM1) // bbVertexOffset 3 elements // zdcVertexOffset 1 element but I haven't tried anything with it yet. // // (cf also the modules/calib/vertex dir. and scripts/calib/bb/BbVtxOffset.C) //