Bug fix in the constructor (thanks to A.Marin)
[u/mrichter/AliRoot.git] / TRD / AliTRDPreprocessorOffline.h
index e15b66e..8958466 100644 (file)
@@ -11,6 +11,7 @@
 
 
 #include "TNamed.h"
+#include "AliTRDCalChamberStatus.h"
 class TObjArray;
 class AliTRDCalDet;
 class TH2I;
@@ -31,7 +32,8 @@ public:
       kT0PHPad = 4,
       kVdriftLinear = 5,
       kLorentzLinear = 6,
-      kPRF = 7
+      kChamberStatus = 7,
+      kPRF = 8
       };   
   
   AliTRDPreprocessorOffline();
@@ -42,12 +44,18 @@ public:
   void SetNameList(TString nameList) { fNameList = nameList;};
   TString GetNameList() const { return fNameList;}; 
   void SetCalDetGain(AliTRDCalDet *calDetGainUsed) {fCalDetGainUsed = calDetGainUsed;};
+  void SetCalDetVdrift(AliTRDCalDet *calDetVdriftUsed) {fCalDetVdriftUsed = calDetVdriftUsed;};
+  void SetSwitchOnValidation(Bool_t switchOnValidation) {fSwitchOnValidation = switchOnValidation;};
   AliTRDCalDet *GetCalDetGain() const { return fCalDetGainUsed;};
+  AliTRDCalDet *GetCalDetVdrift() const { return fCalDetVdriftUsed;};
 
+  Bool_t Init(const Char_t* fileName);
+  
   void CalibVdriftT0(const Char_t* file, Int_t startRunNumber, Int_t endRunNumber, TString ocdbStorage="");
   void CalibGain(const Char_t* file, Int_t startRunNumber, Int_t endRunNumber,  TString  ocdbStorage="");
   void CalibPRF(const Char_t* file, Int_t startRunNumber, Int_t endRunNumber,  TString  ocdbStorage="");
-  
+  void CalibChamberStatus(Int_t startRunNumber, Int_t endRunNumber, TString ocdbStorage="");
+
   Bool_t ReadGainGlobal(const Char_t* fileName="CalibObjects.root");
   Bool_t ReadVdriftT0Global(const Char_t* fileName="CalibObjects.root");
   Bool_t ReadVdriftLinearFitGlobal(const Char_t* fileName="CalibObjects.root");
@@ -56,37 +64,85 @@ public:
   Bool_t AnalyzeGain(); 
   Bool_t AnalyzeVdriftT0(); 
   Bool_t AnalyzeVdriftLinearFit(); 
-  Bool_t AnalyzePRF(); 
+  Bool_t AnalyzePRF();
+  Bool_t AnalyzeChamberStatus(); 
   
   void CorrectFromDetGainUsed();
-
+  void CorrectFromDetVdriftUsed();
+  
   void UpdateOCDBT0(Int_t startRunNumber, Int_t endRunNumber, const char* storagePath);
   void UpdateOCDBVdrift(Int_t startRunNumber, Int_t endRunNumber, const char* storagePath);
+  void UpdateOCDBExB(Int_t startRunNumber, Int_t endRunNumber, const Char_t *storagePath);
   void UpdateOCDBGain(Int_t  startRunNumber, Int_t endRunNumber, const char* storagePath);
   void UpdateOCDBPRF(Int_t  startRunNumber, Int_t endRunNumber, const char* storagePath);
-
+  void UpdateOCDBChamberStatus(Int_t startRunNumber, Int_t endRunNumber, const Char_t *storagePath);
+
+  Bool_t ValidateGain();
+  Bool_t ValidateVdrift();
+  Bool_t ValidateT0();
+  Bool_t ValidatePRF() const;
+  Bool_t ValidateChamberStatus() const;
+
+  Int_t    GetStatus() const                                         { return fStatus;                 }
+  Int_t    GetVersionGainUsed() const                                { return fVersionGainUsed;        }
+  Int_t    GetSubVersionGainUsed() const                             { return fSubVersionGainUsed;     }
+  Int_t    GetFirstRunVdriftUsed() const                             { return fFirstRunVdriftUsed;     }
+  Int_t    GetVersionVdriftUsed() const                              { return fVersionVdriftUsed;      }
+  Int_t    GetSubVersionVdriftUsed() const                           { return fSubVersionVdriftUsed;   }
+
+  void     SetMinStatsVdriftT0PH(Int_t minStatsVdriftT0PH)           { fMinStatsVdriftT0PH = minStatsVdriftT0PH; }  
+  void     SetMinStatsVdriftLinear(Int_t minStatsVdriftLinear)       { fMinStatsVdriftLinear = minStatsVdriftLinear; }  
+  void     SetMinStatsGain(Int_t minStatsGain)                       { fMinStatsGain = minStatsGain; }  
+  void     SetMinStatsPRF(Int_t minStatsPRF)                         { fMinStatsPRF = minStatsPRF; }  
+  void     SetBackCorrectGain(Bool_t backCorrectGain)                { fBackCorrectGain = backCorrectGain; }
+  void     SetBackCorrectVdrift(Bool_t backCorrectVdrift)            { fBackCorrectVdrift = backCorrectVdrift; }
+
   
-private:
-  Bool_t fMethodSecond;                   // Second Method for drift velocity   
-  TString fNameList;                      // Name of the list
-  AliTRDCalDet *fCalDetGainUsed;          // CalDet used and to be corrected for
-  TH2I *fCH2d;                            // Gain
-  TProfile2D *fPH2d;                      // Drift velocity first method
-  TProfile2D *fPRF2d;                     // PRF
+ private:
+  Bool_t fMethodSecond;                      // Second Method for drift velocity   
+  TString fNameList;                         // Name of the list
+  AliTRDCalDet *fCalDetGainUsed;             // CalDet used and to be corrected for
+  AliTRDCalDet *fCalDetVdriftUsed;           // CalDet used and to be corrected for
+  TH2I *fCH2d;                               // Gain
+  TProfile2D *fPH2d;                         // Drift velocity first method
+  TProfile2D *fPRF2d;                        // PRF
   AliTRDCalibraVdriftLinearFit *fAliTRDCalibraVdriftLinearFit; // Drift velocity second method
   TH1I *fNEvents;                         // Number of events 
   TH2F *fAbsoluteGain;                    // Absolute Gain calibration
   TObjArray * fPlots;                     // array with some plots to check
   TObjArray * fCalibObjects;              // array with calibration objects 
-
+  Int_t    fVersionGainUsed;              // VersionGainUsed 
+  Int_t    fSubVersionGainUsed;           // SubVersionGainUsed
+  Int_t    fFirstRunVdriftUsed;           // FirstRunVdrift 
+  Int_t    fVersionVdriftUsed;            // VersionVdriftUsed 
+  Int_t    fSubVersionVdriftUsed;         // SubVersionVdriftUsed
+  Bool_t   fSwitchOnValidation;           // Validation
+  Bool_t   fVdriftValidated;              // Vdrift validation
+  Bool_t   fT0Validated;                  // T0 validation
+  Int_t    fMinStatsVdriftT0PH;           // MinStats VdriftT0
+  Int_t    fMinStatsVdriftLinear;         // MinStats Vdrift Linear
+  Int_t    fMinStatsGain;                 // MinStats Gain
+  Int_t    fMinStatsPRF;                  // MinStats PRF
+  Bool_t   fBackCorrectGain;              // Back correction afterwards gain  
+  Bool_t   fBackCorrectVdrift;            // Back correction afterwards vdrift
+  Bool_t   fNotEnoughStatisticsForTheGain;// Take the chamber per chamber distribution from the default distribution
+  Bool_t   fNotEnoughStatisticsForTheVdriftLinear;// Take the chamber per chamber distribution from the default distribution
+  Int_t    fStatus;                       // Status of the TRD offline preprocessor: -1 nothing but do not worry; 0 everything ok; 1 not enough stat vdrift, 2 not enough stat to, 3 not enough stat gain and chammber status, 4 not enough stat vdrift but could put a mean, 5 not enough stat gain but could put a mean
+
+
+  Int_t GetSubVersion(TString name) const;
+  Int_t GetVersion(TString name) const;
+  Int_t GetFirstRun(TString name) const;
 
   
 
 private:
   AliTRDPreprocessorOffline& operator=(const AliTRDPreprocessorOffline&); // not implemented
   AliTRDPreprocessorOffline(const AliTRDPreprocessorOffline&); // not implemented
-  ClassDef(AliTRDPreprocessorOffline,1)
+  ClassDef(AliTRDPreprocessorOffline,2)
 };
 
 #endif
 
+