TList* GetHistList() const {return this->fHistList;}
void SetInternalFlagsPro(TProfile* const ifp) {this->fInternalFlagsPro = ifp;};
TProfile* GetInternalFlagsPro() const {return this->fInternalFlagsPro;};
- void SetMinNoRPs(Int_t const min) {fUseInternalFlags = kTRUE; this->fMinNoRPs = min;};
+ void SetMinNoRPs(Int_t min) {fUseInternalFlags = kTRUE; this->fMinNoRPs = min;};
Int_t GetMinNoRPs() const {return this->fMinNoRPs;};
- void SetMaxNoRPs(Int_t const max) {fUseInternalFlags = kTRUE; this->fMaxNoRPs = max;};
+ void SetMaxNoRPs(Int_t max) {fUseInternalFlags = kTRUE; this->fMaxNoRPs = max;};
Int_t GetMaxNoRPs() const {return this->fMaxNoRPs;};
- void SetExactNoRPs(Int_t const exact) {fUseInternalFlags = kTRUE; this->fExactNoRPs = exact;};
+ void SetExactNoRPs(Int_t exact) {fUseInternalFlags = kTRUE; this->fExactNoRPs = exact;};
Int_t GetExactNoRPs() const {return this->fExactNoRPs;};
+ void SetAnalysisTag(const char *at) {this->fAnalysisTag = TString(at);};
+ TString GetAnalysisTag() const {return this->fAnalysisTag;};
+ void SetDumpThePoints(Bool_t dtp, Int_t max) {this->fDumpThePoints = dtp; this->fMaxNoEventsPerFile = max;};
// 5.1.) Control histograms:
void SetControlHistogramsList(TList* const chl) {this->fControlHistogramsList = chl;};
TList* GetControlHistogramsList() const {return this->fControlHistogramsList;}
void SetControlHistogramsFlagsPro(TProfile* const chfp) {this->fControlHistogramsFlagsPro = chfp;};
TProfile* GetControlHistogramsFlagsPro() const {return this->fControlHistogramsFlagsPro;};
- void SetFillControlHistograms(Bool_t const fch) {this->fFillControlHistograms = fch;};
+ void SetFillControlHistograms(Bool_t fch) {this->fFillControlHistograms = fch;};
Bool_t GetFillControlHistograms() const {return this->fFillControlHistograms;};
- void SetFillKinematicsHist(Bool_t const fkh) {this->fFillKinematicsHist = fkh;};
+ void SetFillKinematicsHist(Bool_t fkh) {this->fFillKinematicsHist = fkh;};
Bool_t GetFillKinematicsHist() const {return this->fFillKinematicsHist;};
- void SetFillMultDistributionsHist(Bool_t const mdh) {this->fFillMultDistributionsHist = mdh;};
+ void SetFillMultDistributionsHist(Bool_t mdh) {this->fFillMultDistributionsHist = mdh;};
Bool_t GetFillMultDistributionsHist() const {return this->fFillMultDistributionsHist;};
- void SetFillMultCorrelationsHist(Bool_t const mch) {this->fFillMultCorrelationsHist = mch;};
+ void SetFillMultCorrelationsHist(Bool_t mch) {this->fFillMultCorrelationsHist = mch;};
Bool_t GetFillMultCorrelationsHist() const {return this->fFillMultCorrelationsHist;};
- void SetnBins(const char *type, const char *variable, const Int_t nBins); // .cxx
- void SetMin(const char *type, const char *variable, const Double_t min); // .cxx
- void SetMax(const char *type, const char *variable, const Double_t max); // .cxx
- void SetnBinsMult(const char *type, const Int_t nBinsMult); // .cxx
- void SetMinMult(const char *type, const Double_t minMult); // .cxx
- void SetMaxMult(const char *type, const Double_t maxMult); // .cxx
+ void SetDontFill(const char *type)
+ {
+ if(TString(type).EqualTo("RP")){this->fDontFill[0] = kTRUE;}
+ else if(TString(type).EqualTo("POI")){this->fDontFill[1] = kTRUE;}
+ else if(TString(type).EqualTo("REF")){this->fDontFill[2] = kTRUE;}
+ else{Fatal("void SetDontFill(const char *type)","type = %s ???? Allowed: RP, POI and REF.",type);}
+ }; // void SetDontFill(const char *type)
+ void SetnBins(const char *type, const char *variable, Int_t nBins); // .cxx
+ void SetMin(const char *type, const char *variable, Double_t min); // .cxx
+ void SetMax(const char *type, const char *variable, Double_t max); // .cxx
+ void SetnBinsMult(const char *type, Int_t nBinsMult); // .cxx
+ void SetMinMult(const char *type, Double_t minMult); // .cxx
+ void SetMaxMult(const char *type, Double_t maxMult); // .cxx
// 5.2.) Q-vectors:
void SetQvectorList(TList* const qvl) {this->fQvectorList = qvl;};
TList* GetQvectorList() const {return this->fQvectorList;}
void SetQvectorFlagsPro(TProfile* const qvfp) {this->fQvectorFlagsPro = qvfp;};
TProfile* GetQvectorFlagsPro() const {return this->fQvectorFlagsPro;};
- void SetCalculateQvector(Bool_t const cqv) {this->fCalculateQvector = cqv;};
+ void SetCalculateQvector(Bool_t cqv) {this->fCalculateQvector = cqv;};
Bool_t GetCalculateQvector() const {return this->fCalculateQvector;};
- void SetCalculateDiffQvectors(Bool_t const cdqv) {this->fCalculateDiffQvectors = cdqv;};
+ void SetCalculateDiffQvectors(Bool_t cdqv) {this->fCalculateDiffQvectors = cdqv;};
Bool_t GetCalculateDiffQvectors() const {return this->fCalculateDiffQvectors;};
// 5.3.) Correlations:
TList* GetCorrelationsList() const {return this->fCorrelationsList;}
void SetCorrelationsFlagsPro(TProfile* const cfp) {this->fCorrelationsFlagsPro = cfp;};
TProfile* GetCorrelationsFlagsPro() const {return this->fCorrelationsFlagsPro;};
- void SetCalculateCorrelations(Bool_t const cc) {this->fCalculateCorrelations = cc;};
+ void SetCalculateCorrelations(Bool_t cc) {this->fCalculateCorrelations = cc;};
Bool_t GetCalculateCorrelations() const {return this->fCalculateCorrelations;};
- void SetCalculateIsotropic(Bool_t const ci) {this->fCalculateIsotropic = ci;};
+ void SetCalculateIsotropic(Bool_t ci) {this->fCalculateIsotropic = ci;};
Bool_t GetCalculateIsotropic() const {return this->fCalculateIsotropic;};
- void SetCalculateSame(Bool_t const cs) {this->fCalculateSame = cs;};
+ void SetCalculateSame(Bool_t cs) {this->fCalculateSame = cs;};
Bool_t GetCalculateSame() const {return this->fCalculateSame;};
- void SetSkipZeroHarmonics(Bool_t const szh) {this->fSkipZeroHarmonics = szh;};
+ void SetSkipZeroHarmonics(Bool_t szh) {this->fSkipZeroHarmonics = szh;};
Bool_t GetSkipZeroHarmonics() const {return this->fSkipZeroHarmonics;};
- void SetCalculateSameIsotropic(Bool_t const csi) {this->fCalculateSameIsotropic = csi;};
+ void SetCalculateSameIsotropic(Bool_t csi) {this->fCalculateSameIsotropic = csi;};
Bool_t GetCalculateSameIsotropic() const {return this->fCalculateSameIsotropic;};
- void SetCalculateAll(Bool_t const ca) {this->fCalculateAll = ca;};
+ void SetCalculateAll(Bool_t ca) {this->fCalculateAll = ca;};
Bool_t GetCalculateAll() const {return this->fCalculateAll;};
- void SetDontGoBeyond(Int_t const dgb) {this->fDontGoBeyond = dgb;};
+ void SetDontGoBeyond(Int_t dgb) {this->fDontGoBeyond = dgb;};
Int_t GetDontGoBeyond() const {return this->fDontGoBeyond;};
- void SetCalculateOnlyForHarmonicQC(Bool_t const cofhqc) {this->fCalculateOnlyForHarmonicQC = cofhqc;};
+ void SetCalculateOnlyForHarmonicQC(Bool_t cofhqc) {this->fCalculateOnlyForHarmonicQC = cofhqc;};
Bool_t GetCalculateOnlyForHarmonicQC() const {return this->fCalculateOnlyForHarmonicQC;};
- void SetCalculateOnlyForSC(Bool_t const cofsc) {this->fCalculateOnlyForSC = cofsc;};
+ void SetCalculateOnlyForSC(Bool_t cofsc) {this->fCalculateOnlyForSC = cofsc;};
Bool_t GetCalculateOnlyForSC() const {return this->fCalculateOnlyForSC;};
- void SetCalculateOnlyCos(Bool_t const coc) {this->fCalculateOnlyCos = coc;};
+ void SetCalculateOnlyCos(Bool_t coc) {this->fCalculateOnlyCos = coc;};
Bool_t GetCalculateOnlyCos() const {return this->fCalculateOnlyCos;};
- void SetCalculateOnlySin(Bool_t const cos) {this->fCalculateOnlySin = cos;};
+ void SetCalculateOnlySin(Bool_t cos) {this->fCalculateOnlySin = cos;};
Bool_t GetCalculateOnlySin() const {return this->fCalculateOnlySin;};
// 5.4.) Event-by-event cumulants:
TList* GetEbECumulantsList() const {return this->fEbECumulantsList;}
void SetEbECumulantsFlagsPro(TProfile* const ebecfp) {this->fEbECumulantsFlagsPro = ebecfp;};
TProfile* GetEbECumulantsFlagsPro() const {return this->fEbECumulantsFlagsPro;};
- void SetCalculateEbECumulants(Bool_t const cebec) {this->fCalculateEbECumulants = cebec;};
+ void SetCalculateEbECumulants(Bool_t cebec) {this->fCalculateEbECumulants = cebec;};
Bool_t GetCalculateEbECumulants() const {return this->fCalculateEbECumulants;};
// 5.5.) Weights:
TList* GetNestedLoopsList() const {return this->fNestedLoopsList;}
void SetNestedLoopsFlagsPro(TProfile* const nlfp) {this->fNestedLoopsFlagsPro = nlfp;};
TProfile* GetNestedLoopsFlagsPro() const {return this->fNestedLoopsFlagsPro;};
- void SetCrossCheckWithNestedLoops(Bool_t const ccwnl) {this->fCrossCheckWithNestedLoops = ccwnl;};
+ void SetCrossCheckWithNestedLoops(Bool_t ccwnl) {this->fCrossCheckWithNestedLoops = ccwnl;};
Bool_t GetCrossCheckWithNestedLoops() const {return this->fCrossCheckWithNestedLoops;};
- void SetCrossCheckDiffWithNestedLoops(Bool_t const ccdwnl) {this->fCrossCheckDiffWithNestedLoops = ccdwnl;};
+ void SetCrossCheckDiffWithNestedLoops(Bool_t ccdwnl) {this->fCrossCheckDiffWithNestedLoops = ccdwnl;};
Bool_t GetCrossCheckDiffWithNestedLoops() const {return this->fCrossCheckDiffWithNestedLoops;};
- void SetCrossCheckDiffCSCOBN(Int_t const cs, Int_t const co, Int_t const bn)
+ void SetCrossCheckDiffCSCOBN(Int_t cs, Int_t co, Int_t bn)
{
this->fCrossCheckDiffCSCOBN[0] = cs; // cos/sin
this->fCrossCheckDiffCSCOBN[1] = co; // correlator order [1p,2p,3p,4p]
TList* GetStandardCandlesList() const {return this->fStandardCandlesList;}
void SetStandardCandlesFlagsPro(TProfile* const scfp) {this->fStandardCandlesFlagsPro = scfp;};
TProfile* GetStandardCandlesFlagsPro() const {return this->fStandardCandlesFlagsPro;};
- void SetCalculateStandardCandles(Bool_t const csc) {this->fCalculateStandardCandles = csc;};
+ void SetCalculateStandardCandles(Bool_t csc) {this->fCalculateStandardCandles = csc;};
Bool_t GetCalculateStandardCandles() const {return this->fCalculateStandardCandles;};
- void SetPropagateErrorSC(Bool_t const pesc) {this->fPropagateErrorSC = pesc;};
+ void SetPropagateErrorSC(Bool_t pesc) {this->fPropagateErrorSC = pesc;};
Bool_t GetPropagateErrorSC() const {return this->fPropagateErrorSC;};
void SetStandardCandlesHist(TH1D* const sch) {this->fStandardCandlesHist = sch;};
TH1D* GetStandardCandlesHist() const {return this->fStandardCandlesHist;};
TList* GetQcumulantsList() const {return this->fQcumulantsList;}
void SetQcumulantsFlagsPro(TProfile* const qcfp) {this->fQcumulantsFlagsPro = qcfp;};
TProfile* GetQcumulantsFlagsPro() const {return this->fQcumulantsFlagsPro;};
- void SetCalculateQcumulants(Bool_t const cqc) {this->fCalculateQcumulants = cqc;};
+ void SetCalculateQcumulants(Bool_t cqc) {this->fCalculateQcumulants = cqc;};
Bool_t GetCalculateQcumulants() const {return this->fCalculateQcumulants;};
- void SetHarmonicQC(Int_t const hqc) {this->fHarmonicQC = hqc;};
+ void SetHarmonicQC(Int_t hqc) {this->fHarmonicQC = hqc;};
Int_t GetHarmonicQC() const {return this->fHarmonicQC;};
- void SetPropagateErrorQC(Bool_t const peqc) {this->fPropagateErrorQC = peqc;};
+ void SetPropagateErrorQC(Bool_t peqc) {this->fPropagateErrorQC = peqc;};
Bool_t GetPropagateErrorQC() const {return this->fPropagateErrorQC;};
void SetQcumulantsHist(TH1D* const qch) {this->fQcumulantsHist = qch;};
TH1D* GetQcumulantsHist() const {return this->fQcumulantsHist;};
TList* GetDiffCorrelationsList() const {return this->fDiffCorrelationsList;}
void SetDiffCorrelationsFlagsPro(TProfile* const cdfp) {this->fDiffCorrelationsFlagsPro = cdfp;};
TProfile* GetDiffCorrelationsFlagsPro() const {return this->fDiffCorrelationsFlagsPro;};
- void SetCalculateDiffCorrelations(Bool_t const cdc) {this->fCalculateDiffCorrelations = cdc;};
+ void SetCalculateDiffCorrelations(Bool_t cdc) {this->fCalculateDiffCorrelations = cdc;};
Bool_t GetCalculateDiffCorrelations() const {return this->fCalculateDiffCorrelations;};
void SetDiffHarmonics(Int_t order, Int_t *harmonics); // see implementation in .cxx file
- void SetCalculateDiffCos(Bool_t const cdc) {this->fCalculateDiffCos = cdc;};
+ void SetCalculateDiffCos(Bool_t cdc) {this->fCalculateDiffCos = cdc;};
Bool_t GetCalculateDiffCos() const {return this->fCalculateDiffCos;};
- void SetCalculateDiffSin(Bool_t const cds) {this->fCalculateDiffSin = cds;};
+ void SetCalculateDiffSin(Bool_t cds) {this->fCalculateDiffSin = cds;};
Bool_t GetCalculateDiffSin() const {return this->fCalculateDiffSin;};
- void SetCalculateDiffCorrelationsVsPt(Bool_t const cdcvspt) {this->fCalculateDiffCorrelationsVsPt = cdcvspt;};
+ void SetCalculateDiffCorrelationsVsPt(Bool_t cdcvspt) {this->fCalculateDiffCorrelationsVsPt = cdcvspt;};
Bool_t GetCalculateDiffCorrelationsVsPt() const {return this->fCalculateDiffCorrelationsVsPt;};
- void SetUseDefaultBinning(Bool_t const udb) {this->fUseDefaultBinning = udb;};
+ void SetUseDefaultBinning(Bool_t udb) {this->fUseDefaultBinning = udb;};
Bool_t GetUseDefaultBinning() const {return this->fUseDefaultBinning;};
- void SetnDiffBins(Int_t const ndb) {this->fnDiffBins = ndb;};
+ void SetnDiffBins(Int_t ndb) {this->fnDiffBins = ndb;};
Int_t GetnDiffBins() const {return this->fnDiffBins;};
void SetRangesDiffBins(Double_t* const rdb) {this->fRangesDiffBins = rdb;};
Double_t* GetRangesDiffBins() const {return this->fRangesDiffBins;};
static void DumpPointsForDurham(TGraphErrors *ge);
static void DumpPointsForDurham(TH1D *h);
static void DumpPointsForDurham(TH1F *h);
+ virtual void DumpThePoints(AliFlowEventSimple *anEvent);
+ TH1D* GetHistogramWithWeights(const char *filePath, const char *listName, const char *type, const char *variable, const char *production);
private:
AliFlowAnalysisWithMultiparticleCorrelations(const AliFlowAnalysisWithMultiparticleCorrelations& afawQc);
Int_t fMaxNoRPs; // maximum number of RPs allowed for the analysis
Int_t fExactNoRPs; // exact (randomly shuffled) number of RPs selected for the analysis
Bool_t fPropagateError; // prevent error propagation if something strange happens during calculations
+ TString fAnalysisTag; // tag internally this analysis
+ Bool_t fDumpThePoints; // dump the data points into the external file
+ Int_t fMaxNoEventsPerFile; // maximum number of events to be dumped in a single file
// 1.) Control histograms:
TList *fControlHistogramsList; // list to hold all 'control histograms' objects
Bool_t fFillControlHistograms; // fill or not control histograms (by default they are all filled)
Bool_t fFillKinematicsHist; // fill or not fKinematicsHist[2][3]
Bool_t fFillMultDistributionsHist; // fill or not TH1D *fMultDistributionsHist[3]
- Bool_t fFillMultCorrelationsHist; // fill or not TH2D *fMultCorrelationsHist[3]
+ Bool_t fFillMultCorrelationsHist; // fill or not TH2D *fMultCorrelationsHist[3]
+ Bool_t fDontFill[3]; // don't fill control histograms [0=RP,1=POI,2=REF]
TH1D *fKinematicsHist[2][3]; // [RP,POI][phi,pt,eta] distributions
TH1D *fMultDistributionsHist[3]; // multiplicity distribution [RP,POI,reference multiplicity]
- TH2D *fMultCorrelationsHist[3]; // [RP vs. POI, RP vs. refMult, POI vs. refMult]
+ TH2I *fMultCorrelationsHist[3]; // [RP vs. POI, RP vs. refMult, POI vs. refMult]
Int_t fnBins[2][3]; // [RP,POI][phi,pt,eta], corresponds to fKinematicsHist[2][3]
Double_t fMin[2][3]; // [RP,POI][phi,pt,eta], corresponds to fKinematicsHist[2][3]
Double_t fMax[2][3]; // [RP,POI][phi,pt,eta], corresponds to fKinematicsHist[2][3]
Int_t fnBinsMult[3]; // [RP,POI,REF], corresponds to fMultDistributionsHist[3]
Double_t fMinMult[3]; // [RP,POI,REF], corresponds to fMultDistributionsHist[3]
Double_t fMaxMult[3]; // [RP,POI,REF], corresponds to fMultDistributionsHist[3]
-
+
// 2.) Q-vectors:
TList *fQvectorList; // list to hold all Q-vector objects
TProfile *fQvectorFlagsPro; // profile to hold all flags for Q-vector
TProfile *fDiffCorrelationsPro[2][4]; // multi-particle correlations [0=cos,1=sin][1p,2p,3p,4p]
UInt_t fDiffBinNo; // differential bin number
- ClassDef(AliFlowAnalysisWithMultiparticleCorrelations,1);
+ ClassDef(AliFlowAnalysisWithMultiparticleCorrelations,2);
};