// -*- mode: c++ -*- // // $Id: BrBbSlewingCalModule.h,v 1.4 2002/03/21 15:02:17 ouerdane Exp $ // $Author: ouerdane $ // $Date: 2002/03/21 15:02:17 $ // $Copyright: (C) 2001 BRAHMS Collaboration // #ifndef BRAT_BrBbSlewingCalModule #define BRAT_BrBbSlewingCalModule #ifndef BRAT_BrModule #include "BrBbCalModule.h" #endif #ifndef BRAT_BrEventNode #include "BrEventNode.h" #endif #ifndef ROOT_TH2 #include "TH2.h" #endif #ifndef ROOT_TF1 #include "TF1.h" #endif #ifndef ROOT_TString #include "TString.h" #endif #ifndef ROOT_TProfile #include "TProfile.h" #endif #ifndef ROOT_TNtuple #include "TNtuple.h" #endif #ifndef BRAT_BrDataTable #include "BrDataTable.h" #endif #ifndef BRAT_BrBbDig #include "BrBbDig.h" #endif class BrBbSlewingCalModule : public BrBbCalModule { private: Float_t fMinTdc; // reasonable lower limit Float_t fMaxTdc; // reasonable upper limit Float_t fEnergyThreshold; // cut on ped Float_t fAdcSel; // factor for adc ref selection Float_t fMaxBigTEnergy; // to avoid strange behaviour of big tubes for large ADCs Float_t fMaxSmallTEnergy; // to avoid strange behaviour of big tubes for large ADCs Float_t fDtimeCut; // cut on delta Time TH2F** fSlew; TH1F* fSumSlewDt; TH1F* fSumSlewK; TH1F* fSumSlewP; TNtuple* fBbSlewing; Bool_t fNtuple; virtual void SaveAscii(); virtual void ReadAscii(); BrBbDig* FindReference(BrDataTable* tab); void Process(BrDataTable* hits, BrBbDig* ref); public: BrBbSlewingCalModule(); BrBbSlewingCalModule(const Char_t* name, const Char_t* title); virtual ~BrBbSlewingCalModule () {} void SetDefaultParameters(); virtual void DefineHistograms(); virtual void Init(); virtual void Begin(); virtual void Event(BrEventNode* inNode, BrEventNode* outNode); virtual void End(); virtual void Finish(); virtual void Print(Option_t* option="B") const; // *MENU* void SetMinTdc(Float_t min = 10) { fMinTdc = min;} void SetMaxTdc(Float_t max = 3500) { fMaxTdc = max;} void SetEnergyThreshold(Float_t t = 0.8) { fEnergyThreshold = t;} void SetMaxBigTEnergy(Float_t t = 6) { fMaxBigTEnergy = t;} void SetMaxSmallTEnergy(Float_t t = 3.5) { fMaxSmallTEnergy = t;} void SetAdcSel(Float_t s = 0.1) { fAdcSel = s;} void SetDtimeCut(Float_t d = 0.7) { fDtimeCut = d;} void SetNtuple(Bool_t b = kFALSE) { fNtuple = b; } ClassDef(BrBbSlewingCalModule,0) // BB Slewing correction module }; #endif //____________________________________________________________________ // // $Log: BrBbSlewingCalModule.h,v $ // Revision 1.4 2002/03/21 15:02:17 ouerdane // added fComment member to base class module and method SetComment so that the user can set comments about the calibration at commit time // // Revision 1.3 2001/10/16 14:53:49 ouerdane // added delta time calibration // // Revision 1.2 2001/10/15 00:35:08 ouerdane // Updated all Beam-Beam counter calibration modules (like I did for the TOF // some weeks ago): // // Common changes: // added methods Set[Save,Commit,Load]Ascii(Bool_t) // removed methods Set[ReadFrom,LoadFrom,SaveTo]File // // BrBbGainCalModule: // cleaned up a lot the code, added diagnostic histograms showing calibrated // ADC after the 1st MIP peak was found. // Still at a stage where the 1st MIP peak is the only one to be checked. // Later on, will add algorithm to find other peaks. // // Added BrBbSlewingCalModule in Makefile.am, etc // The fit function introduced is dT = a + b/sqrt(dE) + c/dE (where dE = ADC/Gain0) // // Revision 1.1 2001/10/02 21:53:17 videbaek // Added to source but not yet in Include... //