]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TRD/AliTRDCalibraFillHisto.h
- new function GetMeanSM to get the sm mean values (needed to select notcalibrated...
[u/mrichter/AliRoot.git] / TRD / AliTRDCalibraFillHisto.h
index 4efadda8956815dc6f6c4329d8c8080b350a5122..a6b2d727999a7d764a595d4f183e75967e0cff7c 100644 (file)
@@ -34,15 +34,17 @@ class AliRawReader;
 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 +64,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  InitCalDet();
          Bool_t  UpdateHistogramsV1(const AliTRDtrackV1 *t);
  
   // 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 +99,20 @@ 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     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 +120,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 +133,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
@@ -139,7 +157,7 @@ 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     SetNumberBinCharge(Short_t numberBinCharge)               { fNumberBinCharge      = numberBinCharge;      }
           void     SetNumberBinPRF(Short_t numberBinPRF)                     { fNumberBinPRF         = numberBinPRF;         }
          void     SetNumberGroupsPRF(Short_t numberGroupsPRF);
   
@@ -169,6 +187,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 +201,7 @@ 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
 
   // How to fill the 2D
           Float_t  fRelativeScale;          // Scale of the deposited charge
@@ -190,6 +211,19 @@ 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
+  // Back correction
+         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
 
@@ -245,6 +279,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 +287,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 +298,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);
+         void     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
@@ -305,3 +340,5 @@ AliTRDCalibraVector *GetCalibraVector() const                                { r
 };
   
 #endif
+
+