/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights
* reserved.
*
- * Latest changes by Christian Holm Christensen <cholm@nbi.dk>
+ * Alla Maevskaya INR RAS alla@inr.ru
*
* See cxx source for full Copyright notice
*/
#include <TObjArray.h>
class AliT0CalibData;
class AliCDBEntry;
+class AliT0CalibWalk;
+class AliT0CalibTimeEq;
class AliT0Parameters : public TNamed
{
public:
static AliT0Parameters* Instance();
-
+
+ AliT0Parameters();
+ virtual ~AliT0Parameters() {};
+
void Init();
+ void InitIfOnline();
+
// Set various `Fixed' parameters
void SetPh2Mip(Int_t r=300) { fPh2Mip = r; }
void SetmV2Mip(Int_t r=50) { fmV2Mip = r; }
- void SetChannelWidth(Int_t s=25) { fChannelWidth = s;}
+ void SetChannelWidth(Float_t s=24.4) { fChannelWidth = s;}
void SetmV2channel(Int_t size=320) { fmV2Channel = size; }
void SetQTmin(Int_t qt=13) {fQTmin = qt;}
void SetQTmax(Int_t qt=125) {fQTmax = qt;}
void SetPMTeff(Int_t ipmt);
void SetTimeDelayTVD(Float_t r=150) { fTimeDelayTVD = r; };
- Float_t GetTimeDelayTVD() { return fTimeDelayTVD; }
+ Float_t GetTimeDelayTVD() const { return fTimeDelayTVD; }
- // Set various variable parameter defaults
- void SetSlewingLED(Int_t ipmt);
- void SetSlewingRec(Int_t ipmt);
-
// Get `Fixed' various parameters
Int_t GetPh2Mip() const { return fPh2Mip; }
Int_t GetmV2Mip() const { return fmV2Mip; }
- Int_t GetChannelWidth() const { return fChannelWidth; }
+ Float_t GetChannelWidth() const { return fChannelWidth; }
Int_t GetmV2channel() const { return fmV2Channel; }
Int_t GetQTmin() const {return fQTmin;}
Int_t GetQTmax() const {return fQTmax;}
Double_t GetZposition(Int_t i) const {return fT0zPosition[i];}
Double_t GetZPosition(const char* symname) ;
- TGraph * GetPMTeff(Int_t ipmt) const
+ Double_t GetZPositionShift(const char* symname);
+
+
+ TGraph * GetPMTeff(Int_t ipmt) const
{return (TGraph*)fPMTeff.At(ipmt);}
Float_t GetpmtEFF(Int_t ipmt, Float_t lambda) const
{return((TGraph*)fPMTeff.At(ipmt))->Eval(lambda);}
- Float_t GetSlewingLED(Int_t ipmt, Float_t mv) const;
- // {return((TGraph*)fSlewingLED.At(ipmt))->Eval(mv);}
- TGraph * GetSlew(Int_t ipmt) const ;
- // {return (TGraph*)fSlewingLED.At(ipmt);}
- TGraph * GetSlewRec(Int_t ipmt) const;
- // {return (TGraph*)fSlewingRec.At(ipmt);}
- Float_t GetSlewingRec(Int_t ipmt, Float_t mv) const;
- // {return((TGraph*)fSlewingRec.At(ipmt))->Eval(mv);}
-
- TGraph *GetWalk(Int_t ipmt ) const;// {return ((TF1*)fWalk.At(ipmt));}
- Float_t GetWalkVal(Int_t ipmt, Float_t mv ) const ;//{return ((TF1*)fWalk.At(ipmt))->Eval(mv);}
- void SetWalk(Int_t ipmt) ;
+ TGraph * GetAmpLEDRec(Int_t ipmt) const;
+ TGraph *GetWalk(Int_t ipmt ) const;
+ TGraph *GetQTC(Int_t ipmt) const;
+ TGraph *GetAmpLED(Int_t ipmt) const;
Float_t GetTimeDelayCFD(Int_t ipmt);
- Float_t GetTimeDelayLED(Int_t ipmt);
+// Float_t GetTimeV0(Int_t ipmt = 512) {return fTimeV0;}
- // TMap *LookupTable;
+ void SetMeanT0(Float_t mean=512) { fMeanT0 = mean; };
+ Float_t GetMeanT0 () {return fMeanT0;};
+ void SetMeanVertex(Float_t mean=0) { fMeanVertex = mean; };
+ Float_t GetMeanVertex ();
+ TMap * GetMapLookup();
Int_t GetChannel(Int_t trm, Int_t tdc, Int_t chain, Int_t channel);
Int_t GetNumberOfTRMs();
void SetNumberOfTRMs(Int_t ntrms=2) {fNumberOfTRMs = ntrms;}
-
-protected:
- AliT0Parameters();
- virtual ~AliT0Parameters() {}
+
+ protected:
static AliT0Parameters* fgInstance; // Static singleton instance
- Bool_t fIsInit; // Whether we've been initialised
- Float_t fT0zPosition[2] ; // z-position of the two T0s
- Int_t fPh2Mip; // # photoelectrons per MIP in radiator
- Int_t fmV2Mip; // # mV per MIP in radiator
- Int_t fChannelWidth; // channel width in ns
- Int_t fmV2Channel; // ADC mv 2 channel # (200000ps/(25*25).
- Int_t fQTmin; //min time for QTC
- Int_t fQTmax; //max time fro QTC
- Int_t fVariableDelayLine[24]; //time delay in VDL for trigger equvalizing
- TObjArray fSlewingLED; //array of slewing correction for each PMT
- TObjArray fSlewingRec; //array of slewing correction for Reconstruction
+ Bool_t fIsInit; // Whether we've been initialised
+ Float_t fT0zPosition[2] ; // z-position of the two T0s
+ Int_t fPh2Mip; // # photoelectrons per MIP in radiator
+ Int_t fmV2Mip; // # mV per MIP in radiator
+ Float_t fChannelWidth; // channel width in ns
+ Int_t fmV2Channel; // ADC mv 2 channel # (200000ps/(25*25).
+ Int_t fQTmin; //min time for QTC
+ Int_t fQTmax; //max time fro QTC
+ TObjArray fAmpLEDRec; // array of amlitude vs LED-CFD (simulation & reconstruction)
TObjArray fPMTeff; //array PMT registration efficiency
TObjArray fWalk; //array time-amplitude walk
+ TObjArray fQTC; //array of TGraphs for QTC vs number of MIPs
+ TObjArray fAmpLED; //array of TGraphs for LED-CFD vs number of MIPs
+
- Float_t fTimeDelayLED; // sum time delay for LED channel
- Float_t fTimeDelayCFD; // sum time delay for CFD channel
- Float_t fTimeDelayTVD; //time delay for TVD (vertex trigger channel)
+ Float_t fTimeDelayCFD; // sum time delay for CFD channel
+ // Float_t fTimeV0; // sum time delay for CFD channel
+ Float_t fTimeDelayTVD; //time delay for TVD (vertex trigger channel)
+ Float_t fMeanT0; //mean of T0distribution with vertex=0;
+ Float_t fMeanVertex; // mean of vertex distribution;
+
+ TMap fLookUp; //lookup table
+ Int_t fNumberOfTRMs; // number of TRMs in setup
- TMap fLookUp; //lookup table
- Int_t fNumberOfTRMs; // number of TRMs in setup
- static AliT0CalibData * fgCalibData; // singleton for Calibration data
+ static AliT0CalibTimeEq * fgCalibData; // singleton for Calibration data
static AliT0CalibData * fgLookUp; // singleton for Calibration data
- static AliT0CalibData * fgSlewCorr; // singleton for Calibration data
+ static AliT0CalibWalk * fgSlewCorr; // singleton for Calibration data
AliCDBEntry* fCalibentry ; // pointer to T0 calibration object
AliCDBEntry* fLookUpentry ; // pointer to T0 lokkup table
AliCDBEntry* fSlewCorr ; // pointer to slewing correction
-
- ClassDef(AliT0Parameters,2)
- private:
+
+ private:
AliT0Parameters(const AliT0Parameters&);
AliT0Parameters& operator=(const AliT0Parameters&);
-
+
+ ClassDef(AliT0Parameters,5)
+
};
#endif