class TH1F;
class TH2F;
class TH3F;
+class TF1;
+class TCollection;
class AliMultiplicityCorrection : public TNamed {
public:
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)
};
#endif
+