ROOT logo
#ifndef ALITRDCALIBRAFILLHISTO_H
#define ALITRDCALIBRAFILLHISTO_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/* $Id$ */

///////////////////////////////////////////////////////////////////////////////
//                                                                           //
//  TRD calibration class for the HLT parameters                             //
//                                                                           //
///////////////////////////////////////////////////////////////////////////////

#ifndef ROOT_TObject
#  include <TObject.h>
#endif
#ifndef ROOT_TProfile2D
#  include <TProfile2D.h> 
#endif


class TProfile2D;
class TObjArray;
class TH1F;
class TH2I;
class TH2F;
class TH2;
class TLinearFitter;
class TTreeSRedirector;

class AliLog;
class AliRawReader;

class AliESDtrack;

class AliTRDCalibraMode;
class AliTRDCalibraVector;
class AliTRDCalibraVdriftLinearFit;
class AliTRDCalibraExbAltFit;
class AliTRDcluster;
class AliTRDtrackV1;
class AliTRDseedV1;
class AliTRDgeometry;
class AliTRDCalDet;
class AliTRDCalROC;
class AliTRDcalibDB;

class AliTRDdigitsManager;
class AliTRDSignalIndex;

struct eventHeaderStruct;

class AliTRDCalibraFillHisto : public TObject {

 public: 

  // Instance
  static AliTRDCalibraFillHisto *Instance();
  static void Terminate();
  static void Destroy();
  void DestroyDebugStreamer();


  AliTRDCalibraFillHisto(const AliTRDCalibraFillHisto &c);
  AliTRDCalibraFillHisto &operator=(const AliTRDCalibraFillHisto &) { return *this; }

  // Functions for initialising and filling with AliTRDtrackV1
          Bool_t  Init2Dhistos(Int_t nboftimebin = -1);
	  Bool_t  InitCalDet();
	  Bool_t  UpdateHistogramsV1(const AliTRDtrackV1 *t,const AliESDtrack *esdtrack = NULL);
 
  // Process events DAQ
	  Int_t   ProcessEventDAQ(AliRawReader *rawReader);

  // Is Pad on
          Bool_t   IsPadOn(Int_t detector, Int_t row, Int_t col) const;

  // Functions for write
	  void     Write2d(const Char_t *filename = "TRD.calibration.root", Bool_t append = kFALSE);

  //For the statistics
	  Double_t *StatH(TH2 *ch, Int_t i);
	  Double_t *GetMeanMedianRMSNumberCH();
	  Double_t *GetMeanMedianRMSNumberLinearFitter() const;
 // LinearFitter
	  void     AnalyseLinearFitter();
       
     	 
  //
  // Set of Get the variables
  //

	  void     SetIsHLT(Bool_t isHLT = kTRUE)                            { fIsHLT = isHLT;                       }  
	  Bool_t   IsHLT() const                                             { return fIsHLT;                        }  

  // Choice to fill or not the 2D
	  void     SetPH2dOn(Bool_t ph2don = kTRUE)                          { fPH2dOn          = ph2don;            }
          void     SetCH2dOn(Bool_t ch2don = kTRUE)                          { fCH2dOn          = ch2don;            }
          void     SetPRF2dOn(Bool_t prf2don = kTRUE)                        { fPRF2dOn         = prf2don;           }
          void     SetHisto2d(Bool_t histo2d = kTRUE)                        { fHisto2d         = histo2d;           }
          void     SetVector2d(Bool_t vector2d = kTRUE)                      { fVector2d        = vector2d;          }
	  void     SetLinearFitterOn(Bool_t linearfitteron = kTRUE)          { fLinearFitterOn      = linearfitteron;}
	  void     SetLinearFitterDebugOn(Bool_t debug = kTRUE)              { fLinearFitterDebugOn = debug;         }
          void     SetExbAltFitOn(Bool_t fiton = kTRUE)                      { fExbAltFitOn      = fiton;}
	  void     SetScaleWithTPCSignal(Bool_t scaleWithTPCSignal = kTRUE)  { fScaleWithTPCSignal = scaleWithTPCSignal;}
	  void     SetTakeSnapshot(Bool_t takesnapshot)                 { fTakeSnapshot = takesnapshot;   }
	  void     SetFirstRunGain(Int_t firstRunGain)                       { fFirstRunGain = firstRunGain;   }
	  void     SetVersionGainUsed(Int_t versionGainUsed)                 { fVersionGainUsed = versionGainUsed;   }
	  void     SetSubVersionGainUsed(Int_t subVersionGainUsed)           { fSubVersionGainUsed = subVersionGainUsed;   }
	  void     SetFirstRunGainLocal(Int_t firstRunGainLocal)             { fFirstRunGainLocal = firstRunGainLocal;   }
	  void     SetVersionGainLocalUsed(Int_t versionGainLocalUsed)       { fVersionGainLocalUsed = versionGainLocalUsed;   }
	  void     SetSubVersionGainLocalUsed(Int_t subVersionGainLocalUsed) { fSubVersionGainLocalUsed = subVersionGainLocalUsed;   }
	  void     SetFirstRunVdrift(Int_t firstRunVdrift)                   { fFirstRunVdrift = firstRunVdrift;   }
	  void     SetVersionVdriftUsed(Int_t versionVdriftUsed)             { fVersionVdriftUsed = versionVdriftUsed;   }
	  void     SetSubVersionVdriftUsed(Int_t subVersionVdriftUsed)       { fSubVersionVdriftUsed = subVersionVdriftUsed;   }
	  void     SetFirstRunExB(Int_t firstRunExB)                         { fFirstRunExB = firstRunExB;   }
	  void     SetVersionExBUsed(Int_t versionExBUsed)                   { fVersionExBUsed = versionExBUsed;   }
	  void     SetSubVersionExBUsed(Int_t subVersionExBUsed)             { fSubVersionExBUsed = subVersionExBUsed;   }
	  
  
	  Bool_t   GetPH2dOn() const                                         { return fPH2dOn;                 }
          Bool_t   GetCH2dOn() const                                         { return fCH2dOn;                 }
          Bool_t   GetPRF2dOn() const                                        { return fPRF2dOn;                }
          Bool_t   GetHisto2d() const                                        { return fHisto2d;                }
          Bool_t   GetVector2d() const                                       { return fVector2d;               }
          Bool_t   GetLinearFitterOn() const                                 { return fLinearFitterOn;         }
	  Bool_t   GetLinearFitterDebugOn() const                            { return fLinearFitterDebugOn;    }
	  Int_t    GetVersionGainUsed() const                                { return fVersionGainUsed;        }
	  Int_t    GetSubVersionGainUsed() const                             { return fSubVersionGainUsed;     }
	  Int_t    GetVersionVdriftUsed() const                              { return fVersionVdriftUsed;      }
	  Int_t    GetSubVersionVdriftUsed() const                           { return fSubVersionVdriftUsed;   }


  // Get stuff that are filled
  TH2I            *GetCH2d();
  TProfile2D      *GetPH2d(Int_t nbtimebin=24, Float_t samplefrequency= 10.0);
  TProfile2D      *GetPRF2d() const                                          { return fPRF2d;                  } 
  TObjArray        GetLinearFitterArray() const                              { return fLinearFitterArray;      }
  TLinearFitter   *GetLinearFitter(Int_t detector, Bool_t force=kFALSE);
  AliTRDCalibraVdriftLinearFit *GetVdriftLinearFit() const                   { return fLinearVdriftFit; }
  AliTRDCalibraExbAltFit *GetExbAltFit() const                               { return fExbAltFit; }
  
 
  // How to fill the 2D
          void     SetRelativeScale(Float_t relativeScale);                      
          void     SetThresholdClusterPRF2(Float_t thresholdClusterPRF2)     { fThresholdClusterPRF2 = thresholdClusterPRF2; }
	  void     SetLimitChargeIntegration(Bool_t limitChargeIntegration)  { fLimitChargeIntegration = limitChargeIntegration; }
	  void     SetFillWithZero(Bool_t fillWithZero)                      { fFillWithZero = fillWithZero;   }
	  void     SetNormalizeNbOfCluster(Bool_t normalizeNbOfCluster)      { fNormalizeNbOfCluster = normalizeNbOfCluster; }
	  void     SetMaxCluster(Float_t maxCluster)                         { fMaxCluster = maxCluster; }
	  void     SetNbMaxCluster(Short_t nbMaxCluster)                     { fNbMaxCluster = nbMaxCluster; }
	  void     SetCutWithVdriftCalib(Bool_t cutWithVdriftCalib)          { fCutWithVdriftCalib = cutWithVdriftCalib; }
	  void     SetMinNbTRDtracklets(Int_t minNbTRDtracklets)             { fMinNbTRDtracklets = minNbTRDtracklets; }
	  void     SetMinTRDMomentum(Float_t minTRDMomentum)                 { fMinTRDMomentum = minTRDMomentum; }
	  void     SetNz(Int_t i, Short_t nz);
          void     SetNrphi(Int_t i, Short_t nrphi);
          void     SetAllTogether(Int_t i);
	  void     SetPerSuperModule(Int_t i);
	  void     SetProcent(Float_t procent)                               { fProcent              = procent;              }
          void     SetDifference(Short_t difference)                         { fDifference           = difference;           }
          void     SetNumberClusters(Short_t numberClusters)                 { if(numberClusters >= 0) fNumberClusters       = numberClusters;       }
	  void     SetNumberClustersf(Short_t numberClustersf)               { fNumberClustersf      = numberClustersf;      }
	  void     SetNumberClustersProcent(Float_t numberClustersProcent)   { fNumberClustersProcent = numberClustersProcent;                       }
	  void     SetThresholdClustersDAQ(Float_t thresholdClustersDAQ)     { fThresholdClustersDAQ = thresholdClustersDAQ;                         }
	  void     SetNumberRowDAQ(Short_t numberRowDAQ)                     { fNumberRowDAQ         = numberRowDAQ;         }
	  void     SetNumberColDAQ(Short_t numberColDAQ)                     { fNumberColDAQ         = numberColDAQ;         }
	  void     SetRangeHistoCharge(Float_t rangeHistoCharge)             { fRangeHistoCharge     = rangeHistoCharge;     }
	  void     SetNumberBinCharge(Short_t numberBinCharge)               { fNumberBinCharge      = numberBinCharge;      }
          void     SetNumberBinPRF(Short_t numberBinPRF)                     { fNumberBinPRF         = numberBinPRF;         }
	  void     SetNumberGroupsPRF(Short_t numberGroupsPRF);
  
          Float_t  GetRelativeScale() const                                  { return fRelativeScale;          }
          Float_t  GetThresholdClusterPRF2() const                           { return fThresholdClusterPRF2;   }
	  Bool_t   GetLimitChargeIntegration() const                         { return fLimitChargeIntegration; }
	  Bool_t   GetFillWithZero() const                                   { return fFillWithZero;           }
	  Bool_t   GetNormalizeNbOfCluster() const                           { return fNormalizeNbOfCluster;   }
	  Float_t  GetMaxCluster() const                                     { return fMaxCluster;             }
	  Short_t  GetNbMaxCluster() const                                   { return fNbMaxCluster;           }
	  Bool_t   GetCutWithVdriftCalib() const                             { return fCutWithVdriftCalib;     }
	  Float_t  GetProcent() const                                        { return fProcent;                }
          Short_t  GetDifference() const                                     { return fDifference;             }
          Short_t  GetNumberClusters() const                                 { return fNumberClusters;         }
	  Short_t  GetNumberClustersf() const                                { return fNumberClustersf;        }
          Short_t  GetNumberBinCharge() const                                { return fNumberBinCharge;        }
          Short_t  GetNumberBinPRF() const                                   { return fNumberBinPRF;           }
	  Short_t  GetNumberGroupsPRF() const                                { return fNgroupprf;              }
	  Int_t    *GetEntriesLinearFitter() const                           { return fEntriesLinearFitter;    }

 // Debug
          void     SetDebugLevel(Short_t level)                              { fDebugLevel = level;           }

  // Vector method
AliTRDCalibraVector *GetCalibraVector() const                                { return fCalibraVector;          }   
  
 protected:

  // Geometry
  AliTRDgeometry  *fGeo;                    //! The TRD geometry
  // calibration DB
  AliTRDcalibDB   *fCalibDB;                //! The pointer to the TRDcalibDB instance

  // Is HLT
          Bool_t   fIsHLT;                  // Now if HLT, the per detector

  // Choice to fill or not the 2D
	  Bool_t   fCH2dOn;                 // Chose to fill the 2D histos or vectors for the relative gain calibration 
          Bool_t   fPH2dOn;                 // Chose to fill the 2D histos or vectors for the drift velocity and T0
          Bool_t   fPRF2dOn;                // Chose to fill the 2D histos or vectors for the pad response function calibration
          Bool_t   fHisto2d;                // Chose to fill the 2D histos
          Bool_t   fVector2d;               // Chose to fill vectors
	  Bool_t   fLinearFitterOn;         // Method with linear fit for drift velocity
	  Bool_t   fLinearFitterDebugOn;    // Method with linear fit for drift velocity
          Bool_t   fExbAltFitOn;            // Enable parabolic fit for exb
	  Bool_t   fScaleWithTPCSignal;     // Scale the gain with TPC signal (If use then ask at least 70 TPC clusters)

  // How to fill the 2D
          Float_t  fRelativeScale;          // Scale of the deposited charge
          Float_t  fThresholdClusterPRF2;   // Threshold on cluster pad signals
          Bool_t   fLimitChargeIntegration; // Integration range for the gain calibration
	  Bool_t   fFillWithZero;           // Fill with zero or not the average pulse height
	  Bool_t   fNormalizeNbOfCluster;   // Normalize with the number of cluster for the gain
	  Float_t  fMaxCluster;             // Max amplitude of one cluster
	  Short_t  fNbMaxCluster;           // Number of tb at the end
	  Bool_t   fCutWithVdriftCalib;     // CutWithVdriftCalib for the gain and PH
	  Int_t    fMinNbTRDtracklets;      // Min number of TRD tracklets
	  Float_t  fMinTRDMomentum;         // Min TRD momentum
  // Back correction
	  Bool_t   fTakeSnapshot;           // Take from snapshot
	  Int_t    fFirstRunGain;           // FirstRunGain 
	  Int_t    fVersionGainUsed;        // VersionGainUsed 
	  Int_t    fSubVersionGainUsed;     // SubVersionGainUsed
	  Int_t    fFirstRunGainLocal;      // FirstRunGainLocal 
	  Int_t    fVersionGainLocalUsed;   // VersionGainUsed 
	  Int_t    fSubVersionGainLocalUsed;// SubVersionGainUsed
	  Int_t    fFirstRunVdrift;         // FirstRunVdrift 
	  Int_t    fVersionVdriftUsed;      // VersionVdriftUsed 
	  Int_t    fSubVersionVdriftUsed;   // SubVersionVdriftUsed
	  Int_t    fFirstRunExB;            // FirstRunExB 
	  Int_t    fVersionExBUsed;         // VersionExBUsed 
	  Int_t    fSubVersionExBUsed;      // SubVersionExBUsed
  // Calibration mode
	  AliTRDCalibraMode *fCalibraMode;  // Calibration mode

  //For debugging
	  TTreeSRedirector          *fDebugStreamer;                 //!Debug streamer
          Short_t     fDebugLevel;                                   // Flag for debugging
  //
  // Internal variables
  //

  // Fill the 2D histos in the offline tracking
	  Int_t    fDetectorPreviousTrack;  // Change of detector
	  Int_t    fMCMPrevious;            // Change of MCM
	  Int_t    fROBPrevious;            // Change of ROB
	  Short_t  fNumberClusters;         // Minimum number of clusters in the tracklets
	  Short_t  fNumberClustersf;        // Maximum number of clusters in the tracklets
	  Float_t  fNumberClustersProcent;  // Procent of number of time bins for fNumberClusters
	  Float_t  fThresholdClustersDAQ;   // Threshold clusters for DAQ algorithm
	  Short_t  fNumberRowDAQ;           // Size of the spot for DAQ algorithm
	  Short_t  fNumberColDAQ;           // Size of the spot for DAQ algorithm
          Float_t  fProcent;                // Limit to take the info of the most important calibration group if the track goes through 2 groups (CH)
          Short_t  fDifference;             // Limit to take the info of the most important calibration group if the track goes through 2 groups (CH)
          Int_t    fNumberTrack;            // How many tracks could be used (Debug for the moment)
          Int_t    fNumberUsedCh[2];        // How many tracks have been really used for the gain (0, strict; 1 with fProcent)
          Int_t    fNumberUsedPh[2];        // How many tracks have been really used for the drift velocity (0, strict; 1 with fDifference)
	  Int_t    fTimeMax;                // Number of time bins
          Float_t  fSf;                     // Sampling frequence
	  Float_t  fRangeHistoCharge;       // Range of the histo for the charge
	  Short_t  fNumberBinCharge;        // Number of bins for the gain factor
	  Short_t  fNumberBinPRF;           // Number of bin for the PRF
	  Short_t  fNgroupprf;              // Number of groups in tnp bins for PRF /2.0

  // Variables per tracklet
	  Float_t       *fAmpTotal;                  // Energy deposited in the calibration group by the track
          Short_t       *fPHPlace;                   // Calibration group of PH
          Float_t       *fPHValue;                   // PH
	  Bool_t         fGoodTracklet;              // Good tracklet
	  TLinearFitter *fLinearFitterTracklet;      // linear fitter tracklet  
  //Statistics
	  Int_t         *fEntriesCH;                 // Number of entries CH
	  Int_t         *fEntriesLinearFitter;       // Number of entries LinearFitter


  //
  // Vector method
  //
  	  
	  AliTRDCalibraVector *fCalibraVector; // The vector object
 
 
  // Histograms to store the info from the digits, from the tracklets or from the tracks
	  TProfile2D      *fPH2d;                         // 2D average pulse height
	  TProfile2D      *fPRF2d;                        // 2D PRF
	  TH2I            *fCH2d;                         // 2D deposited charge
	  TObjArray       fLinearFitterArray;             // TObjArray of Linear Fitters for the detectors 
	  AliTRDCalibraVdriftLinearFit *fLinearVdriftFit; // Info Linear Fit
          AliTRDCalibraExbAltFit *fExbAltFit; // ExB parabolic fit (alternative to vdrift linear fit)
	  
 // Current calib object: to correct for the database used
	  AliTRDCalDet *fCalDetGain;                      // Current calib object gain
	  AliTRDCalROC *fCalROCGain;                      // Current calib object gain
	   
  //
  // A lot of internal functions......
  // Init
	  Bool_t   InitCalPad(Int_t detector);
  //
  // Create the 2D histo to be filled Online
          void     CreateCH2d(Int_t nn);
          void     CreatePH2d(Int_t nn);
          void     CreatePRF2d(Int_t nn);
  
  // Calibration with AliTRDtrackV1
          void     FillTheInfoOfTheTrackPH();
          void     FillTheInfoOfTheTrackCH(Int_t nbclusters);
	  Bool_t   FindP1TrackPHtrackletV1(const AliTRDseedV1 *tracklet, Int_t nbclusters);
	  Bool_t   HandlePRFtrackletV1(const AliTRDseedV1 *tracklet, Int_t nbclusters);
	  void     ResetfVariablestracklet();
	  Float_t  StoreInfoCHPHtrack(const AliTRDcluster *cl,const Double_t dqdl,const Int_t *group,const Int_t row,const Int_t col,const AliTRDcluster *cls=0x0);
	  void     FillCH2d(Int_t x, Float_t y);

  // Calibration on DAQ

	  Int_t    FillDAQ(Double_t phvalue[16][144][36]);
	  Bool_t   UpdateDAQ(Int_t det, Int_t /*row*/, Int_t /*col*/, Int_t timebin, Float_t signal, Int_t nbtimebins);
	  
 // row col calibration groups stuff
          Bool_t   LocalisationDetectorXbins(Int_t detector);
	  Int_t    CalculateTotalNumberOfBins(Int_t i);
	  void     CheckGoodTrackletV0(const Int_t detector,const Int_t row,const Int_t col);
	  void     CheckGoodTrackletV1(const AliTRDcluster *cl);
	  Int_t    CalculateCalibrationGroup(Int_t i, Int_t row, Int_t col) const;
	  
  // Clear
          void     ClearHistos();
      
  // Some basic geometry function
  virtual Int_t    GetLayer(Int_t d) const;
  virtual Int_t    GetStack(Int_t d) const;
  virtual Int_t    GetSector(Int_t d) const;
	  
          
  // Instance of this class and so on
  static  AliTRDCalibraFillHisto *fgInstance;                // Instance
  static  Bool_t   fgTerminated;                             // If terminated

 private:
  
  // This is a singleton, contructor is private!
  AliTRDCalibraFillHisto();
  virtual ~AliTRDCalibraFillHisto(); 
    
  ClassDef(AliTRDCalibraFillHisto,8)                         // TRD Calibration class

};
  
#endif


 AliTRDCalibraFillHisto.h:1
 AliTRDCalibraFillHisto.h:2
 AliTRDCalibraFillHisto.h:3
 AliTRDCalibraFillHisto.h:4
 AliTRDCalibraFillHisto.h:5
 AliTRDCalibraFillHisto.h:6
 AliTRDCalibraFillHisto.h:7
 AliTRDCalibraFillHisto.h:8
 AliTRDCalibraFillHisto.h:9
 AliTRDCalibraFillHisto.h:10
 AliTRDCalibraFillHisto.h:11
 AliTRDCalibraFillHisto.h:12
 AliTRDCalibraFillHisto.h:13
 AliTRDCalibraFillHisto.h:14
 AliTRDCalibraFillHisto.h:15
 AliTRDCalibraFillHisto.h:16
 AliTRDCalibraFillHisto.h:17
 AliTRDCalibraFillHisto.h:18
 AliTRDCalibraFillHisto.h:19
 AliTRDCalibraFillHisto.h:20
 AliTRDCalibraFillHisto.h:21
 AliTRDCalibraFillHisto.h:22
 AliTRDCalibraFillHisto.h:23
 AliTRDCalibraFillHisto.h:24
 AliTRDCalibraFillHisto.h:25
 AliTRDCalibraFillHisto.h:26
 AliTRDCalibraFillHisto.h:27
 AliTRDCalibraFillHisto.h:28
 AliTRDCalibraFillHisto.h:29
 AliTRDCalibraFillHisto.h:30
 AliTRDCalibraFillHisto.h:31
 AliTRDCalibraFillHisto.h:32
 AliTRDCalibraFillHisto.h:33
 AliTRDCalibraFillHisto.h:34
 AliTRDCalibraFillHisto.h:35
 AliTRDCalibraFillHisto.h:36
 AliTRDCalibraFillHisto.h:37
 AliTRDCalibraFillHisto.h:38
 AliTRDCalibraFillHisto.h:39
 AliTRDCalibraFillHisto.h:40
 AliTRDCalibraFillHisto.h:41
 AliTRDCalibraFillHisto.h:42
 AliTRDCalibraFillHisto.h:43
 AliTRDCalibraFillHisto.h:44
 AliTRDCalibraFillHisto.h:45
 AliTRDCalibraFillHisto.h:46
 AliTRDCalibraFillHisto.h:47
 AliTRDCalibraFillHisto.h:48
 AliTRDCalibraFillHisto.h:49
 AliTRDCalibraFillHisto.h:50
 AliTRDCalibraFillHisto.h:51
 AliTRDCalibraFillHisto.h:52
 AliTRDCalibraFillHisto.h:53
 AliTRDCalibraFillHisto.h:54
 AliTRDCalibraFillHisto.h:55
 AliTRDCalibraFillHisto.h:56
 AliTRDCalibraFillHisto.h:57
 AliTRDCalibraFillHisto.h:58
 AliTRDCalibraFillHisto.h:59
 AliTRDCalibraFillHisto.h:60
 AliTRDCalibraFillHisto.h:61
 AliTRDCalibraFillHisto.h:62
 AliTRDCalibraFillHisto.h:63
 AliTRDCalibraFillHisto.h:64
 AliTRDCalibraFillHisto.h:65
 AliTRDCalibraFillHisto.h:66
 AliTRDCalibraFillHisto.h:67
 AliTRDCalibraFillHisto.h:68
 AliTRDCalibraFillHisto.h:69
 AliTRDCalibraFillHisto.h:70
 AliTRDCalibraFillHisto.h:71
 AliTRDCalibraFillHisto.h:72
 AliTRDCalibraFillHisto.h:73
 AliTRDCalibraFillHisto.h:74
 AliTRDCalibraFillHisto.h:75
 AliTRDCalibraFillHisto.h:76
 AliTRDCalibraFillHisto.h:77
 AliTRDCalibraFillHisto.h:78
 AliTRDCalibraFillHisto.h:79
 AliTRDCalibraFillHisto.h:80
 AliTRDCalibraFillHisto.h:81
 AliTRDCalibraFillHisto.h:82
 AliTRDCalibraFillHisto.h:83
 AliTRDCalibraFillHisto.h:84
 AliTRDCalibraFillHisto.h:85
 AliTRDCalibraFillHisto.h:86
 AliTRDCalibraFillHisto.h:87
 AliTRDCalibraFillHisto.h:88
 AliTRDCalibraFillHisto.h:89
 AliTRDCalibraFillHisto.h:90
 AliTRDCalibraFillHisto.h:91
 AliTRDCalibraFillHisto.h:92
 AliTRDCalibraFillHisto.h:93
 AliTRDCalibraFillHisto.h:94
 AliTRDCalibraFillHisto.h:95
 AliTRDCalibraFillHisto.h:96
 AliTRDCalibraFillHisto.h:97
 AliTRDCalibraFillHisto.h:98
 AliTRDCalibraFillHisto.h:99
 AliTRDCalibraFillHisto.h:100
 AliTRDCalibraFillHisto.h:101
 AliTRDCalibraFillHisto.h:102
 AliTRDCalibraFillHisto.h:103
 AliTRDCalibraFillHisto.h:104
 AliTRDCalibraFillHisto.h:105
 AliTRDCalibraFillHisto.h:106
 AliTRDCalibraFillHisto.h:107
 AliTRDCalibraFillHisto.h:108
 AliTRDCalibraFillHisto.h:109
 AliTRDCalibraFillHisto.h:110
 AliTRDCalibraFillHisto.h:111
 AliTRDCalibraFillHisto.h:112
 AliTRDCalibraFillHisto.h:113
 AliTRDCalibraFillHisto.h:114
 AliTRDCalibraFillHisto.h:115
 AliTRDCalibraFillHisto.h:116
 AliTRDCalibraFillHisto.h:117
 AliTRDCalibraFillHisto.h:118
 AliTRDCalibraFillHisto.h:119
 AliTRDCalibraFillHisto.h:120
 AliTRDCalibraFillHisto.h:121
 AliTRDCalibraFillHisto.h:122
 AliTRDCalibraFillHisto.h:123
 AliTRDCalibraFillHisto.h:124
 AliTRDCalibraFillHisto.h:125
 AliTRDCalibraFillHisto.h:126
 AliTRDCalibraFillHisto.h:127
 AliTRDCalibraFillHisto.h:128
 AliTRDCalibraFillHisto.h:129
 AliTRDCalibraFillHisto.h:130
 AliTRDCalibraFillHisto.h:131
 AliTRDCalibraFillHisto.h:132
 AliTRDCalibraFillHisto.h:133
 AliTRDCalibraFillHisto.h:134
 AliTRDCalibraFillHisto.h:135
 AliTRDCalibraFillHisto.h:136
 AliTRDCalibraFillHisto.h:137
 AliTRDCalibraFillHisto.h:138
 AliTRDCalibraFillHisto.h:139
 AliTRDCalibraFillHisto.h:140
 AliTRDCalibraFillHisto.h:141
 AliTRDCalibraFillHisto.h:142
 AliTRDCalibraFillHisto.h:143
 AliTRDCalibraFillHisto.h:144
 AliTRDCalibraFillHisto.h:145
 AliTRDCalibraFillHisto.h:146
 AliTRDCalibraFillHisto.h:147
 AliTRDCalibraFillHisto.h:148
 AliTRDCalibraFillHisto.h:149
 AliTRDCalibraFillHisto.h:150
 AliTRDCalibraFillHisto.h:151
 AliTRDCalibraFillHisto.h:152
 AliTRDCalibraFillHisto.h:153
 AliTRDCalibraFillHisto.h:154
 AliTRDCalibraFillHisto.h:155
 AliTRDCalibraFillHisto.h:156
 AliTRDCalibraFillHisto.h:157
 AliTRDCalibraFillHisto.h:158
 AliTRDCalibraFillHisto.h:159
 AliTRDCalibraFillHisto.h:160
 AliTRDCalibraFillHisto.h:161
 AliTRDCalibraFillHisto.h:162
 AliTRDCalibraFillHisto.h:163
 AliTRDCalibraFillHisto.h:164
 AliTRDCalibraFillHisto.h:165
 AliTRDCalibraFillHisto.h:166
 AliTRDCalibraFillHisto.h:167
 AliTRDCalibraFillHisto.h:168
 AliTRDCalibraFillHisto.h:169
 AliTRDCalibraFillHisto.h:170
 AliTRDCalibraFillHisto.h:171
 AliTRDCalibraFillHisto.h:172
 AliTRDCalibraFillHisto.h:173
 AliTRDCalibraFillHisto.h:174
 AliTRDCalibraFillHisto.h:175
 AliTRDCalibraFillHisto.h:176
 AliTRDCalibraFillHisto.h:177
 AliTRDCalibraFillHisto.h:178
 AliTRDCalibraFillHisto.h:179
 AliTRDCalibraFillHisto.h:180
 AliTRDCalibraFillHisto.h:181
 AliTRDCalibraFillHisto.h:182
 AliTRDCalibraFillHisto.h:183
 AliTRDCalibraFillHisto.h:184
 AliTRDCalibraFillHisto.h:185
 AliTRDCalibraFillHisto.h:186
 AliTRDCalibraFillHisto.h:187
 AliTRDCalibraFillHisto.h:188
 AliTRDCalibraFillHisto.h:189
 AliTRDCalibraFillHisto.h:190
 AliTRDCalibraFillHisto.h:191
 AliTRDCalibraFillHisto.h:192
 AliTRDCalibraFillHisto.h:193
 AliTRDCalibraFillHisto.h:194
 AliTRDCalibraFillHisto.h:195
 AliTRDCalibraFillHisto.h:196
 AliTRDCalibraFillHisto.h:197
 AliTRDCalibraFillHisto.h:198
 AliTRDCalibraFillHisto.h:199
 AliTRDCalibraFillHisto.h:200
 AliTRDCalibraFillHisto.h:201
 AliTRDCalibraFillHisto.h:202
 AliTRDCalibraFillHisto.h:203
 AliTRDCalibraFillHisto.h:204
 AliTRDCalibraFillHisto.h:205
 AliTRDCalibraFillHisto.h:206
 AliTRDCalibraFillHisto.h:207
 AliTRDCalibraFillHisto.h:208
 AliTRDCalibraFillHisto.h:209
 AliTRDCalibraFillHisto.h:210
 AliTRDCalibraFillHisto.h:211
 AliTRDCalibraFillHisto.h:212
 AliTRDCalibraFillHisto.h:213
 AliTRDCalibraFillHisto.h:214
 AliTRDCalibraFillHisto.h:215
 AliTRDCalibraFillHisto.h:216
 AliTRDCalibraFillHisto.h:217
 AliTRDCalibraFillHisto.h:218
 AliTRDCalibraFillHisto.h:219
 AliTRDCalibraFillHisto.h:220
 AliTRDCalibraFillHisto.h:221
 AliTRDCalibraFillHisto.h:222
 AliTRDCalibraFillHisto.h:223
 AliTRDCalibraFillHisto.h:224
 AliTRDCalibraFillHisto.h:225
 AliTRDCalibraFillHisto.h:226
 AliTRDCalibraFillHisto.h:227
 AliTRDCalibraFillHisto.h:228
 AliTRDCalibraFillHisto.h:229
 AliTRDCalibraFillHisto.h:230
 AliTRDCalibraFillHisto.h:231
 AliTRDCalibraFillHisto.h:232
 AliTRDCalibraFillHisto.h:233
 AliTRDCalibraFillHisto.h:234
 AliTRDCalibraFillHisto.h:235
 AliTRDCalibraFillHisto.h:236
 AliTRDCalibraFillHisto.h:237
 AliTRDCalibraFillHisto.h:238
 AliTRDCalibraFillHisto.h:239
 AliTRDCalibraFillHisto.h:240
 AliTRDCalibraFillHisto.h:241
 AliTRDCalibraFillHisto.h:242
 AliTRDCalibraFillHisto.h:243
 AliTRDCalibraFillHisto.h:244
 AliTRDCalibraFillHisto.h:245
 AliTRDCalibraFillHisto.h:246
 AliTRDCalibraFillHisto.h:247
 AliTRDCalibraFillHisto.h:248
 AliTRDCalibraFillHisto.h:249
 AliTRDCalibraFillHisto.h:250
 AliTRDCalibraFillHisto.h:251
 AliTRDCalibraFillHisto.h:252
 AliTRDCalibraFillHisto.h:253
 AliTRDCalibraFillHisto.h:254
 AliTRDCalibraFillHisto.h:255
 AliTRDCalibraFillHisto.h:256
 AliTRDCalibraFillHisto.h:257
 AliTRDCalibraFillHisto.h:258
 AliTRDCalibraFillHisto.h:259
 AliTRDCalibraFillHisto.h:260
 AliTRDCalibraFillHisto.h:261
 AliTRDCalibraFillHisto.h:262
 AliTRDCalibraFillHisto.h:263
 AliTRDCalibraFillHisto.h:264
 AliTRDCalibraFillHisto.h:265
 AliTRDCalibraFillHisto.h:266
 AliTRDCalibraFillHisto.h:267
 AliTRDCalibraFillHisto.h:268
 AliTRDCalibraFillHisto.h:269
 AliTRDCalibraFillHisto.h:270
 AliTRDCalibraFillHisto.h:271
 AliTRDCalibraFillHisto.h:272
 AliTRDCalibraFillHisto.h:273
 AliTRDCalibraFillHisto.h:274
 AliTRDCalibraFillHisto.h:275
 AliTRDCalibraFillHisto.h:276
 AliTRDCalibraFillHisto.h:277
 AliTRDCalibraFillHisto.h:278
 AliTRDCalibraFillHisto.h:279
 AliTRDCalibraFillHisto.h:280
 AliTRDCalibraFillHisto.h:281
 AliTRDCalibraFillHisto.h:282
 AliTRDCalibraFillHisto.h:283
 AliTRDCalibraFillHisto.h:284
 AliTRDCalibraFillHisto.h:285
 AliTRDCalibraFillHisto.h:286
 AliTRDCalibraFillHisto.h:287
 AliTRDCalibraFillHisto.h:288
 AliTRDCalibraFillHisto.h:289
 AliTRDCalibraFillHisto.h:290
 AliTRDCalibraFillHisto.h:291
 AliTRDCalibraFillHisto.h:292
 AliTRDCalibraFillHisto.h:293
 AliTRDCalibraFillHisto.h:294
 AliTRDCalibraFillHisto.h:295
 AliTRDCalibraFillHisto.h:296
 AliTRDCalibraFillHisto.h:297
 AliTRDCalibraFillHisto.h:298
 AliTRDCalibraFillHisto.h:299
 AliTRDCalibraFillHisto.h:300
 AliTRDCalibraFillHisto.h:301
 AliTRDCalibraFillHisto.h:302
 AliTRDCalibraFillHisto.h:303
 AliTRDCalibraFillHisto.h:304
 AliTRDCalibraFillHisto.h:305
 AliTRDCalibraFillHisto.h:306
 AliTRDCalibraFillHisto.h:307
 AliTRDCalibraFillHisto.h:308
 AliTRDCalibraFillHisto.h:309
 AliTRDCalibraFillHisto.h:310
 AliTRDCalibraFillHisto.h:311
 AliTRDCalibraFillHisto.h:312
 AliTRDCalibraFillHisto.h:313
 AliTRDCalibraFillHisto.h:314
 AliTRDCalibraFillHisto.h:315
 AliTRDCalibraFillHisto.h:316
 AliTRDCalibraFillHisto.h:317
 AliTRDCalibraFillHisto.h:318
 AliTRDCalibraFillHisto.h:319
 AliTRDCalibraFillHisto.h:320
 AliTRDCalibraFillHisto.h:321
 AliTRDCalibraFillHisto.h:322
 AliTRDCalibraFillHisto.h:323
 AliTRDCalibraFillHisto.h:324
 AliTRDCalibraFillHisto.h:325
 AliTRDCalibraFillHisto.h:326
 AliTRDCalibraFillHisto.h:327
 AliTRDCalibraFillHisto.h:328
 AliTRDCalibraFillHisto.h:329
 AliTRDCalibraFillHisto.h:330
 AliTRDCalibraFillHisto.h:331
 AliTRDCalibraFillHisto.h:332
 AliTRDCalibraFillHisto.h:333
 AliTRDCalibraFillHisto.h:334
 AliTRDCalibraFillHisto.h:335
 AliTRDCalibraFillHisto.h:336
 AliTRDCalibraFillHisto.h:337
 AliTRDCalibraFillHisto.h:338
 AliTRDCalibraFillHisto.h:339
 AliTRDCalibraFillHisto.h:340
 AliTRDCalibraFillHisto.h:341
 AliTRDCalibraFillHisto.h:342
 AliTRDCalibraFillHisto.h:343
 AliTRDCalibraFillHisto.h:344
 AliTRDCalibraFillHisto.h:345
 AliTRDCalibraFillHisto.h:346
 AliTRDCalibraFillHisto.h:347
 AliTRDCalibraFillHisto.h:348
 AliTRDCalibraFillHisto.h:349
 AliTRDCalibraFillHisto.h:350
 AliTRDCalibraFillHisto.h:351
 AliTRDCalibraFillHisto.h:352
 AliTRDCalibraFillHisto.h:353
 AliTRDCalibraFillHisto.h:354
 AliTRDCalibraFillHisto.h:355
 AliTRDCalibraFillHisto.h:356
 AliTRDCalibraFillHisto.h:357
 AliTRDCalibraFillHisto.h:358
 AliTRDCalibraFillHisto.h:359