]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TRD/AliTRDCalibraFit.h
Fix coding rule violations
[u/mrichter/AliRoot.git] / TRD / AliTRDCalibraFit.h
index 1429c32b16fb35d7dba07ccf06bd8b5a59b01bbb..06170f24b296932fac21dbbcf158c28e2ea48584 100644 (file)
@@ -44,26 +44,27 @@ class AliTRDCalibraFit : public TObject {
   static AliTRDCalibraFit *Instance();
   static void Terminate();
   static void Destroy();
+  void DestroyDebugStreamer();
 
   AliTRDCalibraFit(const AliTRDCalibraFit &c);
   AliTRDCalibraFit &operator=(const AliTRDCalibraFit &) { return *this; }
 
        // Function for integration range of the charge 
-       void     RangeChargeIntegration(Float_t vdrift, Float_t t0, Int_t &begin, Int_t &peak, Int_t &end);
+       void     RangeChargeIntegration(Float_t vdrift, Float_t t0, Int_t &begin, Int_t &peak, Int_t &end) const;
   
        // Functions fit for CH
-       Bool_t   AnalyseCH(TH2I *ch);
+       Bool_t   AnalyseCH(const TH2I *ch);
        Bool_t   AnalyseCH(AliTRDCalibraVector *calvect);
        
        // Functions fit for PH       
-       Bool_t   AnalysePH(TProfile2D *ph);
+       Bool_t   AnalysePH(const TProfile2D *ph);
        Bool_t   AnalysePH(AliTRDCalibraVector *calvect);
        
        // Functions fit for PRF
-       Bool_t   AnalysePRF(TProfile2D *prf);
+       Bool_t   AnalysePRF(const TProfile2D *prf);
        Bool_t   AnalysePRF(AliTRDCalibraVector *calvect);
        
-       Bool_t   AnalysePRFMarianFit(TProfile2D *prf);
+       Bool_t   AnalysePRFMarianFit(const TProfile2D *prf);
        Bool_t   AnalysePRFMarianFit(AliTRDCalibraVector *calvect);
        
        // Functions fit for vdrift/lorentzangle
@@ -76,28 +77,30 @@ class AliTRDCalibraFit : public TObject {
        void     ResetVectorFit();
        
        // Some functions
-       Double_t *CalculPolynomeLagrange2(Double_t *x, Double_t *y) const;
-       Double_t *CalculPolynomeLagrange3(Double_t *x, Double_t *y) const;
-       Double_t *CalculPolynomeLagrange4(Double_t *x, Double_t *y) const;
+       Double_t *CalculPolynomeLagrange2(const Double_t *x, const Double_t *y) const;
+       Double_t *CalculPolynomeLagrange3(const Double_t *x, const Double_t *y) const;
+       Double_t *CalculPolynomeLagrange4(const Double_t *x, const Double_t *y) const;
        
        // Fill the database
-       AliTRDCalDet *CreateDetObjectVdrift(TObjArray *vectorFit, Bool_t perdetector = kFALSE);
-       AliTRDCalDet *CreateDetObjectGain(TObjArray *vectorFit, Double_t scaleFitFactor = 0.02431, Bool_t perdetector = kTRUE);
-       AliTRDCalDet *CreateDetObjectT0(TObjArray *vectorFit, Bool_t perdetector = kFALSE);
-       AliTRDCalDet *CreateDetObjectLorentzAngle(TObjArray *vectorFit);
-       
-       TObject      *CreatePadObjectGain(TObjArray *vectorFit = 0, Double_t scaleFitFactor = 1.0, AliTRDCalDet *detobject = 0);
-       TObject      *CreatePadObjectVdrift(TObjArray *vectorFit = 0, AliTRDCalDet *detobject = 0);
-       TObject      *CreatePadObjectT0(TObjArray *vectorFit = 0, AliTRDCalDet *detobject = 0);
-       TObject      *CreatePadObjectPRF(TObjArray *vectorFit);
+       void         PutMeanValueOtherVectorFit(Int_t ofwhat = 1, Bool_t perdetector = kFALSE);
+       void         PutMeanValueOtherVectorFit2(Int_t ofwhat = 1, Bool_t perdetector = kFALSE);
+       AliTRDCalDet *CreateDetObjectVdrift(const TObjArray *vectorFit, Bool_t perdetector = kFALSE);
+       AliTRDCalDet *CreateDetObjectGain(const TObjArray *vectorFit, Bool_t meanOtherBefore=kTRUE, Double_t scaleFitFactor = 0.02431, Bool_t perdetector = kTRUE);
+       AliTRDCalDet *CreateDetObjectT0(const TObjArray *vectorFit, Bool_t perdetector = kFALSE);
+       AliTRDCalDet *CreateDetObjectLorentzAngle(const TObjArray *vectorFit);
+       
+       TObject      *CreatePadObjectGain(const TObjArray *vectorFit = 0, Double_t scaleFitFactor = 1.0, const AliTRDCalDet *detobject = 0);
+       TObject      *CreatePadObjectVdrift(const TObjArray *vectorFit = 0, const AliTRDCalDet *detobject = 0);
+       TObject      *CreatePadObjectT0(const TObjArray *vectorFit = 0, const AliTRDCalDet *detobject = 0);
+       TObject      *CreatePadObjectPRF(const TObjArray *vectorFit);
        
        // Outliers stats
-       AliTRDCalDet *MakeOutliersStatDet(TObjArray *vectorFit, const char *name, Double_t &mean);
-       TObject      *MakeOutliersStatPad(TObjArray *vectorFit, const char *name, Double_t &mean);
+       AliTRDCalDet *MakeOutliersStatDet(const TObjArray *vectorFit, const char *name, Double_t &mean);
+       TObject      *MakeOutliersStatPad(const TObjArray *vectorFit, const char *name, Double_t &mean);
        
        
        // Correct the error
-       TH1F   *CorrectTheError(TGraphErrors *hist);
+       TH1F   *CorrectTheError(const TGraphErrors *hist);
        
        //
        // Set or Get the variables
@@ -132,28 +135,28 @@ class AliTRDCalibraFit : public TObject {
        
        
        // Debug
-       void     SetDebugLevel(Short_t level)                              { fDebugLevel = level;           }
-       void     SetDet(Int_t iPlane, Int_t iChamb, Int_t iSect)           { fDet[0]  = iPlane
-       fDet[1]  = iChamb
-       fDet[2]  = iSect;               }
+       void     SetDebugLevel(Short_t level)                              { fDebugLevel = level;            }
+       void     SetDet(Int_t iLayer, Int_t iStack, Int_t iSector)         { fDet[0]  = iLayer
+                                                                            fDet[1]  = iStack
+                                                                            fDet[2]  = iSector;             }
        void     SetFitVoir(Int_t fitVoir)                                 { fFitVoir = fitVoir;             }
        // Magnetic field  
        void     SetMagneticField(Float_t magneticfield)                   { fMagneticField = magneticfield; }
        
        // Get the scale factor
-       Double_t GetScaleFitFactor() const                                { return fScaleFitFactor;         }
+       Double_t GetScaleFitFactor() const                                 { return fScaleFitFactor;         }
        
        // Vector Fit getter
        TObjArray  GetVectorFit() const                                    { return fVectorFit;              }
        TObjArray  GetVectorFit2() const                                   { return fVectorFit2;             }
        
        // AliTRDCalibraMode
-       AliTRDCalibraMode *GetCalibraMode()                                { return fCalibraMode;            }
+       AliTRDCalibraMode *GetCalibraMode() const                          { return fCalibraMode;            }
        
  protected:
        
        // Geometry
-       AliTRDgeometry  *fGeo;                    //! The TRD geometry
+       AliTRDgeometry  *fGeo;               //! The TRD geometry
        
        
        Int_t        fNumberOfBinsExpected;  // Number of bins expected  
@@ -180,7 +183,7 @@ class AliTRDCalibraFit : public TObject {
        // Debug Modes
        TTreeSRedirector   *fDebugStreamer;         //!Debug streamer
        Short_t     fDebugLevel;            // Flag for debugging
-       Int_t       fDet[3];                // Detector  visualised (plane,chamb,sect) si debugging == 3 or 4
+       Int_t       fDet[3];                // Detector  visualised (layer,stack,sector) si debugging == 3 or 4
        Int_t       fFitVoir;               // Fit visualised si debugging == 2
        
        // Magnetic field lorentz angle
@@ -200,8 +203,9 @@ class AliTRDCalibraFit : public TObject {
        Int_t    fDect2;                  // Last calibration group that will be called to be maybe fitted
        Double_t fScaleFitFactor;         // Scale factor of the fit results for the gain
        Int_t    fEntriesCurrent;         // Entries in the current histo
-       Int_t    fCountDet;               // Current detector
+       Int_t    fCountDet;               // Current detector (or first in the group)
        Int_t    fCount;                  // When the next detector comes
+       Int_t    fNbDet;                  // Number of detector in the group
        
        // Current calib object
        AliTRDCalDet *fCalDet;            // Current calib object
@@ -227,9 +231,9 @@ class AliTRDCalibraFit : public TObject {
           ,fCoef(0x0)
           ,fDetector(-1)                                   { }
         AliTRDFitInfo &operator=(const AliTRDFitInfo&)     { return *this;            }
-        virtual ~AliTRDFitInfo()                           { }
+        virtual ~AliTRDFitInfo()                           { if(fCoef) { delete [] fCoef;} }
         
-        void      SetCoef(Float_t *coef)                   { fCoef     = coef;        }
+        void      SetCoef(Float_t *coef)                   { fCoef = coef;            }
         void      SetDetector(Int_t detector)              { fDetector = detector;    }
         
         Float_t  *GetCoef() const                          { return fCoef;            }
@@ -258,18 +262,18 @@ class AliTRDCalibraFit : public TObject {
        
        // Not enough Statistics
        Bool_t   NotEnoughStatisticCH(Int_t idect);
-       Bool_t   NotEnoughStatisticPH(Int_t idect);
+       Bool_t   NotEnoughStatisticPH(Int_t idect,Double_t nentries);
        Bool_t   NotEnoughStatisticPRF(Int_t idect);
        Bool_t   NotEnoughStatisticLinearFitter();
        
        // Fill Infos Fit
        Bool_t   FillInfosFitCH(Int_t idect);
-       Bool_t   FillInfosFitPH(Int_t idect);
+       Bool_t   FillInfosFitPH(Int_t idect,Double_t nentries);
        Bool_t   FillInfosFitPRF(Int_t idect);
        Bool_t   FillInfosFitLinearFitter();
        
        void     FillFillCH(Int_t idect);
-       void     FillFillPH(Int_t idect);
+       void     FillFillPH(Int_t idect,Double_t nentries);
        void     FillFillPRF(Int_t idect);
        void     FillFillLinearFitter();
        
@@ -294,7 +298,7 @@ class AliTRDCalibraFit : public TObject {
        Bool_t   CalculPRFCoefMean();
        Bool_t   CalculT0CoefMean();
        Bool_t   CalculVdriftLorentzCoef();
-       Float_t  GetPRFDefault(Int_t plane) const;
+       Float_t  GetPRFDefault(Int_t layer) const;
        void     SetCalROC(Int_t i);
        
        // Fit methods
@@ -311,12 +315,12 @@ class AliTRDCalibraFit : public TObject {
        void     FitPente(TH1 *projPH);
        void     FitLagrangePoly(TH1* projPH);
        void     FitTnpRange(Double_t *arraye,Double_t *arraym,Double_t *arrayme,Int_t nbg,Int_t nybins);
-       TH1I    *ReBin(TH1I *hist) const;
-       TH1F    *ReBin(TH1F *hist) const;
+       TH1I    *ReBin(const TH1I *hist) const;
+       TH1F    *ReBin(const TH1F *hist) const;
        
        // Some basic geometry function
-       virtual Int_t    GetPlane(Int_t d) const;
-       virtual Int_t    GetChamber(Int_t d) const;
+       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
@@ -326,15 +330,15 @@ class AliTRDCalibraFit : public TObject {
        
  private:
        
-       static  Double_t PH(Double_t *x, Double_t *par);
-       static  Double_t AsymmGauss(Double_t *x, Double_t *par);
-       static  Double_t FuncLandauGaus(Double_t *x, Double_t *par);
-       static  Double_t LanGauFun(Double_t *x, Double_t *par);
-       TF1     *LanGauFit(TH1 *his, Double_t *fitrange, Double_t *startvalues
-                         , Double_t *parlimitslo, Double_t *parlimitshi, Double_t *fitparams
+       static  Double_t PH(const Double_t *x, const Double_t *par);
+       static  Double_t AsymmGauss(const Double_t *x, const Double_t *par);
+       static  Double_t FuncLandauGaus(const Double_t *x, const Double_t *par);
+       static  Double_t LanGauFun(const Double_t *x, const Double_t *par);
+       TF1     *LanGauFit(TH1 *his, const Double_t *fitrange, const Double_t *startvalues
+                         , const Double_t *parlimitslo, const Double_t *parlimitshi, Double_t *fitparams
                          , Double_t *fiterrors, Double_t *chiSqr, Int_t *ndf) const;
-       Int_t    LanGauPro(Double_t *params, Double_t &maxx, Double_t &fwhm);
-       static  Double_t GausConstant(Double_t *x, Double_t *par); 
+       Int_t    LanGauPro(const Double_t *params, Double_t &maxx, Double_t &fwhm);
+       static  Double_t GausConstant(const Double_t *x, const Double_t *par); 
        
        // This is a singleton, contructor is private!
        AliTRDCalibraFit();