]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
From You Zhou:
authormkrzewic <mkrzewic@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 10 Apr 2013 13:20:57 +0000 (13:20 +0000)
committermkrzewic <mkrzewic@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 10 Apr 2013 13:20:57 +0000 (13:20 +0000)
  updates.

PWG/FLOW/Tasks/AliAnalysisTwoParticleResonanceFlowTask.cxx
PWG/FLOW/Tasks/AliAnalysisTwoParticleResonanceFlowTask.h
PWGCF/FLOW/macros/AddTaskPhiFlow.C
PWGCF/FLOW/macros/AddTwoParticleResonanceFlowTask.C

index 904f0ecdfd34c365d22497d13628c4c33d57bf64..2d93f56b19e632b0ebbdbde4ceae31dd4778c419 100644 (file)
@@ -65,7 +65,7 @@ using std::endl;
 ClassImp(AliAnalysisTwoParticleResonanceFlowTask)
 
 AliAnalysisTwoParticleResonanceFlowTask::AliAnalysisTwoParticleResonanceFlowTask() : AliAnalysisTaskSE(),
-  fSpeciesA(0), fSpeciesB(0), fChargeA(0), fChargeB(0), fMassA(0), fMassB(0), fMinPtA(0), fMaxPtA(0), fMinPtB(0), fMaxPtB(0), fIsMC(0), fEventMixing(0), fPhiMinusPsiMethod(0), fQA(0), fV0(0), fMassBins(1), fMinMass(-1.), fMaxMass(0.), fCutsRP(NULL), fNullCuts(0), fPIDResponse(0), fFlowEvent(0), fBayesianResponse(0), fCandidates(0),  fCandidateEtaPtCut(0), fCandidateMinEta(0), fCandidateMaxEta(0), fCandidateMinPt(0), fCandidateMaxPt(0), fNPtBins(18), fNdPhiBins(18), fCentrality(999), fVertex(999), fAOD(0), fPoolManager(0), fOutputList(0), fEventStats(0), fCentralityPass(0), fCentralityNoPass(0), fNOPID(0), fPIDk(0), fPIDp(0), fPtP(0), fPtN(0), fPtSpeciesA(0), fPtSpeciesB(0), fMultCorAfterCuts(0), fMultvsCentr(0), fCentralityMin(0), fCentralityMax(100), fkCentralityMethodA(0), fkCentralityMethodB(0), fCentralityCut(0), fPOICuts(0), fVertexRange(0), fPhi(0), fEta(0), fVZEROA(0), fVZEROC(0), fTPCM(0), fDeltaDipAngle(0), fDeltaDipPt(0), fApplyDeltaDipCut(0), fDCAAll(0), fDCAXYQA(0), fDCAZQA(0), fDCAPrim(0), fDCASecondaryWeak(0), fDCAMaterial(0), fSubEventDPhiv2(0), fAnalysisSummary(0)
+  fSpeciesA(0), fSpeciesB(0), fChargeA(0), fChargeB(0), fMassA(0), fMassB(0), fMinPtA(0), fMaxPtA(0), fMinPtB(0), fMaxPtB(0), fIsMC(0), fEventMixing(0), fPhiMinusPsiMethod(0), fQA(0), fV0(0), fMassBins(1), fMinMass(-1.), fMaxMass(0.), fCutsRP(NULL), fNullCuts(0), fPIDResponse(0), fFlowEvent(0), fBayesianResponse(0), fCandidates(0),  fCandidateEtaPtCut(0), fCandidateMinEta(0), fCandidateMaxEta(0), fCandidateMinPt(0), fCandidateMaxPt(0), fNPtBins(18), fNdPhiBins(18), fCentrality(999), fVertex(999), fAOD(0), fPoolManager(0), fOutputList(0), fEventStats(0), fCentralityPass(0), fCentralityNoPass(0), fNOPID(0), fPIDk(0), fPIDp(0), fPtP(0), fPtN(0), fPtSpeciesA(0), fPtSpeciesB(0), fMultCorAfterCuts(0), fMultvsCentr(0), fCentralityMin(0), fCentralityMax(100), fkCentralityMethodA(0), fkCentralityMethodB(0), fCentralityCut2010(0), fCentralityCut2011(0), fPOICuts(0), fVertexRange(0), fPhi(0), fEta(0), fVZEROA(0), fVZEROC(0), fTPCM(0), fDeltaDipAngle(0), fDeltaDipPt(0), fApplyDeltaDipCut(0), fDCAAll(0), fDCAXYQA(0), fDCAZQA(0), fDCAPrim(0), fDCASecondaryWeak(0), fDCAMaterial(0), fSubEventDPhiv2(0), fAnalysisSummary(0)
 {
    // Default constructor
    for(Int_t i(0); i < 7; i++) fPIDConfig[i] = 0.;
@@ -86,7 +86,7 @@ AliAnalysisTwoParticleResonanceFlowTask::AliAnalysisTwoParticleResonanceFlowTask
    for(Int_t i(0); i < 12; i++) fAddTaskMacroSummary[i] = 0.;
 }
 //_____________________________________________________________________________
-AliAnalysisTwoParticleResonanceFlowTask::AliAnalysisTwoParticleResonanceFlowTask(const char *name) : AliAnalysisTaskSE(name), fSpeciesA(0), fSpeciesB(0), fChargeA(0), fChargeB(0), fMassA(0), fMassB(0), fMinPtA(0), fMaxPtA(0), fMinPtB(0), fMaxPtB(0), fIsMC(0), fEventMixing(0), fPhiMinusPsiMethod(0), fQA(0), fV0(0), fMassBins(1), fMinMass(-1.), fMaxMass(0.), fCutsRP(NULL), fNullCuts(0), fPIDResponse(0), fFlowEvent(0),fBayesianResponse(0), fCandidates(0),  fCandidateEtaPtCut(0), fCandidateMinEta(0), fCandidateMaxEta(0), fCandidateMinPt(0), fCandidateMaxPt(0), fNPtBins(18), fNdPhiBins(18), fCentrality(999), fVertex(999), fAOD(0), fPoolManager(0), fOutputList(0), fEventStats(0), fCentralityPass(0), fCentralityNoPass(0), fNOPID(0), fPIDk(0), fPIDp(0), fPtP(0), fPtN(0), fPtSpeciesA(0), fPtSpeciesB(0), fMultCorAfterCuts(0), fMultvsCentr(0), fCentralityMin(0), fCentralityMax(100), fkCentralityMethodA(0), fkCentralityMethodB(0), fCentralityCut(0), fPOICuts(0), fVertexRange(0), fPhi(0), fEta(0), fVZEROA(0), fVZEROC(0), fTPCM(0), fDeltaDipAngle(0), fDeltaDipPt(0), fApplyDeltaDipCut(0), fDCAAll(0), fDCAXYQA(0), fDCAZQA(0), fDCAPrim(0), fDCASecondaryWeak(0), fDCAMaterial(0), fSubEventDPhiv2(0), fAnalysisSummary(0)
+AliAnalysisTwoParticleResonanceFlowTask::AliAnalysisTwoParticleResonanceFlowTask(const char *name) : AliAnalysisTaskSE(name), fSpeciesA(0), fSpeciesB(0), fChargeA(0), fChargeB(0), fMassA(0), fMassB(0), fMinPtA(0), fMaxPtA(0), fMinPtB(0), fMaxPtB(0), fIsMC(0), fEventMixing(0), fPhiMinusPsiMethod(0), fQA(0), fV0(0), fMassBins(1), fMinMass(-1.), fMaxMass(0.), fCutsRP(NULL), fNullCuts(0), fPIDResponse(0), fFlowEvent(0),fBayesianResponse(0), fCandidates(0),  fCandidateEtaPtCut(0), fCandidateMinEta(0), fCandidateMaxEta(0), fCandidateMinPt(0), fCandidateMaxPt(0), fNPtBins(18), fNdPhiBins(18), fCentrality(999), fVertex(999), fAOD(0), fPoolManager(0), fOutputList(0), fEventStats(0), fCentralityPass(0), fCentralityNoPass(0), fNOPID(0), fPIDk(0), fPIDp(0), fPtP(0), fPtN(0), fPtSpeciesA(0), fPtSpeciesB(0), fMultCorAfterCuts(0), fMultvsCentr(0), fCentralityMin(0), fCentralityMax(100), fkCentralityMethodA(0), fkCentralityMethodB(0), fCentralityCut2010(0), fCentralityCut2011(0), fPOICuts(0), fVertexRange(0), fPhi(0), fEta(0), fVZEROA(0), fVZEROC(0), fTPCM(0), fDeltaDipAngle(0), fDeltaDipPt(0), fApplyDeltaDipCut(0), fDCAAll(0), fDCAXYQA(0), fDCAZQA(0), fDCAPrim(0), fDCASecondaryWeak(0), fDCAMaterial(0), fSubEventDPhiv2(0), fAnalysisSummary(0)
 {
    // Constructor
   for(Int_t i(0); i < 7; i++) fPIDConfig[i] = 0.;
@@ -260,7 +260,7 @@ void AliAnalysisTwoParticleResonanceFlowTask::UserCreateOutputObjects()
        fOutputList->Add(fDCAXYQA);
        fDCAZQA = new TH1F("fDCAZQA", "fDCAZQA", 1000, -5, 5);
        fOutputList->Add(fDCAZQA);
-       if(fCentralityCut) {
+       if(fCentralityCut2010 || fCentralityCut2011) {
            fMultCorAfterCuts = new TH2F("fMultCorAfterCuts", "TPC vs Global multiplicity (After cuts); Global multiplicity; TPC multiplicity", 100, 0, 3000, 100, 0, 3000);
            fOutputList->Add(fMultCorAfterCuts);
            fMultvsCentr = new TH2F("fMultvsCentr", "Multiplicity vs centrality; centrality; Multiplicity", 9, -0.5, 100.5, 101, 0, 3000);
@@ -458,34 +458,65 @@ template <typename T> Bool_t AliAnalysisTwoParticleResonanceFlowTask::CheckCentr
       return kFALSE;
    }
    const Int_t nGoodTracks = event->GetNumberOfTracks();
-   if(fCentralityCut) { // cut on outliers
-      Float_t multTPC(0.); // tpc mult estimate
-      Float_t multGlob(0.); // global multiplicity
-      for(Int_t iTracks = 0; iTracks < nGoodTracks; iTracks++) { // fill tpc mult
-          AliAODTrack* trackAOD = event->GetTrack(iTracks);
-          if (!trackAOD) continue;
-          if (!(trackAOD->TestFilterBit(1))) continue;
-          if ((trackAOD->Pt() < .2) || (trackAOD->Pt() > 5.0) || (TMath::Abs(trackAOD->Eta()) > .8) || (trackAOD->GetTPCNcls() < 70)  || (trackAOD->GetDetPid()->GetTPCsignal() < 10.0) || (trackAOD->Chi2perNDF() < 0.2)) continue;
-          multTPC++;
-      }
-      for(Int_t iTracks = 0; iTracks < nGoodTracks; iTracks++) { // fill global mult
-          AliAODTrack* trackAOD = event->GetTrack(iTracks);
-          if (!trackAOD) continue;
-          if (!(trackAOD->TestFilterBit(16))) continue;
-          if ((trackAOD->Pt() < .2) || (trackAOD->Pt() > 5.0) || (TMath::Abs(trackAOD->Eta()) > .8) || (trackAOD->GetTPCNcls() < 70) || (trackAOD->GetDetPid()->GetTPCsignal() < 10.0) || (trackAOD->Chi2perNDF() < 0.1)) continue;
-          Double_t b[2] = {-99., -99.};
-          Double_t bCov[3] = {-99., -99., -99.};
-          if (!(trackAOD->PropagateToDCA(event->GetPrimaryVertex(), event->GetMagneticField(), 100., b, bCov))) continue;
-          if ((TMath::Abs(b[0]) > 0.3) || (TMath::Abs(b[1]) > 0.3)) continue;
-          multGlob++;
-      } //track loop
- //     printf(" mult TPC %.2f, mult Glob %.2f \n", multTPC, multGlob);
-      if(! (multTPC > (-40.3+1.22*multGlob) && multTPC < (32.1+1.59*multGlob))) return kFALSE;
-      if(fQA) {  
-          fMultCorAfterCuts->Fill(multGlob, multTPC);  
-          fMultvsCentr->Fill(fCentrality, multTPC);
-      }
+   if(fCentralityCut2010) { // cut on outliers
+     Float_t multTPC(0.); // tpc mult estimate
+     Float_t multGlob(0.); // global multiplicity
+     for(Int_t iTracks = 0; iTracks < nGoodTracks; iTracks++) { // fill tpc mult
+       AliAODTrack* trackAOD = event->GetTrack(iTracks);
+       if (!trackAOD) continue;
+       if (!(trackAOD->TestFilterBit(1))) continue;
+       if ((trackAOD->Pt() < .2) || (trackAOD->Pt() > 5.0) || (TMath::Abs(trackAOD->Eta()) > .8) || (trackAOD->GetTPCNcls() < 70)  || (trackAOD->GetDetPid()->GetTPCsignal() < 10.0) || (trackAOD->Chi2perNDF() < 0.2)) continue;
+       multTPC++;
+     }
+     for(Int_t iTracks = 0; iTracks < nGoodTracks; iTracks++) { // fill global mult
+       AliAODTrack* trackAOD = event->GetTrack(iTracks);
+       if (!trackAOD) continue;
+       if (!(trackAOD->TestFilterBit(16))) continue;
+       if ((trackAOD->Pt() < .2) || (trackAOD->Pt() > 5.0) || (TMath::Abs(trackAOD->Eta()) > .8) || (trackAOD->GetTPCNcls() < 70) || (trackAOD->GetDetPid()->GetTPCsignal() < 10.0) || (trackAOD->Chi2perNDF() < 0.1)) continue;
+       Double_t b[2] = {-99., -99.};
+       Double_t bCov[3] = {-99., -99., -99.};
+       if (!(trackAOD->PropagateToDCA(event->GetPrimaryVertex(), event->GetMagneticField(), 100., b, bCov))) continue;
+       if ((TMath::Abs(b[0]) > 0.3) || (TMath::Abs(b[1]) > 0.3)) continue;
+       multGlob++;
+     } //track loop
    //     printf(" mult TPC %.2f, mult Glob %.2f \n", multTPC, multGlob);
+     if(! (multTPC > (-40.3+1.22*multGlob) && multTPC < (32.1+1.59*multGlob))) return kFALSE;
+     if(fQA) {  
+       fMultCorAfterCuts->Fill(multGlob, multTPC);  
+       fMultvsCentr->Fill(fCentrality, multTPC);
+     }
    }
+
+   if(fCentralityCut2011)
+     { // cut on outliers
+     Float_t multTPC(0.); // tpc mult estimate
+     Float_t multGlob(0.); // global multiplicity
+     for(Int_t iTracks = 0; iTracks < nGoodTracks; iTracks++) { // fill tpc mult
+       AliAODTrack* trackAOD = event->GetTrack(iTracks);
+       if (!trackAOD) continue;
+       if (!(trackAOD->TestFilterBit(1))) continue;
+       if ((trackAOD->Pt() < .2) || (trackAOD->Pt() > 5.0) || (TMath::Abs(trackAOD->Eta()) > .8) || (trackAOD->GetTPCNcls() < 70)  || (trackAOD->GetDetPid()->GetTPCsignal() < 10.0) || (trackAOD->Chi2perNDF() < 0.2)) continue;
+       multTPC++;
+     }
+     for(Int_t iTracks = 0; iTracks < nGoodTracks; iTracks++) { // fill global mult
+       AliAODTrack* trackAOD = event->GetTrack(iTracks);
+       if (!trackAOD) continue;
+       if (!(trackAOD->TestFilterBit(16))) continue;
+       if ((trackAOD->Pt() < .2) || (trackAOD->Pt() > 5.0) || (TMath::Abs(trackAOD->Eta()) > .8) || (trackAOD->GetTPCNcls() < 70) || (trackAOD->GetDetPid()->GetTPCsignal() < 10.0) || (trackAOD->Chi2perNDF() < 0.1)) continue;
+       Double_t b[2] = {-99., -99.};
+       Double_t bCov[3] = {-99., -99., -99.};
+       if (!(trackAOD->PropagateToDCA(event->GetPrimaryVertex(), event->GetMagneticField(), 100., b, bCov))) continue;
+       if ((TMath::Abs(b[0]) > 0.3) || (TMath::Abs(b[1]) > 0.3)) continue;
+       multGlob++;
+     } //track loop
+     //     printf(" mult TPC %.2f, mult Glob %.2f \n", multTPC, multGlob);
+     if(! (multTPC > (-36.73+1.48*multGlob) && multTPC < (62.87+1.78*multGlob))) return kFALSE;
+     if(fQA) {  
+       fMultCorAfterCuts->Fill(multGlob, multTPC);  
+       fMultvsCentr->Fill(fCentrality, multTPC);
+     }
+   }
+   
    fCentralityPass->Fill(fCentrality);
    return kTRUE;
 }
index e71e3bba2edb2ad6b78bcf76b1d12b01cda69abb..88d905e11f859ecb317c8d5d527a753bf8fd868e 100644 (file)
@@ -79,12 +79,13 @@ public:
    // setters
    void                                 SetPtBins(Float_t bin[19], Int_t n) { for(Int_t i = 0; i < n+1; i++) fPtBins[i] = bin[i]; fNPtBins = n; }
    void                                 SetdPhiBins(Float_t bin[19], Int_t n) { for(Int_t i = 0; i < n+1; i++) fdPhiBins[i] = bin[i]; fNdPhiBins = n;}
-   void                                 SetCentralityParameters(Double_t min, Double_t max, const char* a, const char* b, Bool_t c) { 
+   void                                 SetCentralityParameters(Double_t min, Double_t max, const char* a, const char* b, Bool_t c, Bool_t d) { 
                                                                                           fCentralityMin = min; 
                                                                                           fCentralityMax = max; 
                                                                                           fkCentralityMethodA = a; 
                                                                                           fkCentralityMethodB = b;
-                                                                                          fCentralityCut = c; }
+                                                                                          fCentralityCut2010 = c; 
+                                                                                         fCentralityCut2011 = d; }
    void                                 SetPOICuts(AliFlowTrackCuts *cutsPOI) { fPOICuts = cutsPOI; }
    void                                 SetRPCuts(AliFlowTrackCuts *cutsRP) { fCutsRP = cutsRP; }
    void                                 SetPIDConfiguration(Float_t prob[7]) { for(Int_t i = 0; i < 7; i++) fPIDConfig[i] = prob[i]; }
@@ -220,7 +221,8 @@ private:
    Float_t              fCentralityMax; // upper bound of centrality bin
    const char           *fkCentralityMethodA; // centrality determiantion (primary method)
    const char           *fkCentralityMethodB; // centrality determination fallback
-   Bool_t               fCentralityCut; // 3 sigma cut for multiplicity outliers 
+   Bool_t               fCentralityCut2010; // 3 sigma cut for multiplicity outliers 
+   Bool_t               fCentralityCut2011; // 3 sigma cut for multiplicity outliers 
    AliFlowTrackCuts     *fPOICuts; // cuts for particles of interest (flow package)
    Float_t              fVertexRange; // absolute value of maximum distance of vertex along the z-axis
    TH1F                 *fPhi; //! QA plot of azimuthal distribution of POI daughters
index 40da181955541fea0820b5cc586ec33fceab47a4..ca96afaae5e631096e1065ca4f2509444abdb70a 100644 (file)
@@ -310,7 +310,7 @@ AliAnalysisTaskPhiFlow* AddTaskPhiFlow(Bool_t SP = kTRUE, // select flow analysi
    if((deltaDip>0.005)&&(deltaDipMaxPt>0.005)) task->SetMaxDeltaDipAngleAndPt(deltaDip, deltaDipMaxPt);
    else cout << " --> Disabled Delta-Dip exclusion. <-- " << endl;
    task->SetCandidateEtaAndPt(POIEtaMin, POIEtaMax, 0., 10.);
-   task->SetCentralityParameters(centrMin, centrMax, "TRK", "V0M", kTRUE);
+   task->SetCentralityParameters(centrMin, centrMax, "TRK", "V0M", kTRUE, kFALSE);
    task->SetVertexZ(vertexZ);
    if(debug) cout << "    --> Set pair cuts and event cuts" << endl;
    // set the kaon cuts, and specify the PID procedure which will be used
index 5ac3beb36450422b035217caab04c5c2920b53cd..5da6eedd07e392dc3c7df0f87eb979d275359258 100644 (file)
@@ -239,7 +239,7 @@ AliAnalysisTwoParticleResonanceFlowTask* AddTwoParticleResonanceFlowTask(Bool_t
        if((deltaDip>0.005)&&(deltaDipMaxPt>0.005)) task->SetMaxDeltaDipAngleAndPt(deltaDip, deltaDipMaxPt);
        else cout << " --> Disabled Delta-Dip exclusion. <-- " << endl;
        task->SetCandidateEtaAndPt(POIEtaMin, POIEtaMax, 0., 15.);
-       task->SetCentralityParameters(centrMin, centrMax, "TRK", "V0M", kTRUE);
+       task->SetCentralityParameters(centrMin, centrMax, "TRK", "V0M", kTRUE, kFALSE);
        task->SetVertexZ(vertexZ);
        if(debug) cout << "    --> Set pair cuts and event cuts" << endl;
        // specify the PID procedure which will be used
@@ -346,7 +346,7 @@ AliAnalysisTwoParticleResonanceFlowTask* AddTwoParticleResonanceFlowTask(Bool_t
    if((deltaDip>0.005)&&(deltaDipMaxPt>0.005)) task->SetMaxDeltaDipAngleAndPt(deltaDip, deltaDipMaxPt);
    else cout << " --> Disabled Delta-Dip exclusion. <-- " << endl;
    task->SetCandidateEtaAndPt(POIEtaMin, POIEtaMax, 0., 10.);
-   task->SetCentralityParameters(centrMin, centrMax, "TRK", "V0M", kTRUE);
+   task->SetCentralityParameters(centrMin, centrMax, "TRK", "V0M", kTRUE, kFALSE);
    task->SetVertexZ(vertexZ);
    if(debug) cout << "    --> Set pair cuts and event cuts" << endl;
    // set the kaon cuts, and specify the PID procedure which will be used