]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG0/dNdEta/AliMultiplicityCorrection.h
changing binning
[u/mrichter/AliRoot.git] / PWG0 / dNdEta / AliMultiplicityCorrection.h
index 350304223c89815be61a3c4d0c98facb63c1016c..3f5af431ed7e263ea4a811093c1eeb33a456928f 100644 (file)
@@ -15,6 +15,8 @@ class TH2;
 class TH1F;
 class TH2F;
 class TH3F;
+class TF1;
+class TCollection;
 
 class AliMultiplicityCorrection : public TNamed {
   public:
@@ -32,33 +34,48 @@ class AliMultiplicityCorrection : public TNamed {
     Bool_t LoadHistograms(const Char_t* dir);
     void SaveHistograms();
     void DrawHistograms();
-    void DrawComparison(Int_t mcID, Int_t esdCorrId);
+    void DrawComparison(const char* name, Int_t mcID, Int_t esdCorrId, Bool_t normalizeESD = kTRUE);
 
-    void ApplyMinuitFit(Int_t inputRange, Bool_t fullPhaseSpace);
+    void ApplyMinuitFit(Int_t inputRange, Bool_t fullPhaseSpace, Bool_t check = kFALSE);
     void ApplyMinuitFitAll();
 
     void ApplyBayesianMethod(Int_t inputRange, Bool_t fullPhaseSpace);
 
+    void ApplyGaussianMethod(Int_t inputRange, Bool_t fullPhaseSpace);
+
     TH2F* GetMultiplicityESD(Int_t i) { return fMultiplicityESD[i]; }
     TH2F* GetMultiplicityMC(Int_t i) { return fMultiplicityMC[i]; }
     TH3F* GetCorrelation(Int_t i) { return fCorrelation[i]; }
 
+    void SetMultiplicityESD(Int_t i, TH2F* hist) { fMultiplicityESD[i] = hist; }
+    void SetMultiplicityMC(Int_t i, TH2F* hist) { fMultiplicityMC[i] = hist; }
+    void SetCorrelation(Int_t i, TH3F* hist) { fCorrelation[i] = hist; }
+
+    void SetGenMeasFromFunc(TF1* inputMC, Int_t id);
+    TH2F* CalculateMultiplicityESD(TH1* inputMC, Int_t correlationMap, Bool_t normalized = kFALSE);
+
     TH1F* GetMultiplicityESDCorrected(Int_t i) { return fMultiplicityESDCorrected[i]; }
 
     static void NormalizeToBinWidth(TH1* hist);
     static void NormalizeToBinWidth(TH2* hist);
 
+  public:
   protected:
     enum { kESDHists = 4, kMCHists = 5, kCorrHists = 8 };
 
     static const Int_t fgMaxParams; // number of fit params
 
-    static Double_t MinuitHomogenityPol0(Double_t *params);
-    static Double_t MinuitHomogenityPol1(Double_t *params);
+    static Double_t RegularizationPol0(Double_t *params);
+    static Double_t RegularizationPol1(Double_t *params);
+    static Double_t RegularizationTotalCurvature(Double_t *params);
+    static Double_t RegularizationEntropy(Double_t *params);
+
     static void MinuitFitFunction(Int_t&, Double_t*, Double_t& chi2, Double_t *params, Int_t);
 
-    static TH1* fCurrentMinuitESD;         // static variable to be accessed by MINUIT
-    static TH1* fCurrentMinuitCorrelation; // static variable to be accessed by MINUIT
+    void SetupCurrentHists(Int_t inputRange, Bool_t fullPhaseSpace);
+
+    static TH1* fCurrentESD;         // static variable to be accessed by MINUIT
+    static TH1* fCurrentCorrelation; // static variable to be accessed by MINUIT
 
     TH2F* fMultiplicityESD[kESDHists]; // multiplicity histogram: vtx vs multiplicity; array: |eta| < 0.5, 1, 1.5, 2 (0..3)
     TH2F* fMultiplicityMC[kMCHists];   // multiplicity histogram: vtx vs multiplicity; array: |eta| < 0.5, 1, 1.5, 2, inf (0..4)
@@ -74,3 +91,4 @@ class AliMultiplicityCorrection : public TNamed {
 };
 
 #endif
+