]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCPreprocessorOffline.h
Fix for coverity 17562
[u/mrichter/AliRoot.git] / TPC / AliTPCPreprocessorOffline.h
index 476a2959ca81f0defa6079d5f8b111ef92fdf6fc..22e3dd22167e96c0be2420e8c854ca9f87def94b 100644 (file)
@@ -14,6 +14,7 @@
 class TObjArray;
 class AliTPCcalibTime;
 class AliTPCcalibTimeGain;
+class AliTPCcalibGainMult;
 class AliTPCROC;
 class AliTPCParam;
 class TPad;
@@ -37,6 +38,8 @@ public:
   void AddLaserGraphs(  TObjArray * vdriftArray, AliTPCcalibTime *timeDrift);
   void SetDefaultGraphDrift(TGraph *graph, Int_t color, Int_t style);
   void MakeDefaultPlots(TObjArray * const arr, TObjArray *picArray);
+  void SetMaxVDriftCorr(Double_t maxVDriftCorr=0.03) {fMaxVdriftCorr=maxVDriftCorr;};
+  Bool_t ValidateTimeDrift();
   //
   // Gain part
   //
@@ -44,11 +47,27 @@ public:
   void ReadGainGlobal(const Char_t* fileName="CalibObjectsTrain1.root");
   void MakeQAPlot(Float_t  FPtoMIPratio);
   Bool_t AnalyzeGain(Int_t startRunNumber, Int_t endRunNumber, Int_t minEntriesGaussFit = 500, Float_t FPtoMIPratio = 1.43); 
+  Bool_t AnalyzeAttachment(Int_t startRunNumber, Int_t endRunNumber, Int_t minEntriesFit = 2000);
+  Bool_t AnalyzePadRegionGain();
+  Bool_t AnalyzeGainMultiplicity();
+  void SetTimeGainRange(Double_t minGain=2.0, Double_t maxGain = 3.0) 
+       {fMinGain = minGain; fMaxGain = maxGain;};
+  Bool_t ValidateTimeGain();
+  //
+  // Alignment time part
+  //
+  void  MakeChainTime();
+  void  MakePrimitivesTime();
+  void  CreateAlignTime(TString fstring, TVectorD paramC);  
+  void  MakeFitTime();
+  static Double_t EvalAt(Double_t phi, Double_t refX, Double_t theta, Int_t corr, Int_t ptype);
+
   //
   // QA drawing part
   //
   static void SetPadStyle(TPad *pad, Float_t mx0, Float_t mx1, Float_t my0, Float_t my1);
   static void PrintArray(TObjArray *array);
+  TChain *GetAlignTree(){return fAlignTree;}
   //
   // graph filtering part
   //
@@ -56,6 +75,11 @@ public:
   static TGraphErrors* FilterGraphDrift(TGraphErrors * graph, Float_t errSigmaCut, Float_t medianCutAbs);
   static TGraphErrors * MakeGraphFilter0(THnSparse *hisN, Int_t itime, Int_t ival, Int_t minEntries, Double_t offset=0);
 
+  //
+  void SwitchOnValidation(Bool_t val = kTRUE) {fSwitchOnValidation = val;} 
+  Bool_t IsSwitchOnValidation() { return fSwitchOnValidation; } 
+
+
 private:
   Int_t fMinEntries;                      // minimal number of entries for fit
   Int_t startRun;                         // start Run - used to make fast selection in THnSparse
@@ -67,11 +91,20 @@ private:
   AliTPCcalibTime * fTimeDrift;           // input data to construct calibration graphs
   TGraphErrors * fGraphMIP;                // graph time dependence of MIP
   TGraphErrors * fGraphCosmic;             // graph time dependence at Plateu
+  TGraphErrors * fGraphAttachmentMIP;      // graph time dependence of attachment (signal vs. mean driftlength)
   AliSplineFit * fFitMIP;                  // fit of dependence - MIP
   AliSplineFit * fFitCosmic;               // fit of dependence - Plateu
   TObjArray    * fGainArray;               // array to be stored in the OCDB
   AliTPCcalibTimeGain * fGainMIP;          // calibration component for MIP
   AliTPCcalibTimeGain * fGainCosmic;       // calibration component for cosmic
+  AliTPCcalibGainMult * fGainMult;         // calibration component for pad region gain equalization and multiplicity dependence
+
+  TChain   *fAlignTree;        //alignment tree
+  //
+  Bool_t fSwitchOnValidation;  // flag to switch on validation of OCDB parameters
+  Float_t fMinGain;           // min gain
+  Float_t fMaxGain;            // max gain
+  Float_t fMaxVdriftCorr;      // max v-drift correction
 
 private:
   AliTPCPreprocessorOffline& operator=(const AliTPCPreprocessorOffline&); // not implemented