]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG/FLOW/Base/AliFlowAnalysisWithMultiparticleCorrelations.h
coverity fixes
[u/mrichter/AliRoot.git] / PWG / FLOW / Base / AliFlowAnalysisWithMultiparticleCorrelations.h
index dbbb121edce4a1e5268d25105636ed4c51c275e4..b20f3601b53f8e669250c04e3f00afe4397f6550 100644 (file)
@@ -103,41 +103,51 @@ class AliFlowAnalysisWithMultiparticleCorrelations{
   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:
@@ -145,27 +155,27 @@ class AliFlowAnalysisWithMultiparticleCorrelations{
   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:
@@ -173,7 +183,7 @@ class AliFlowAnalysisWithMultiparticleCorrelations{
   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: 
@@ -188,11 +198,11 @@ class AliFlowAnalysisWithMultiparticleCorrelations{
   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]
@@ -204,9 +214,9 @@ class AliFlowAnalysisWithMultiparticleCorrelations{
   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;}; 
@@ -218,11 +228,11 @@ class AliFlowAnalysisWithMultiparticleCorrelations{
   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;}; 
@@ -236,18 +246,18 @@ class AliFlowAnalysisWithMultiparticleCorrelations{
   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;};
@@ -278,6 +288,8 @@ class AliFlowAnalysisWithMultiparticleCorrelations{
   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);
@@ -302,6 +314,9 @@ class AliFlowAnalysisWithMultiparticleCorrelations{
   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
@@ -309,17 +324,18 @@ class AliFlowAnalysisWithMultiparticleCorrelations{
   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
@@ -401,7 +417,7 @@ class AliFlowAnalysisWithMultiparticleCorrelations{
   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);
 
 };