]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TRD/AliTRDCalibraFillHisto.h
TRD nSigma OADB related new codes and modifications and OADB root file -- Xianguo Lu
[u/mrichter/AliRoot.git] / TRD / AliTRDCalibraFillHisto.h
index 4efadda8956815dc6f6c4329d8c8080b350a5122..7319aa174949d89021d820b145572d68606e24df 100644 (file)
@@ -31,18 +31,22 @@ class TTreeSRedirector;
 class AliLog;
 class AliRawReader;
 
+class AliESDtrack;
+
 class AliTRDCalibraMode;
 class AliTRDCalibraVector;
 class AliTRDCalibraVdriftLinearFit;
-class AliTRDrawStreamBase;
+class AliTRDCalibraExbAltFit;
 class AliTRDcluster;
 class AliTRDtrackV1;
-class AliTRDtrack;
 class AliTRDseedV1;
 class AliTRDgeometry;
 class AliTRDCalDet;
 class AliTRDCalROC;
+class AliTRDcalibDB;
 
+class AliTRDdigitsManager;
+class AliTRDSignalIndex;
 
 struct eventHeaderStruct;
 
@@ -62,13 +66,11 @@ class AliTRDCalibraFillHisto : public TObject {
 
   // Functions for initialising and filling with AliTRDtrackV1
           Bool_t  Init2Dhistos(Int_t nboftimebin = -1);
-         Bool_t  UpdateHistograms(const AliTRDtrack *t);
-         Bool_t  UpdateHistogramsV1(const AliTRDtrackV1 *t);
+         Bool_t  InitCalDet();
+         Bool_t  UpdateHistogramsV1(const AliTRDtrackV1 *t,const AliESDtrack *esdtrack = NULL);
  
   // Process events DAQ
-         Int_t   ProcessEventDAQ(AliTRDrawStreamBase *rawStream, Bool_t nocheck = kFALSE);
-         Int_t   ProcessEventDAQ(AliRawReader *rawReader, Bool_t nocheck = kFALSE);
-         Int_t   ProcessEventDAQ(const eventHeaderStruct *event, Bool_t nocheck = kFALSE);
+         Int_t   ProcessEventDAQ(AliRawReader *rawReader);
 
   // Is Pad on
           Bool_t   IsPadOn(Int_t detector, Int_t row, Int_t col) const;
@@ -99,7 +101,22 @@ class AliTRDCalibraFillHisto : public TObject {
           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;                 }
@@ -107,7 +124,11 @@ class AliTRDCalibraFillHisto : public TObject {
           Bool_t   GetHisto2d() const                                        { return fHisto2d;                }
           Bool_t   GetVector2d() const                                       { return fVector2d;               }
           Bool_t   GetLinearFitterOn() const                                 { return fLinearFitterOn;         }
-         Bool_t   GetLinearFitterDebugOn() const                            { return fLinearFitterDebugOn; }
+         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
@@ -116,7 +137,8 @@ class AliTRDCalibraFillHisto : public TObject {
   TProfile2D      *GetPRF2d() const                                          { return fPRF2d;                  } 
   TObjArray        GetLinearFitterArray() const                              { return fLinearFitterArray;      }
   TLinearFitter   *GetLinearFitter(Int_t detector, Bool_t force=kFALSE);
-  AliTRDCalibraVdriftLinearFit *GetVdriftLinearFit() const                   { return fLinearVdriftFit;        }
+  AliTRDCalibraVdriftLinearFit *GetVdriftLinearFit() const                   { return fLinearVdriftFit; }
+  AliTRDCalibraExbAltFit *GetExbAltFit() const                               { return fExbAltFit; }
   
  
   // How to fill the 2D
@@ -127,6 +149,9 @@ class AliTRDCalibraFillHisto : public TObject {
          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);
@@ -139,7 +164,8 @@ class AliTRDCalibraFillHisto : public TObject {
          void     SetThresholdClustersDAQ(Float_t thresholdClustersDAQ)     { fThresholdClustersDAQ = thresholdClustersDAQ;                         }
          void     SetNumberRowDAQ(Short_t numberRowDAQ)                     { fNumberRowDAQ         = numberRowDAQ;         }
          void     SetNumberColDAQ(Short_t numberColDAQ)                     { fNumberColDAQ         = numberColDAQ;         }
-          void     SetNumberBinCharge(Short_t numberBinCharge)               { fNumberBinCharge      = numberBinCharge;      }
+         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);
   
@@ -150,6 +176,7 @@ class AliTRDCalibraFillHisto : public TObject {
          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;         }
@@ -169,6 +196,8 @@ AliTRDCalibraVector *GetCalibraVector() const                                { r
 
   // 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
@@ -181,6 +210,8 @@ AliTRDCalibraVector *GetCalibraVector() const                                { r
           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
@@ -190,6 +221,23 @@ AliTRDCalibraVector *GetCalibraVector() const                                { r
          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
 
@@ -217,6 +265,7 @@ AliTRDCalibraVector *GetCalibraVector() const                                { r
           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
@@ -245,6 +294,7 @@ AliTRDCalibraVector *GetCalibraVector() const                                { r
          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
@@ -252,6 +302,8 @@ AliTRDCalibraVector *GetCalibraVector() const                                { r
           
   //
   // 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);
@@ -261,12 +313,10 @@ AliTRDCalibraVector *GetCalibraVector() const                                { r
   // Calibration with AliTRDtrackV1
           void     FillTheInfoOfTheTrackPH();
           void     FillTheInfoOfTheTrackCH(Int_t nbclusters);
-         Bool_t   FindP1TrackPHtracklet(const AliTRDtrack *t, Int_t index0, Int_t index1);
          Bool_t   FindP1TrackPHtrackletV1(const AliTRDseedV1 *tracklet, Int_t nbclusters);
-         Bool_t   HandlePRFtracklet(const AliTRDtrack *t, Int_t index0, Int_t index1);
          Bool_t   HandlePRFtrackletV1(const AliTRDseedV1 *tracklet, Int_t nbclusters);
          void     ResetfVariablestracklet();
-         void     StoreInfoCHPHtrack(const AliTRDcluster *cl,const Double_t dqdl,const Int_t *group,const Int_t row,const Int_t col);
+         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
@@ -300,8 +350,10 @@ AliTRDCalibraVector *GetCalibraVector() const                                { r
   AliTRDCalibraFillHisto();
   virtual ~AliTRDCalibraFillHisto(); 
     
-  ClassDef(AliTRDCalibraFillHisto,4)                         // TRD Calibration class
+  ClassDef(AliTRDCalibraFillHisto,8)                         // TRD Calibration class
 
 };
   
 #endif
+
+