From ae4f2cfb424d1158ce0a17e9b6e52d432be2a156 Mon Sep 17 00:00:00 2001 From: fbock Date: Thu, 28 Nov 2013 14:45:36 +0000 Subject: [PATCH] ConversionCuts extended for Eventplane angle cut, thus all addTasks modified to have the full length of the Cutnumber, changes in ConverionTask --- .../GammaConv/AliAnalysisTaskConversionQA.cxx | 6 +- .../GammaConv/AliAnalysisTaskGammaConvV1.cxx | 361 ++++++--- PWGGA/GammaConv/AliAnalysisTaskGammaConvV1.h | 35 +- PWGGA/GammaConv/AliConversionCuts.cxx | 83 +- PWGGA/GammaConv/AliConversionCuts.h | 750 +++++++++--------- PWGGA/GammaConv/AliDalitzElectronCuts.cxx | 58 +- PWGGA/GammaConv/AliDalitzElectronCuts.h | 4 +- .../AliGammaConversionAODBGHandler.cxx | 75 +- .../AliGammaConversionAODBGHandler.h | 5 +- .../macros/AddTask_ConversionAODProduction.C | 14 +- .../macros/AddTask_GammaConvDalitzV1_PbPb.C | 44 +- .../macros/AddTask_GammaConvDalitzV1_pPb.C | 26 +- .../macros/AddTask_GammaConvDalitzV1_pp.C | 14 +- .../macros/AddTask_GammaConvV1_PbPb.C | 490 ++++++------ .../macros/AddTask_GammaConvV1_PbPb2.C | 72 +- .../macros/AddTask_GammaConvV1_pPb.C | 82 +- .../GammaConv/macros/AddTask_GammaConvV1_pp.C | 34 +- .../macros/AddTask_GammaConvdPhi_PbPb.C | 2 +- .../macros/AddTask_GammaConvdPhi_pp.C | 36 +- PWGGA/GammaConv/macros/AddTask_Material.C | 20 +- PWGGA/GammaConv/macros/AddTask_PhotonQA.C | 39 +- PWGGA/GammaConv/macros/AddTask_Pi0v2.C | 53 +- PWGGA/GammaConv/macros/AddTask_Resolution.C | 12 +- 23 files changed, 1301 insertions(+), 1014 deletions(-) diff --git a/PWGGA/GammaConv/AliAnalysisTaskConversionQA.cxx b/PWGGA/GammaConv/AliAnalysisTaskConversionQA.cxx index 33bf7541aa8..db654996f52 100644 --- a/PWGGA/GammaConv/AliAnalysisTaskConversionQA.cxx +++ b/PWGGA/GammaConv/AliAnalysisTaskConversionQA.cxx @@ -952,7 +952,7 @@ UInt_t AliAnalysisTaskConversionQA::IsTruePhotonAOD(AliAODConversionPhoton *True kind = 9; // return kFALSE; // One particle does not exist - } else if( posDaughter->GetMother() != negDaughter->GetMother() || (posDaughter->GetMother() == negDaughter->GetMother() && posDaughter->GetMother() ==-1)) { + } else if( posDaughter->GetMother() != negDaughter->GetMother() || (posDaughter->GetMother() == negDaughter->GetMother() && posDaughter->GetMother() ==-1)) { kind = 1; pdgCodePos=TMath::Abs(posDaughter->GetPdgCode()); @@ -970,8 +970,8 @@ UInt_t AliAnalysisTaskConversionQA::IsTruePhotonAOD(AliAODConversionPhoton *True pdgCodePos=posDaughter->GetPdgCode(); pdgCodeNeg=negDaughter->GetPdgCode(); - if ( TruePhotonCandidate->GetMCParticle(fMCStack)->GetPdgCode()) - pdgCode = TruePhotonCandidate->GetMCParticle(fMCStack)->GetPdgCode(); + if ( Photon->GetPdgCode()) + pdgCode = Photon->GetPdgCode(); if(TMath::Abs(pdgCodePos)!=11 || TMath::Abs(pdgCodeNeg)!=11) kind = 2; // true from hadronic decays else if ( !(pdgCodeNeg==pdgCodePos)){ if(pdgCode == 111) kind = 3; // pi0 Dalitz diff --git a/PWGGA/GammaConv/AliAnalysisTaskGammaConvV1.cxx b/PWGGA/GammaConv/AliAnalysisTaskGammaConvV1.cxx index bc88801a630..067788bbce3 100644 --- a/PWGGA/GammaConv/AliAnalysisTaskGammaConvV1.cxx +++ b/PWGGA/GammaConv/AliAnalysisTaskGammaConvV1.cxx @@ -53,6 +53,7 @@ #include "AliConversionAODBGHandlerRP.h" #include "AliAODMCParticle.h" #include "AliAODMCHeader.h" +#include "AliEventplane.h" ClassImp(AliAnalysisTaskGammaConvV1) @@ -71,7 +72,6 @@ AliAnalysisTaskGammaConvV1::AliAnalysisTaskGammaConvV1(): AliAnalysisTaskSE(), fPhotonDCAList(NULL), fMesonDCAList(NULL), fTrueList(NULL), - fTrueMotherRapList(NULL), fMCList(NULL), fHeaderNameList(NULL), fOutputContainer(0), @@ -82,6 +82,8 @@ AliAnalysisTaskGammaConvV1::AliAnalysisTaskGammaConvV1(): AliAnalysisTaskSE(), fMesonCutArray(NULL), fMesonCuts(NULL), hESDConvGammaPt(NULL), + hESDConvGammaR(NULL), + hESDConvGammaEta(NULL), tESDConvGammaPtDcazCat(NULL), fPtGamma(0), fDCAzPhoton(0), @@ -94,6 +96,14 @@ AliAnalysisTaskGammaConvV1::AliAnalysisTaskGammaConvV1(): AliAnalysisTaskSE(), hESDMotherBackInvMassPt(NULL), sESDMotherBackInvMassPtZM(NULL), hESDMotherInvMassEalpha(NULL), + hESDMotherPi0PtY(NULL), + hESDMotherEtaPtY(NULL), + hESDMotherPi0PtAlpha(NULL), + hESDMotherEtaPtAlpha(NULL), + hESDMotherPi0YEtaLowPtGamma(NULL), + hESDMotherPi0YEtaHighPtGamma(NULL), + hESDMotherEtaYEtaLowPtGamma(NULL), + hESDMotherEtaYEtaHighPtGamma(NULL), hMCHeaders(NULL), hMCAllGammaPt(NULL), hMCDecayGammaPi0Pt(NULL), @@ -106,9 +116,6 @@ AliAnalysisTaskGammaConvV1::AliAnalysisTaskGammaConvV1(): AliAnalysisTaskSE(), hMCConvGammaPt(NULL), hMCConvGammaR(NULL), hMCConvGammaEta(NULL), - hMCConvGammaRSPt(NULL), - hMCConvGammaRSR(NULL), - hMCConvGammaRSEta(NULL), hMCPi0Pt(NULL), hMCPi0WOWeightPt(NULL), hMCEtaPt(NULL), @@ -132,12 +139,19 @@ AliAnalysisTaskGammaConvV1::AliAnalysisTaskGammaConvV1(): AliAnalysisTaskSE(), hESDTrueEtaWithPi0DaughterMCPt(NULL), hESDTrueBckGGInvMassPt(NULL), hESDTrueBckContInvMassPt(NULL), + hESDTruePi0PtY(NULL), + hESDTrueEtaPtY(NULL), + hESDTruePi0PtAlpha(NULL), + hESDTrueEtaPtAlpha(NULL), + hESDTruePi0YEtaLowPtGamma(NULL), + hESDTruePi0YEtaHighPtGamma(NULL), + hESDTrueEtaYEtaLowPtGamma(NULL), + hESDTrueEtaYEtaHighPtGamma(NULL), hESDTrueMotherDalitzInvMassPt(NULL), hESDTrueConvGammaPt(NULL), hESDCombinatorialPt(NULL), hESDTruePrimaryConvGammaPt(NULL), hESDTruePrimaryConvGammaESDPtMCPt(NULL), - hESDTruePrimaryConvGammaRSESDPtMCPt(NULL), hESDTrueSecondaryConvGammaPt(NULL), hESDTrueSecondaryConvGammaFromXFromK0sPt(NULL), hESDTrueSecondaryConvGammaFromXFromLambdaPt(NULL), @@ -155,6 +169,7 @@ AliAnalysisTaskGammaConvV1::AliAnalysisTaskGammaConvV1(): AliAnalysisTaskSE(), fDCAzGammaMax(0), iFlag(0), iMesonMCInfo(0), + fEventPlaneAngle(-100), fRandom(0), fnGammaCandidates(0), fUnsmearedPx(NULL), @@ -170,8 +185,8 @@ AliAnalysisTaskGammaConvV1::AliAnalysisTaskGammaConvV1(): AliAnalysisTaskSE(), fMoveParticleAccordingToVertex(kTRUE), fIsHeavyIon(kFALSE), fDoMesonAnalysis(kTRUE), - fDoMesonQA(kFALSE), - fDoPhotonQA(kFALSE), + fDoMesonQA(0), + fDoPhotonQA(0), fIsFromMBHeader(kTRUE), fIsMC(kFALSE) { @@ -194,7 +209,6 @@ AliAnalysisTaskGammaConvV1::AliAnalysisTaskGammaConvV1(const char *name): fPhotonDCAList(NULL), fMesonDCAList(NULL), fTrueList(NULL), - fTrueMotherRapList(NULL), fMCList(NULL), fHeaderNameList(NULL), fOutputContainer(0), @@ -205,6 +219,8 @@ AliAnalysisTaskGammaConvV1::AliAnalysisTaskGammaConvV1(const char *name): fMesonCutArray(NULL), fMesonCuts(NULL), hESDConvGammaPt(NULL), + hESDConvGammaR(NULL), + hESDConvGammaEta(NULL), tESDConvGammaPtDcazCat(NULL), fPtGamma(0), fDCAzPhoton(0), @@ -217,6 +233,14 @@ AliAnalysisTaskGammaConvV1::AliAnalysisTaskGammaConvV1(const char *name): hESDMotherBackInvMassPt(NULL), sESDMotherBackInvMassPtZM(NULL), hESDMotherInvMassEalpha(NULL), + hESDMotherPi0PtY(NULL), + hESDMotherEtaPtY(NULL), + hESDMotherPi0PtAlpha(NULL), + hESDMotherEtaPtAlpha(NULL), + hESDMotherPi0YEtaLowPtGamma(NULL), + hESDMotherPi0YEtaHighPtGamma(NULL), + hESDMotherEtaYEtaLowPtGamma(NULL), + hESDMotherEtaYEtaHighPtGamma(NULL), hMCHeaders(NULL), hMCAllGammaPt(NULL), hMCDecayGammaPi0Pt(NULL), @@ -229,9 +253,6 @@ AliAnalysisTaskGammaConvV1::AliAnalysisTaskGammaConvV1(const char *name): hMCConvGammaPt(NULL), hMCConvGammaR(NULL), hMCConvGammaEta(NULL), - hMCConvGammaRSPt(NULL), - hMCConvGammaRSR(NULL), - hMCConvGammaRSEta(NULL), hMCPi0Pt(NULL), hMCPi0WOWeightPt(NULL), hMCEtaPt(NULL), @@ -255,12 +276,19 @@ AliAnalysisTaskGammaConvV1::AliAnalysisTaskGammaConvV1(const char *name): hESDTrueEtaWithPi0DaughterMCPt(NULL), hESDTrueBckGGInvMassPt(NULL), hESDTrueBckContInvMassPt(NULL), + hESDTruePi0PtY(NULL), + hESDTrueEtaPtY(NULL), + hESDTruePi0PtAlpha(NULL), + hESDTrueEtaPtAlpha(NULL), + hESDTruePi0YEtaLowPtGamma(NULL), + hESDTruePi0YEtaHighPtGamma(NULL), + hESDTrueEtaYEtaLowPtGamma(NULL), + hESDTrueEtaYEtaHighPtGamma(NULL), hESDTrueMotherDalitzInvMassPt(NULL), hESDTrueConvGammaPt(NULL), hESDCombinatorialPt(NULL), hESDTruePrimaryConvGammaPt(NULL), hESDTruePrimaryConvGammaESDPtMCPt(NULL), - hESDTruePrimaryConvGammaRSESDPtMCPt(NULL), hESDTrueSecondaryConvGammaPt(NULL), hESDTrueSecondaryConvGammaFromXFromK0sPt(NULL), hESDTrueSecondaryConvGammaFromXFromLambdaPt(NULL), @@ -278,6 +306,7 @@ AliAnalysisTaskGammaConvV1::AliAnalysisTaskGammaConvV1(const char *name): fDCAzGammaMax(0), iFlag(0), iMesonMCInfo(0), + fEventPlaneAngle(-100), fRandom(0), fnGammaCandidates(0), fUnsmearedPx(NULL), @@ -293,8 +322,8 @@ AliAnalysisTaskGammaConvV1::AliAnalysisTaskGammaConvV1(const char *name): fMoveParticleAccordingToVertex(kTRUE), fIsHeavyIon(kFALSE), fDoMesonAnalysis(kTRUE), - fDoMesonQA(kFALSE), - fDoPhotonQA(kFALSE), + fDoMesonQA(0), + fDoPhotonQA(0), fIsFromMBHeader(kTRUE), fIsMC(kFALSE) { @@ -416,19 +445,33 @@ void AliAnalysisTaskGammaConvV1::UserCreateOutputObjects() hEtaShift = new TProfile*[fnCuts]; hESDConvGammaPt = new TH1F*[fnCuts]; - if (fDoPhotonQA){ + if (fDoPhotonQA == 2){ fPhotonDCAList = new TList*[fnCuts]; tESDConvGammaPtDcazCat = new TTree*[fnCuts]; } + if (fDoPhotonQA > 0){ + hESDConvGammaR = new TH1F*[fnCuts]; + hESDConvGammaEta = new TH1F*[fnCuts]; + } if(fDoMesonAnalysis){ hESDMotherInvMassPt = new TH2F*[fnCuts]; hESDMotherBackInvMassPt = new TH2F*[fnCuts]; hESDMotherInvMassEalpha = new TH2F*[fnCuts]; - if (fDoMesonQA){ + if (fDoMesonQA == 2){ fMesonDCAList = new TList*[fnCuts]; tESDMesonsInvMassPtDcazMinDcazMaxFlag = new TTree*[fnCuts]; } + if (fDoMesonQA > 0){ + hESDMotherPi0PtY = new TH2F*[fnCuts]; + hESDMotherEtaPtY = new TH2F*[fnCuts]; + hESDMotherPi0PtAlpha = new TH2F*[fnCuts]; + hESDMotherEtaPtAlpha = new TH2F*[fnCuts]; + hESDMotherPi0YEtaLowPtGamma = new TH2F*[fnCuts]; + hESDMotherPi0YEtaHighPtGamma = new TH2F*[fnCuts]; + hESDMotherEtaYEtaLowPtGamma = new TH2F*[fnCuts]; + hESDMotherEtaYEtaHighPtGamma = new TH2F*[fnCuts]; + } } for(Int_t iCut = 0; iCutAdd(hESDConvGammaPt[iCut]); - if (fDoPhotonQA){ + if (fDoPhotonQA == 2){ fPhotonDCAList[iCut] = new TList(); fPhotonDCAList[iCut]->SetName(Form("%s_%s Photon DCA tree",cutstring.Data(),cutstringMeson.Data())); fPhotonDCAList[iCut]->SetOwner(kTRUE); @@ -496,6 +539,13 @@ void AliAnalysisTaskGammaConvV1::UserCreateOutputObjects() fPhotonDCAList[iCut]->Add(tESDConvGammaPtDcazCat[iCut]); } + if (fDoPhotonQA > 0){ + hESDConvGammaR[iCut] = new TH1F("ESD_ConvGamma_R","ESD_ConvGamma_R",800,0,200); + fESDList[iCut]->Add(hESDConvGammaR[iCut]); + hESDConvGammaEta[iCut] = new TH1F("ESD_ConvGamma_Eta","ESD_ConvGamma_Eta",100,-4,4); + fESDList[iCut]->Add(hESDConvGammaEta[iCut]); + } + if(fDoMesonAnalysis){ hESDMotherInvMassPt[iCut] = new TH2F("ESD_Mother_InvMass_Pt","ESD_Mother_InvMass_Pt",800,0,0.8,250,0,25); fESDList[iCut]->Add(hESDMotherInvMassPt[iCut]); @@ -503,7 +553,7 @@ void AliAnalysisTaskGammaConvV1::UserCreateOutputObjects() fESDList[iCut]->Add(hESDMotherBackInvMassPt[iCut]); hESDMotherInvMassEalpha[iCut] = new TH2F("ESD_Mother_InvMass_vs_E_alpha","ESD_Mother_InvMass_vs_E_alpha",800,0,0.8,250,0,25); fESDList[iCut]->Add(hESDMotherInvMassEalpha[iCut]); - if (fDoMesonQA){ + if (fDoMesonQA == 2){ fMesonDCAList[iCut] = new TList(); fMesonDCAList[iCut]->SetName(Form("%s_%s Meson DCA tree",cutstring.Data(),cutstringMeson.Data())); fMesonDCAList[iCut]->SetOwner(kTRUE); @@ -521,6 +571,26 @@ void AliAnalysisTaskGammaConvV1::UserCreateOutputObjects() fMesonDCAList[iCut]->Add(tESDMesonsInvMassPtDcazMinDcazMaxFlag[iCut]); } + if (fDoMesonQA > 0 ){ + hESDMotherPi0PtY[iCut] = new TH2F("ESD_MotherPi0_Pt_Y","ESD_MotherPi0_Pt_Y",250,0,25,150,-1.5,1.5); + fESDList[iCut]->Add(hESDMotherPi0PtY[iCut]); + hESDMotherEtaPtY[iCut] = new TH2F("ESD_MotherEta_Pt_Y","ESD_MotherEta_Pt_Y",250,0,25,150,-1.5,1.5); + fESDList[iCut]->Add(hESDMotherEtaPtY[iCut]); + hESDMotherPi0PtAlpha[iCut] = new TH2F("ESD_MotherPi0_Pt_Alpha","ESD_MotherPi0_Pt_Alpha",250,0,25,100,0,1); + fESDList[iCut]->Add(hESDMotherPi0PtAlpha[iCut]); + hESDMotherEtaPtAlpha[iCut] = new TH2F("ESD_MotherEta_Pt_Alpha","ESD_MotherEta_Pt_Alpha",250,0,25,100,0,1); + fESDList[iCut]->Add(hESDMotherEtaPtAlpha[iCut]); + hESDMotherPi0YEtaLowPtGamma[iCut] = new TH2F("ESD_MotherPi0_Y_EtaLowPtGamma","ESD_MotherPi0_Y_EtaLowPtGamma",150,-1.5,1.5,200,2,2); + fESDList[iCut]->Add(hESDMotherPi0YEtaLowPtGamma[iCut]); + hESDMotherPi0YEtaHighPtGamma[iCut] = new TH2F("ESD_MotherPi0_Y_EtaHighPtGamma","ESD_MotherPi0_Y_EtaHighPtGamma",150,-1.5,1.5,200,2,2); + fESDList[iCut]->Add(hESDMotherPi0YEtaHighPtGamma[iCut]); + hESDMotherEtaYEtaLowPtGamma[iCut] = new TH2F("ESD_MotherEta_Y_EtaLowPtGamma","ESD_MotherEta_Y_EtaLowPtGamma",150,-1.5,1.5,200,2,2); + fESDList[iCut]->Add(hESDMotherEtaYEtaLowPtGamma[iCut]); + hESDMotherEtaYEtaHighPtGamma[iCut] = new TH2F("ESD_MotherEta_Y_EtaHighPtGamma","ESD_MotherEta_Y_EtaHighPtGamma",150,-1.5,1.5,200,2,2); + fESDList[iCut]->Add(hESDMotherEtaYEtaHighPtGamma[iCut]); + } + + } @@ -546,13 +616,11 @@ void AliAnalysisTaskGammaConvV1::UserCreateOutputObjects() hMCDecayGammaPhiPt = new TH1F*[fnCuts]; hMCDecayGammaSigmaPt = new TH1F*[fnCuts]; hMCConvGammaPt = new TH1F*[fnCuts]; - hMCConvGammaRSPt = new TH1F*[fnCuts]; hESDTrueConvGammaPt = new TH1F*[fnCuts]; hESDCombinatorialPt = new TH2F*[fnCuts]; hESDTruePrimaryConvGammaPt = new TH1F*[fnCuts]; hESDTruePrimaryConvGammaESDPtMCPt = new TH2F*[fnCuts]; - hESDTruePrimaryConvGammaRSESDPtMCPt = new TH2F*[fnCuts]; hESDTrueSecondaryConvGammaPt = new TH1F*[fnCuts]; hESDTrueSecondaryConvGammaFromXFromK0sPt = new TH1F*[fnCuts]; hESDTrueSecondaryConvGammaFromXFromLambdaPt = new TH1F*[fnCuts]; @@ -560,11 +628,9 @@ void AliAnalysisTaskGammaConvV1::UserCreateOutputObjects() hESDTrueDalitzPsiPairDeltaPhi= new TH2F*[fnCuts]; hESDTrueGammaPsiPairDeltaPhi= new TH2F*[fnCuts]; - if (fDoPhotonQA){ + if (fDoPhotonQA > 0){ hMCConvGammaR = new TH1F*[fnCuts]; hMCConvGammaEta = new TH1F*[fnCuts]; - hMCConvGammaRSR = new TH1F*[fnCuts]; - hMCConvGammaRSEta = new TH1F*[fnCuts]; } if(fDoMesonAnalysis){ @@ -582,7 +648,7 @@ void AliAnalysisTaskGammaConvV1::UserCreateOutputObjects() hESDTrueSecondaryMotherFromK0sInvMassPt = new TH2F*[fnCuts]; hESDTrueSecondaryMotherFromEtaInvMassPt = new TH2F*[fnCuts]; hESDTrueMotherDalitzInvMassPt = new TH2F*[fnCuts]; - if (fDoMesonQA){ + if (fDoMesonQA > 0){ hMCPi0PtY = new TH2F*[fnCuts]; hMCEtaPtY = new TH2F*[fnCuts]; hMCK0sPt = new TH1F*[fnCuts]; @@ -594,7 +660,14 @@ void AliAnalysisTaskGammaConvV1::UserCreateOutputObjects() hESDTrueEtaWithPi0DaughterMCPt = new TH1F*[fnCuts]; hESDTrueBckGGInvMassPt = new TH2F*[fnCuts]; hESDTrueBckContInvMassPt = new TH2F*[fnCuts]; - fTrueMotherRapList = new TList*[fnCuts]; + hESDTruePi0PtY = new TH2F*[fnCuts]; + hESDTrueEtaPtY = new TH2F*[fnCuts]; + hESDTruePi0PtAlpha = new TH2F*[fnCuts]; + hESDTrueEtaPtAlpha = new TH2F*[fnCuts]; + hESDTruePi0YEtaLowPtGamma = new TH2F*[fnCuts]; + hESDTruePi0YEtaHighPtGamma = new TH2F*[fnCuts]; + hESDTrueEtaYEtaLowPtGamma = new TH2F*[fnCuts]; + hESDTrueEtaYEtaHighPtGamma = new TH2F*[fnCuts]; } } @@ -627,18 +700,12 @@ void AliAnalysisTaskGammaConvV1::UserCreateOutputObjects() fMCList[iCut]->Add(hMCDecayGammaSigmaPt[iCut]); hMCConvGammaPt[iCut] = new TH1F("MC_ConvGamma_Pt","MC_ConvGamma_Pt",250,0,25); fMCList[iCut]->Add(hMCConvGammaPt[iCut]); - hMCConvGammaRSPt[iCut] = new TH1F("MC_ConvGamma_RS_Pt","MC_ConvGamma_RS_Pt",250,0,25); - fMCList[iCut]->Add(hMCConvGammaRSPt[iCut]); - - if (fDoPhotonQA){ + + if (fDoPhotonQA > 0){ hMCConvGammaR[iCut] = new TH1F("MC_ConvGamma_R","MC_ConvGamma_R",800,0,200); fMCList[iCut]->Add(hMCConvGammaR[iCut]); hMCConvGammaEta[iCut] = new TH1F("MC_ConvGamma_Eta","MC_ConvGamma_Eta",100,-4,4); fMCList[iCut]->Add(hMCConvGammaEta[iCut]); - hMCConvGammaRSR[iCut] = new TH1F("MC_ConvGamma_RS_R","MC_ConvGamma_RS_R",800,0,200); - fMCList[iCut]->Add(hMCConvGammaRSR[iCut]); - hMCConvGammaRSEta[iCut] = new TH1F("MC_ConvGamma_RS_Eta","MC_ConvGamma_RS_Eta",100,-4,4); - fMCList[iCut]->Add(hMCConvGammaRSEta[iCut]); } if(fDoMesonAnalysis){ @@ -658,11 +725,11 @@ void AliAnalysisTaskGammaConvV1::UserCreateOutputObjects() hMCEtaInAccPt[iCut] = new TH1F("MC_EtaInAcc_Pt","MC_EtaInAcc_Pt",250,0,25); hMCEtaInAccPt[iCut]->Sumw2(); fMCList[iCut]->Add(hMCEtaInAccPt[iCut]); - if (fDoMesonQA){ - hMCPi0PtY[iCut] = new TH2F("MC_Pi0_Pt_Y","MC_Pi0_Pt_Y",250,0,25,20,-1,1); + if (fDoMesonQA > 0){ + hMCPi0PtY[iCut] = new TH2F("MC_Pi0_Pt_Y","MC_Pi0_Pt_Y",250,0,25,150,-1.5,1.5); hMCPi0PtY[iCut]->Sumw2(); fMCList[iCut]->Add(hMCPi0PtY[iCut]); - hMCEtaPtY[iCut] = new TH2F("MC_Eta_Pt_Y","MC_Eta_Pt_Y",250,0,25,20,-1,1); + hMCEtaPtY[iCut] = new TH2F("MC_Eta_Pt_Y","MC_Eta_Pt_Y",250,0,25,150,-1.5,1.5); hMCEtaPtY[iCut]->Sumw2(); fMCList[iCut]->Add(hMCEtaPtY[iCut]); hMCK0sPt[iCut] = new TH1F("MC_K0s_Pt","MC_K0s_Pt",250,0,25); @@ -671,7 +738,7 @@ void AliAnalysisTaskGammaConvV1::UserCreateOutputObjects() hMCK0sWOWeightPt[iCut] = new TH1F("MC_K0s_WOWeights_Pt","MC_K0s_WOWeights_Pt",250,0,25); hMCK0sWOWeightPt[iCut]->Sumw2(); fMCList[iCut]->Add(hMCK0sWOWeightPt[iCut]); - hMCK0sPtY[iCut] = new TH2F("MC_K0s_Pt_Y","MC_K0s_Pt_Y",250,0,25,20,-1,1); + hMCK0sPtY[iCut] = new TH2F("MC_K0s_Pt_Y","MC_K0s_Pt_Y",250,0,25,150,-1.5,1.5); hMCK0sPtY[iCut]->Sumw2(); fMCList[iCut]->Add(hMCK0sPtY[iCut]); @@ -727,10 +794,7 @@ void AliAnalysisTaskGammaConvV1::UserCreateOutputObjects() hESDTruePrimaryConvGammaESDPtMCPt[iCut] = new TH2F("ESD_TruePrimaryConvGammaESD_PtMCPt", "ESD_TruePrimaryConvGammaESD_PtMCPt",250,0,25,250,0,25); fTrueList[iCut]->Add(hESDTruePrimaryConvGammaESDPtMCPt[iCut]); - hESDTruePrimaryConvGammaRSESDPtMCPt[iCut] - = new TH2F("ESD_TruePrimaryConvGammaESD_RS_PtMCPt", "ESD_TruePrimaryConvGammaESD_RS_PtMCPt",250,0,25,250,0,25); - fTrueList[iCut]->Add(hESDTruePrimaryConvGammaRSESDPtMCPt[iCut]); - + if(fDoMesonAnalysis){ hESDTrueMotherInvMassPt[iCut] = new TH2F("ESD_TrueMother_InvMass_Pt","ESD_TrueMother_InvMass_Pt",800,0,0.8,250,0,25); fTrueList[iCut]->Add(hESDTrueMotherInvMassPt[iCut]); @@ -759,7 +823,7 @@ void AliAnalysisTaskGammaConvV1::UserCreateOutputObjects() fTrueList[iCut]->Add(hESDTrueSecondaryMotherFromEtaInvMassPt[iCut]); hESDTrueMotherDalitzInvMassPt[iCut] = new TH2F("ESD_TrueDalitz_InvMass_Pt","ESD_TrueDalitz_InvMass_Pt",800,0,0.8,250,0,25); fTrueList[iCut]->Add(hESDTrueMotherDalitzInvMassPt[iCut]); - if (fDoMesonQA){ + if (fDoMesonQA > 0){ hESDTruePrimaryPi0MCPtResolPt[iCut] = new TH2F("ESD_TruePrimaryPi0_MCPt_ResolPt","ESD_TruePrimaryPi0_ResolPt_MCPt",500,0,25,1000,-1.,1.); hESDTruePrimaryPi0MCPtResolPt[iCut]->Sumw2(); fTrueList[iCut]->Add(hESDTruePrimaryPi0MCPtResolPt[iCut]); @@ -774,6 +838,23 @@ void AliAnalysisTaskGammaConvV1::UserCreateOutputObjects() fTrueList[iCut]->Add(hESDTrueK0sWithPi0DaughterMCPt[iCut]); hESDTrueEtaWithPi0DaughterMCPt[iCut] = new TH1F("ESD_TrueEtaWithPi0Daughter_MCPt","ESD_TrueEtaWithPi0Daughter_MCPt",250,0,25); fTrueList[iCut]->Add(hESDTrueEtaWithPi0DaughterMCPt[iCut]); + hESDTruePi0PtY[iCut] = new TH2F("ESD_TruePi0_Pt_Y","ESD_TruePi0_Pt_Y",250,0,25,150,-1.5,1.5); + fTrueList[iCut]->Add(hESDTruePi0PtY[iCut]); + hESDTrueEtaPtY[iCut] = new TH2F("ESD_TrueEta_Pt_Y","ESD_TrueEta_Pt_Y",250,0,25,150,-1.5,1.5); + fTrueList[iCut]->Add(hESDTrueEtaPtY[iCut]); + hESDTruePi0PtAlpha[iCut] = new TH2F("ESD_TruePi0_Pt_Alpha","ESD_TruePi0_Pt_Alpha",250,0,25,100,0,1); + fTrueList[iCut]->Add(hESDTruePi0PtAlpha[iCut]); + hESDTrueEtaPtAlpha[iCut] = new TH2F("ESD_TrueEta_Pt_Alpha","ESD_TrueEta_Pt_Alpha",250,0,25,100,0,1); + fTrueList[iCut]->Add(hESDTrueEtaPtAlpha[iCut]); + + hESDTruePi0YEtaLowPtGamma[iCut] = new TH2F("ESD_TruePi0_Y_EtaLowPtGamma","ESD_TruePi0_Y_EtaLowPtGamma",150,-1.5,1.5,200,2,2); + fTrueList[iCut]->Add(hESDTruePi0YEtaLowPtGamma[iCut]); + hESDTruePi0YEtaHighPtGamma[iCut] = new TH2F("ESD_TruePi0_Y_EtaHighPtGamma","ESD_TruePi0_Y_EtaHighPtGamma",150,-1.5,1.5,200,2,2); + fTrueList[iCut]->Add(hESDTruePi0YEtaHighPtGamma[iCut]); + hESDTrueEtaYEtaLowPtGamma[iCut] = new TH2F("ESD_TrueEta_Y_EtaLowPtGamma","ESD_TrueEta_Y_EtaLowPtGamma",150,-1.5,1.5,200,2,2); + fTrueList[iCut]->Add(hESDTrueEtaYEtaLowPtGamma[iCut]); + hESDTrueEtaYEtaHighPtGamma[iCut] = new TH2F("ESD_TrueEta_Y_EtaHighPtGamma","ESD_TrueEta_Y_EtaHighPtGamma",150,-1.5,1.5,200,2,2); + fTrueList[iCut]->Add(hESDTrueEtaYEtaHighPtGamma[iCut]); } } } @@ -853,6 +934,10 @@ void AliAnalysisTaskGammaConvV1::UserExec(Option_t *) // ------------------- BeginEvent ---------------------------- + AliEventplane *EventPlane = fInputEvent->GetEventplane(); + if(fIsHeavyIon)fEventPlaneAngle = EventPlane->GetEventplane("V0",fInputEvent,2); + else fEventPlaneAngle=0.0; + if(fIsMC && fInputEvent->IsA()==AliAODEvent::Class() && !(fV0Reader->AreAODsRelabeled())){ RelabelAODPhotonCandidates(kTRUE); // In case of AODMC relabeling MC fV0Reader->RelabelAODs(kTRUE); @@ -988,12 +1073,17 @@ void AliAnalysisTaskGammaConvV1::ProcessPhotonCandidates() } if(!((AliConversionCuts*)fCutArray->At(fiCut))->PhotonIsSelected(PhotonCandidate,fInputEvent)) continue; + if(!((AliConversionCuts*)fCutArray->At(fiCut))->InPlaneOutOfPlaneCut(PhotonCandidate->GetPhotonPhi(),fEventPlaneAngle)) continue; if(!((AliConversionCuts*)fCutArray->At(fiCut))->UseElecSharingCut() && !((AliConversionCuts*)fCutArray->At(fiCut))->UseToCloseV0sCut()){ fGammaCandidates->Add(PhotonCandidate); // if no second loop is required add to events good gammas if(fIsFromMBHeader){ hESDConvGammaPt[fiCut]->Fill(PhotonCandidate->Pt()); + if (fDoPhotonQA > 0){ + hESDConvGammaR[fiCut]->Fill(PhotonCandidate->GetConversionRadius()); + hESDConvGammaEta[fiCut]->Fill(PhotonCandidate->Eta()); + } } if(fIsMC){ if(fInputEvent->IsA()==AliESDEvent::Class()) @@ -1001,7 +1091,7 @@ void AliAnalysisTaskGammaConvV1::ProcessPhotonCandidates() if(fInputEvent->IsA()==AliAODEvent::Class()) ProcessTruePhotonCandidatesAOD(PhotonCandidate); } - if (fIsFromMBHeader && fDoPhotonQA){ + if (fIsFromMBHeader && fDoPhotonQA == 2){ if (fIsHeavyIon && PhotonCandidate->Pt() > 0.399 && PhotonCandidate->Pt() < 12.){ fPtGamma = PhotonCandidate->Pt(); fDCAzPhoton = PhotonCandidate->GetDCAzToPrimVtx(); @@ -1044,6 +1134,10 @@ void AliAnalysisTaskGammaConvV1::ProcessPhotonCandidates() fGammaCandidates->Add(PhotonCandidate); if(fIsFromMBHeader){ hESDConvGammaPt[fiCut]->Fill(PhotonCandidate->Pt()); + if (fDoPhotonQA > 0){ + hESDConvGammaR[fiCut]->Fill(PhotonCandidate->GetConversionRadius()); + hESDConvGammaEta[fiCut]->Fill(PhotonCandidate->Eta()); + } } } if(fIsMC){ @@ -1053,7 +1147,7 @@ void AliAnalysisTaskGammaConvV1::ProcessPhotonCandidates() ProcessTruePhotonCandidatesAOD(PhotonCandidate); } else GammaCandidatesStepTwo->Add(PhotonCandidate); // Close v0s cut enabled -> add to list two - if (fIsFromMBHeader && fDoPhotonQA){ + if (fIsFromMBHeader && fDoPhotonQA == 2){ if (fIsHeavyIon && PhotonCandidate->Pt() > 0.399 && PhotonCandidate->Pt() < 12.){ fPtGamma = PhotonCandidate->Pt(); fDCAzPhoton = PhotonCandidate->GetDCAzToPrimVtx(); @@ -1088,6 +1182,10 @@ void AliAnalysisTaskGammaConvV1::ProcessPhotonCandidates() fGammaCandidates->Add(PhotonCandidate); // Add gamma to current cut TList if(fIsFromMBHeader){ hESDConvGammaPt[fiCut]->Fill(PhotonCandidate->Pt()); + if (fDoPhotonQA > 0){ + hESDConvGammaR[fiCut]->Fill(PhotonCandidate->GetConversionRadius()); + hESDConvGammaEta[fiCut]->Fill(PhotonCandidate->Eta()); + } } if(fIsMC){ if(fInputEvent->IsA()==AliESDEvent::Class()) @@ -1188,9 +1286,8 @@ void AliAnalysisTaskGammaConvV1::ProcessTruePhotonCandidatesAOD(AliAODConversion if(fIsFromMBHeader){ iPhotonMCInfo = 6; hESDTruePrimaryConvGammaPt[fiCut]->Fill(TruePhotonCandidate->Pt()); - hESDTruePrimaryConvGammaRSESDPtMCPt[fiCut]->Fill(TruePhotonCandidate->Pt(),Photon->Pt()); // Allways Filled + hESDTruePrimaryConvGammaESDPtMCPt[fiCut]->Fill(TruePhotonCandidate->Pt(),Photon->Pt()); // Allways Filled } - hESDTruePrimaryConvGammaESDPtMCPt[fiCut]->Fill(TruePhotonCandidate->Pt(),Photon->Pt()); // Allways Filled // (Not Filled for i6, Extra Signal Gamma (parambox) are secondary) } else{ @@ -1272,10 +1369,10 @@ void AliAnalysisTaskGammaConvV1::ProcessTruePhotonCandidates(AliAODConversionPho // Count just primary MC Gammas as true --> For Ratio esdtruegamma / mcconvgamma if(fIsFromMBHeader){ iPhotonMCInfo = 6; - hESDTruePrimaryConvGammaPt[fiCut]->Fill(TruePhotonCandidate->Pt()); - hESDTruePrimaryConvGammaRSESDPtMCPt[fiCut]->Fill(TruePhotonCandidate->Pt(),Photon->Pt()); // Allways Filled + hESDTruePrimaryConvGammaPt[fiCut]->Fill(TruePhotonCandidate->Pt()); + hESDTruePrimaryConvGammaESDPtMCPt[fiCut]->Fill(TruePhotonCandidate->Pt(),Photon->Pt()); // Allways Filled + } - hESDTruePrimaryConvGammaESDPtMCPt[fiCut]->Fill(TruePhotonCandidate->Pt(),Photon->Pt()); // Allways Filled // (Not Filled for i6, Extra Signal Gamma (parambox) are secondary) } else{ @@ -1312,15 +1409,14 @@ void AliAnalysisTaskGammaConvV1::ProcessAODMCParticles() if (!particle) continue; if (!particle->IsPrimary()) continue; - Bool_t mcIsFromMB = kTRUE; Int_t isMCFromMBHeader = -1; if(((AliConversionCuts*)fCutArray->At(fiCut))->GetSignalRejection() != 0){ isMCFromMBHeader = ((AliConversionCuts*)fCutArray->At(fiCut))->IsParticleFromBGEvent(i, fMCStack, fInputEvent); if(isMCFromMBHeader == 0 && ((AliConversionCuts*)fCutArray->At(fiCut))->GetSignalRejection() != 3) continue; - if(isMCFromMBHeader != 2) mcIsFromMB = kFALSE; } - + + if(!((AliConversionCuts*)fCutArray->At(fiCut))->InPlaneOutOfPlaneCut(particle->Phi(),fEventPlaneAngle,kFALSE)) continue; if(((AliConversionCuts*)fCutArray->At(fiCut))->PhotonIsSelectedAODMC(particle,AODMCTrackArray,kFALSE)){ hMCAllGammaPt[fiCut]->Fill(particle->Pt()); // All MC Gamma if(particle->GetMother() >-1){ // Meson Decay Gamma @@ -1359,21 +1455,14 @@ void AliAnalysisTaskGammaConvV1::ProcessAODMCParticles() } } hMCConvGammaPt[fiCut]->Fill(particle->Pt()); - if (fDoPhotonQA){ + if (fDoPhotonQA > 0){ hMCConvGammaR[fiCut]->Fill(rConv); hMCConvGammaEta[fiCut]->Fill(particle->Eta()); } - if(mcIsFromMB){ - hMCConvGammaRSPt[fiCut]->Fill(particle->Pt()); - if (fDoPhotonQA){ - hMCConvGammaRSR[fiCut]->Fill(rConv); - hMCConvGammaRSEta[fiCut]->Fill(particle->Eta()); - } - } } // Converted MC Gamma if(fDoMesonAnalysis){ - if(particle->GetPdgCode() == 310 && fDoMesonQA){ + if(particle->GetPdgCode() == 310 && fDoMesonQA > 0){ Double_t mesonY = 10.; if(particle->E() - particle->Pz() == 0 || particle->E() + particle->Pz() == 0){ mesonY=10.-((AliConversionCuts*)fCutArray->At(fiCut))->GetEtaShift(); @@ -1414,15 +1503,17 @@ void AliAnalysisTaskGammaConvV1::ProcessAODMCParticles() if(particle->GetPdgCode() == 111){ hMCPi0Pt[fiCut]->Fill(particle->Pt(),weighted); // All MC Pi0 hMCPi0WOWeightPt[fiCut]->Fill(particle->Pt()); - if (fDoMesonQA) hMCPi0PtY[fiCut]->Fill(particle->Pt(),mesonY,weighted); // All MC Pi0 + if (fDoMesonQA > 0) hMCPi0PtY[fiCut]->Fill(particle->Pt(),mesonY,weighted); // All MC Pi0 } else if(particle->GetPdgCode() == 221){ hMCEtaPt[fiCut]->Fill(particle->Pt(),weighted); // All MC Eta - if (fDoMesonQA) hMCEtaPtY[fiCut]->Fill(particle->Pt(),mesonY,weighted); // All MC Pi0 + if (fDoMesonQA > 0) hMCEtaPtY[fiCut]->Fill(particle->Pt(),mesonY,weighted); // All MC Pi0 } // Check the acceptance for both gammas if(((AliConversionCuts*)fCutArray->At(fiCut))->PhotonIsSelectedAODMC(daughter0,AODMCTrackArray,kFALSE) && - ((AliConversionCuts*)fCutArray->At(fiCut))->PhotonIsSelectedAODMC(daughter1,AODMCTrackArray,kFALSE) ){ + ((AliConversionCuts*)fCutArray->At(fiCut))->PhotonIsSelectedAODMC(daughter1,AODMCTrackArray,kFALSE) && + ((AliConversionCuts*)fCutArray->At(fiCut))->InPlaneOutOfPlaneCut(daughter0->Phi(),fEventPlaneAngle,kFALSE) && + ((AliConversionCuts*)fCutArray->At(fiCut))->InPlaneOutOfPlaneCut(daughter1->Phi(),fEventPlaneAngle,kFALSE)){ if(particle->GetPdgCode() == 111){ hMCPi0InAccPt[fiCut]->Fill(particle->Pt(),weighted); // MC Pi0 with gamma in acc @@ -1442,15 +1533,14 @@ void AliAnalysisTaskGammaConvV1::ProcessMCParticles() TParticle* particle = (TParticle *)fMCStack->Particle(i); if (!particle) continue; - Bool_t mcIsFromMB = kTRUE; Int_t isMCFromMBHeader = -1; if(((AliConversionCuts*)fCutArray->At(fiCut))->GetSignalRejection() != 0){ isMCFromMBHeader = ((AliConversionCuts*)fCutArray->At(fiCut))->IsParticleFromBGEvent(i, fMCStack, fInputEvent); if(isMCFromMBHeader == 0 && ((AliConversionCuts*)fCutArray->At(fiCut))->GetSignalRejection() != 3) continue; - if(isMCFromMBHeader != 2) mcIsFromMB = kFALSE; } + if(!((AliConversionCuts*)fCutArray->At(fiCut))->InPlaneOutOfPlaneCut(particle->Phi(),fEventPlaneAngle,kFALSE)) continue; if(((AliConversionCuts*)fCutArray->At(fiCut))->PhotonIsSelectedMC(particle,fMCStack,kFALSE)){ hMCAllGammaPt[fiCut]->Fill(particle->Pt()); // All MC Gamma if(particle->GetMother(0) >-1){ // Meson Decay Gamma @@ -1481,20 +1571,13 @@ void AliAnalysisTaskGammaConvV1::ProcessMCParticles() } if(((AliConversionCuts*)fCutArray->At(fiCut))->PhotonIsSelectedMC(particle,fMCStack,kTRUE)){ hMCConvGammaPt[fiCut]->Fill(particle->Pt()); - if (fDoPhotonQA){ + if (fDoPhotonQA > 0){ hMCConvGammaR[fiCut]->Fill(((TParticle*)fMCStack->Particle(particle->GetFirstDaughter()))->R()); hMCConvGammaEta[fiCut]->Fill(particle->Eta()); } - if(mcIsFromMB){ - hMCConvGammaRSPt[fiCut]->Fill(particle->Pt()); - if (fDoPhotonQA){ - hMCConvGammaRSR[fiCut]->Fill(((TParticle*)fMCStack->Particle(particle->GetFirstDaughter()))->R()); - hMCConvGammaRSEta[fiCut]->Fill(particle->Eta()); - } - } } // Converted MC Gamma if(fDoMesonAnalysis){ - if(particle->GetPdgCode() == 310 && fDoMesonQA){ + if(particle->GetPdgCode() == 310 && fDoMesonQA > 0){ Double_t mesonY = 10.; if(particle->Energy() - particle->Pz() == 0 || particle->Energy() + particle->Pz() == 0){ mesonY=10.-((AliConversionCuts*)fCutArray->At(fiCut))->GetEtaShift(); @@ -1536,15 +1619,17 @@ void AliAnalysisTaskGammaConvV1::ProcessMCParticles() if(particle->GetPdgCode() == 111){ hMCPi0Pt[fiCut]->Fill(particle->Pt(),weighted); // All MC Pi0 hMCPi0WOWeightPt[fiCut]->Fill(particle->Pt()); - if (fDoMesonQA) hMCPi0PtY[fiCut]->Fill(particle->Pt(),mesonY,weighted); // All MC Pi0 + if (fDoMesonQA > 0) hMCPi0PtY[fiCut]->Fill(particle->Pt(),mesonY,weighted); // All MC Pi0 } else if(particle->GetPdgCode() == 221){ hMCEtaPt[fiCut]->Fill(particle->Pt(),weighted); // All MC Eta - if (fDoMesonQA) hMCEtaPtY[fiCut]->Fill(particle->Pt(),mesonY,weighted); // All MC Pi0 + if (fDoMesonQA > 0) hMCEtaPtY[fiCut]->Fill(particle->Pt(),mesonY,weighted); // All MC Pi0 } // Check the acceptance for both gammas if(((AliConversionCuts*)fCutArray->At(fiCut))->PhotonIsSelectedMC(daughter0,fMCStack,kFALSE) && - ((AliConversionCuts*)fCutArray->At(fiCut))->PhotonIsSelectedMC(daughter1,fMCStack,kFALSE) ){ + ((AliConversionCuts*)fCutArray->At(fiCut))->PhotonIsSelectedMC(daughter1,fMCStack,kFALSE) && + ((AliConversionCuts*)fCutArray->At(fiCut))->InPlaneOutOfPlaneCut(daughter0->Phi(),fEventPlaneAngle,kFALSE) && + ((AliConversionCuts*)fCutArray->At(fiCut))->InPlaneOutOfPlaneCut(daughter1->Phi(),fEventPlaneAngle,kFALSE)){ if(particle->GetPdgCode() == 111){ hMCPi0InAccPt[fiCut]->Fill(particle->Pt(),weighted); // MC Pi0 with gamma in acc @@ -1582,6 +1667,31 @@ void AliAnalysisTaskGammaConvV1::CalculatePi0Candidates(){ hESDMotherInvMassPt[fiCut]->Fill(pi0cand->M(),pi0cand->Pt()); if(pi0cand->GetAlpha()<0.1) hESDMotherInvMassEalpha[fiCut]->Fill(pi0cand->M(),pi0cand->E()); + + if (fDoMesonQA > 0){ + if ( pi0cand->M() < 0.17){ + hESDMotherPi0PtY[fiCut]->Fill(pi0cand->Pt(),abs(pi0cand->Rapidity()-((AliConversionCuts*)fCutArray->At(fiCut))->GetEtaShift())); + hESDMotherPi0PtAlpha[fiCut]->Fill(pi0cand->Pt(),pi0cand->GetAlpha()); + if (gamma0->Pt() < gamma1->Pt()){ + hESDMotherPi0YEtaLowPtGamma[fiCut]->Fill(abs(pi0cand->Rapidity()-((AliConversionCuts*)fCutArray->At(fiCut))->GetEtaShift()),gamma0->Eta()); + hESDMotherPi0YEtaHighPtGamma[fiCut]->Fill(abs(pi0cand->Rapidity()-((AliConversionCuts*)fCutArray->At(fiCut))->GetEtaShift()),gamma1->Eta()); + } else { + hESDMotherPi0YEtaLowPtGamma[fiCut]->Fill(abs(pi0cand->Rapidity()-((AliConversionCuts*)fCutArray->At(fiCut))->GetEtaShift()),gamma1->Eta()); + hESDMotherPi0YEtaHighPtGamma[fiCut]->Fill(abs(pi0cand->Rapidity()-((AliConversionCuts*)fCutArray->At(fiCut))->GetEtaShift()),gamma0->Eta()); + } + } + if ( pi0cand->M() > 0.17 && pi0cand->M() < 0.7){ + hESDMotherEtaPtY[fiCut]->Fill(pi0cand->Pt(),abs(pi0cand->Rapidity()-((AliConversionCuts*)fCutArray->At(fiCut))->GetEtaShift())); + hESDMotherEtaPtAlpha[fiCut]->Fill(pi0cand->Pt(),pi0cand->GetAlpha()); + if (gamma0->Pt() < gamma1->Pt()){ + hESDMotherEtaYEtaLowPtGamma[fiCut]->Fill(abs(pi0cand->Rapidity()-((AliConversionCuts*)fCutArray->At(fiCut))->GetEtaShift()),gamma0->Eta()); + hESDMotherEtaYEtaHighPtGamma[fiCut]->Fill(abs(pi0cand->Rapidity()-((AliConversionCuts*)fCutArray->At(fiCut))->GetEtaShift()),gamma1->Eta()); + } else { + hESDMotherEtaYEtaLowPtGamma[fiCut]->Fill(abs(pi0cand->Rapidity()-((AliConversionCuts*)fCutArray->At(fiCut))->GetEtaShift()),gamma1->Eta()); + hESDMotherEtaYEtaHighPtGamma[fiCut]->Fill(abs(pi0cand->Rapidity()-((AliConversionCuts*)fCutArray->At(fiCut))->GetEtaShift()),gamma0->Eta()); + } + } + } if(((AliConversionMesonCuts*)fMesonCutArray->At(fiCut))->DoBGCalculation()){ Int_t zbin = 0; Int_t mbin = 0; @@ -1613,7 +1723,7 @@ void AliAnalysisTaskGammaConvV1::CalculatePi0Candidates(){ if(fInputEvent->IsA()==AliAODEvent::Class()) ProcessTrueMesonCandidatesAOD(pi0cand,gamma0,gamma1); } - if (fDoMesonQA){ + if (fDoMesonQA == 2){ fInvMass = pi0cand->M(); fPt = pi0cand->Pt(); if (abs(gamma0->GetDCAzToPrimVtx()) < abs(gamma1->GetDCAzToPrimVtx())){ @@ -1725,6 +1835,30 @@ void AliAnalysisTaskGammaConvV1::ProcessTrueMesonCandidates(AliAODConversionMoth if(isTruePi0 || isTrueEta){// True Pion or Eta hESDTrueMotherInvMassPt[fiCut]->Fill(Pi0Candidate->M(),Pi0Candidate->Pt()); + if (fDoMesonQA > 0){ + if (isTruePi0){ + hESDTruePi0PtY[fiCut]->Fill(Pi0Candidate->Pt(),abs(Pi0Candidate->Rapidity()-((AliConversionCuts*)fCutArray->At(fiCut))->GetEtaShift())); + hESDTruePi0PtAlpha[fiCut]->Fill(Pi0Candidate->Pt(),Pi0Candidate->GetAlpha()); + if (TrueGammaCandidate0->Pt() < TrueGammaCandidate1->Pt()){ + hESDMotherPi0YEtaLowPtGamma[fiCut]->Fill(abs(Pi0Candidate->Rapidity()-((AliConversionCuts*)fCutArray->At(fiCut))->GetEtaShift()),TrueGammaCandidate0->Eta()); + hESDMotherPi0YEtaHighPtGamma[fiCut]->Fill(abs(Pi0Candidate->Rapidity()-((AliConversionCuts*)fCutArray->At(fiCut))->GetEtaShift()),TrueGammaCandidate1->Eta()); + } else { + hESDMotherPi0YEtaLowPtGamma[fiCut]->Fill(abs(Pi0Candidate->Rapidity()-((AliConversionCuts*)fCutArray->At(fiCut))->GetEtaShift()),TrueGammaCandidate1->Eta()); + hESDMotherPi0YEtaHighPtGamma[fiCut]->Fill(abs(Pi0Candidate->Rapidity()-((AliConversionCuts*)fCutArray->At(fiCut))->GetEtaShift()),TrueGammaCandidate0->Eta()); + } + + } else if (isTrueEta){ + hESDTrueEtaPtY[fiCut]->Fill(Pi0Candidate->Pt(),abs(Pi0Candidate->Rapidity()-((AliConversionCuts*)fCutArray->At(fiCut))->GetEtaShift())); + hESDTrueEtaPtAlpha[fiCut]->Fill(Pi0Candidate->Pt(),Pi0Candidate->GetAlpha()); + if (TrueGammaCandidate0->Pt() < TrueGammaCandidate1->Pt()){ + hESDMotherEtaYEtaLowPtGamma[fiCut]->Fill(abs(Pi0Candidate->Rapidity()-((AliConversionCuts*)fCutArray->At(fiCut))->GetEtaShift()),TrueGammaCandidate0->Eta()); + hESDMotherEtaYEtaHighPtGamma[fiCut]->Fill(abs(Pi0Candidate->Rapidity()-((AliConversionCuts*)fCutArray->At(fiCut))->GetEtaShift()),TrueGammaCandidate1->Eta()); + } else { + hESDMotherEtaYEtaLowPtGamma[fiCut]->Fill(abs(Pi0Candidate->Rapidity()-((AliConversionCuts*)fCutArray->At(fiCut))->GetEtaShift()),TrueGammaCandidate1->Eta()); + hESDMotherEtaYEtaHighPtGamma[fiCut]->Fill(abs(Pi0Candidate->Rapidity()-((AliConversionCuts*)fCutArray->At(fiCut))->GetEtaShift()),TrueGammaCandidate0->Eta()); + } + } + } if(gamma0MotherLabel >= MCStack->GetNprimary()){ // Secondary Meson Int_t secMotherLabel = ((TParticle*)MCStack->Particle(gamma1MotherLabel))->GetMother(0); Float_t weightedSec= 1; @@ -1738,13 +1872,13 @@ void AliAnalysisTaskGammaConvV1::ProcessTrueMesonCandidates(AliAODConversionMoth if(MCStack->Particle(secMotherLabel)->GetPdgCode()==310){ iMesonMCInfo = 4; hESDTrueSecondaryMotherFromK0sInvMassPt[fiCut]->Fill(Pi0Candidate->M(),Pi0Candidate->Pt(),weightedSec); - if (fDoMesonQA)hESDTrueK0sWithPi0DaughterMCPt[fiCut] + if (fDoMesonQA > 0)hESDTrueK0sWithPi0DaughterMCPt[fiCut] ->Fill(MCStack->Particle(secMotherLabel)->Pt()); } if(MCStack->Particle(secMotherLabel)->GetPdgCode()==221){ iMesonMCInfo = 3; hESDTrueSecondaryMotherFromEtaInvMassPt[fiCut]->Fill(Pi0Candidate->M(),Pi0Candidate->Pt(),weightedSec); - if (fDoMesonQA)hESDTrueEtaWithPi0DaughterMCPt[fiCut] + if (fDoMesonQA > 0)hESDTrueEtaWithPi0DaughterMCPt[fiCut] ->Fill(MCStack->Particle(secMotherLabel)->Pt()); } } @@ -1760,7 +1894,9 @@ void AliAnalysisTaskGammaConvV1::ProcessTrueMesonCandidates(AliAODConversionMoth hESDTruePrimaryMotherInvMassPt[fiCut]->Fill(Pi0Candidate->M(),Pi0Candidate->Pt(),weighted); hESDTruePrimaryMotherW0WeightingInvMassPt[fiCut]->Fill(Pi0Candidate->M(),Pi0Candidate->Pt()); pESDTruePrimaryMotherWeightsInvMassPt[fiCut]->Fill(Pi0Candidate->M(),Pi0Candidate->Pt(),weighted); - if (fDoMesonQA){ + + + if (fDoMesonQA > 0){ if(isTruePi0){ // Only primary pi0 for resolution hESDTruePrimaryPi0MCPtResolPt[fiCut]->Fill(((TParticle*)MCStack->Particle(gamma1MotherLabel))->Pt(),(Pi0Candidate->Pt()-((TParticle*)MCStack->Particle(gamma1MotherLabel))->Pt())/((TParticle*)MCStack->Particle(gamma1MotherLabel))->Pt(),weighted); } @@ -1770,7 +1906,7 @@ void AliAnalysisTaskGammaConvV1::ProcessTrueMesonCandidates(AliAODConversionMoth } } } else if(!isTruePi0 && !isTrueEta){ // Background - if (fDoMesonQA){ + if (fDoMesonQA > 0){ if(gamma0MotherLabel>-1 && gamma1MotherLabel>-1){ // Both Tracks are Photons and have a mother but not Pi0 or Eta hESDTrueBckGGInvMassPt[fiCut]->Fill(Pi0Candidate->M(),Pi0Candidate->Pt()); iMesonMCInfo = 1; @@ -1783,7 +1919,7 @@ void AliAnalysisTaskGammaConvV1::ProcessTrueMesonCandidates(AliAODConversionMoth iMesonMCInfo = 5; hESDTrueMotherDalitzInvMassPt[fiCut]->Fill(Pi0Candidate->M(),Pi0Candidate->Pt()); } else if (gamma0DalitzCand || gamma1DalitzCand){ - if (fDoMesonQA)hESDTrueBckContInvMassPt[fiCut]->Fill(Pi0Candidate->M(),Pi0Candidate->Pt()); + if (fDoMesonQA > 0)hESDTrueBckContInvMassPt[fiCut]->Fill(Pi0Candidate->M(),Pi0Candidate->Pt()); } } } @@ -1887,7 +2023,30 @@ void AliAnalysisTaskGammaConvV1::ProcessTrueMesonCandidatesAOD(AliAODConversionM if(isTruePi0 || isTrueEta){// True Pion or Eta hESDTrueMotherInvMassPt[fiCut]->Fill(Pi0Candidate->M(),Pi0Candidate->Pt()); - + if (fDoMesonQA > 0){ + if (isTruePi0){ + hESDTruePi0PtY[fiCut]->Fill(Pi0Candidate->Pt(),abs(Pi0Candidate->Rapidity()-((AliConversionCuts*)fCutArray->At(fiCut))->GetEtaShift())); + hESDTruePi0PtAlpha[fiCut]->Fill(Pi0Candidate->Pt(),Pi0Candidate->GetAlpha()); + if (TrueGammaCandidate0->Pt() < TrueGammaCandidate1->Pt()){ + hESDMotherPi0YEtaLowPtGamma[fiCut]->Fill(abs(Pi0Candidate->Rapidity()-((AliConversionCuts*)fCutArray->At(fiCut))->GetEtaShift()),TrueGammaCandidate0->Eta()); + hESDMotherPi0YEtaHighPtGamma[fiCut]->Fill(abs(Pi0Candidate->Rapidity()-((AliConversionCuts*)fCutArray->At(fiCut))->GetEtaShift()),TrueGammaCandidate1->Eta()); + } else { + hESDMotherPi0YEtaLowPtGamma[fiCut]->Fill(abs(Pi0Candidate->Rapidity()-((AliConversionCuts*)fCutArray->At(fiCut))->GetEtaShift()),TrueGammaCandidate1->Eta()); + hESDMotherPi0YEtaHighPtGamma[fiCut]->Fill(abs(Pi0Candidate->Rapidity()-((AliConversionCuts*)fCutArray->At(fiCut))->GetEtaShift()),TrueGammaCandidate0->Eta()); + } + } else if (isTrueEta){ + hESDTrueEtaPtY[fiCut]->Fill(Pi0Candidate->Pt(),abs(Pi0Candidate->Rapidity()-((AliConversionCuts*)fCutArray->At(fiCut))->GetEtaShift())); + hESDTrueEtaPtAlpha[fiCut]->Fill(Pi0Candidate->Pt(),Pi0Candidate->GetAlpha()); + if (TrueGammaCandidate0->Pt() < TrueGammaCandidate1->Pt()){ + hESDMotherEtaYEtaLowPtGamma[fiCut]->Fill(abs(Pi0Candidate->Rapidity()-((AliConversionCuts*)fCutArray->At(fiCut))->GetEtaShift()),TrueGammaCandidate0->Eta()); + hESDMotherEtaYEtaHighPtGamma[fiCut]->Fill(abs(Pi0Candidate->Rapidity()-((AliConversionCuts*)fCutArray->At(fiCut))->GetEtaShift()),TrueGammaCandidate1->Eta()); + } else { + hESDMotherEtaYEtaLowPtGamma[fiCut]->Fill(abs(Pi0Candidate->Rapidity()-((AliConversionCuts*)fCutArray->At(fiCut))->GetEtaShift()),TrueGammaCandidate1->Eta()); + hESDMotherEtaYEtaHighPtGamma[fiCut]->Fill(abs(Pi0Candidate->Rapidity()-((AliConversionCuts*)fCutArray->At(fiCut))->GetEtaShift()),TrueGammaCandidate0->Eta()); + } + + } + } if(!(static_cast(AODMCTrackArray->At(gamma0MotherLabel))->IsPrimary())){ // Secondary Meson Int_t secMotherLabel = static_cast(AODMCTrackArray->At(gamma1MotherLabel))->GetMother(); Float_t weightedSec= 1; @@ -1901,13 +2060,13 @@ void AliAnalysisTaskGammaConvV1::ProcessTrueMesonCandidatesAOD(AliAODConversionM if(static_cast(AODMCTrackArray->At(secMotherLabel))->GetPdgCode()==310){ iMesonMCInfo = 4; hESDTrueSecondaryMotherFromK0sInvMassPt[fiCut]->Fill(Pi0Candidate->M(),Pi0Candidate->Pt(),weightedSec); - if (fDoMesonQA)hESDTrueK0sWithPi0DaughterMCPt[fiCut] + if (fDoMesonQA > 0)hESDTrueK0sWithPi0DaughterMCPt[fiCut] ->Fill(static_cast(AODMCTrackArray->At(secMotherLabel))->Pt()); } if(static_cast(AODMCTrackArray->At(secMotherLabel))->GetPdgCode()==221){ iMesonMCInfo = 3; hESDTrueSecondaryMotherFromEtaInvMassPt[fiCut]->Fill(Pi0Candidate->M(),Pi0Candidate->Pt(),weightedSec); - if (fDoMesonQA)hESDTrueEtaWithPi0DaughterMCPt[fiCut] + if (fDoMesonQA > 0)hESDTrueEtaWithPi0DaughterMCPt[fiCut] ->Fill(static_cast(AODMCTrackArray->At(secMotherLabel))->Pt()); } } @@ -1924,10 +2083,11 @@ void AliAnalysisTaskGammaConvV1::ProcessTrueMesonCandidatesAOD(AliAODConversionM hESDTruePrimaryMotherW0WeightingInvMassPt[fiCut]->Fill(Pi0Candidate->M(),Pi0Candidate->Pt()); pESDTruePrimaryMotherWeightsInvMassPt[fiCut]->Fill(Pi0Candidate->M(),Pi0Candidate->Pt(),weighted); - if (fDoMesonQA){ + if (fDoMesonQA > 0){ if(isTruePi0){ // Only primary pi0 for resolution hESDTruePrimaryPi0MCPtResolPt[fiCut]->Fill(static_cast(AODMCTrackArray->At(gamma1MotherLabel))->Pt(), (Pi0Candidate->Pt()-static_cast(AODMCTrackArray->At(gamma1MotherLabel))->Pt())/static_cast(AODMCTrackArray->At(gamma1MotherLabel))->Pt(),weighted); + } if (isTrueEta){ // Only primary eta for resolution hESDTruePrimaryEtaMCPtResolPt[fiCut]->Fill(static_cast(AODMCTrackArray->At(gamma1MotherLabel))->Pt(), @@ -1936,7 +2096,7 @@ void AliAnalysisTaskGammaConvV1::ProcessTrueMesonCandidatesAOD(AliAODConversionM } } } else if(!isTruePi0 && !isTrueEta) { // Background - if (fDoMesonQA){ + if (fDoMesonQA > 0){ if(gamma0MotherLabel>-1 && gamma1MotherLabel>-1){ // Both Tracks are Photons and have a mother but not Pi0 or Eta hESDTrueBckGGInvMassPt[fiCut]->Fill(Pi0Candidate->M(),Pi0Candidate->Pt()); iMesonMCInfo = 1; @@ -1949,7 +2109,7 @@ void AliAnalysisTaskGammaConvV1::ProcessTrueMesonCandidatesAOD(AliAODConversionM iMesonMCInfo = 5; hESDTrueMotherDalitzInvMassPt[fiCut]->Fill(Pi0Candidate->M(),Pi0Candidate->Pt()); } else if (gamma0DalitzCand || gamma1DalitzCand){ - if (fDoMesonQA)hESDTrueBckContInvMassPt[fiCut]->Fill(Pi0Candidate->M(),Pi0Candidate->Pt()); + if (fDoMesonQA > 0)hESDTrueBckContInvMassPt[fiCut]->Fill(Pi0Candidate->M(),Pi0Candidate->Pt()); } } } @@ -2017,6 +2177,9 @@ void AliAnalysisTaskGammaConvV1::CalculateBackground(){ if(fMoveParticleAccordingToVertex == kTRUE){ MoveParticleAccordingToVertex(&previousGoodV0,bgEventVertex); } + if(fIsHeavyIon){ + RotateParticleAccordingToEP(&previousGoodV0,bgEventVertex->fEP,fEventPlaneAngle); + } AliAODConversionMother *backgroundCandidate = new AliAODConversionMother(¤tEventGoodV0,&previousGoodV0); backgroundCandidate->CalculateDistanceOfClossetApproachToPrimVtx(fInputEvent->GetPrimaryVertex()); @@ -2048,6 +2211,10 @@ void AliAnalysisTaskGammaConvV1::CalculateBackground(){ if(fMoveParticleAccordingToVertex == kTRUE){ MoveParticleAccordingToVertex(&previousGoodV0,bgEventVertex); } + if(fIsHeavyIon){ + RotateParticleAccordingToEP(&previousGoodV0,bgEventVertex->fEP,fEventPlaneAngle); + } + AliAODConversionMother *backgroundCandidate = new AliAODConversionMother(¤tEventGoodV0,&previousGoodV0); backgroundCandidate->CalculateDistanceOfClossetApproachToPrimVtx(fInputEvent->GetPrimaryVertex()); @@ -2152,6 +2319,16 @@ void AliAnalysisTaskGammaConvV1::RotateParticle(AliAODConversionPhoton *gamma){ Double_t rotationValue = fRandom.Rndm()*2*nRadiansPM + TMath::Pi()-nRadiansPM; gamma->RotateZ(rotationValue); } + +//________________________________________________________________________ +void AliAnalysisTaskGammaConvV1::RotateParticleAccordingToEP(AliAODConversionPhoton *gamma, Double_t previousEventEP, Double_t thisEventEP){ + + previousEventEP=previousEventEP+TMath::Pi(); + thisEventEP=thisEventEP+TMath::Pi(); + Double_t rotationValue= thisEventEP-previousEventEP; + gamma->RotateZ(rotationValue); +} + //________________________________________________________________________ void AliAnalysisTaskGammaConvV1::MoveParticleAccordingToVertex(AliAODConversionPhoton* particle,const AliGammaConversionAODBGHandler::GammaConversionVertex *vertex){ //see header file for documentation @@ -2168,10 +2345,10 @@ void AliAnalysisTaskGammaConvV1::UpdateEventByEventData(){ //see header file for documentation if(fGammaCandidates->GetEntries() >0 ){ if(((AliConversionMesonCuts*)fMesonCutArray->At(fiCut))->UseTrackMultiplicity()){ - fBGHandler[fiCut]->AddEvent(fGammaCandidates,fInputEvent->GetPrimaryVertex()->GetX(),fInputEvent->GetPrimaryVertex()->GetY(),fInputEvent->GetPrimaryVertex()->GetZ(),fV0Reader->GetNumberOfPrimaryTracks()); + fBGHandler[fiCut]->AddEvent(fGammaCandidates,fInputEvent->GetPrimaryVertex()->GetX(),fInputEvent->GetPrimaryVertex()->GetY(),fInputEvent->GetPrimaryVertex()->GetZ(),fV0Reader->GetNumberOfPrimaryTracks(),fEventPlaneAngle); } else{ // means we use #V0s for multiplicity - fBGHandler[fiCut]->AddEvent(fGammaCandidates,fInputEvent->GetPrimaryVertex()->GetX(),fInputEvent->GetPrimaryVertex()->GetY(),fInputEvent->GetPrimaryVertex()->GetZ(),fGammaCandidates->GetEntries()); + fBGHandler[fiCut]->AddEvent(fGammaCandidates,fInputEvent->GetPrimaryVertex()->GetX(),fInputEvent->GetPrimaryVertex()->GetY(),fInputEvent->GetPrimaryVertex()->GetZ(),fGammaCandidates->GetEntries(),fEventPlaneAngle); } } } diff --git a/PWGGA/GammaConv/AliAnalysisTaskGammaConvV1.h b/PWGGA/GammaConv/AliAnalysisTaskGammaConvV1.h index 2feae462496..03e8a9bf3b3 100644 --- a/PWGGA/GammaConv/AliAnalysisTaskGammaConvV1.h +++ b/PWGGA/GammaConv/AliAnalysisTaskGammaConvV1.h @@ -36,8 +36,8 @@ class AliAnalysisTaskGammaConvV1 : public AliAnalysisTaskSE { void SetIsMC(Bool_t isMC){fIsMC=isMC;} void SetDoMesonAnalysis(Bool_t flag){fDoMesonAnalysis = flag;} - void SetDoMesonQA(Bool_t flag){fDoMesonQA = flag;} - void SetDoPhotonQA(Bool_t flag){fDoPhotonQA = flag;} + void SetDoMesonQA(Int_t flag){fDoMesonQA = flag;} + void SetDoPhotonQA(Int_t flag){fDoPhotonQA = flag;} void ProcessPhotonCandidates(); void CalculatePi0Candidates(); void CalculateBackground(); @@ -50,6 +50,7 @@ class AliAnalysisTaskGammaConvV1 : public AliAnalysisTaskSE { void ProcessTrueMesonCandidates( AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate0, AliAODConversionPhoton *TrueGammaCandidate1); void ProcessTrueMesonCandidatesAOD(AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate0, AliAODConversionPhoton *TrueGammaCandidate1); void RotateParticle(AliAODConversionPhoton *gamma); + void RotateParticleAccordingToEP(AliAODConversionPhoton *gamma, Double_t previousEventEP, Double_t thisEventEP); void SetConversionCutList(Int_t nCuts, TList *CutArray){ fnCuts = nCuts; fCutArray = CutArray; @@ -79,7 +80,6 @@ class AliAnalysisTaskGammaConvV1 : public AliAnalysisTaskSE { TList **fPhotonDCAList; TList **fMesonDCAList; TList **fTrueList; - TList **fTrueMotherRapList; TList **fMCList; TList **fHeaderNameList; TList *fOutputContainer; @@ -90,6 +90,8 @@ class AliAnalysisTaskGammaConvV1 : public AliAnalysisTaskSE { TList *fMesonCutArray; AliConversionMesonCuts *fMesonCuts; TH1F **hESDConvGammaPt; + TH1F **hESDConvGammaR; + TH1F **hESDConvGammaEta; TTree **tESDConvGammaPtDcazCat; Float_t fPtGamma; Float_t fDCAzPhoton; @@ -108,6 +110,14 @@ class AliAnalysisTaskGammaConvV1 : public AliAnalysisTaskSE { TH2F **hESDMotherBackInvMassPt; THnSparseF **sESDMotherBackInvMassPtZM; TH2F **hESDMotherInvMassEalpha; + TH2F **hESDMotherPi0PtY; + TH2F **hESDMotherEtaPtY; + TH2F **hESDMotherPi0PtAlpha; + TH2F **hESDMotherEtaPtAlpha; + TH2F **hESDMotherPi0YEtaLowPtGamma; + TH2F **hESDMotherPi0YEtaHighPtGamma; + TH2F **hESDMotherEtaYEtaLowPtGamma; + TH2F **hESDMotherEtaYEtaHighPtGamma; TH1I **hMCHeaders; TH1F **hMCAllGammaPt; TH1F **hMCDecayGammaPi0Pt; @@ -120,9 +130,6 @@ class AliAnalysisTaskGammaConvV1 : public AliAnalysisTaskSE { TH1F **hMCConvGammaPt; TH1F **hMCConvGammaR; TH1F **hMCConvGammaEta; - TH1F **hMCConvGammaRSPt; - TH1F **hMCConvGammaRSR; - TH1F **hMCConvGammaRSEta; TH1F **hMCPi0Pt; TH1F **hMCPi0WOWeightPt; TH1F **hMCEtaPt; @@ -146,12 +153,19 @@ class AliAnalysisTaskGammaConvV1 : public AliAnalysisTaskSE { TH1F **hESDTrueEtaWithPi0DaughterMCPt; TH2F **hESDTrueBckGGInvMassPt; TH2F **hESDTrueBckContInvMassPt; + TH2F **hESDTruePi0PtY; + TH2F **hESDTrueEtaPtY; + TH2F **hESDTruePi0PtAlpha; + TH2F **hESDTrueEtaPtAlpha; + TH2F **hESDTruePi0YEtaLowPtGamma; + TH2F **hESDTruePi0YEtaHighPtGamma; + TH2F **hESDTrueEtaYEtaLowPtGamma; + TH2F **hESDTrueEtaYEtaHighPtGamma; TH2F **hESDTrueMotherDalitzInvMassPt; TH1F **hESDTrueConvGammaPt; TH2F **hESDCombinatorialPt; TH1F **hESDTruePrimaryConvGammaPt; TH2F **hESDTruePrimaryConvGammaESDPtMCPt; - TH2F **hESDTruePrimaryConvGammaRSESDPtMCPt; TH1F **hESDTrueSecondaryConvGammaPt; TH1F **hESDTrueSecondaryConvGammaFromXFromK0sPt; TH1F **hESDTrueSecondaryConvGammaFromXFromLambdaPt; @@ -175,6 +189,7 @@ class AliAnalysisTaskGammaConvV1 : public AliAnalysisTaskSE { // 4: secondary meson from k0s, // 5: dalitz // 6: primary meson gamma-gamma-channel + Double_t fEventPlaneAngle; // EventPlaneAngle TRandom3 fRandom; Int_t fnGammaCandidates; Double_t *fUnsmearedPx; //[fnGammaCandidates] @@ -190,8 +205,8 @@ class AliAnalysisTaskGammaConvV1 : public AliAnalysisTaskSE { Bool_t fMoveParticleAccordingToVertex; Bool_t fIsHeavyIon; Bool_t fDoMesonAnalysis; - Bool_t fDoMesonQA; - Bool_t fDoPhotonQA; + Int_t fDoMesonQA; + Int_t fDoPhotonQA; Bool_t fIsFromMBHeader; Bool_t fIsMC; @@ -201,7 +216,7 @@ private: AliAnalysisTaskGammaConvV1 &operator=(const AliAnalysisTaskGammaConvV1&); // Prevent assignment - ClassDef(AliAnalysisTaskGammaConvV1, 7); + ClassDef(AliAnalysisTaskGammaConvV1, 8); }; #endif diff --git a/PWGGA/GammaConv/AliConversionCuts.cxx b/PWGGA/GammaConv/AliConversionCuts.cxx index c4ac1c7c3df..f9e94cfd1ea 100644 --- a/PWGGA/GammaConv/AliConversionCuts.cxx +++ b/PWGGA/GammaConv/AliConversionCuts.cxx @@ -86,6 +86,7 @@ const char* AliConversionCuts::fgkCutNames[AliConversionCuts::kNCuts] = { "RejectToCloseV0s", //24 "DcaRPrimVtx", //25 "DcaZPrimVtx" //26 + "EvetPlane" //27 }; @@ -175,6 +176,7 @@ AliConversionCuts::AliConversionCuts(const char *name,const char *title) : fElectronLabelArray(NULL), fDCAZPrimVtxCut(1000), fDCARPrimVtxCut(1000), + fInPlaneOutOfPlane(0), fConversionPointXArray(0.0), fConversionPointYArray(0.0), fConversionPointZArray(0.0), @@ -217,6 +219,7 @@ AliConversionCuts::AliConversionCuts(const char *name,const char *title) : hCentrality(NULL), hCentralityVsNumberOfPrimaryTracks(NULL), hVertexZ(NULL), + hEventPlanePhi(NULL), hTriggerClass(NULL), hTriggerClassSelected(NULL), hReweightMCHistPi0(NULL), @@ -328,6 +331,7 @@ AliConversionCuts::AliConversionCuts(const AliConversionCuts &ref) : fElectronLabelArray(NULL), fDCAZPrimVtxCut(ref.fDCAZPrimVtxCut), fDCARPrimVtxCut(ref.fDCAZPrimVtxCut), + fInPlaneOutOfPlane(ref.fInPlaneOutOfPlane), fConversionPointXArray(ref.fConversionPointXArray), fConversionPointYArray(ref.fConversionPointYArray), fConversionPointZArray(ref.fConversionPointZArray), @@ -370,6 +374,7 @@ AliConversionCuts::AliConversionCuts(const AliConversionCuts &ref) : hCentrality(NULL), hCentralityVsNumberOfPrimaryTracks(NULL), hVertexZ(NULL), + hEventPlanePhi(NULL), hTriggerClass(NULL), hTriggerClassSelected(NULL), hReweightMCHistPi0(ref.hReweightMCHistPi0), @@ -468,7 +473,7 @@ void AliConversionCuts::InitCutHistograms(TString name, Bool_t preCut){ // fHistograms->Add(fFitDataK0s); // } // IsPhotonSelected - hCutIndex=new TH1F(Form("IsPhotonSelected %s",GetCutNumber().Data()),"IsPhotonSelected",10,-0.5,9.5); + hCutIndex=new TH1F(Form("IsPhotonSelected %s",GetCutNumber().Data()),"IsPhotonSelected",11,-0.5,10.5); hCutIndex->GetXaxis()->SetBinLabel(kPhotonIn+1,"in"); hCutIndex->GetXaxis()->SetBinLabel(kOnFly+1,"onfly"); hCutIndex->GetXaxis()->SetBinLabel(kNoTracks+1,"no tracks"); @@ -476,6 +481,7 @@ void AliConversionCuts::InitCutHistograms(TString name, Bool_t preCut){ hCutIndex->GetXaxis()->SetBinLabel(kTrackCuts+1,"Track cuts"); hCutIndex->GetXaxis()->SetBinLabel(kConvPointFail+1,"ConvPoint fail"); hCutIndex->GetXaxis()->SetBinLabel(kPhotonCuts+1,"PhotonCuts"); + hCutIndex->GetXaxis()->SetBinLabel(kEventPlane+1,"EventPlane"); hCutIndex->GetXaxis()->SetBinLabel(kPhotonOut+1,"out"); fHistograms->Add(hCutIndex); @@ -596,6 +602,11 @@ void AliConversionCuts::InitCutHistograms(TString name, Bool_t preCut){ } delete [] newBins; + hCentrality=new TH1F(Form("Centrality %s",GetCutNumber().Data()),"Centrality",1000,0,100); + fHistograms->Add(hCentrality); + hCentralityVsNumberOfPrimaryTracks=new TH2F(Form("Centrality vs Primary Tracks %s",GetCutNumber().Data()),"Centrality vs Primary Tracks ",100,0,100,4000,0,4000); + fHistograms->Add(hCentralityVsNumberOfPrimaryTracks); + // Event Cuts and Info if(preCut){ hV0EventCuts=new TH1F(Form("ESD_EventCuts %s",GetCutNumber().Data()),"Event Cuts",7,-0.5,6.5); @@ -608,10 +619,6 @@ void AliConversionCuts::InitCutHistograms(TString name, Bool_t preCut){ hV0EventCuts->GetXaxis()->SetBinLabel(7,"out"); fHistograms->Add(hV0EventCuts); - hCentrality=new TH1F(Form("Centrality %s",GetCutNumber().Data()),"Centrality",1000,0,100); - fHistograms->Add(hCentrality); - hCentralityVsNumberOfPrimaryTracks=new TH2F(Form("Centrality vs Primary Tracks %s",GetCutNumber().Data()),"Centrality vs Primary Tracks ",100,0,100,4000,0,4000); - fHistograms->Add(hCentralityVsNumberOfPrimaryTracks); hVertexZ=new TH1F(Form("VertexZ %s",GetCutNumber().Data()),"VertexZ",1000,-50,50); fHistograms->Add(hVertexZ); @@ -690,6 +697,11 @@ void AliConversionCuts::InitCutHistograms(TString name, Bool_t preCut){ hTriggerClassSelected->GetXaxis()->SetBinLabel(33,"V0AND"); hTriggerClassSelected->GetXaxis()->SetBinLabel(34,"NOT kFastOnly"); fHistograms->Add(hTriggerClassSelected); + + hEventPlanePhi=new TH1F(Form("EventPlaneMinusPhotonAngle %s",GetCutNumber().Data()),"EventPlaneMinusPhotonAngle",360,-TMath::Pi(),TMath::Pi()); + fHistograms->Add(hEventPlanePhi); + + } TH1::AddDirectory(kTRUE); } @@ -1986,6 +1998,15 @@ Bool_t AliConversionCuts::SetCut(cutIds cutID, const Int_t value) { return kTRUE; } else return kFALSE; + case kInPlaneOutOfPlane: + if( SetInPlaneOutOfPlane(value)) { + fCuts[kInPlaneOutOfPlane] = value; + UpdateCutString(); + return kTRUE; + } else return kFALSE; + + + case kNCuts: AliError("Cut id out of range"); @@ -3070,6 +3091,26 @@ Bool_t AliConversionCuts::SetDCARPhotonPrimVtxCut(Int_t DCARPhotonPrimVtx){ return kTRUE; } +///________________________________________________________________________ +Bool_t AliConversionCuts::SetInPlaneOutOfPlane(Int_t inOutPlane){ + // Set Cut + switch(inOutPlane){ + case 0: // + fInPlaneOutOfPlane = 0; // No Event Plane + break; + case 1: // + fInPlaneOutOfPlane = 1; // In-Plane + break; + case 2: // + fInPlaneOutOfPlane = 2; // Out-Of-Plane + break; + default: + cout<<"Warning: In-Plane or Out-Of-Plane not defined "< No Shift \n\n",(GetCutNumber()).Data()); } + +///________________________________________________________________________ +Bool_t AliConversionCuts::InPlaneOutOfPlaneCut(Double_t photonPhi, Double_t eventPlaneAngle, Bool_t fill){ + + //GetPhotonPhi() 0-2 Pi //eventPlaneAngle -1pi-1pi + eventPlaneAngle=eventPlaneAngle+TMath::Pi(); + Double_t gammaToEPAngle = eventPlaneAngle-photonPhi; + if(gammaToEPAngle < 0) gammaToEPAngle=gammaToEPAngle+2*TMath::Pi(); + gammaToEPAngle = gammaToEPAngle-TMath::Pi(); // angle from -pi +pi + + if(!fInPlaneOutOfPlane){ + if(fill&&hEventPlanePhi)hEventPlanePhi->Fill(gammaToEPAngle); + return kTRUE; + } + else if(fInPlaneOutOfPlane == 1){ + if(abs(gammaToEPAngle)<=0.25*TMath::Pi() || abs(gammaToEPAngle)>=0.75*TMath::Pi()){ + if(fill&&hEventPlanePhi)hEventPlanePhi->Fill(gammaToEPAngle); + return kTRUE; + } + else return kFALSE; + } + else if(fInPlaneOutOfPlane == 2){ + if(abs(gammaToEPAngle)>0.25*TMath::Pi() && abs(gammaToEPAngle)<0.75*TMath::Pi()){ + if(fill&&hEventPlanePhi)hEventPlanePhi->Fill(gammaToEPAngle); + return kTRUE; + } + else return kFALSE; + } + return kFALSE; + +} + diff --git a/PWGGA/GammaConv/AliConversionCuts.h b/PWGGA/GammaConv/AliConversionCuts.h index edeebd11ef1..a68b0eb690e 100644 --- a/PWGGA/GammaConv/AliConversionCuts.h +++ b/PWGGA/GammaConv/AliConversionCuts.h @@ -35,387 +35,395 @@ class AliAODMCParticle; using namespace std; class AliConversionCuts : public AliAnalysisCuts { + + public: + + + enum cutIds { + kisHeavyIon, + kCentralityMin, + kCentralityMax, + kselectV0AND, + kmultiplicityMethod, + kremovePileUp, + kExtraSignals, + kv0FinderType, + ketaCut, + kRCut, + ksinglePtCut, + kclsTPCCut, + kededxSigmaCut, + kpidedxSigmaCut, + kpiMomdedxSigmaCut, + kpiMaxMomdedxSigmaCut, + kLowPRejectionSigmaCut, + kTOFelectronPID, + kQtMaxCut, + kchi2GammaCut, + kPsiPair, + kdoPhotonAsymmetryCut, + kCosPAngle, + kElecShare, + kToCloseV0s, + kDcaRPrimVtx, + kDcaZPrimVtx, + kInPlaneOutOfPlane, + kNCuts + }; + + enum photonCuts { + kPhotonIn=0, + kOnFly, + kNoTracks, + kTrackCuts, + kdEdxCuts, + kConvPointFail, + kPhotonCuts, + kEventPlane, + kPhotonOut + }; + + + Bool_t SetCutIds(TString cutString); + Int_t fCuts[kNCuts]; + Bool_t SetCut(cutIds cutID, Int_t cut); + Bool_t UpdateCutString(); + + + static const char * fgkCutNames[kNCuts]; + + Double_t GetCosineOfPointingAngle(const AliConversionPhotonBase * photon, AliVEvent * event) const; + + + Bool_t InitializeCutsFromCutString(const TString analysisCutSelection); + void SelectCollisionCandidates(UInt_t offlineTriggerMask = AliVEvent::kAny) { + fOfflineTriggerMask = offlineTriggerMask; + fTriggerSelectedManually = kTRUE; + } + void SelectSpecialTrigger(UInt_t offlineTriggerMask = AliVEvent::kAny, TString TriggerClassName = "AliVEvent::kAny" ) { + fOfflineTriggerMask = offlineTriggerMask; + fSpecialTriggerName = TriggerClassName; + cout << fSpecialTriggerName.Data() << endl; + + } + void FillElectonLabelArray(AliAODConversionPhoton* photon, Int_t nV0); + void SetAcceptedHeader(TList *HeaderList){fHeaderList = HeaderList;} + void SetPreSelectionCutFlag(Bool_t preSelFlag){fPreSelCut = preSelFlag;} + TString *GetFoundHeader(){return fGeneratorNames;} + + Int_t GetEventQuality(){return fEventQuality;} + Bool_t GetIsFromPileup(){return fRemovePileUp;} - public: + AliConversionCuts(const char *name="V0Cuts", const char * title="V0 Cuts"); + AliConversionCuts(const AliConversionCuts&); + AliConversionCuts& operator=(const AliConversionCuts&); + + virtual ~AliConversionCuts(); //virtual destructor + + static AliConversionCuts * GetStandardCuts2010PbPb(); + static AliConversionCuts * GetStandardCuts2010pp(); + + virtual Bool_t IsSelected(TObject* /*obj*/){return kTRUE;} + virtual Bool_t IsSelected(TList* /*list*/) {return kTRUE;} + + TString GetCutNumber(); + + void GetCentralityRange(Double_t range[2]){range[0]=10*fCentralityMin;range[1]=10*fCentralityMax;}; + // Cut Selection + Bool_t EventIsSelected(AliVEvent *fInputEvent, AliVEvent *fMCEvent); + Int_t IsEventAcceptedByConversionCut(AliConversionCuts *ReaderCuts, AliVEvent *InputEvent, AliMCEvent *MCEvent, Bool_t isHeavyIon); + Bool_t PhotonIsSelected(AliConversionPhotonBase * photon, AliVEvent * event); + Bool_t PhotonIsSelectedMC(TParticle *particle,AliStack *fMCStack,Bool_t checkForConvertedGamma=kTRUE); + Bool_t PhotonIsSelectedAODMC(AliAODMCParticle *particle,TClonesArray *aodmcArray,Bool_t checkForConvertedGamma=kTRUE); + Bool_t ElectronIsSelectedMC(TParticle *particle,AliStack *fMCStack); + Bool_t TracksAreSelected(AliVTrack * negTrack, AliVTrack * posTrack); + Bool_t MesonIsSelected(AliAODConversionMother *pi0,Bool_t IsSignal=kTRUE); + Bool_t MesonIsSelectedMC(TParticle *fMCMother,AliStack *fMCStack, Bool_t bMCDaughtersInAcceptance=kFALSE); - enum cutIds { - kisHeavyIon, - kCentralityMin, - kCentralityMax, - kselectV0AND, - kmultiplicityMethod, - kremovePileUp, - kExtraSignals, - kv0FinderType, - ketaCut, - kRCut, - ksinglePtCut, - kclsTPCCut, - kededxSigmaCut, - kpidedxSigmaCut, - kpiMomdedxSigmaCut, - kpiMaxMomdedxSigmaCut, - kLowPRejectionSigmaCut, - kTOFelectronPID, - kQtMaxCut, - kchi2GammaCut, - kPsiPair, - kdoPhotonAsymmetryCut, - kCosPAngle, - kElecShare, - kToCloseV0s, - kDcaRPrimVtx, - kDcaZPrimVtx, - kNCuts - }; - - enum photonCuts { - kPhotonIn=0, - kOnFly, - kNoTracks, - kTrackCuts, - kdEdxCuts, - kConvPointFail, - kPhotonCuts, - kPhotonOut - }; - - - Bool_t SetCutIds(TString cutString); - Int_t fCuts[kNCuts]; - Bool_t SetCut(cutIds cutID, Int_t cut); - Bool_t UpdateCutString(); - - - static const char * fgkCutNames[kNCuts]; - - Double_t GetCosineOfPointingAngle(const AliConversionPhotonBase * photon, AliVEvent * event) const; - - - Bool_t InitializeCutsFromCutString(const TString analysisCutSelection); - void SelectCollisionCandidates(UInt_t offlineTriggerMask = AliVEvent::kAny) { - fOfflineTriggerMask = offlineTriggerMask; - fTriggerSelectedManually = kTRUE; - } - void SelectSpecialTrigger(UInt_t offlineTriggerMask = AliVEvent::kAny, TString TriggerClassName = "AliVEvent::kAny" ) { - fOfflineTriggerMask = offlineTriggerMask; - fSpecialTriggerName = TriggerClassName; - cout << fSpecialTriggerName.Data() << endl; - - } - void FillElectonLabelArray(AliAODConversionPhoton* photon, Int_t nV0); - void SetAcceptedHeader(TList *HeaderList){fHeaderList = HeaderList;} - void SetPreSelectionCutFlag(Bool_t preSelFlag){fPreSelCut = preSelFlag;} - TString *GetFoundHeader(){return fGeneratorNames;} - - Int_t GetEventQuality(){return fEventQuality;} - Bool_t GetIsFromPileup(){return fRemovePileUp;} - - AliConversionCuts(const char *name="V0Cuts", const char * title="V0 Cuts"); - AliConversionCuts(const AliConversionCuts&); - AliConversionCuts& operator=(const AliConversionCuts&); + void InitAODpidUtil(Int_t type); + Bool_t InitPIDResponse(); + + void SetPIDResponse(AliPIDResponse * pidResponse) {fPIDResponse = pidResponse;} + AliPIDResponse * GetPIDResponse() { return fPIDResponse;} + + void PrintCuts(); - virtual ~AliConversionCuts(); //virtual destructor + void InitCutHistograms(TString name="",Bool_t preCut = kTRUE); + void SetFillCutHistograms(TString name="",Bool_t preCut = kTRUE){if(!fHistograms){InitCutHistograms(name,preCut);};} + TList *GetCutHistograms(){return fHistograms;} + void FillPhotonCutIndex(Int_t photoncut){if(hCutIndex)hCutIndex->Fill(photoncut);} + void SetEtaShift(Double_t etaShift) { + fEtaShift = etaShift; + fLineCutZRSlope = tan(2*atan(exp(-fEtaCut + etaShift))); + if(fEtaCutMin > -0.1) + fLineCutZRSlopeMin = tan(2*atan(exp(-fEtaCutMin + etaShift))); + } + void SetEtaShift(TString pPbOrPbp) { + Double_t etaShift = 0.0; + if(!pPbOrPbp.CompareTo("pPb")) etaShift = -0.465; + else if(!pPbOrPbp.CompareTo("Pbp")) etaShift = 0.465; + + fEtaShift = etaShift; + fLineCutZRSlope = tan(2*atan(exp(-fEtaCut + etaShift))); + if(fEtaCutMin > -0.1) + fLineCutZRSlopeMin = tan(2*atan(exp(-fEtaCutMin + etaShift))); + } + Double_t GetEtaShift() {return fEtaShift;} + Bool_t GetDoEtaShift(){return fDoEtaShift;} + void DoEtaShift(Bool_t doEtaShift){fDoEtaShift = doEtaShift;} + void GetCorrectEtaShiftFromPeriod(TString periodName); + + static AliVTrack * GetTrack(AliVEvent * event, Int_t label); + static AliESDtrack *GetESDTrack(AliESDEvent * event, Int_t label); + + ///Cut functions + Bool_t SpecificTrackCuts(AliAODTrack * negTrack, AliAODTrack * posTrack,Int_t &cutIndex); + Bool_t SpecificTrackCuts(AliESDtrack * negTrack, AliESDtrack * posTrack,Int_t &cutIndex); + Bool_t AcceptanceCuts(AliConversionPhotonBase *photon); + Bool_t AcceptanceCut(TParticle *particle, TParticle * ePos,TParticle* eNeg); + Bool_t dEdxCuts(AliVTrack * track); + Bool_t ArmenterosQtCut(AliConversionPhotonBase *photon); + Bool_t AsymmetryCut(AliConversionPhotonBase *photon,AliVEvent *event); + Bool_t PIDProbabilityCut(AliConversionPhotonBase *photon, AliVEvent * event); + Bool_t SelectV0Finder(Bool_t onfly){ + if(onfly == fUseOnFlyV0Finder) return kTRUE; + else return kFALSE; + } + Bool_t PhotonCuts(AliConversionPhotonBase *photon,AliVEvent *event); + Bool_t CorrectedTPCClusterCut(AliConversionPhotonBase *photon, AliVEvent * event); + Bool_t PsiPairCut(const AliConversionPhotonBase * photon, Double_t deltaPhi) const; + Bool_t CosinePAngleCut(const AliConversionPhotonBase * photon, AliVEvent * event) const; + Bool_t RejectSharedElectronV0s(AliAODConversionPhoton* photon, Int_t nV0, Int_t nV0s); + Bool_t RejectToCloseV0s(AliAODConversionPhoton* photon, TList *photons, Int_t nV0); + Int_t IsParticleFromBGEvent(Int_t index, AliStack *MCStack, AliVEvent *InputEvent = 0x0); + void GetNotRejectedParticles(Int_t rejection, TList *HeaderList, AliVEvent *MCEvent); + void SetUseReweightingWithHistogramFromFile( Bool_t pi0reweight=kTRUE, Bool_t etareweight=kFALSE, Bool_t k0sreweight=kFALSE, TString path="$ALICE_ROOT/PWGGA/GammaConv/MCSpectraInput.root", + TString histoNamePi0 = "", TString histoNameEta = "", TString histoNameK0s = "", + TString fitNamePi0 = "", TString fitNameEta = "", TString fitNameK0s ="" ) { + AliInfo(Form("enabled reweighting for: pi0 : %i, eta: %i, K0s: %i",pi0reweight, etareweight, k0sreweight)); + fDoReweightHistoMCPi0 = pi0reweight; + fDoReweightHistoMCEta = etareweight; + fDoReweightHistoMCK0s = k0sreweight; + fPathTrFReweighting=path; + fNameHistoReweightingPi0 =histoNamePi0; + fNameHistoReweightingEta =histoNameEta; + fNameHistoReweightingK0s =histoNameK0s; + fNameFitDataPi0 =fitNamePi0; + fNameFitDataEta =fitNameEta; + fNameFitDataK0s =fitNameK0s; + + } + void LoadReweightingHistosMCFromFile (); + // Event Cuts + Bool_t IsCentralitySelected(AliVEvent *fInputEvent, AliVEvent *fMCEvent = NULL); + Double_t GetCentrality(AliVEvent *event); + Int_t GetNumberOfContributorsVtx(AliVEvent *event); + Bool_t VertexZCut(AliVEvent *fInputEvent); + Bool_t IsTriggerSelected(AliVEvent *fInputEvent); + Bool_t HasV0AND(){return fHasV0AND;} + Bool_t IsSDDFired(){return fIsSDDFired;} + Int_t IsSpecialTrigger(){return fSpecialTrigger;} + TString GetSpecialTriggerName(){return fSpecialTriggerName;} + Bool_t InPlaneOutOfPlaneCut(Double_t photonPhi, Double_t eventPlaneAngle = -100, Bool_t fill = kTRUE); + Int_t GetInPlaneOutOfPlaneCut(){return fInPlaneOutOfPlane;} - static AliConversionCuts * GetStandardCuts2010PbPb(); - static AliConversionCuts * GetStandardCuts2010pp(); - virtual Bool_t IsSelected(TObject* /*obj*/){return kTRUE;} - virtual Bool_t IsSelected(TList* /*list*/) {return kTRUE;} + // Set Individual Cuts + Bool_t SetRCut(Int_t RCut); + Bool_t SetV0Finder(Int_t v0FinderType); + Bool_t SetChi2GammaCut(Int_t chi2GammaCut); + Bool_t SetTPCdEdxCutPionLine(Int_t pidedxSigmaCut); + Bool_t SetTPCdEdxCutElectronLine(Int_t ededxSigmaCut); + Bool_t SetSinglePtCut(Int_t singlePtCut); + Bool_t SetTPCClusterCut(Int_t clsTPCCut); + Bool_t SetEtaCut(Int_t etaCut); + Bool_t SetMinMomPiondEdxCut(Int_t piMinMomdedxSigmaCut); + Bool_t SetMaxMomPiondEdxCut(Int_t piMaxMomdedxSigmaCut); + Bool_t SetLowPRejectionCuts(Int_t LowPRejectionSigmaCut); + Bool_t SetQtMaxCut(Int_t QtMaxCut); + Bool_t SetTOFElectronPIDCut(Int_t TOFelectronPID); + Bool_t SetTRDElectronCut(Int_t TRDElectronCut); + Bool_t SetCentralityMin(Int_t useCentrality); + Bool_t SetIsHeavyIon(Int_t isHeavyIon); + Bool_t SetCentralityMax(Int_t centralityBin); + Bool_t SetPhotonAsymmetryCut(Int_t doPhotonAsymmetryCut); + Bool_t SetRemovePileUp(Int_t removePileUp); + Bool_t SetMultiplicityMethod(Int_t multiplicityMethod); + Int_t SetSelectSpecialTrigger(Int_t selectSpecialTrigger); + Bool_t SetCosPAngleCut(Int_t cosCut); + Bool_t SetPsiPairCut(Int_t psiCut); + Bool_t SetSharedElectronCut(Int_t sharedElec); + Bool_t SetToCloseV0sCut(Int_t toClose); + Bool_t SetRejectExtraSignalsCut(Int_t extraSignal); + Bool_t SetDCARPhotonPrimVtxCut(Int_t DCARPhotonPrimVtx); + Bool_t SetDCAZPhotonPrimVtxCut(Int_t DCAZPhotonPrimVtx); + Bool_t SetInPlaneOutOfPlane(Int_t inOutPlane); + + // Request Flags - TString GetCutNumber(); - - void GetCentralityRange(Double_t range[2]){range[0]=10*fCentralityMin;range[1]=10*fCentralityMax;}; - - // Cut Selection - Bool_t EventIsSelected(AliVEvent *fInputEvent, AliVEvent *fMCEvent); - Int_t IsEventAcceptedByConversionCut(AliConversionCuts *ReaderCuts, AliVEvent *InputEvent, AliMCEvent *MCEvent, Bool_t isHeavyIon); - Bool_t PhotonIsSelected(AliConversionPhotonBase * photon, AliVEvent * event); - Bool_t PhotonIsSelectedMC(TParticle *particle,AliStack *fMCStack,Bool_t checkForConvertedGamma=kTRUE); - Bool_t PhotonIsSelectedAODMC(AliAODMCParticle *particle,TClonesArray *aodmcArray,Bool_t checkForConvertedGamma=kTRUE); - Bool_t ElectronIsSelectedMC(TParticle *particle,AliStack *fMCStack); - Bool_t TracksAreSelected(AliVTrack * negTrack, AliVTrack * posTrack); - Bool_t MesonIsSelected(AliAODConversionMother *pi0,Bool_t IsSignal=kTRUE); - Bool_t MesonIsSelectedMC(TParticle *fMCMother,AliStack *fMCStack, Bool_t bMCDaughtersInAcceptance=kFALSE); - - void InitAODpidUtil(Int_t type); - Bool_t InitPIDResponse(); - - void SetPIDResponse(AliPIDResponse * pidResponse) {fPIDResponse = pidResponse;} - AliPIDResponse * GetPIDResponse() { return fPIDResponse;} - - void PrintCuts(); - - void InitCutHistograms(TString name="",Bool_t preCut = kTRUE); - void SetFillCutHistograms(TString name="",Bool_t preCut = kTRUE){if(!fHistograms){InitCutHistograms(name,preCut);};} - TList *GetCutHistograms(){return fHistograms;} - void FillPhotonCutIndex(Int_t photoncut){if(hCutIndex)hCutIndex->Fill(photoncut);} - void SetEtaShift(Double_t etaShift) { - fEtaShift = etaShift; - fLineCutZRSlope = tan(2*atan(exp(-fEtaCut + etaShift))); - if(fEtaCutMin > -0.1) - fLineCutZRSlopeMin = tan(2*atan(exp(-fEtaCutMin + etaShift))); - } - void SetEtaShift(TString pPbOrPbp) { - Double_t etaShift = 0.0; - if(!pPbOrPbp.CompareTo("pPb")) etaShift = -0.465; - else if(!pPbOrPbp.CompareTo("Pbp")) etaShift = 0.465; - - fEtaShift = etaShift; - fLineCutZRSlope = tan(2*atan(exp(-fEtaCut + etaShift))); - if(fEtaCutMin > -0.1) - fLineCutZRSlopeMin = tan(2*atan(exp(-fEtaCutMin + etaShift))); - } - Double_t GetEtaShift() {return fEtaShift;} - Bool_t GetDoEtaShift(){return fDoEtaShift;} - void DoEtaShift(Bool_t doEtaShift){fDoEtaShift = doEtaShift;} - void GetCorrectEtaShiftFromPeriod(TString periodName); - - static AliVTrack * GetTrack(AliVEvent * event, Int_t label); - static AliESDtrack *GetESDTrack(AliESDEvent * event, Int_t label); - - ///Cut functions - Bool_t SpecificTrackCuts(AliAODTrack * negTrack, AliAODTrack * posTrack,Int_t &cutIndex); - Bool_t SpecificTrackCuts(AliESDtrack * negTrack, AliESDtrack * posTrack,Int_t &cutIndex); - Bool_t AcceptanceCuts(AliConversionPhotonBase *photon); - Bool_t AcceptanceCut(TParticle *particle, TParticle * ePos,TParticle* eNeg); - Bool_t dEdxCuts(AliVTrack * track); - Bool_t ArmenterosQtCut(AliConversionPhotonBase *photon); - Bool_t AsymmetryCut(AliConversionPhotonBase *photon,AliVEvent *event); - Bool_t PIDProbabilityCut(AliConversionPhotonBase *photon, AliVEvent * event); - Bool_t SelectV0Finder(Bool_t onfly){ - if(onfly == fUseOnFlyV0Finder) return kTRUE; - else return kFALSE; - } - Bool_t PhotonCuts(AliConversionPhotonBase *photon,AliVEvent *event); - Bool_t CorrectedTPCClusterCut(AliConversionPhotonBase *photon, AliVEvent * event); - Bool_t PsiPairCut(const AliConversionPhotonBase * photon, Double_t deltaPhi) const; - Bool_t CosinePAngleCut(const AliConversionPhotonBase * photon, AliVEvent * event) const; - Bool_t RejectSharedElectronV0s(AliAODConversionPhoton* photon, Int_t nV0, Int_t nV0s); - Bool_t RejectToCloseV0s(AliAODConversionPhoton* photon, TList *photons, Int_t nV0); - Int_t IsParticleFromBGEvent(Int_t index, AliStack *MCStack, AliVEvent *InputEvent = 0x0); - void GetNotRejectedParticles(Int_t rejection, TList *HeaderList, AliVEvent *MCEvent); - void SetUseReweightingWithHistogramFromFile( Bool_t pi0reweight=kTRUE, Bool_t etareweight=kFALSE, Bool_t k0sreweight=kFALSE, TString path="$ALICE_ROOT/PWGGA/GammaConv/MCSpectraInput.root", - TString histoNamePi0 = "", TString histoNameEta = "", TString histoNameK0s = "", - TString fitNamePi0 = "", TString fitNameEta = "", TString fitNameK0s ="" ) { - AliInfo(Form("enabled reweighting for: pi0 : %i, eta: %i, K0s: %i",pi0reweight, etareweight, k0sreweight)); - fDoReweightHistoMCPi0 = pi0reweight; - fDoReweightHistoMCEta = etareweight; - fDoReweightHistoMCK0s = k0sreweight; - fPathTrFReweighting=path; - fNameHistoReweightingPi0 =histoNamePi0; - fNameHistoReweightingEta =histoNameEta; - fNameHistoReweightingK0s =histoNameK0s; - fNameFitDataPi0 =fitNamePi0; - fNameFitDataEta =fitNameEta; - fNameFitDataK0s =fitNameK0s; - - } - void LoadReweightingHistosMCFromFile (); - // Event Cuts - Bool_t IsCentralitySelected(AliVEvent *fInputEvent, AliVEvent *fMCEvent = NULL); - Double_t GetCentrality(AliVEvent *event); - Int_t GetNumberOfContributorsVtx(AliVEvent *event); - Bool_t VertexZCut(AliVEvent *fInputEvent); - Bool_t IsTriggerSelected(AliVEvent *fInputEvent); - Bool_t HasV0AND(){return fHasV0AND;} - Bool_t IsSDDFired(){return fIsSDDFired;} - Int_t IsSpecialTrigger(){return fSpecialTrigger;} - TString GetSpecialTriggerName(){return fSpecialTriggerName;} - - // Set Individual Cuts - Bool_t SetRCut(Int_t RCut); - Bool_t SetV0Finder(Int_t v0FinderType); - Bool_t SetChi2GammaCut(Int_t chi2GammaCut); - Bool_t SetTPCdEdxCutPionLine(Int_t pidedxSigmaCut); - Bool_t SetTPCdEdxCutElectronLine(Int_t ededxSigmaCut); - Bool_t SetSinglePtCut(Int_t singlePtCut); - Bool_t SetTPCClusterCut(Int_t clsTPCCut); - Bool_t SetEtaCut(Int_t etaCut); - Bool_t SetMinMomPiondEdxCut(Int_t piMinMomdedxSigmaCut); - Bool_t SetMaxMomPiondEdxCut(Int_t piMaxMomdedxSigmaCut); - Bool_t SetLowPRejectionCuts(Int_t LowPRejectionSigmaCut); - Bool_t SetQtMaxCut(Int_t QtMaxCut); - Bool_t SetTOFElectronPIDCut(Int_t TOFelectronPID); - Bool_t SetTRDElectronCut(Int_t TRDElectronCut); - Bool_t SetCentralityMin(Int_t useCentrality); - Bool_t SetIsHeavyIon(Int_t isHeavyIon); - Bool_t SetCentralityMax(Int_t centralityBin); - Bool_t SetPhotonAsymmetryCut(Int_t doPhotonAsymmetryCut); - Bool_t SetRemovePileUp(Int_t removePileUp); - Bool_t SetMultiplicityMethod(Int_t multiplicityMethod); - Int_t SetSelectSpecialTrigger(Int_t selectSpecialTrigger); - Bool_t SetCosPAngleCut(Int_t cosCut); - Bool_t SetPsiPairCut(Int_t psiCut); - Bool_t SetSharedElectronCut(Int_t sharedElec); - Bool_t SetToCloseV0sCut(Int_t toClose); - Bool_t SetRejectExtraSignalsCut(Int_t extraSignal); - Bool_t SetDCARPhotonPrimVtxCut(Int_t DCARPhotonPrimVtx); - Bool_t SetDCAZPhotonPrimVtxCut(Int_t DCAZPhotonPrimVtx); + Int_t IsHeavyIon(){return fIsHeavyIon;} + Int_t GetFirstTPCRow(Double_t radius); + Float_t GetWeightForMeson(TString period, Int_t index, AliStack *MCStack, AliVEvent *InputEvent = 0x0); + + Bool_t UseElecSharingCut(){return fDoSharedElecCut;} + Bool_t UseToCloseV0sCut(){return fDoToCloseV0sCut;} + Int_t GetMultiplicityMethod(){return fMultiplicityMethod;} + Double_t GetEtaCut(){return fEtaCut;} + Int_t GetSignalRejection(){return fRejectExtraSignals;} + Int_t GetNAcceptedHeaders(){return fnHeaders; } + TString * GetAcceptedHeaderNames(){return fGeneratorNames;} + Int_t * GetAcceptedHeaderStart(){return fNotRejectedStart;} + Int_t * GetAcceptedHeaderEnd(){return fNotRejectedEnd;} + TList* GetAcceptedHeader(){return fHeaderList;} - // Request Flags - - Int_t IsHeavyIon(){return fIsHeavyIon;} - Int_t GetFirstTPCRow(Double_t radius); - Float_t GetWeightForMeson(TString period, Int_t index, AliStack *MCStack, AliVEvent *InputEvent = 0x0); - - Bool_t UseElecSharingCut(){return fDoSharedElecCut;} - Bool_t UseToCloseV0sCut(){return fDoToCloseV0sCut;} - Int_t GetMultiplicityMethod(){return fMultiplicityMethod;} - Double_t GetEtaCut(){return fEtaCut;} - Int_t GetSignalRejection(){return fRejectExtraSignals;} - Int_t GetNAcceptedHeaders(){return fnHeaders; } - TString * GetAcceptedHeaderNames(){return fGeneratorNames;} - Int_t * GetAcceptedHeaderStart(){return fNotRejectedStart;} - Int_t * GetAcceptedHeaderEnd(){return fNotRejectedEnd;} - TList* GetAcceptedHeader(){return fHeaderList;} - - - protected: - TList *fHistograms; - TList *fHeaderList; - AliPIDResponse *fPIDResponse; - - - Int_t fEventQuality; // EventQuality - //cuts - Double_t fMaxR; //r cut - Double_t fMinR; //r cut - Double_t fEtaCut; //eta cut - Double_t fEtaCutMin; //eta cut - Double_t fPtCut; // pt cut - Double_t fSinglePtCut; // pt cut for electron/positron - Double_t fMaxZ; //z cut - Double_t fMinClsTPC; // minimum clusters in the TPC - Double_t fMinClsTPCToF; // minimum clusters to findable clusters - Double_t fLineCutZRSlope; //linecut - Double_t fLineCutZValue; //linecut - Double_t fLineCutZRSlopeMin; //linecut - Double_t fLineCutZValueMin; //linecut - Double_t fChi2CutConversion; //chi2cut - Double_t fPIDProbabilityCutNegativeParticle; - Double_t fPIDProbabilityCutPositiveParticle; - Bool_t fDodEdxSigmaCut; // flag to use the dEdxCut based on sigmas - Bool_t fDoTOFsigmaCut; // flag to use TOF pid cut RRnewTOF - Double_t fPIDTRDEfficiency; // required electron efficiency for TRD PID - Bool_t fDoTRDPID; // flag to use TRD pid - Double_t fPIDnSigmaAboveElectronLine; // sigma cut - Double_t fPIDnSigmaBelowElectronLine; // sigma cut - Double_t fTofPIDnSigmaAboveElectronLine; // sigma cut RRnewTOF - Double_t fTofPIDnSigmaBelowElectronLine; // sigma cut RRnewTOF - Double_t fPIDnSigmaAbovePionLine; // sigma cut - Double_t fPIDnSigmaAbovePionLineHighPt; // sigma cut - Double_t fPIDMinPnSigmaAbovePionLine; // sigma cut - Double_t fPIDMaxPnSigmaAbovePionLine; // sigma cut - Double_t fDoKaonRejectionLowP; // Kaon rejection at low p - Double_t fDoProtonRejectionLowP; // Proton rejection at low p - Double_t fDoPionRejectionLowP; // Pion rejection at low p - Double_t fPIDnSigmaAtLowPAroundKaonLine; // sigma cut - Double_t fPIDnSigmaAtLowPAroundProtonLine; // sigma cut - Double_t fPIDnSigmaAtLowPAroundPionLine; // sigma cut - Double_t fPIDMinPKaonRejectionLowP; // Momentum limit to apply kaon rejection - Double_t fPIDMinPProtonRejectionLowP; // Momentum limit to apply proton rejection - Double_t fPIDMinPPionRejectionLowP; // Momentum limit to apply proton rejection - Bool_t fDoQtGammaSelection; // Select gammas using qtMax - Bool_t fDoHighPtQtGammaSelection; // RRnew Select gammas using qtMax for high pT - Double_t fQtMax; // Maximum Qt from Armenteros to select Gammas - Double_t fHighPtQtMax; // RRnew Maximum Qt for High pT from Armenteros to select Gammas - Double_t fPtBorderForQt; // RRnew - Double_t fXVertexCut; //vertex cut - Double_t fYVertexCut; //vertex cut - Double_t fZVertexCut; // vertexcut - Double_t fNSigmaMass; //nsigma cut - Bool_t fUseEtaMinCut; //flag - Bool_t fUseOnFlyV0Finder; //flag - Bool_t fDoPhotonAsymmetryCut; // flag to use the PhotonAsymetryCut - Double_t fMinPPhotonAsymmetryCut; // Min Momentum for Asymmetry Cut - Double_t fMinPhotonAsymmetry; // Asymmetry Cut - Int_t fIsHeavyIon; // flag for heavy ion - Int_t fDetectorCentrality; // centrality detecotor V0M or CL1 - Int_t fModCentralityClass; // allows to select smaller centrality classes - Double_t fMaxVertexZ; // max z offset of vertex - Int_t fCentralityMin; // centrality selection lower bin value - Int_t fCentralityMax; // centrality selection upper bin value - Bool_t fUseCorrectedTPCClsInfo; // flag to use corrected tpc cl info - Bool_t fUseTOFpid; // flag to use tof pid - Int_t fMultiplicityMethod; // selected multiplicity method - Int_t fSpecialTrigger; // flag - Bool_t fRemovePileUp; //flag - Float_t fOpeningAngle; // min opening angle for meson - Float_t fPsiPairCut; - Float_t fPsiPairDeltaPhiCut; - Bool_t fDo2DPsiPair; - Float_t fCosPAngleCut; - Bool_t fDoToCloseV0sCut; // - Int_t fRejectExtraSignals;// - Double_t fminV0Dist; // - Bool_t fDoSharedElecCut; // - UInt_t fOfflineTriggerMask; // Task processes collision candidates only - Bool_t fHasV0AND; // V0AND Offline Trigger - Bool_t fIsSDDFired; // SDD FIRED to select with SDD events - TRandom3 fRandom; // - Int_t fElectronArraySize; // Size of electron array - Int_t *fElectronLabelArray; //[fElectronArraySize] - Double_t fDCAZPrimVtxCut; // cut value for the maximum distance in Z between the photon & the primary vertex [cm] - Double_t fDCARPrimVtxCut; // cut value for the maximum distance in R between the photon & the primary vertex [cm] - Float_t fConversionPointXArray; // Array with conversion Point x - Float_t fConversionPointYArray; // Array with conversion Point y - Float_t fConversionPointZArray; // Array with conversion Point z - Int_t fnHeaders; // Number of Headers - Int_t *fNotRejectedStart; //[fnHeaders] - Int_t *fNotRejectedEnd; //[fnHeaders] - TString *fGeneratorNames; //[fnHeaders] - TObjString *fCutString; // cut number used for analysis - AliAnalysisUtils *fUtils; - Double_t fEtaShift; - Bool_t fDoEtaShift; // Flag for Etashift - Bool_t fDoReweightHistoMCPi0; // Flag for reweighting Pi0 input with histogram - Bool_t fDoReweightHistoMCEta; // Flag for reweighting Eta input with histogram - Bool_t fDoReweightHistoMCK0s; // Flag for reweighting K0s input with histogram - TString fPathTrFReweighting; // Path for file used in reweighting - TString fNameHistoReweightingPi0; //Histogram name for reweighting Pi0 - TString fNameHistoReweightingEta; //Histogram name for reweighting Eta - TString fNameHistoReweightingK0s; //Histogram name for reweighting K0s - TString fNameFitDataPi0; //Fit name for fit to spectrum of pi0s in Data - TString fNameFitDataEta; //Fit name for fit to spectrum of etas in Data - TString fNameFitDataK0s; //Fit name for fit to spectrum of k0s in Data - // Histograms - TH1F *hdEdxCuts; // bookkeeping for dEdx cuts - TH2F *hTPCdEdxbefore; // TPC dEdx before cuts - TH2F *hTPCdEdxafter; // TPC dEdx after cuts - TH2F *hTPCdEdxSigbefore; // TPC Sigma dEdx before cuts - TH2F *hTPCdEdxSigafter; // TPC Sigm dEdx after cuts - TH2F *hTOFbefore; // TOF before cuts - TH2F *hTOFSigbefore; // TOF Sigma before cuts - TH2F *hTOFSigafter; // TOF Sigma after cuts - TH2F *hPsiPairDeltaPhiafter; // TOF Sigma after cuts - TH1F *hTrackCuts; // bookkeeping for track cuts - TH1F *hPhotonCuts; // bookkeeping for photon specific cuts - TH1F *hInvMassbefore; // e+e- inv mass distribution before cuts - TH2F *hArmenterosbefore; // armenteros podolanski plot before cuts - TH1F *hInvMassafter; // e+e- inv mass distribution after cuts - TH2F *hArmenterosafter; // armenteros podolanski plot after cuts - TH1F *hAcceptanceCuts; // bookkeeping for acceptance cuts - TH1F *hCutIndex; // bookkeeping for cuts - TH1F *hV0EventCuts; // bookkeeping for event selection cuts - TH1F *hCentrality; // centrality distribution for selected events - TH2F *hCentralityVsNumberOfPrimaryTracks; // centrality distribution for selected events - TH1F *hVertexZ; // vertex z distribution for selected events - TH1F *hTriggerClass; //fired offline trigger class - TH1F *hTriggerClassSelected; //selected fired offline trigger class - TH1D *hReweightMCHistPi0; //histogram input for reweighting Pi0 - TH1D *hReweightMCHistEta; //histogram input for reweighting Eta - TH1D *hReweightMCHistK0s; //histogram input for reweighting K0s - TF1 *fFitDataPi0; //fit to pi0 spectrum in Data - TF1 *fFitDataEta; //fit to eta spectrum in Data - TF1 *fFitDataK0s; //fit to K0s spectrum in Data - Bool_t fPreSelCut; // Flag for preselection cut used in V0Reader - Bool_t fTriggerSelectedManually; // Flag for manual trigger selection - TString fSpecialTriggerName; // Name of the Special Triggers + + protected: + TList *fHistograms; + TList *fHeaderList; + AliPIDResponse *fPIDResponse; + + + Int_t fEventQuality; // EventQuality + //cuts + Double_t fMaxR; //r cut + Double_t fMinR; //r cut + Double_t fEtaCut; //eta cut + Double_t fEtaCutMin; //eta cut + Double_t fPtCut; // pt cut + Double_t fSinglePtCut; // pt cut for electron/positron + Double_t fMaxZ; //z cut + Double_t fMinClsTPC; // minimum clusters in the TPC + Double_t fMinClsTPCToF; // minimum clusters to findable clusters + Double_t fLineCutZRSlope; //linecut + Double_t fLineCutZValue; //linecut + Double_t fLineCutZRSlopeMin; //linecut + Double_t fLineCutZValueMin; //linecut + Double_t fChi2CutConversion; //chi2cut + Double_t fPIDProbabilityCutNegativeParticle; + Double_t fPIDProbabilityCutPositiveParticle; + Bool_t fDodEdxSigmaCut; // flag to use the dEdxCut based on sigmas + Bool_t fDoTOFsigmaCut; // flag to use TOF pid cut RRnewTOF + Double_t fPIDTRDEfficiency; // required electron efficiency for TRD PID + Bool_t fDoTRDPID; // flag to use TRD pid + Double_t fPIDnSigmaAboveElectronLine; // sigma cut + Double_t fPIDnSigmaBelowElectronLine; // sigma cut + Double_t fTofPIDnSigmaAboveElectronLine; // sigma cut RRnewTOF + Double_t fTofPIDnSigmaBelowElectronLine; // sigma cut RRnewTOF + Double_t fPIDnSigmaAbovePionLine; // sigma cut + Double_t fPIDnSigmaAbovePionLineHighPt; // sigma cut + Double_t fPIDMinPnSigmaAbovePionLine; // sigma cut + Double_t fPIDMaxPnSigmaAbovePionLine; // sigma cut + Double_t fDoKaonRejectionLowP; // Kaon rejection at low p + Double_t fDoProtonRejectionLowP; // Proton rejection at low p + Double_t fDoPionRejectionLowP; // Pion rejection at low p + Double_t fPIDnSigmaAtLowPAroundKaonLine; // sigma cut + Double_t fPIDnSigmaAtLowPAroundProtonLine; // sigma cut + Double_t fPIDnSigmaAtLowPAroundPionLine; // sigma cut + Double_t fPIDMinPKaonRejectionLowP; // Momentum limit to apply kaon rejection + Double_t fPIDMinPProtonRejectionLowP; // Momentum limit to apply proton rejection + Double_t fPIDMinPPionRejectionLowP; // Momentum limit to apply proton rejection + Bool_t fDoQtGammaSelection; // Select gammas using qtMax + Bool_t fDoHighPtQtGammaSelection; // RRnew Select gammas using qtMax for high pT + Double_t fQtMax; // Maximum Qt from Armenteros to select Gammas + Double_t fHighPtQtMax; // RRnew Maximum Qt for High pT from Armenteros to select Gammas + Double_t fPtBorderForQt; // RRnew + Double_t fXVertexCut; //vertex cut + Double_t fYVertexCut; //vertex cut + Double_t fZVertexCut; // vertexcut + Double_t fNSigmaMass; //nsigma cut + Bool_t fUseEtaMinCut; //flag + Bool_t fUseOnFlyV0Finder; //flag + Bool_t fDoPhotonAsymmetryCut; // flag to use the PhotonAsymetryCut + Double_t fMinPPhotonAsymmetryCut; // Min Momentum for Asymmetry Cut + Double_t fMinPhotonAsymmetry; // Asymmetry Cut + Int_t fIsHeavyIon; // flag for heavy ion + Int_t fDetectorCentrality; // centrality detecotor V0M or CL1 + Int_t fModCentralityClass; // allows to select smaller centrality classes + Double_t fMaxVertexZ; // max z offset of vertex + Int_t fCentralityMin; // centrality selection lower bin value + Int_t fCentralityMax; // centrality selection upper bin value + Bool_t fUseCorrectedTPCClsInfo; // flag to use corrected tpc cl info + Bool_t fUseTOFpid; // flag to use tof pid + Int_t fMultiplicityMethod; // selected multiplicity method + Int_t fSpecialTrigger; // flag + Bool_t fRemovePileUp; //flag + Float_t fOpeningAngle; // min opening angle for meson + Float_t fPsiPairCut; + Float_t fPsiPairDeltaPhiCut; + Bool_t fDo2DPsiPair; + Float_t fCosPAngleCut; + Bool_t fDoToCloseV0sCut; // + Int_t fRejectExtraSignals;// + Double_t fminV0Dist; // + Bool_t fDoSharedElecCut; // + UInt_t fOfflineTriggerMask; // Task processes collision candidates only + Bool_t fHasV0AND; // V0AND Offline Trigger + Bool_t fIsSDDFired; // SDD FIRED to select with SDD events + TRandom3 fRandom; // + Int_t fElectronArraySize; // Size of electron array + Int_t *fElectronLabelArray; //[fElectronArraySize] + Double_t fDCAZPrimVtxCut; // cut value for the maximum distance in Z between the photon & the primary vertex [cm] + Double_t fDCARPrimVtxCut; // cut value for the maximum distance in R between the photon & the primary vertex [cm] + Int_t fInPlaneOutOfPlane; // In-Plane Out-Of Plane Analysis + Float_t fConversionPointXArray; // Array with conversion Point x + Float_t fConversionPointYArray; // Array with conversion Point y + Float_t fConversionPointZArray; // Array with conversion Point z + Int_t fnHeaders; // Number of Headers + Int_t *fNotRejectedStart; //[fnHeaders] + Int_t *fNotRejectedEnd; //[fnHeaders] + TString *fGeneratorNames; //[fnHeaders] + TObjString *fCutString; // cut number used for analysis + AliAnalysisUtils *fUtils; + Double_t fEtaShift; + Bool_t fDoEtaShift; // Flag for Etashift + Bool_t fDoReweightHistoMCPi0; // Flag for reweighting Pi0 input with histogram + Bool_t fDoReweightHistoMCEta; // Flag for reweighting Eta input with histogram + Bool_t fDoReweightHistoMCK0s; // Flag for reweighting K0s input with histogram + TString fPathTrFReweighting; // Path for file used in reweighting + TString fNameHistoReweightingPi0; //Histogram name for reweighting Pi0 + TString fNameHistoReweightingEta; //Histogram name for reweighting Eta + TString fNameHistoReweightingK0s; //Histogram name for reweighting K0s + TString fNameFitDataPi0; //Fit name for fit to spectrum of pi0s in Data + TString fNameFitDataEta; //Fit name for fit to spectrum of etas in Data + TString fNameFitDataK0s; //Fit name for fit to spectrum of k0s in Data + // Histograms + TH1F *hdEdxCuts; // bookkeeping for dEdx cuts + TH2F *hTPCdEdxbefore; // TPC dEdx before cuts + TH2F *hTPCdEdxafter; // TPC dEdx after cuts + TH2F *hTPCdEdxSigbefore; // TPC Sigma dEdx before cuts + TH2F *hTPCdEdxSigafter; // TPC Sigm dEdx after cuts + TH2F *hTOFbefore; // TOF before cuts + TH2F *hTOFSigbefore; // TOF Sigma before cuts + TH2F *hTOFSigafter; // TOF Sigma after cuts + TH2F *hPsiPairDeltaPhiafter; // TOF Sigma after cuts + TH1F *hTrackCuts; // bookkeeping for track cuts + TH1F *hPhotonCuts; // bookkeeping for photon specific cuts + TH1F *hInvMassbefore; // e+e- inv mass distribution before cuts + TH2F *hArmenterosbefore; // armenteros podolanski plot before cuts + TH1F *hInvMassafter; // e+e- inv mass distribution after cuts + TH2F *hArmenterosafter; // armenteros podolanski plot after cuts + TH1F *hAcceptanceCuts; // bookkeeping for acceptance cuts + TH1F *hCutIndex; // bookkeeping for cuts + TH1F *hV0EventCuts; // bookkeeping for event selection cuts + TH1F *hCentrality; // centrality distribution for selected events + TH2F *hCentralityVsNumberOfPrimaryTracks; // centrality distribution for selected events + TH1F *hVertexZ; // vertex z distribution for selected events + TH1F *hEventPlanePhi; //EventPlaneAngle Minus Photon Angle + TH1F *hTriggerClass; //fired offline trigger class + TH1F *hTriggerClassSelected; //selected fired offline trigger class + TH1D *hReweightMCHistPi0; //histogram input for reweighting Pi0 + TH1D *hReweightMCHistEta; //histogram input for reweighting Eta + TH1D *hReweightMCHistK0s; //histogram input for reweighting K0s + TF1 *fFitDataPi0; //fit to pi0 spectrum in Data + TF1 *fFitDataEta; //fit to eta spectrum in Data + TF1 *fFitDataK0s; //fit to K0s spectrum in Data + Bool_t fPreSelCut; // Flag for preselection cut used in V0Reader + Bool_t fTriggerSelectedManually; // Flag for manual trigger selection + TString fSpecialTriggerName; // Name of the Special Triggers private: - ClassDef(AliConversionCuts,5) + ClassDef(AliConversionCuts,6) }; diff --git a/PWGGA/GammaConv/AliDalitzElectronCuts.cxx b/PWGGA/GammaConv/AliDalitzElectronCuts.cxx index c02bf84479c..17606a86d2e 100644 --- a/PWGGA/GammaConv/AliDalitzElectronCuts.cxx +++ b/PWGGA/GammaConv/AliDalitzElectronCuts.cxx @@ -721,7 +721,7 @@ Bool_t AliDalitzElectronCuts::IsFromGammaConversion( Double_t psiPair, Double_t } ///________________________________________________________________________ -Bool_t AliDalitzElectronCuts::UpdateCutString() { +Bool_t AliDalitzElectronCuts::UpdateCutString(cutIds cutID, Int_t value) { ///Update the cut string (if it has been created yet) if(fCutString && fCutString->GetString().Length() == kNCuts) { @@ -792,42 +792,42 @@ Bool_t AliDalitzElectronCuts::SetCut(cutIds cutID, const Int_t value) { case kededxSigmaITSCut: if( SetITSdEdxCutElectronLine(value)) { //NOTE SetITSdEdxCutElectronLine: To be implemented fCuts[kededxSigmaITSCut] = value; - UpdateCutString(); + UpdateCutString(cutID, value); return kTRUE; } else return kFALSE; case kededxSigmaTPCCut: if( SetTPCdEdxCutElectronLine(value)) { //NOTE SetITSdEdxCutElectronLine: To be implemented fCuts[kededxSigmaTPCCut] = value; - UpdateCutString(); + UpdateCutString(cutID, value); return kTRUE; } else return kFALSE; case kpidedxSigmaTPCCut: if( SetTPCdEdxCutPionLine(value)) { //NOTE SetITSdEdxCutPionLine: To be implemented fCuts[kpidedxSigmaTPCCut] = value; - UpdateCutString(); + UpdateCutString(cutID, value); return kTRUE; } else return kFALSE; case kpiMinMomdedxSigmaTPCCut: if( SetMinMomPiondEdxTPCCut(value)) { fCuts[kpiMinMomdedxSigmaTPCCut] = value; - UpdateCutString(); + UpdateCutString(cutID, value); return kTRUE; } else return kFALSE; case kpiMaxMomdedxSigmaTPCCut: if( SetMaxMomPiondEdxTPCCut(value)) { fCuts[kpiMaxMomdedxSigmaTPCCut] = value; - UpdateCutString(); + UpdateCutString(cutID, value); return kTRUE; } else return kFALSE; case kLowPRejectionSigmaCut: if( SetLowPRejectionCuts(value) ) { fCuts[kLowPRejectionSigmaCut] = value; - UpdateCutString(); + UpdateCutString(cutID, value); return kTRUE; } else return kFALSE; @@ -835,39 +835,39 @@ Bool_t AliDalitzElectronCuts::SetCut(cutIds cutID, const Int_t value) { case kTOFelectronPID: if( SetTOFElectronPIDCut(value)) { fCuts[kTOFelectronPID] = value; - UpdateCutString(); + UpdateCutString(cutID, value); return kTRUE; } else return kFALSE; case kclsITSCut: if( SetITSClusterCut(value) ) { fCuts[kclsITSCut] = value; - UpdateCutString(); + UpdateCutString(cutID, value); return kTRUE; } else return kFALSE; case kclsTPCCut: if( SetTPCClusterCut(value)) { fCuts[kclsTPCCut] = value; - UpdateCutString(); + UpdateCutString(cutID, value); return kTRUE; } else return kFALSE; case ketaCut: if( SetEtaCut(value)) { fCuts[ketaCut] = value; - UpdateCutString(); + UpdateCutString(cutID, value); return kTRUE; } else return kFALSE; case kptCut: if( SetPtCut(value)) { fCuts[kptCut] = value; - UpdateCutString(); + UpdateCutString(cutID, value); return kTRUE; } else return kFALSE; case kDCACut: if( SetDCACut(value)) { fCuts[kDCACut] = value; - UpdateCutString(); + UpdateCutString(cutID, value); return kTRUE; } else return kFALSE; @@ -875,41 +875,41 @@ Bool_t AliDalitzElectronCuts::SetCut(cutIds cutID, const Int_t value) { case kPsiPair: if( SetPsiPairCut(value)) { fCuts[kPsiPair] = value; - UpdateCutString(); + UpdateCutString(cutID, value); return kTRUE; } else return kFALSE; case kRejectSharedElecGamma: if( SetRejectSharedElecGamma(value)) { fCuts[kRejectSharedElecGamma] = value; - UpdateCutString(); + UpdateCutString(cutID, value); return kTRUE; } else return kFALSE; case kBackgroundScheme: if( SetBackgroundScheme(value)) { fCuts[kBackgroundScheme] = value; - UpdateCutString(); + UpdateCutString(cutID, value); return kTRUE; } else return kFALSE; case kNumberOfRotations: if( SetNumberOfRotations(value)) { fCuts[kNumberOfRotations] = value; - UpdateCutString(); + UpdateCutString(cutID, value); return kTRUE; } else return kFALSE; case kmassCut: if( SetMassCut(value)) { fCuts[kmassCut] = value; - UpdateCutString(); + UpdateCutString(cutID, value); return kTRUE; } else return kFALSE; case kWeights: if( SetDoWeights(value)) { fCuts[kWeights] = value; - UpdateCutString(); + UpdateCutString(cutID, value); return kTRUE; } else return kFALSE; @@ -1188,52 +1188,52 @@ Bool_t AliDalitzElectronCuts::SetTPCClusterCut(Int_t clsTPCCut) { // Set Cut switch(clsTPCCut){ case 0: // 0 - fMinClsTPC= 0; + fMinClsTPC= 0.; fesdTrackCuts->SetMinNClustersTPC(fMinClsTPC); break; case 1: // 70 - fMinClsTPC= 70; + fMinClsTPC= 70.; fesdTrackCuts->SetMinNClustersTPC(fMinClsTPC); break; case 2: // 80 - fMinClsTPC= 80; + fMinClsTPC= 80.; fesdTrackCuts->SetMinNClustersTPC(fMinClsTPC); break; case 3: // 100 - fMinClsTPC= 100; + fMinClsTPC= 100.; fesdTrackCuts->SetMinNClustersTPC(fMinClsTPC); break; case 4: // 0% of findable clusters - fMinClsTPC= 70; + fMinClsTPC= 70.; fesdTrackCuts->SetMinNClustersTPC(fMinClsTPC); fMinClsTPCToF= 0.0; fUseCorrectedTPCClsInfo=0; break; case 5: // 35% of findable clusters - fMinClsTPC = 70; + fMinClsTPC = 70.; fesdTrackCuts->SetMinNClustersTPC(fMinClsTPC); fMinClsTPCToF= 0.35; fUseCorrectedTPCClsInfo=0; break; case 6: // 60% of findable clusters - fMinClsTPC= 70; + fMinClsTPC= 70.; fesdTrackCuts->SetMinNClustersTPC(fMinClsTPC); fMinClsTPCToF= 0.6; fUseCorrectedTPCClsInfo=0; break; case 7: // 70% of findable clusters - fMinClsTPC= 70; + fMinClsTPC= 70.; fesdTrackCuts->SetMinNClustersTPC(fMinClsTPC); fMinClsTPCToF= 0.7; fUseCorrectedTPCClsInfo=0; break; - case 8: fMinClsTPC = 0; + case 8: fMinClsTPC = 0.; fesdTrackCuts->SetMinNClustersTPC(fMinClsTPC); fMinClsTPCToF= 0.35; fUseCorrectedTPCClsInfo=0; break; case 9: // 35% of findable clusters - fMinClsTPC = 70; + fMinClsTPC = 70.; fesdTrackCuts->SetMinNClustersTPC(fMinClsTPC); fMinClsTPCToF= 0.35; fUseCorrectedTPCClsInfo=1; diff --git a/PWGGA/GammaConv/AliDalitzElectronCuts.h b/PWGGA/GammaConv/AliDalitzElectronCuts.h index 363f0f05e99..bf5857c0109 100644 --- a/PWGGA/GammaConv/AliDalitzElectronCuts.h +++ b/PWGGA/GammaConv/AliDalitzElectronCuts.h @@ -75,7 +75,7 @@ class AliDalitzElectronCuts : public AliAnalysisCuts { Bool_t SetCutIds(TString cutString); Int_t fCuts[kNCuts]; Bool_t SetCut(cutIds cutID, Int_t cut); - Bool_t UpdateCutString(); + Bool_t UpdateCutString(cutIds cutID, Int_t value); static const char * fgkCutNames[kNCuts]; @@ -177,7 +177,7 @@ class AliDalitzElectronCuts : public AliAnalysisCuts { Double_t fPsiPairCut; Double_t fDeltaPhiCutMin; Double_t fDeltaPhiCutMax; - Int_t fMinClsTPC; // minimum clusters in the TPC + Double_t fMinClsTPC; // minimum clusters in the TPC Double_t fMinClsTPCToF; // minimum clusters to findable clusters Bool_t fDodEdxSigmaITSCut; // flag to use the dEdxCut ITS based on sigmas Bool_t fDodEdxSigmaTPCCut; // flag to use the dEdxCut TPC based on sigmas diff --git a/PWGGA/GammaConv/AliGammaConversionAODBGHandler.cxx b/PWGGA/GammaConv/AliGammaConversionAODBGHandler.cxx index d7c39752780..dd611f332f3 100644 --- a/PWGGA/GammaConv/AliGammaConversionAODBGHandler.cxx +++ b/PWGGA/GammaConv/AliGammaConversionAODBGHandler.cxx @@ -195,40 +195,43 @@ AliGammaConversionAODBGHandler::AliGammaConversionAODBGHandler(UInt_t collisionS else if(collisionSystem == 8 || collisionSystem == 9){ //pPb - fBinLimitsArrayMultiplicity[0] = 0.; - fBinLimitsArrayMultiplicity[1] = 7.5; - fBinLimitsArrayMultiplicity[2] = 16.5; - fBinLimitsArrayMultiplicity[3] = 29.5; - fBinLimitsArrayMultiplicity[4] = 500.; - - if(centMin == 0 && centMax == 20){ - fBinLimitsArrayMultiplicity[0] = 0.; - fBinLimitsArrayMultiplicity[1] = 31.5; - fBinLimitsArrayMultiplicity[2] = 40.5; - fBinLimitsArrayMultiplicity[3] = 50.5; - fBinLimitsArrayMultiplicity[4] = 500.; - } - else if(centMin == 20 && centMax == 40){ - fBinLimitsArrayMultiplicity[0] = 0.; - fBinLimitsArrayMultiplicity[1] = 19.5; - fBinLimitsArrayMultiplicity[2] = 25.5; - fBinLimitsArrayMultiplicity[3] = 32.5; - fBinLimitsArrayMultiplicity[4] = 500.; - } - else if(centMin == 40 && centMax == 60){ - fBinLimitsArrayMultiplicity[0] = 0.; - fBinLimitsArrayMultiplicity[1] = 12.5; - fBinLimitsArrayMultiplicity[2] = 16.5; - fBinLimitsArrayMultiplicity[3] = 22.5; - fBinLimitsArrayMultiplicity[4] = 500.; - } - else if(centMin == 60 && centMax == 80){ - fBinLimitsArrayMultiplicity[0] = 0.; - fBinLimitsArrayMultiplicity[1] = 5.5; - fBinLimitsArrayMultiplicity[2] = 9.5; - fBinLimitsArrayMultiplicity[3] = 13.5; - fBinLimitsArrayMultiplicity[4] = 500.; - } + fBinLimitsArrayMultiplicity[0] = 0.; + fBinLimitsArrayMultiplicity[1] = 7.5; + fBinLimitsArrayMultiplicity[2] = 16.5; + fBinLimitsArrayMultiplicity[3] = 29.5; + fBinLimitsArrayMultiplicity[4] = 500.; + + if(centMin == 0 && centMax == 20){ + fBinLimitsArrayMultiplicity[0] = 0.; + fBinLimitsArrayMultiplicity[1] = 31.5; + fBinLimitsArrayMultiplicity[2] = 40.5; + fBinLimitsArrayMultiplicity[3] = 50.5; + fBinLimitsArrayMultiplicity[4] = 500.; + } else if(centMin == 20 && centMax == 40){ + fBinLimitsArrayMultiplicity[0] = 0.; + fBinLimitsArrayMultiplicity[1] = 19.5; + fBinLimitsArrayMultiplicity[2] = 25.5; + fBinLimitsArrayMultiplicity[3] = 32.5; + fBinLimitsArrayMultiplicity[4] = 500.; + } else if(centMin == 40 && centMax == 60){ + fBinLimitsArrayMultiplicity[0] = 0.; + fBinLimitsArrayMultiplicity[1] = 12.5; + fBinLimitsArrayMultiplicity[2] = 16.5; + fBinLimitsArrayMultiplicity[3] = 22.5; + fBinLimitsArrayMultiplicity[4] = 500.; + } else if(centMin == 60 && centMax == 80){ + fBinLimitsArrayMultiplicity[0] = 0.; + fBinLimitsArrayMultiplicity[1] = 5.5; + fBinLimitsArrayMultiplicity[2] = 9.5; + fBinLimitsArrayMultiplicity[3] = 13.5; + fBinLimitsArrayMultiplicity[4] = 500.; + } else if(centMin == 60 && centMax == 100){ + fBinLimitsArrayMultiplicity[0] = 0.; + fBinLimitsArrayMultiplicity[1] = 2.5; + fBinLimitsArrayMultiplicity[2] = 6.5; + fBinLimitsArrayMultiplicity[3] = 11.5; + fBinLimitsArrayMultiplicity[4] = 500.; + } } } else{// pp or pPb V0 Mult @@ -502,7 +505,8 @@ Int_t AliGammaConversionAODBGHandler::GetMultiplicityBinIndex(Int_t multiplicity return fNBinsMultiplicity-1; } -void AliGammaConversionAODBGHandler::AddEvent(TList* const eventGammas,Double_t xvalue, Double_t yvalue, Double_t zvalue, Int_t multiplicity){ +void AliGammaConversionAODBGHandler::AddEvent(TList* const eventGammas,Double_t xvalue, Double_t yvalue, Double_t zvalue, Int_t multiplicity, Double_t epvalue){ + // see header file for documantation // cout<<"Entering the AddEvent function"< 0.100 GeV - ConvCutarray[2] = "800000008209460300720000000"; ElecCutarray[2] = "9047540025810262170"; MesonCutarray[2] = "01039035009000"; //standard cut Pi0 PbPb 00-100 + dEdx electron gamma -6 ,7 sigmas - ConvCutarray[3] = "800000008209360300720300000"; ElecCutarray[3] = "9047540025810262170"; MesonCutarray[3] = "01039035009000"; //standard cut Pi0 PbPb 00-100 do Aysemtri cut - ConvCutarray[4] = "800000008209360300720000000"; ElecCutarray[4] = "9051540025810262170"; MesonCutarray[4] = "01039035009000"; //standard cut Pi0 PbPb 00-100 - ConvCutarray[5] = "800000008209360300720000000"; ElecCutarray[5] = "9051540025810262170"; MesonCutarray[5] = "01039035009000"; //standard cut Pi0 PbPb 00-100 Standard cut + dEdx primary -3, 5 and 3.0 , -10 pion rejection + ConvCutarray[0] = "8000000082093603007200000000"; ElecCutarray[0] = "9047540025810262170"; MesonCutarray[0] = "01039035009000"; //standard cut Pi0 PbPb 00-100 + ConvCutarray[1] = "8000000082093603007200000000"; ElecCutarray[1] = "9047540025810261170"; MesonCutarray[1] = "01039035009000"; //standard cut Pi0 PbPb 00-100 + Single Pt primary > 0.100 GeV + ConvCutarray[2] = "8000000082094603007200000000"; ElecCutarray[2] = "9047540025810262170"; MesonCutarray[2] = "01039035009000"; //standard cut Pi0 PbPb 00-100 + dEdx electron gamma -6 ,7 sigmas + ConvCutarray[3] = "8000000082093603007203000000"; ElecCutarray[3] = "9047540025810262170"; MesonCutarray[3] = "01039035009000"; //standard cut Pi0 PbPb 00-100 do Aysemtri cut + ConvCutarray[4] = "8000000082093603007200000000"; ElecCutarray[4] = "9051540025810262170"; MesonCutarray[4] = "01039035009000"; //standard cut Pi0 PbPb 00-100 + ConvCutarray[5] = "8000000082093603007200000000"; ElecCutarray[5] = "9051540025810262170"; MesonCutarray[5] = "01039035009000"; //standard cut Pi0 PbPb 00-100 Standard cut + dEdx primary -3, 5 and 3.0 , -10 pion rejection } else if( trainConfig == 2 ) { - ConvCutarray[0] = "800000008209360300720000000"; ElecCutarray[0] = "9047540025810262170"; MesonCutarray[0] = "01039035009000"; //standard cut Pi0 PbPb 00-100 - ConvCutarray[1] = "802000008209360300720000000"; ElecCutarray[1] = "9047540025810262170"; MesonCutarray[1] = "01039035009000"; //standard cut Pi0 PbPb 00-20 - ConvCutarray[2] = "824000008209360300720000000"; ElecCutarray[2] = "9047540025810262170"; MesonCutarray[2] = "01039035009000"; //standard cut Pi0 PbPb 20-40 - ConvCutarray[3] = "846000008209360300720000000"; ElecCutarray[3] = "9047540025810262170"; MesonCutarray[3] = "01039035009000"; //standard cut Pi0 PbPb 40-60 - ConvCutarray[4] = "868000008209360300720000000"; ElecCutarray[4] = "9047540025810262170"; MesonCutarray[4] = "01039035009000"; //standard cut Pi0 PbPb 60-80 - ConvCutarray[5] = "860000008209360300720000000"; ElecCutarray[5] = "9047540025810262170"; MesonCutarray[5] = "01039035009000"; //standard cut Pi0 PbPb 60-100 + ConvCutarray[0] = "8000000082093603007200000000"; ElecCutarray[0] = "9047540025810262170"; MesonCutarray[0] = "01039035009000"; //standard cut Pi0 PbPb 00-100 + ConvCutarray[1] = "8020000082093603007200000000"; ElecCutarray[1] = "9047540025810262170"; MesonCutarray[1] = "01039035009000"; //standard cut Pi0 PbPb 00-20 + ConvCutarray[2] = "8240000082093603007200000000"; ElecCutarray[2] = "9047540025810262170"; MesonCutarray[2] = "01039035009000"; //standard cut Pi0 PbPb 20-40 + ConvCutarray[3] = "8460000082093603007200000000"; ElecCutarray[3] = "9047540025810262170"; MesonCutarray[3] = "01039035009000"; //standard cut Pi0 PbPb 40-60 + ConvCutarray[4] = "8680000082093603007200000000"; ElecCutarray[4] = "9047540025810262170"; MesonCutarray[4] = "01039035009000"; //standard cut Pi0 PbPb 60-80 + ConvCutarray[5] = "8600000082093603007200000000"; ElecCutarray[5] = "9047540025810262170"; MesonCutarray[5] = "01039035009000"; //standard cut Pi0 PbPb 60-100 } diff --git a/PWGGA/GammaConv/macros/AddTask_GammaConvDalitzV1_pp.C b/PWGGA/GammaConv/macros/AddTask_GammaConvDalitzV1_pp.C index 63ee02d75f8..16d87fe1641 100644 --- a/PWGGA/GammaConv/macros/AddTask_GammaConvDalitzV1_pp.C +++ b/PWGGA/GammaConv/macros/AddTask_GammaConvDalitzV1_pp.C @@ -41,7 +41,7 @@ void AddTask_GammaConvDalitzV1_pp( Int_t trainConfig = 1, //change different s //========= Set Cutnumber for V0Reader ================================ - TString cutnumber = "0000000000084001001500000"; + TString cutnumber = "00000000000840010015000000"; AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer(); //========= Add V0 Reader to ANALYSIS manager if not yet existent ===== @@ -143,16 +143,16 @@ void AddTask_GammaConvDalitzV1_pp( Int_t trainConfig = 1, //change different s if(trainConfig == 1){ //TOF PID - ConvCutarray[0] = "0000011002093663027800000"; MesonCutarray[0] = "01631031009";ElecCutarray[0] = "904784032531026210"; //TOF[-3,5] 0.0 sigmas at low Pt for pion rejection, Pt 0.125 cut, DCAxy Pt Dep, No Mass(e+,e-) FindCluster > 0.0 - ConvCutarray[1] = "0000011002093663027800000"; MesonCutarray[1] = "01631031009";ElecCutarray[1] = "904784042531026210"; //TOF[-2,3] 0.0 sigmas at low Pt for pion rejection, Pt 0.125 cut, DCAxy Pt Dep, No Mass(e+,e-) FindCluster > 0.0 + ConvCutarray[0] = "00000110020936630278000000"; MesonCutarray[0] = "01631031009";ElecCutarray[0] = "904784032531026210"; //TOF[-3,5] 0.0 sigmas at low Pt for pion rejection, Pt 0.125 cut, DCAxy Pt Dep, No Mass(e+,e-) FindCluster > 0.0 + ConvCutarray[1] = "00000110020936630278000000"; MesonCutarray[1] = "01631031009";ElecCutarray[1] = "904784042531026210"; //TOF[-2,3] 0.0 sigmas at low Pt for pion rejection, Pt 0.125 cut, DCAxy Pt Dep, No Mass(e+,e-) FindCluster > 0.0 } else if (trainConfig == 2) { //TOF PID - ConvCutarray[0] = "0000011002093663027800000"; MesonCutarray[0] = "01631031009";ElecCutarray[0] = "904784032531026210"; //TOF[-3,5] 0.0 sigmas at low Pt for pion rejection, Pt 0.125 cut, DCAxy Pt Dep, No Mass(e+,e-) FindCluster > 0.0 - ConvCutarray[1] = "0000011002093663027800000"; MesonCutarray[1] = "01631031009";ElecCutarray[1] = "904784042531026210"; //TOF[-2,3] 0.0 sigmas at low Pt for pion rejection, Pt 0.125 cut, DCAxy Pt Dep, No Mass(e+,e-) FindCluster > 0.0 + ConvCutarray[0] = "00000110020936630278000000"; MesonCutarray[0] = "01631031009";ElecCutarray[0] = "904784032531026210"; //TOF[-3,5] 0.0 sigmas at low Pt for pion rejection, Pt 0.125 cut, DCAxy Pt Dep, No Mass(e+,e-) FindCluster > 0.0 + ConvCutarray[1] = "00000110020936630278000000"; MesonCutarray[1] = "01631031009";ElecCutarray[1] = "904784042531026210"; //TOF[-2,3] 0.0 sigmas at low Pt for pion rejection, Pt 0.125 cut, DCAxy Pt Dep, No Mass(e+,e-) FindCluster > 0.0 } else if (trainConfig == 3) { //TOF PID - ConvCutarray[0] = "0000011002093663027800000"; MesonCutarray[0] = "01631031009";ElecCutarray[0] = "904784032531026210"; //TOF[-3,5] 0.0 sigmas at low Pt for pion rejection, Pt 0.125 cut, DCAxy Pt Dep, No Mass(e+,e-) FindCluster > 0.0 - ConvCutarray[1] = "0000011002093663027800000"; MesonCutarray[1] = "01631031009";ElecCutarray[1] = "904784042531026210"; //TOF[-2,3] 0.0 sigmas at low Pt for pion rejection, Pt 0.125 cut, DCAxy Pt Dep, No Mass(e+,e-) FindCluster > 0.0 + ConvCutarray[0] = "00000110020936630278000000"; MesonCutarray[0] = "01631031009";ElecCutarray[0] = "904784032531026210"; //TOF[-3,5] 0.0 sigmas at low Pt for pion rejection, Pt 0.125 cut, DCAxy Pt Dep, No Mass(e+,e-) FindCluster > 0.0 + ConvCutarray[1] = "00000110020936630278000000"; MesonCutarray[1] = "01631031009";ElecCutarray[1] = "904784042531026210"; //TOF[-2,3] 0.0 sigmas at low Pt for pion rejection, Pt 0.125 cut, DCAxy Pt Dep, No Mass(e+,e-) FindCluster > 0.0 } else { Error(Form("GammaConvDalitzV1_%i",trainConfig), "wrong trainConfig variable no cuts have been specified for the configuration"); return; diff --git a/PWGGA/GammaConv/macros/AddTask_GammaConvV1_PbPb.C b/PWGGA/GammaConv/macros/AddTask_GammaConvV1_PbPb.C index 713e7aff3d0..977da8e99de 100644 --- a/PWGGA/GammaConv/macros/AddTask_GammaConvV1_PbPb.C +++ b/PWGGA/GammaConv/macros/AddTask_GammaConvV1_PbPb.C @@ -1,7 +1,7 @@ void AddTask_GammaConvV1_PbPb( Int_t trainConfig = 1, //change different set of cuts Bool_t isMC = kFALSE, //run MC - Bool_t enableQAMesonTask = kFALSE, //enable QA in AliAnalysisTaskGammaConvV1 - Bool_t enableQAPhotonTask = kFALSE, // enable additional QA task + Int_t enableQAMesonTask = 0, //enable QA in AliAnalysisTaskGammaConvV1 + Int_t enableQAPhotonTask = 0, // enable additional QA task TString fileNameInputForWeighting = "MCSpectraInput.root", // path to file for weigting input Bool_t doWeighting = kFALSE, //enable Weighting TString cutnumberAODBranch = "1000000060084000001500000" @@ -43,7 +43,7 @@ void AddTask_GammaConvV1_PbPb( Int_t trainConfig = 1, //change different set o } //========= Set Cutnumber for V0Reader ================================ - TString cutnumber = "100000000008400100150000000"; + TString cutnumber = "1000000000084001001500000000"; AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer(); //========= Add V0 Reader to ANALYSIS manager if not yet existent ===== if( !(AliV0ReaderV1*)mgr->GetTask("V0ReaderV1") ){ @@ -97,293 +97,293 @@ void AddTask_GammaConvV1_PbPb( Int_t trainConfig = 1, //change different set o TString *mesonCutArray = new TString[numberOfCuts]; if (trainConfig == 1){ // Standard cuts - cutarray[ 0] = "601000104209297002322000000"; mesonCutArray[ 0] = "01522045009000"; // 0-5% - cutarray[ 1] = "612000104209297002322000000"; mesonCutArray[ 1] = "01522045009000"; // 5-10% - cutarray[ 2] = "501000104209297002322000000"; mesonCutArray[ 2] = "01522045009000"; // 0-10% - cutarray[ 3] = "512000104209297002322000000"; mesonCutArray[ 3] = "01522045009000"; // 10-20% - cutarray[ 4] = "502000104209297002322000000"; mesonCutArray[ 4] = "01522045009000"; // 0-20% + cutarray[ 0] = "6010001042092970023220000000"; mesonCutArray[ 0] = "01522045009000"; // 0-5% + cutarray[ 1] = "6120001042092970023220000000"; mesonCutArray[ 1] = "01522045009000"; // 5-10% + cutarray[ 2] = "5010001042092970023220000000"; mesonCutArray[ 2] = "01522045009000"; // 0-10% + cutarray[ 3] = "5120001042092970023220000000"; mesonCutArray[ 3] = "01522045009000"; // 10-20% + cutarray[ 4] = "5020001042092970023220000000"; mesonCutArray[ 4] = "01522045009000"; // 0-20% } else if (trainConfig == 2) { // Standard cuts - cutarray[ 0] = "524000104209297002322000000"; mesonCutArray[ 0] = "01522045009000"; // 20-40% - cutarray[ 1] = "546000104209297002322000000"; mesonCutArray[ 1] = "01522065009000"; // 40-60% - cutarray[ 2] = "568000104209297002322000000"; mesonCutArray[ 2] = "01522065009000"; // 60-80% - cutarray[ 3] = "548000104209297002322000000"; mesonCutArray[ 3] = "01522065009000"; // 40-80% - cutarray[ 4] = "549000104209297002322000000"; mesonCutArray[ 4] = "01522065009000"; // 40-90% + cutarray[ 0] = "5240001042092970023220000000"; mesonCutArray[ 0] = "01522045009000"; // 20-40% + cutarray[ 1] = "5460001042092970023220000000"; mesonCutArray[ 1] = "01522065009000"; // 40-60% + cutarray[ 2] = "5680001042092970023220000000"; mesonCutArray[ 2] = "01522065009000"; // 60-80% + cutarray[ 3] = "5480001042092970023220000000"; mesonCutArray[ 3] = "01522065009000"; // 40-80% + cutarray[ 4] = "5490001042092970023220000000"; mesonCutArray[ 4] = "01522065009000"; // 40-90% } else if (trainConfig == 3) { // Standard cuts only added signals - cutarray[ 0] = "601000204209297002322000000"; mesonCutArray[ 0] = "01522045009000"; // 0-5% - cutarray[ 1] = "612000204209297002322000000"; mesonCutArray[ 1] = "01522045009000"; // 5-10% - cutarray[ 2] = "501000204209297002322000000"; mesonCutArray[ 2] = "01522045009000"; // 0-10% - cutarray[ 3] = "512000204209297002322000000"; mesonCutArray[ 3] = "01522045009000"; // 10-20% - cutarray[ 4] = "502000204209297002322000000"; mesonCutArray[ 4] = "01522045009000"; // 0-20% + cutarray[ 0] = "6010002042092970023220000000"; mesonCutArray[ 0] = "01522045009000"; // 0-5% + cutarray[ 1] = "6120002042092970023220000000"; mesonCutArray[ 1] = "01522045009000"; // 5-10% + cutarray[ 2] = "5010002042092970023220000000"; mesonCutArray[ 2] = "01522045009000"; // 0-10% + cutarray[ 3] = "5120002042092970023220000000"; mesonCutArray[ 3] = "01522045009000"; // 10-20% + cutarray[ 4] = "5020002042092970023220000000"; mesonCutArray[ 4] = "01522045009000"; // 0-20% } else if (trainConfig == 4) { // Standard cuts only added signals - cutarray[ 0] = "524000204209297002322000000"; mesonCutArray[ 0] = "01522045009000"; // 20-40% - cutarray[ 1] = "546000204209297002322000000"; mesonCutArray[ 1] = "01522065009000"; // 40-60% - cutarray[ 2] = "568000204209297002322000000"; mesonCutArray[ 2] = "01522065009000"; // 60-80% - cutarray[ 3] = "548000204209297002322000000"; mesonCutArray[ 3] = "01522065009000"; // 20-40% - cutarray[ 4] = "549000204209297002322000000"; mesonCutArray[ 4] = "01522065009000"; // 40-90% + cutarray[ 0] = "5240002042092970023220000000"; mesonCutArray[ 0] = "01522045009000"; // 20-40% + cutarray[ 1] = "5460002042092970023220000000"; mesonCutArray[ 1] = "01522065009000"; // 40-60% + cutarray[ 2] = "5680002042092970023220000000"; mesonCutArray[ 2] = "01522065009000"; // 60-80% + cutarray[ 3] = "5480002042092970023220000000"; mesonCutArray[ 3] = "01522065009000"; // 20-40% + cutarray[ 4] = "5490002042092970023220000000"; mesonCutArray[ 4] = "01522065009000"; // 40-90% } else if (trainConfig == 5){ // R-minCut 7.5 cm - cutarray[ 0] = "601000104909297002322000000"; mesonCutArray[ 0] = "01522045009000"; // 0-5% - cutarray[ 1] = "612000104909297002322000000"; mesonCutArray[ 1] = "01522045009000"; // 5-10% - cutarray[ 2] = "501000104909297002322000000"; mesonCutArray[ 2] = "01522045009000"; // 0-10% - cutarray[ 3] = "512000104909297002322000000"; mesonCutArray[ 3] = "01522045009000"; // 10-20% - cutarray[ 4] = "502000104909297002322000000"; mesonCutArray[ 4] = "01522045009000"; // 0-20% + cutarray[ 0] = "6010001049092970023220000000"; mesonCutArray[ 0] = "01522045009000"; // 0-5% + cutarray[ 1] = "6120001049092970023220000000"; mesonCutArray[ 1] = "01522045009000"; // 5-10% + cutarray[ 2] = "5010001049092970023220000000"; mesonCutArray[ 2] = "01522045009000"; // 0-10% + cutarray[ 3] = "5120001049092970023220000000"; mesonCutArray[ 3] = "01522045009000"; // 10-20% + cutarray[ 4] = "5020001049092970023220000000"; mesonCutArray[ 4] = "01522045009000"; // 0-20% } else if (trainConfig == 6) { // R-minCut 7.5 cm - cutarray[ 0] = "524000104909297002322000000"; mesonCutArray[ 0] = "01522045009000"; // 20-40% - cutarray[ 1] = "546000104909297002322000000"; mesonCutArray[ 1] = "01522065009000"; // 40-60% - cutarray[ 2] = "568000104909297002322000000"; mesonCutArray[ 2] = "01522065009000"; // 60-80% - cutarray[ 3] = "548000104909297002322000000"; mesonCutArray[ 3] = "01522065009000"; // 40-80% - cutarray[ 4] = "549000104909297002322000000"; mesonCutArray[ 4] = "01522065009000"; // 40-90% + cutarray[ 0] = "5240001049092970023220000000"; mesonCutArray[ 0] = "01522045009000"; // 20-40% + cutarray[ 1] = "5460001049092970023220000000"; mesonCutArray[ 1] = "01522065009000"; // 40-60% + cutarray[ 2] = "5680001049092970023220000000"; mesonCutArray[ 2] = "01522065009000"; // 60-80% + cutarray[ 3] = "5480001049092970023220000000"; mesonCutArray[ 3] = "01522065009000"; // 40-80% + cutarray[ 4] = "5490001049092970023220000000"; mesonCutArray[ 4] = "01522065009000"; // 40-90% } else if (trainConfig == 7) {// R-minCut 7.5 cm - cutarray[ 0] = "601000204909297002322000000"; mesonCutArray[ 0] = "01522045009000"; // 0-5% - cutarray[ 1] = "612000204909297002322000000"; mesonCutArray[ 1] = "01522045009000"; // 5-10% - cutarray[ 2] = "501000204909297002322000000"; mesonCutArray[ 2] = "01522045009000"; // 0-10% - cutarray[ 3] = "512000204909297002322000000"; mesonCutArray[ 3] = "01522045009000"; // 10-20% - cutarray[ 4] = "502000204909297002322000000"; mesonCutArray[ 4] = "01522045009000"; // 0-20% + cutarray[ 0] = "6010002049092970023220000000"; mesonCutArray[ 0] = "01522045009000"; // 0-5% + cutarray[ 1] = "6120002049092970023220000000"; mesonCutArray[ 1] = "01522045009000"; // 5-10% + cutarray[ 2] = "5010002049092970023220000000"; mesonCutArray[ 2] = "01522045009000"; // 0-10% + cutarray[ 3] = "5120002049092970023220000000"; mesonCutArray[ 3] = "01522045009000"; // 10-20% + cutarray[ 4] = "5020002049092970023220000000"; mesonCutArray[ 4] = "01522045009000"; // 0-20% } else if (trainConfig == 8) { // R-minCut 7.5 cm - cutarray[ 0] = "524000204009297002322000000"; mesonCutArray[ 0] = "01522045009000"; // 20-40% - cutarray[ 1] = "546000204909297002322000000"; mesonCutArray[ 1] = "01522065009000"; // 40-60% - cutarray[ 2] = "568000204909297002322000000"; mesonCutArray[ 2] = "01522065009000"; // 60-80% - cutarray[ 3] = "548000204909297002322000000"; mesonCutArray[ 3] = "01522065009000"; // 20-40% - cutarray[ 4] = "549000204909297002322000000"; mesonCutArray[ 4] = "01522065009000"; // 40-90% + cutarray[ 0] = "5240002040092970023220000000"; mesonCutArray[ 0] = "01522045009000"; // 20-40% + cutarray[ 1] = "5460002049092970023220000000"; mesonCutArray[ 1] = "01522065009000"; // 40-60% + cutarray[ 2] = "5680002049092970023220000000"; mesonCutArray[ 2] = "01522065009000"; // 60-80% + cutarray[ 3] = "5480002049092970023220000000"; mesonCutArray[ 3] = "01522065009000"; // 20-40% + cutarray[ 4] = "5490002049092970023220000000"; mesonCutArray[ 4] = "01522065009000"; // 40-90% } else if (trainConfig == 9){ // R-minCut 12.5 cm - cutarray[ 0] = "601000104809297002322000000"; mesonCutArray[ 0] = "01522045009000"; // 0-5% - cutarray[ 1] = "612000104809297002322000000"; mesonCutArray[ 1] = "01522045009000"; // 5-10% - cutarray[ 2] = "501000104809297002322000000"; mesonCutArray[ 2] = "01522045009000"; // 0-10% - cutarray[ 3] = "512000104809297002322000000"; mesonCutArray[ 3] = "01522045009000"; // 10-20% - cutarray[ 4] = "502000104809297002322000000"; mesonCutArray[ 4] = "01522045009000"; // 0-20% + cutarray[ 0] = "6010001048092970023220000000"; mesonCutArray[ 0] = "01522045009000"; // 0-5% + cutarray[ 1] = "6120001048092970023220000000"; mesonCutArray[ 1] = "01522045009000"; // 5-10% + cutarray[ 2] = "5010001048092970023220000000"; mesonCutArray[ 2] = "01522045009000"; // 0-10% + cutarray[ 3] = "5120001048092970023220000000"; mesonCutArray[ 3] = "01522045009000"; // 10-20% + cutarray[ 4] = "5020001048092970023220000000"; mesonCutArray[ 4] = "01522045009000"; // 0-20% } else if (trainConfig == 10) { // R-minCut 12.5 cm - cutarray[ 0] = "524000104809297002322000000"; mesonCutArray[ 0] = "01522045009000"; // 20-40% - cutarray[ 1] = "546000104809297002322000000"; mesonCutArray[ 1] = "01522065009000"; // 40-60% - cutarray[ 2] = "568000104809297002322000000"; mesonCutArray[ 2] = "01522065009000"; // 60-80% - cutarray[ 3] = "548000104809297002322000000"; mesonCutArray[ 3] = "01522065009000"; // 40-80% - cutarray[ 4] = "549000104809297002322000000"; mesonCutArray[ 4] = "01522065009000"; // 40-90% + cutarray[ 0] = "5240001048092970023220000000"; mesonCutArray[ 0] = "01522045009000"; // 20-40% + cutarray[ 1] = "5460001048092970023220000000"; mesonCutArray[ 1] = "01522065009000"; // 40-60% + cutarray[ 2] = "5680001048092970023220000000"; mesonCutArray[ 2] = "01522065009000"; // 60-80% + cutarray[ 3] = "5480001048092970023220000000"; mesonCutArray[ 3] = "01522065009000"; // 40-80% + cutarray[ 4] = "5490001048092970023220000000"; mesonCutArray[ 4] = "01522065009000"; // 40-90% } else if (trainConfig == 11) {// R-minCut 12.5 cm - cutarray[ 0] = "601000204809297002322000000"; mesonCutArray[ 0] = "01522045009000"; // 0-5% - cutarray[ 1] = "612000204809297002322000000"; mesonCutArray[ 1] = "01522045009000"; // 5-10% - cutarray[ 2] = "501000204809297002322000000"; mesonCutArray[ 2] = "01522045009000"; // 0-10% - cutarray[ 3] = "512000204809297002322000000"; mesonCutArray[ 3] = "01522045009000"; // 10-20% - cutarray[ 4] = "502000204809297002322000000"; mesonCutArray[ 4] = "01522045009000"; // 0-20% + cutarray[ 0] = "6010002048092970023220000000"; mesonCutArray[ 0] = "01522045009000"; // 0-5% + cutarray[ 1] = "6120002048092970023220000000"; mesonCutArray[ 1] = "01522045009000"; // 5-10% + cutarray[ 2] = "5010002048092970023220000000"; mesonCutArray[ 2] = "01522045009000"; // 0-10% + cutarray[ 3] = "5120002048092970023220000000"; mesonCutArray[ 3] = "01522045009000"; // 10-20% + cutarray[ 4] = "5020002048092970023220000000"; mesonCutArray[ 4] = "01522045009000"; // 0-20% } else if (trainConfig == 12) { // R-minCut 12.5 cm - cutarray[ 0] = "524000204009297002322000000"; mesonCutArray[ 0] = "01522045009000"; // 20-40% - cutarray[ 1] = "546000204809297002322000000"; mesonCutArray[ 1] = "01522065009000"; // 40-60% - cutarray[ 2] = "568000204809297002322000000"; mesonCutArray[ 2] = "01522065009000"; // 60-80% - cutarray[ 3] = "548000204809297002322000000"; mesonCutArray[ 3] = "01522065009000"; // 20-40% - cutarray[ 4] = "549000204809297002322000000"; mesonCutArray[ 4] = "01522065009000"; // 40-90% + cutarray[ 0] = "5240002040092970023220000000"; mesonCutArray[ 0] = "01522045009000"; // 20-40% + cutarray[ 1] = "5460002048092970023220000000"; mesonCutArray[ 1] = "01522065009000"; // 40-60% + cutarray[ 2] = "5680002048092970023220000000"; mesonCutArray[ 2] = "01522065009000"; // 60-80% + cutarray[ 3] = "5480002048092970023220000000"; mesonCutArray[ 3] = "01522065009000"; // 20-40% + cutarray[ 4] = "5490002048092970023220000000"; mesonCutArray[ 4] = "01522065009000"; // 40-90% } else if (trainConfig == 13){ // eta 0.65 (new standard), y = 0.6 (new Standard) - cutarray[ 0] = "601000103209297002322000000"; mesonCutArray[ 0] = "01523045009000"; // 0-5% - cutarray[ 1] = "612000103209297002322000000"; mesonCutArray[ 1] = "01523045009000"; // 5-10% - cutarray[ 2] = "501000103209297002322000000"; mesonCutArray[ 2] = "01523045009000"; // 0-10% - cutarray[ 3] = "512000103209297002322000000"; mesonCutArray[ 3] = "01523045009000"; // 10-20% - cutarray[ 4] = "502000103209297002322000000"; mesonCutArray[ 4] = "01523045009000"; // 0-20% + cutarray[ 0] = "6010001032092970023220000000"; mesonCutArray[ 0] = "01523045009000"; // 0-5% + cutarray[ 1] = "6120001032092970023220000000"; mesonCutArray[ 1] = "01523045009000"; // 5-10% + cutarray[ 2] = "5010001032092970023220000000"; mesonCutArray[ 2] = "01523045009000"; // 0-10% + cutarray[ 3] = "5120001032092970023220000000"; mesonCutArray[ 3] = "01523045009000"; // 10-20% + cutarray[ 4] = "5020001032092970023220000000"; mesonCutArray[ 4] = "01523045009000"; // 0-20% } else if (trainConfig == 14) { // eta 0.65 (new standard), y = 0.6 (new Standard) - cutarray[ 0] = "524000103209297002322000000"; mesonCutArray[ 0] = "01523045009000"; // 20-40% - cutarray[ 1] = "546000103209297002322000000"; mesonCutArray[ 1] = "01523065009000"; // 40-60% - cutarray[ 2] = "568000103209297002322000000"; mesonCutArray[ 2] = "01523065009000"; // 60-80% - cutarray[ 3] = "548000103209297002322000000"; mesonCutArray[ 3] = "01523065009000"; // 40-80% - cutarray[ 4] = "549000103209297002322000000"; mesonCutArray[ 4] = "01523065009000"; // 40-90% + cutarray[ 0] = "5240001032092970023220000000"; mesonCutArray[ 0] = "01523045009000"; // 20-40% + cutarray[ 1] = "5460001032092970023220000000"; mesonCutArray[ 1] = "01523065009000"; // 40-60% + cutarray[ 2] = "5680001032092970023220000000"; mesonCutArray[ 2] = "01523065009000"; // 60-80% + cutarray[ 3] = "5480001032092970023220000000"; mesonCutArray[ 3] = "01523065009000"; // 40-80% + cutarray[ 4] = "5490001032092970023220000000"; mesonCutArray[ 4] = "01523065009000"; // 40-90% } else if (trainConfig == 15) { // eta 0.65 (new standard), y = 0.6 (new Standard) cuts only added signals - cutarray[ 0] = "601000203209297002322000000"; mesonCutArray[ 0] = "01523045009000"; // 0-5% - cutarray[ 1] = "612000203209297002322000000"; mesonCutArray[ 1] = "01523045009000"; // 5-10% - cutarray[ 2] = "501000203209297002322000000"; mesonCutArray[ 2] = "01523045009000"; // 0-10% - cutarray[ 3] = "512000203209297002322000000"; mesonCutArray[ 3] = "01523045009000"; // 10-20% - cutarray[ 4] = "502000203209297002322000000"; mesonCutArray[ 4] = "01523045009000"; // 0-20% + cutarray[ 0] = "6010002032092970023220000000"; mesonCutArray[ 0] = "01523045009000"; // 0-5% + cutarray[ 1] = "6120002032092970023220000000"; mesonCutArray[ 1] = "01523045009000"; // 5-10% + cutarray[ 2] = "5010002032092970023220000000"; mesonCutArray[ 2] = "01523045009000"; // 0-10% + cutarray[ 3] = "5120002032092970023220000000"; mesonCutArray[ 3] = "01523045009000"; // 10-20% + cutarray[ 4] = "5020002032092970023220000000"; mesonCutArray[ 4] = "01523045009000"; // 0-20% } else if (trainConfig == 16) { // eta 0.65 (new standard), y = 0.6 (new Standard) cuts only added signals - cutarray[ 0] = "524000203209297002322000000"; mesonCutArray[ 0] = "01523045009000"; // 20-40% - cutarray[ 1] = "546000203209297002322000000"; mesonCutArray[ 1] = "01523065009000"; // 40-60% - cutarray[ 2] = "568000203209297002322000000"; mesonCutArray[ 2] = "01523065009000"; // 60-80% - cutarray[ 3] = "548000203209297002322000000"; mesonCutArray[ 3] = "01523065009000"; // 20-40% - cutarray[ 4] = "549000203209297002322000000"; mesonCutArray[ 4] = "01523065009000"; // 40-90% + cutarray[ 0] = "5240002032092970023220000000"; mesonCutArray[ 0] = "01523045009000"; // 20-40% + cutarray[ 1] = "5460002032092970023220000000"; mesonCutArray[ 1] = "01523065009000"; // 40-60% + cutarray[ 2] = "5680002032092970023220000000"; mesonCutArray[ 2] = "01523065009000"; // 60-80% + cutarray[ 3] = "5480002032092970023220000000"; mesonCutArray[ 3] = "01523065009000"; // 20-40% + cutarray[ 4] = "5490002032092970023220000000"; mesonCutArray[ 4] = "01523065009000"; // 40-90% } else if (trainConfig == 17){ // eta 0.6, y = 0.6 (new Standard) - cutarray[ 0] = "601000101209297002322000000"; mesonCutArray[ 0] = "01523045009000"; // 0-5% - cutarray[ 1] = "612000101209297002322000000"; mesonCutArray[ 1] = "01523045009000"; // 5-10% - cutarray[ 2] = "501000101209297002322000000"; mesonCutArray[ 2] = "01523045009000"; // 0-10% - cutarray[ 3] = "512000101209297002322000000"; mesonCutArray[ 3] = "01523045009000"; // 10-20% - cutarray[ 4] = "502000101209297002322000000"; mesonCutArray[ 4] = "01523045009000"; // 0-20% + cutarray[ 0] = "6010001012092970023220000000"; mesonCutArray[ 0] = "01523045009000"; // 0-5% + cutarray[ 1] = "6120001012092970023220000000"; mesonCutArray[ 1] = "01523045009000"; // 5-10% + cutarray[ 2] = "5010001012092970023220000000"; mesonCutArray[ 2] = "01523045009000"; // 0-10% + cutarray[ 3] = "5120001012092970023220000000"; mesonCutArray[ 3] = "01523045009000"; // 10-20% + cutarray[ 4] = "5020001012092970023220000000"; mesonCutArray[ 4] = "01523045009000"; // 0-20% } else if (trainConfig == 18) { // eta 0.6, y = 0.6 (new Standard) - cutarray[ 0] = "524000101209297002322000000"; mesonCutArray[ 0] = "01523045009000"; // 20-40% - cutarray[ 1] = "546000101209297002322000000"; mesonCutArray[ 1] = "01523065009000"; // 40-60% - cutarray[ 2] = "568000101209297002322000000"; mesonCutArray[ 2] = "01523065009000"; // 60-80% - cutarray[ 3] = "548000101209297002322000000"; mesonCutArray[ 3] = "01523065009000"; // 40-80% - cutarray[ 4] = "549000101209297002322000000"; mesonCutArray[ 4] = "01523065009000"; // 40-90% + cutarray[ 0] = "5240001012092970023220000000"; mesonCutArray[ 0] = "01523045009000"; // 20-40% + cutarray[ 1] = "5460001012092970023220000000"; mesonCutArray[ 1] = "01523065009000"; // 40-60% + cutarray[ 2] = "5680001012092970023220000000"; mesonCutArray[ 2] = "01523065009000"; // 60-80% + cutarray[ 3] = "5480001012092970023220000000"; mesonCutArray[ 3] = "01523065009000"; // 40-80% + cutarray[ 4] = "5490001012092970023220000000"; mesonCutArray[ 4] = "01523065009000"; // 40-90% } else if (trainConfig == 19) { // eta 0.6, y = 0.6 (new Standard) cuts only added signals - cutarray[ 0] = "601000201209297002322000000"; mesonCutArray[ 0] = "01523045009000"; // 0-5% - cutarray[ 1] = "612000201209297002322000000"; mesonCutArray[ 1] = "01523045009000"; // 5-10% - cutarray[ 2] = "501000201209297002322000000"; mesonCutArray[ 2] = "01523045009000"; // 0-10% - cutarray[ 3] = "512000201209297002322000000"; mesonCutArray[ 3] = "01523045009000"; // 10-20% - cutarray[ 4] = "502000201209297002322000000"; mesonCutArray[ 4] = "01523045009000"; // 0-20% + cutarray[ 0] = "6010002012092970023220000000"; mesonCutArray[ 0] = "01523045009000"; // 0-5% + cutarray[ 1] = "6120002012092970023220000000"; mesonCutArray[ 1] = "01523045009000"; // 5-10% + cutarray[ 2] = "5010002012092970023220000000"; mesonCutArray[ 2] = "01523045009000"; // 0-10% + cutarray[ 3] = "5120002012092970023220000000"; mesonCutArray[ 3] = "01523045009000"; // 10-20% + cutarray[ 4] = "5020002012092970023220000000"; mesonCutArray[ 4] = "01523045009000"; // 0-20% } else if (trainConfig == 20) { // eta 0.6, y = 0.6 (new Standard) cuts only added signals - cutarray[ 0] = "524000201209297002322000000"; mesonCutArray[ 0] = "01523045009000"; // 20-40% - cutarray[ 1] = "546000201209297002322000000"; mesonCutArray[ 1] = "01523065009000"; // 40-60% - cutarray[ 2] = "568000201209297002322000000"; mesonCutArray[ 2] = "01523065009000"; // 60-80% - cutarray[ 3] = "548000201209297002322000000"; mesonCutArray[ 3] = "01523065009000"; // 20-40% - cutarray[ 4] = "549000201209297002322000000"; mesonCutArray[ 4] = "01523065009000"; // 40-90% + cutarray[ 0] = "5240002012092970023220000000"; mesonCutArray[ 0] = "01523045009000"; // 20-40% + cutarray[ 1] = "5460002012092970023220000000"; mesonCutArray[ 1] = "01523065009000"; // 40-60% + cutarray[ 2] = "5680002012092970023220000000"; mesonCutArray[ 2] = "01523065009000"; // 60-80% + cutarray[ 3] = "5480002012092970023220000000"; mesonCutArray[ 3] = "01523065009000"; // 20-40% + cutarray[ 4] = "5490002012092970023220000000"; mesonCutArray[ 4] = "01523065009000"; // 40-90% } else if (trainConfig == 21){ // eta 0.7, y = 0.6 (new Standard) - cutarray[ 0] = "601000107209297002322000000"; mesonCutArray[ 0] = "01523045009000"; // 0-5% - cutarray[ 1] = "612000107209297002322000000"; mesonCutArray[ 1] = "01523045009000"; // 5-10% - cutarray[ 2] = "501000107209297002322000000"; mesonCutArray[ 2] = "01523045009000"; // 0-10% - cutarray[ 3] = "512000107209297002322000000"; mesonCutArray[ 3] = "01523045009000"; // 10-20% - cutarray[ 4] = "502000107209297002322000000"; mesonCutArray[ 4] = "01523045009000"; // 0-20% + cutarray[ 0] = "6010001072092970023220000000"; mesonCutArray[ 0] = "01523045009000"; // 0-5% + cutarray[ 1] = "6120001072092970023220000000"; mesonCutArray[ 1] = "01523045009000"; // 5-10% + cutarray[ 2] = "5010001072092970023220000000"; mesonCutArray[ 2] = "01523045009000"; // 0-10% + cutarray[ 3] = "5120001072092970023220000000"; mesonCutArray[ 3] = "01523045009000"; // 10-20% + cutarray[ 4] = "5020001072092970023220000000"; mesonCutArray[ 4] = "01523045009000"; // 0-20% } else if (trainConfig == 22) { // eta 0.7, y = 0.6 (new Standard) - cutarray[ 0] = "524000107209297002322000000"; mesonCutArray[ 0] = "01523045009000"; // 20-40% - cutarray[ 1] = "546000107209297002322000000"; mesonCutArray[ 1] = "01523065009000"; // 40-60% - cutarray[ 2] = "568000107209297002322000000"; mesonCutArray[ 2] = "01523065009000"; // 60-80% - cutarray[ 3] = "548000107209297002322000000"; mesonCutArray[ 3] = "01523065009000"; // 40-80% - cutarray[ 4] = "549000107209297002322000000"; mesonCutArray[ 4] = "01523065009000"; // 40-90% + cutarray[ 0] = "5240001072092970023220000000"; mesonCutArray[ 0] = "01523045009000"; // 20-40% + cutarray[ 1] = "5460001072092970023220000000"; mesonCutArray[ 1] = "01523065009000"; // 40-60% + cutarray[ 2] = "5680001072092970023220000000"; mesonCutArray[ 2] = "01523065009000"; // 60-80% + cutarray[ 3] = "5480001072092970023220000000"; mesonCutArray[ 3] = "01523065009000"; // 40-80% + cutarray[ 4] = "5490001072092970023220000000"; mesonCutArray[ 4] = "01523065009000"; // 40-90% } else if (trainConfig == 23) { // eta 0.7, y = 0.6 (new Standard) cuts only added signals - cutarray[ 0] = "601000207209297002322000000"; mesonCutArray[ 0] = "01523045009000"; // 0-5% - cutarray[ 1] = "612000207209297002322000000"; mesonCutArray[ 1] = "01523045009000"; // 5-10% - cutarray[ 2] = "501000207209297002322000000"; mesonCutArray[ 2] = "01523045009000"; // 0-10% - cutarray[ 3] = "512000207209297002322000000"; mesonCutArray[ 3] = "01523045009000"; // 10-20% - cutarray[ 4] = "502000207209297002322000000"; mesonCutArray[ 4] = "01523045009000"; // 0-20% + cutarray[ 0] = "6010002072092970023220000000"; mesonCutArray[ 0] = "01523045009000"; // 0-5% + cutarray[ 1] = "6120002072092970023220000000"; mesonCutArray[ 1] = "01523045009000"; // 5-10% + cutarray[ 2] = "5010002072092970023220000000"; mesonCutArray[ 2] = "01523045009000"; // 0-10% + cutarray[ 3] = "5120002072092970023220000000"; mesonCutArray[ 3] = "01523045009000"; // 10-20% + cutarray[ 4] = "5020002072092970023220000000"; mesonCutArray[ 4] = "01523045009000"; // 0-20% } else if (trainConfig == 24) { // eta 0.7, y = 0.6 (new Standard) cuts only added signals - cutarray[ 0] = "524000207209297002322000000"; mesonCutArray[ 0] = "01523045009000"; // 20-40% - cutarray[ 1] = "546000207209297002322000000"; mesonCutArray[ 1] = "01523065009000"; // 40-60% - cutarray[ 2] = "568000207209297002322000000"; mesonCutArray[ 2] = "01523065009000"; // 60-80% - cutarray[ 3] = "548000207209297002322000000"; mesonCutArray[ 3] = "01523065009000"; // 20-40% - cutarray[ 4] = "549000207209297002322000000"; mesonCutArray[ 4] = "01523065009000"; // 40-90% + cutarray[ 0] = "5240002072092970023220000000"; mesonCutArray[ 0] = "01523045009000"; // 20-40% + cutarray[ 1] = "5460002072092970023220000000"; mesonCutArray[ 1] = "01523065009000"; // 40-60% + cutarray[ 2] = "5680002072092970023220000000"; mesonCutArray[ 2] = "01523065009000"; // 60-80% + cutarray[ 3] = "5480002072092970023220000000"; mesonCutArray[ 3] = "01523065009000"; // 20-40% + cutarray[ 4] = "5490002072092970023220000000"; mesonCutArray[ 4] = "01523065009000"; // 40-90% } else if (trainConfig == 25){ // eta 0.5, y = 0.6 (new Standard) - cutarray[ 0] = "601000105209297002322000000"; mesonCutArray[ 0] = "01523045009000"; // 0-5% - cutarray[ 1] = "612000105209297002322000000"; mesonCutArray[ 1] = "01523045009000"; // 5-10% - cutarray[ 2] = "501000105209297002322000000"; mesonCutArray[ 2] = "01523045009000"; // 0-10% - cutarray[ 3] = "512000105209297002322000000"; mesonCutArray[ 3] = "01523045009000"; // 10-20% - cutarray[ 4] = "502000105209297002322000000"; mesonCutArray[ 4] = "01523045009000"; // 0-20% + cutarray[ 0] = "6010001052092970023220000000"; mesonCutArray[ 0] = "01523045009000"; // 0-5% + cutarray[ 1] = "6120001052092970023220000000"; mesonCutArray[ 1] = "01523045009000"; // 5-10% + cutarray[ 2] = "5010001052092970023220000000"; mesonCutArray[ 2] = "01523045009000"; // 0-10% + cutarray[ 3] = "5120001052092970023220000000"; mesonCutArray[ 3] = "01523045009000"; // 10-20% + cutarray[ 4] = "5020001052092970023220000000"; mesonCutArray[ 4] = "01523045009000"; // 0-20% } else if (trainConfig == 26) { // eta 0.5, y = 0.6 (new Standard) - cutarray[ 0] = "524000105209297002322000000"; mesonCutArray[ 0] = "01523045009000"; // 20-40% - cutarray[ 1] = "546000105209297002322000000"; mesonCutArray[ 1] = "01523065009000"; // 40-60% - cutarray[ 2] = "568000105209297002322000000"; mesonCutArray[ 2] = "01523065009000"; // 60-80% - cutarray[ 3] = "548000105209297002322000000"; mesonCutArray[ 3] = "01523065009000"; // 40-80% - cutarray[ 4] = "549000105209297002322000000"; mesonCutArray[ 4] = "01523065009000"; // 40-90% + cutarray[ 0] = "5240001052092970023220000000"; mesonCutArray[ 0] = "01523045009000"; // 20-40% + cutarray[ 1] = "5460001052092970023220000000"; mesonCutArray[ 1] = "01523065009000"; // 40-60% + cutarray[ 2] = "5680001052092970023220000000"; mesonCutArray[ 2] = "01523065009000"; // 60-80% + cutarray[ 3] = "5480001052092970023220000000"; mesonCutArray[ 3] = "01523065009000"; // 40-80% + cutarray[ 4] = "5490001052092970023220000000"; mesonCutArray[ 4] = "01523065009000"; // 40-90% } else if (trainConfig == 27) { // eta 0.5, y = 0.6 (new Standard) cuts only added signals - cutarray[ 0] = "601000205209297002322000000"; mesonCutArray[ 0] = "01523045009000"; // 0-5% - cutarray[ 1] = "612000205209297002322000000"; mesonCutArray[ 1] = "01523045009000"; // 5-10% - cutarray[ 2] = "501000205209297002322000000"; mesonCutArray[ 2] = "01523045009000"; // 0-10% - cutarray[ 3] = "512000205209297002322000000"; mesonCutArray[ 3] = "01523045009000"; // 10-20% - cutarray[ 4] = "502000205209297002322000000"; mesonCutArray[ 4] = "01523045009000"; // 0-20% + cutarray[ 0] = "6010002052092970023220000000"; mesonCutArray[ 0] = "01523045009000"; // 0-5% + cutarray[ 1] = "6120002052092970023220000000"; mesonCutArray[ 1] = "01523045009000"; // 5-10% + cutarray[ 2] = "5010002052092970023220000000"; mesonCutArray[ 2] = "01523045009000"; // 0-10% + cutarray[ 3] = "5120002052092970023220000000"; mesonCutArray[ 3] = "01523045009000"; // 10-20% + cutarray[ 4] = "5020002052092970023220000000"; mesonCutArray[ 4] = "01523045009000"; // 0-20% } else if (trainConfig == 28) { // eta 0.5, y = 0.6 (new Standard) cuts only added signals - cutarray[ 0] = "524000205209297002322000000"; mesonCutArray[ 0] = "01523045009000"; // 20-40% - cutarray[ 1] = "546000205209297002322000000"; mesonCutArray[ 1] = "01523065009000"; // 40-60% - cutarray[ 2] = "568000205209297002322000000"; mesonCutArray[ 2] = "01523065009000"; // 60-80% - cutarray[ 3] = "548000205209297002322000000"; mesonCutArray[ 3] = "01523065009000"; // 20-40% - cutarray[ 4] = "549000205209297002322000000"; mesonCutArray[ 4] = "01523065009000"; // 40-90% + cutarray[ 0] = "5240002052092970023220000000"; mesonCutArray[ 0] = "01523045009000"; // 20-40% + cutarray[ 1] = "5460002052092970023220000000"; mesonCutArray[ 1] = "01523065009000"; // 40-60% + cutarray[ 2] = "5680002052092970023220000000"; mesonCutArray[ 2] = "01523065009000"; // 60-80% + cutarray[ 3] = "5480002052092970023220000000"; mesonCutArray[ 3] = "01523065009000"; // 20-40% + cutarray[ 4] = "5490002052092970023220000000"; mesonCutArray[ 4] = "01523065009000"; // 40-90% } else if (trainConfig == 29){ // eta 0.65 (new standard), y = 0.6 (new Standard) pt dependent alpha - cutarray[ 0] = "601000103209297002322000000"; mesonCutArray[ 0] = "01523015009000"; // 0-5% - cutarray[ 1] = "612000103209297002322000000"; mesonCutArray[ 1] = "01523015009000"; // 5-10% - cutarray[ 2] = "501000103209297002322000000"; mesonCutArray[ 2] = "01523015009000"; // 0-10% - cutarray[ 3] = "512000103209297002322000000"; mesonCutArray[ 3] = "01523015009000"; // 10-20% - cutarray[ 4] = "502000103209297002322000000"; mesonCutArray[ 4] = "01523015009000"; // 0-20% + cutarray[ 0] = "6010001032092970023220000000"; mesonCutArray[ 0] = "01523015009000"; // 0-5% + cutarray[ 1] = "6120001032092970023220000000"; mesonCutArray[ 1] = "01523015009000"; // 5-10% + cutarray[ 2] = "5010001032092970023220000000"; mesonCutArray[ 2] = "01523015009000"; // 0-10% + cutarray[ 3] = "5120001032092970023220000000"; mesonCutArray[ 3] = "01523015009000"; // 10-20% + cutarray[ 4] = "5020001032092970023220000000"; mesonCutArray[ 4] = "01523015009000"; // 0-20% } else if (trainConfig == 30) { // eta 0.65 (new standard), y = 0.6 (new Standard) pt dependent alpha - cutarray[ 0] = "524000103209297002322000000"; mesonCutArray[ 0] = "01523015009000"; // 20-40% - cutarray[ 1] = "546000103209297002322000000"; mesonCutArray[ 1] = "01523025009000"; // 40-60% - cutarray[ 2] = "568000103209297002322000000"; mesonCutArray[ 2] = "01523025009000"; // 60-80% - cutarray[ 3] = "548000103209297002322000000"; mesonCutArray[ 3] = "01523025009000"; // 40-80% - cutarray[ 4] = "549000103209297002322000000"; mesonCutArray[ 4] = "01523025009000"; // 40-90% + cutarray[ 0] = "5240001032092970023220000000"; mesonCutArray[ 0] = "01523015009000"; // 20-40% + cutarray[ 1] = "5460001032092970023220000000"; mesonCutArray[ 1] = "01523025009000"; // 40-60% + cutarray[ 2] = "5680001032092970023220000000"; mesonCutArray[ 2] = "01523025009000"; // 60-80% + cutarray[ 3] = "5480001032092970023220000000"; mesonCutArray[ 3] = "01523025009000"; // 40-80% + cutarray[ 4] = "5490001032092970023220000000"; mesonCutArray[ 4] = "01523025009000"; // 40-90% } else if (trainConfig == 31) { // eta 0.65 (new standard), y = 0.6 (new Standard) cuts only added signals, pt dependent alpha - cutarray[ 0] = "601000203209297002322000000"; mesonCutArray[ 0] = "01523015009000"; // 0-5% - cutarray[ 1] = "612000203209297002322000000"; mesonCutArray[ 1] = "01523015009000"; // 5-10% - cutarray[ 2] = "501000203209297002322000000"; mesonCutArray[ 2] = "01523015009000"; // 0-10% - cutarray[ 3] = "512000203209297002322000000"; mesonCutArray[ 3] = "01523015009000"; // 10-20% - cutarray[ 4] = "502000203209297002322000000"; mesonCutArray[ 4] = "01523015009000"; // 0-20% + cutarray[ 0] = "6010002032092970023220000000"; mesonCutArray[ 0] = "01523015009000"; // 0-5% + cutarray[ 1] = "6120002032092970023220000000"; mesonCutArray[ 1] = "01523015009000"; // 5-10% + cutarray[ 2] = "5010002032092970023220000000"; mesonCutArray[ 2] = "01523015009000"; // 0-10% + cutarray[ 3] = "5120002032092970023220000000"; mesonCutArray[ 3] = "01523015009000"; // 10-20% + cutarray[ 4] = "5020002032092970023220000000"; mesonCutArray[ 4] = "01523015009000"; // 0-20% } else if (trainConfig == 32) { // eta 0.65 (new standard), y = 0.6 (new Standard) cuts only added signals, pt dependent alpha - cutarray[ 0] = "524000203209297002322000000"; mesonCutArray[ 0] = "01523015009000"; // 20-40% - cutarray[ 1] = "546000203209297002322000000"; mesonCutArray[ 1] = "01523025009000"; // 40-60% - cutarray[ 2] = "568000203209297002322000000"; mesonCutArray[ 2] = "01523025009000"; // 60-80% - cutarray[ 3] = "548000203209297002322000000"; mesonCutArray[ 3] = "01523025009000"; // 20-40% - cutarray[ 4] = "549000203209297002322000000"; mesonCutArray[ 4] = "01523025009000"; // 40-90% + cutarray[ 0] = "5240002032092970023220000000"; mesonCutArray[ 0] = "01523015009000"; // 20-40% + cutarray[ 1] = "5460002032092970023220000000"; mesonCutArray[ 1] = "01523025009000"; // 40-60% + cutarray[ 2] = "5680002032092970023220000000"; mesonCutArray[ 2] = "01523025009000"; // 60-80% + cutarray[ 3] = "5480002032092970023220000000"; mesonCutArray[ 3] = "01523025009000"; // 20-40% + cutarray[ 4] = "5490002032092970023220000000"; mesonCutArray[ 4] = "01523025009000"; // 40-90% } else if (trainConfig == 33){ // Standard cuts, eta 0.9, only to be run on data - cutarray[ 0] = "601000100209297002322000000"; mesonCutArray[ 0] = "01525045009000"; // 0-5% - cutarray[ 1] = "612000100209297002322000000"; mesonCutArray[ 1] = "01525045009000"; // 5-10% - cutarray[ 2] = "501000100209297002322000000"; mesonCutArray[ 2] = "01525045009000"; // 0-10% - cutarray[ 3] = "512000100209297002322000000"; mesonCutArray[ 3] = "01525045009000"; // 10-20% - cutarray[ 4] = "502000100209297002322000000"; mesonCutArray[ 4] = "01525045009000"; // 0-20% + cutarray[ 0] = "6010001002092970023220000000"; mesonCutArray[ 0] = "01525045009000"; // 0-5% + cutarray[ 1] = "6120001002092970023220000000"; mesonCutArray[ 1] = "01525045009000"; // 5-10% + cutarray[ 2] = "5010001002092970023220000000"; mesonCutArray[ 2] = "01525045009000"; // 0-10% + cutarray[ 3] = "5120001002092970023220000000"; mesonCutArray[ 3] = "01525045009000"; // 10-20% + cutarray[ 4] = "5020001002092970023220000000"; mesonCutArray[ 4] = "01525045009000"; // 0-20% } else if (trainConfig == 34) { // Standard cuts, eta 0.9, only to be run on data - cutarray[ 0] = "524000100209297002322000000"; mesonCutArray[ 0] = "01525045009000"; // 20-40% - cutarray[ 1] = "546000100209297002322000000"; mesonCutArray[ 1] = "01525065009000"; // 40-60% - cutarray[ 2] = "568000100209297002322000000"; mesonCutArray[ 2] = "01525065009000"; // 60-80% - cutarray[ 3] = "548000100209297002322000000"; mesonCutArray[ 3] = "01525065009000"; // 40-80% - cutarray[ 4] = "549000100209297002322000000"; mesonCutArray[ 4] = "01525065009000"; // 40-90% + cutarray[ 0] = "5240001002092970023220000000"; mesonCutArray[ 0] = "01525045009000"; // 20-40% + cutarray[ 1] = "5460001002092970023220000000"; mesonCutArray[ 1] = "01525065009000"; // 40-60% + cutarray[ 2] = "5680001002092970023220000000"; mesonCutArray[ 2] = "01525065009000"; // 60-80% + cutarray[ 3] = "5480001002092970023220000000"; mesonCutArray[ 3] = "01525065009000"; // 40-80% + cutarray[ 4] = "5490001002092970023220000000"; mesonCutArray[ 4] = "01525065009000"; // 40-90% } else if (trainConfig == 35){ // Standard cuts, eta 1.4, only to be run on data - cutarray[ 0] = "601000102209297002322000000"; mesonCutArray[ 0] = "01520045009000"; // 0-5% - cutarray[ 1] = "612000102209297002322000000"; mesonCutArray[ 1] = "01520045009000"; // 5-10% - cutarray[ 2] = "501000102209297002322000000"; mesonCutArray[ 2] = "01520045009000"; // 0-10% - cutarray[ 3] = "512000102209297002322000000"; mesonCutArray[ 3] = "01520045009000"; // 10-20% - cutarray[ 4] = "502000102209297002322000000"; mesonCutArray[ 4] = "01520045009000"; // 0-20% + cutarray[ 0] = "6010001022092970023220000000"; mesonCutArray[ 0] = "01520045009000"; // 0-5% + cutarray[ 1] = "6120001022092970023220000000"; mesonCutArray[ 1] = "01520045009000"; // 5-10% + cutarray[ 2] = "5010001022092970023220000000"; mesonCutArray[ 2] = "01520045009000"; // 0-10% + cutarray[ 3] = "5120001022092970023220000000"; mesonCutArray[ 3] = "01520045009000"; // 10-20% + cutarray[ 4] = "5020001022092970023220000000"; mesonCutArray[ 4] = "01520045009000"; // 0-20% } else if (trainConfig == 36) { // Standard cuts, eta 1.4, only to be run on data - cutarray[ 0] = "524000102209297002322000000"; mesonCutArray[ 0] = "01520045009000"; // 20-40% - cutarray[ 1] = "546000102209297002322000000"; mesonCutArray[ 1] = "01520065009000"; // 40-60% - cutarray[ 2] = "568000102209297002322000000"; mesonCutArray[ 2] = "01520065009000"; // 60-80% - cutarray[ 3] = "548000102209297002322000000"; mesonCutArray[ 3] = "01520065009000"; // 40-80% - cutarray[ 4] = "549000102209297002322000000"; mesonCutArray[ 4] = "01520065009000"; // 40-90% + cutarray[ 0] = "5240001022092970023220000000"; mesonCutArray[ 0] = "01520045009000"; // 20-40% + cutarray[ 1] = "5460001022092970023220000000"; mesonCutArray[ 1] = "01520065009000"; // 40-60% + cutarray[ 2] = "5680001022092970023220000000"; mesonCutArray[ 2] = "01520065009000"; // 60-80% + cutarray[ 3] = "5480001022092970023220000000"; mesonCutArray[ 3] = "01520065009000"; // 40-80% + cutarray[ 4] = "5490001022092970023220000000"; mesonCutArray[ 4] = "01520065009000"; // 40-90% } else if (trainConfig == 37){ // Standard cuts, eta 0.9, only to be run on data - cutarray[ 0] = "601400100209297002322000000"; mesonCutArray[ 0] = "01525045009000"; // 0-5% - cutarray[ 1] = "612400100209297002322000000"; mesonCutArray[ 1] = "01525045009000"; // 5-10% - cutarray[ 2] = "501400100209297002322000000"; mesonCutArray[ 2] = "01525045009000"; // 0-10% - cutarray[ 3] = "512400100209297002322000000"; mesonCutArray[ 3] = "01525045009000"; // 10-20% - cutarray[ 4] = "502400100209297002322000000"; mesonCutArray[ 4] = "01525045009000"; // 0-20% + cutarray[ 0] = "6014001002092970023220000000"; mesonCutArray[ 0] = "01525045009000"; // 0-5% + cutarray[ 1] = "6124001002092970023220000000"; mesonCutArray[ 1] = "01525045009000"; // 5-10% + cutarray[ 2] = "5014001002092970023220000000"; mesonCutArray[ 2] = "01525045009000"; // 0-10% + cutarray[ 3] = "5124001002092970023220000000"; mesonCutArray[ 3] = "01525045009000"; // 10-20% + cutarray[ 4] = "5024001002092970023220000000"; mesonCutArray[ 4] = "01525045009000"; // 0-20% } else if (trainConfig == 38) { // Standard cuts, eta 0.9, only to be run on data - cutarray[ 0] = "524400100209297002322000000"; mesonCutArray[ 0] = "01525045009000"; // 20-40% - cutarray[ 1] = "546400100209297002322000000"; mesonCutArray[ 1] = "01525065009000"; // 40-60% - cutarray[ 2] = "568400100209297002322000000"; mesonCutArray[ 2] = "01525065009000"; // 60-80% - cutarray[ 3] = "548400100209297002322000000"; mesonCutArray[ 3] = "01525065009000"; // 40-80% - cutarray[ 4] = "549400100209297002322000000"; mesonCutArray[ 4] = "01525065009000"; // 40-90% + cutarray[ 0] = "5244001002092970023220000000"; mesonCutArray[ 0] = "01525045009000"; // 20-40% + cutarray[ 1] = "5464001002092970023220000000"; mesonCutArray[ 1] = "01525065009000"; // 40-60% + cutarray[ 2] = "5684001002092970023220000000"; mesonCutArray[ 2] = "01525065009000"; // 60-80% + cutarray[ 3] = "5484001002092970023220000000"; mesonCutArray[ 3] = "01525065009000"; // 40-80% + cutarray[ 4] = "5494001002092970023220000000"; mesonCutArray[ 4] = "01525065009000"; // 40-90% } else if (trainConfig == 39){ // Standard cuts, eta 0.9, only to be run on data - cutarray[ 0] = "601500100209297002322000000"; mesonCutArray[ 0] = "01525045009000"; // 0-5% - cutarray[ 1] = "612500100209297002322000000"; mesonCutArray[ 1] = "01525045009000"; // 5-10% - cutarray[ 2] = "501500100209297002322000000"; mesonCutArray[ 2] = "01525045009000"; // 0-10% - cutarray[ 3] = "512500100209297002322000000"; mesonCutArray[ 3] = "01525045009000"; // 10-20% - cutarray[ 4] = "502500100209297002322000000"; mesonCutArray[ 4] = "01525045009000"; // 0-20% + cutarray[ 0] = "6015001002092970023220000000"; mesonCutArray[ 0] = "01525045009000"; // 0-5% + cutarray[ 1] = "6125001002092970023220000000"; mesonCutArray[ 1] = "01525045009000"; // 5-10% + cutarray[ 2] = "5015001002092970023220000000"; mesonCutArray[ 2] = "01525045009000"; // 0-10% + cutarray[ 3] = "5125001002092970023220000000"; mesonCutArray[ 3] = "01525045009000"; // 10-20% + cutarray[ 4] = "5025001002092970023220000000"; mesonCutArray[ 4] = "01525045009000"; // 0-20% } else if (trainConfig == 40) { // Standard cuts, eta 0.9, only to be run on data - cutarray[ 0] = "524500100209297002322000000"; mesonCutArray[ 0] = "01525045009000"; // 20-40% - cutarray[ 1] = "546500100209297002322000000"; mesonCutArray[ 1] = "01525065009000"; // 40-60% - cutarray[ 2] = "568500100209297002322000000"; mesonCutArray[ 2] = "01525065009000"; // 60-80% - cutarray[ 3] = "548500100209297002322000000"; mesonCutArray[ 3] = "01525065009000"; // 40-80% - cutarray[ 4] = "549500100209297002322000000"; mesonCutArray[ 4] = "01525065009000"; // 40-90% + cutarray[ 0] = "5245001002092970023220000000"; mesonCutArray[ 0] = "01525045009000"; // 20-40% + cutarray[ 1] = "5465001002092970023220000000"; mesonCutArray[ 1] = "01525065009000"; // 40-60% + cutarray[ 2] = "5685001002092970023220000000"; mesonCutArray[ 2] = "01525065009000"; // 60-80% + cutarray[ 3] = "5485001002092970023220000000"; mesonCutArray[ 3] = "01525065009000"; // 40-80% + cutarray[ 4] = "5495001002092970023220000000"; mesonCutArray[ 4] = "01525065009000"; // 40-90% } else if (trainConfig == 41){ // Standard cuts, eta 0.9, only to be run on data - cutarray[ 0] = "601600100209297002322000000"; mesonCutArray[ 0] = "01525045009000"; // 0-5% - cutarray[ 1] = "612600100209297002322000000"; mesonCutArray[ 1] = "01525045009000"; // 5-10% - cutarray[ 2] = "501600100209297002322000000"; mesonCutArray[ 2] = "01525045009000"; // 0-10% - cutarray[ 3] = "512600100209297002322000000"; mesonCutArray[ 3] = "01525045009000"; // 10-20% - cutarray[ 4] = "502600100209297002322000000"; mesonCutArray[ 4] = "01525045009000"; // 0-20% + cutarray[ 0] = "6016001002092970023220000000"; mesonCutArray[ 0] = "01525045009000"; // 0-5% + cutarray[ 1] = "6126001002092970023220000000"; mesonCutArray[ 1] = "01525045009000"; // 5-10% + cutarray[ 2] = "5016001002092970023220000000"; mesonCutArray[ 2] = "01525045009000"; // 0-10% + cutarray[ 3] = "5126001002092970023220000000"; mesonCutArray[ 3] = "01525045009000"; // 10-20% + cutarray[ 4] = "5026001002092970023220000000"; mesonCutArray[ 4] = "01525045009000"; // 0-20% } else if (trainConfig == 42) { // Standard cuts, eta 0.9, only to be run on data - cutarray[ 0] = "524600100209297002322000000"; mesonCutArray[ 0] = "01525045009000"; // 20-40% - cutarray[ 1] = "546600100209297002322000000"; mesonCutArray[ 1] = "01525065009000"; // 40-60% - cutarray[ 2] = "568600100209297002322000000"; mesonCutArray[ 2] = "01525065009000"; // 60-80% - cutarray[ 3] = "548600100209297002322000000"; mesonCutArray[ 3] = "01525065009000"; // 40-80% - cutarray[ 4] = "549600100209297002322000000"; mesonCutArray[ 4] = "01525065009000"; // 40-90% + cutarray[ 0] = "5246001002092970023220000000"; mesonCutArray[ 0] = "01525045009000"; // 20-40% + cutarray[ 1] = "5466001002092970023220000000"; mesonCutArray[ 1] = "01525065009000"; // 40-60% + cutarray[ 2] = "5686001002092970023220000000"; mesonCutArray[ 2] = "01525065009000"; // 60-80% + cutarray[ 3] = "5486001002092970023220000000"; mesonCutArray[ 3] = "01525065009000"; // 40-80% + cutarray[ 4] = "5496001002092970023220000000"; mesonCutArray[ 4] = "01525065009000"; // 40-90% } else if (trainConfig == 43){ // Standard cuts, eta 0.9, only to be run on data - cutarray[ 0] = "601700100209297002322000000"; mesonCutArray[ 0] = "01525045009000"; // 0-5% - cutarray[ 1] = "612700100209297002322000000"; mesonCutArray[ 1] = "01525045009000"; // 5-10% - cutarray[ 2] = "501700100209297002322000000"; mesonCutArray[ 2] = "01525045009000"; // 0-10% - cutarray[ 3] = "512700100209297002322000000"; mesonCutArray[ 3] = "01525045009000"; // 10-20% - cutarray[ 4] = "502700100209297002322000000"; mesonCutArray[ 4] = "01525045009000"; // 0-20% + cutarray[ 0] = "6017001002092970023220000000"; mesonCutArray[ 0] = "01525045009000"; // 0-5% + cutarray[ 1] = "6127001002092970023220000000"; mesonCutArray[ 1] = "01525045009000"; // 5-10% + cutarray[ 2] = "5017001002092970023220000000"; mesonCutArray[ 2] = "01525045009000"; // 0-10% + cutarray[ 3] = "5127001002092970023220000000"; mesonCutArray[ 3] = "01525045009000"; // 10-20% + cutarray[ 4] = "5027001002092970023220000000"; mesonCutArray[ 4] = "01525045009000"; // 0-20% } else if (trainConfig == 44) { // Standard cuts, eta 0.9, only to be run on data - cutarray[ 0] = "524700100209297002322000000"; mesonCutArray[ 0] = "01525045009000"; // 20-40% - cutarray[ 1] = "546700100209297002322000000"; mesonCutArray[ 1] = "01525065009000"; // 40-60% - cutarray[ 2] = "568700100209297002322000000"; mesonCutArray[ 2] = "01525065009000"; // 60-80% - cutarray[ 3] = "548700100209297002322000000"; mesonCutArray[ 3] = "01525065009000"; // 40-80% - cutarray[ 4] = "549700100209297002322000000"; mesonCutArray[ 4] = "01525065009000"; // 40-90% + cutarray[ 0] = "5247001002092970023220000000"; mesonCutArray[ 0] = "01525045009000"; // 20-40% + cutarray[ 1] = "5467001002092970023220000000"; mesonCutArray[ 1] = "01525065009000"; // 40-60% + cutarray[ 2] = "5687001002092970023220000000"; mesonCutArray[ 2] = "01525065009000"; // 60-80% + cutarray[ 3] = "5487001002092970023220000000"; mesonCutArray[ 3] = "01525065009000"; // 40-80% + cutarray[ 4] = "5497001002092970023220000000"; mesonCutArray[ 4] = "01525065009000"; // 40-90% } else if (trainConfig == 45){ // Standard cuts, eta 0.9, only to be run on data - cutarray[ 0] = "601800100209297002322000000"; mesonCutArray[ 0] = "01525045009000"; // 0-5% - cutarray[ 1] = "612800100209297002322000000"; mesonCutArray[ 1] = "01525045009000"; // 5-10% - cutarray[ 2] = "501800100209297002322000000"; mesonCutArray[ 2] = "01525045009000"; // 0-10% - cutarray[ 3] = "512800100209297002322000000"; mesonCutArray[ 3] = "01525045009000"; // 10-20% - cutarray[ 4] = "502800100209297002322000000"; mesonCutArray[ 4] = "01525045009000"; // 0-20% + cutarray[ 0] = "6018001002092970023220000000"; mesonCutArray[ 0] = "01525045009000"; // 0-5% + cutarray[ 1] = "6128001002092970023220000000"; mesonCutArray[ 1] = "01525045009000"; // 5-10% + cutarray[ 2] = "5018001002092970023220000000"; mesonCutArray[ 2] = "01525045009000"; // 0-10% + cutarray[ 3] = "5128001002092970023220000000"; mesonCutArray[ 3] = "01525045009000"; // 10-20% + cutarray[ 4] = "5028001002092970023220000000"; mesonCutArray[ 4] = "01525045009000"; // 0-20% } else if (trainConfig == 46) { // Standard cuts, eta 0.9, only to be run on data - cutarray[ 0] = "524800100209297002322000000"; mesonCutArray[ 0] = "01525045009000"; // 20-40% - cutarray[ 1] = "546800100209297002322000000"; mesonCutArray[ 1] = "01525065009000"; // 40-60% - cutarray[ 2] = "568800100209297002322000000"; mesonCutArray[ 2] = "01525065009000"; // 60-80% - cutarray[ 3] = "548800100209297002322000000"; mesonCutArray[ 3] = "01525065009000"; // 40-80% - cutarray[ 4] = "549800100209297002322000000"; mesonCutArray[ 4] = "01525065009000"; // 40-90% + cutarray[ 0] = "5248001002092970023220000000"; mesonCutArray[ 0] = "01525045009000"; // 20-40% + cutarray[ 1] = "5468001002092970023220000000"; mesonCutArray[ 1] = "01525065009000"; // 40-60% + cutarray[ 2] = "5688001002092970023220000000"; mesonCutArray[ 2] = "01525065009000"; // 60-80% + cutarray[ 3] = "5488001002092970023220000000"; mesonCutArray[ 3] = "01525065009000"; // 40-80% + cutarray[ 4] = "5498001002092970023220000000"; mesonCutArray[ 4] = "01525065009000"; // 40-90% } else if (trainConfig == 47){ // Standard cuts, eta 0.9, only to be run on data - cutarray[ 0] = "601900100209297002322000000"; mesonCutArray[ 0] = "01525045009000"; // 0-5% - cutarray[ 1] = "612900100209297002322000000"; mesonCutArray[ 1] = "01525045009000"; // 5-10% - cutarray[ 2] = "501900100209297002322000000"; mesonCutArray[ 2] = "01525045009000"; // 0-10% - cutarray[ 3] = "512900100209297002322000000"; mesonCutArray[ 3] = "01525045009000"; // 10-20% - cutarray[ 4] = "502900100209297002322000000"; mesonCutArray[ 4] = "01525045009000"; // 0-20% + cutarray[ 0] = "6019001002092970023220000000"; mesonCutArray[ 0] = "01525045009000"; // 0-5% + cutarray[ 1] = "6129001002092970023220000000"; mesonCutArray[ 1] = "01525045009000"; // 5-10% + cutarray[ 2] = "5019001002092970023220000000"; mesonCutArray[ 2] = "01525045009000"; // 0-10% + cutarray[ 3] = "5129001002092970023220000000"; mesonCutArray[ 3] = "01525045009000"; // 10-20% + cutarray[ 4] = "5029001002092970023220000000"; mesonCutArray[ 4] = "01525045009000"; // 0-20% } else if (trainConfig == 48) { // Standard cuts, eta 0.9, only to be run on data - cutarray[ 0] = "524900100209297002322000000"; mesonCutArray[ 0] = "01525045009000"; // 20-40% - cutarray[ 1] = "546900100209297002322000000"; mesonCutArray[ 1] = "01525065009000"; // 40-60% - cutarray[ 2] = "568900100209297002322000000"; mesonCutArray[ 2] = "01525065009000"; // 60-80% - cutarray[ 3] = "548900100209297002322000000"; mesonCutArray[ 3] = "01525065009000"; // 40-80% - cutarray[ 4] = "549900100209297002322000000"; mesonCutArray[ 4] = "01525065009000"; // 40-90% + cutarray[ 0] = "5249001002092970023220000000"; mesonCutArray[ 0] = "01525045009000"; // 20-40% + cutarray[ 1] = "5469001002092970023220000000"; mesonCutArray[ 1] = "01525065009000"; // 40-60% + cutarray[ 2] = "5689001002092970023220000000"; mesonCutArray[ 2] = "01525065009000"; // 60-80% + cutarray[ 3] = "5489001002092970023220000000"; mesonCutArray[ 3] = "01525065009000"; // 40-80% + cutarray[ 4] = "5499001002092970023220000000"; mesonCutArray[ 4] = "01525065009000"; // 40-90% } else { Error(Form("GammaConvV1_%i",trainConfig), "wrong trainConfig variable no cuts have been specified for the configuration"); @@ -479,8 +479,8 @@ void AddTask_GammaConvV1_PbPb( Int_t trainConfig = 1, //change different set o task->SetMesonCutList(numberOfCuts,MesonCutList); task->SetMoveParticleAccordingToVertex(kTRUE); task->SetDoMesonAnalysis(kTRUE); - if (enableQAMesonTask) task->SetDoMesonQA(kTRUE); //Attention new switch for Pi0 QA - if (enableQAPhotonTask) task->SetDoPhotonQA(kTRUE); //Attention new switch small for Photon QA + task->SetDoMesonQA(enableQAMesonTask); //Attention new switch for Pi0 QA + task->SetDoPhotonQA(enableQAPhotonTask); //Attention new switch small for Photon QA //connect containers AliAnalysisDataContainer *coutput = diff --git a/PWGGA/GammaConv/macros/AddTask_GammaConvV1_PbPb2.C b/PWGGA/GammaConv/macros/AddTask_GammaConvV1_PbPb2.C index e69be914feb..73122bc6aef 100644 --- a/PWGGA/GammaConv/macros/AddTask_GammaConvV1_PbPb2.C +++ b/PWGGA/GammaConv/macros/AddTask_GammaConvV1_PbPb2.C @@ -1,7 +1,7 @@ void AddTask_GammaConvV1_PbPb2( Int_t trainConfig = 1, //change different set of cuts Bool_t isMC = kFALSE, //run MC - Bool_t enableQAMesonTask = kFALSE, //enable QA in AliAnalysisTaskGammaConvV1 - Bool_t enableQAPhotonTask = kFALSE, // enable additional QA task + Int_t enableQAMesonTask = 0, //enable QA in AliAnalysisTaskGammaConvV1 + Int_t enableQAPhotonTask = 0, // enable additional QA task TString fileNameInputForWeighting = "MCSpectraInput.root", // path to file for weigting input Bool_t doWeighting = kFALSE, //enable Weighting TString cutnumberAODBranch = "1000000060084000001500000" @@ -43,7 +43,7 @@ void AddTask_GammaConvV1_PbPb2( Int_t trainConfig = 1, //change different set } //========= Set Cutnumber for V0Reader ================================ - TString cutnumber = "100000000008400100150000000"; + TString cutnumber = "1000000000084001001500000000"; AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer(); //========= Add V0 Reader to ANALYSIS manager if not yet existent ===== if( !(AliV0ReaderV1*)mgr->GetTask("V0ReaderV1") ){ @@ -97,67 +97,67 @@ void AddTask_GammaConvV1_PbPb2( Int_t trainConfig = 1, //change different set TString *mesonCutArray = new TString[numberOfCuts]; if (trainConfig == 1){ - cutarray[ 0] = "601000104209297002322000000"; mesonCutArray[ 0] = "01522045009000"; + cutarray[ 0] = "6010001042092970023220000000"; mesonCutArray[ 0] = "01522045009000"; } else if (trainConfig == 2) { - cutarray[ 0] = "612000104209297002322000000"; mesonCutArray[ 0] = "01522045009000"; + cutarray[ 0] = "6120001042092970023220000000"; mesonCutArray[ 0] = "01522045009000"; } else if (trainConfig == 3) { - cutarray[ 0] = "501000104209297002322000000"; mesonCutArray[ 0] = "01522045009000"; + cutarray[ 0] = "5010001042092970023220000000"; mesonCutArray[ 0] = "01522045009000"; } else if (trainConfig == 4) { - cutarray[ 0] = "502000104209297002322000000"; mesonCutArray[ 0] = "01522045009000"; + cutarray[ 0] = "5020001042092970023220000000"; mesonCutArray[ 0] = "01522045009000"; } else if (trainConfig == 5) { - cutarray[ 0] = "512000104209297002322000000"; mesonCutArray[ 0] = "01522045009000"; + cutarray[ 0] = "5120001042092970023220000000"; mesonCutArray[ 0] = "01522045009000"; } else if (trainConfig == 6) { - cutarray[ 0] = "524000104209297002322000000"; mesonCutArray[ 0] = "01522045009000"; + cutarray[ 0] = "5240001042092970023220000000"; mesonCutArray[ 0] = "01522045009000"; } else if (trainConfig == 7) { - cutarray[ 0] = "546000104209297002322000000"; mesonCutArray[ 0] = "01522065009000"; + cutarray[ 0] = "5460001042092970023220000000"; mesonCutArray[ 0] = "01522065009000"; } else if (trainConfig == 8) { - cutarray[ 0] = "548000104209297002322000000"; mesonCutArray[ 0] = "01522065009000"; + cutarray[ 0] = "5480001042092970023220000000"; mesonCutArray[ 0] = "01522065009000"; } else if (trainConfig == 9) { - cutarray[ 0] = "545000104209297002322000000"; mesonCutArray[ 0] = "01522065009000"; + cutarray[ 0] = "5450001042092970023220000000"; mesonCutArray[ 0] = "01522065009000"; } else if (trainConfig == 10) { - cutarray[ 0] = "556000104209297002322000000"; mesonCutArray[ 0] = "01522065009000"; + cutarray[ 0] = "5560001042092970023220000000"; mesonCutArray[ 0] = "01522065009000"; } else if (trainConfig == 11) { - cutarray[ 0] = "568000104209297002322000000"; mesonCutArray[ 0] = "01522065009000"; + cutarray[ 0] = "5680001042092970023220000000"; mesonCutArray[ 0] = "01522065009000"; } else if (trainConfig == 12) { - cutarray[ 0] = "567000104209297002322000000"; mesonCutArray[ 0] = "01522065009000"; + cutarray[ 0] = "5670001042092970023220000000"; mesonCutArray[ 0] = "01522065009000"; } else if (trainConfig == 13) { - cutarray[ 0] = "578000104209297002322000000"; mesonCutArray[ 0] = "01522065009000"; + cutarray[ 0] = "5780001042092970023220000000"; mesonCutArray[ 0] = "01522065009000"; } else if (trainConfig == 14) { - cutarray[ 0] = "469000104209297002322000000"; mesonCutArray[ 0] = "01522065009000"; + cutarray[ 0] = "4690001042092970023220000000"; mesonCutArray[ 0] = "01522065009000"; } else if (trainConfig == 15) { - cutarray[ 0] = "589000104209297002322000000"; mesonCutArray[ 0] = "01522065009000"; + cutarray[ 0] = "5890001042092970023220000000"; mesonCutArray[ 0] = "01522065009000"; } else if (trainConfig == 16){ - cutarray[ 0] = "601000203209297002322000000"; mesonCutArray[ 0] = "01523045009000"; + cutarray[ 0] = "6010002032092970023220000000"; mesonCutArray[ 0] = "01523045009000"; } else if (trainConfig == 17) { - cutarray[ 0] = "612000103209297002322000000"; mesonCutArray[ 0] = "01523045009000"; + cutarray[ 0] = "6120001032092970023220000000"; mesonCutArray[ 0] = "01523045009000"; } else if (trainConfig == 18) { - cutarray[ 0] = "501000103209297002322000000"; mesonCutArray[ 0] = "01523045009000"; + cutarray[ 0] = "5010001032092970023220000000"; mesonCutArray[ 0] = "01523045009000"; } else if (trainConfig == 19) { - cutarray[ 0] = "502000103209297002322000000"; mesonCutArray[ 0] = "01523045009000"; + cutarray[ 0] = "5020001032092970023220000000"; mesonCutArray[ 0] = "01523045009000"; } else if (trainConfig == 20) { - cutarray[ 0] = "512000103209297002322000000"; mesonCutArray[ 0] = "01523045009000"; + cutarray[ 0] = "5120001032092970023220000000"; mesonCutArray[ 0] = "01523045009000"; } else if (trainConfig == 21) { - cutarray[ 0] = "524000103209297002322000000"; mesonCutArray[ 0] = "01523045009000"; + cutarray[ 0] = "5240001032092970023220000000"; mesonCutArray[ 0] = "01523045009000"; } else if (trainConfig == 22) { - cutarray[ 0] = "546000103209297002322000000"; mesonCutArray[ 0] = "01523065009000"; + cutarray[ 0] = "5460001032092970023220000000"; mesonCutArray[ 0] = "01523065009000"; } else if (trainConfig == 23) { - cutarray[ 0] = "548000103209297002322000000"; mesonCutArray[ 0] = "01523065009000"; + cutarray[ 0] = "5480001032092970023220000000"; mesonCutArray[ 0] = "01523065009000"; } else if (trainConfig == 24) { - cutarray[ 0] = "545000103209297002322000000"; mesonCutArray[ 0] = "01523065009000"; + cutarray[ 0] = "5450001032092970023220000000"; mesonCutArray[ 0] = "01523065009000"; } else if (trainConfig == 25) { - cutarray[ 0] = "556000103209297002322000000"; mesonCutArray[ 0] = "01523065009000"; + cutarray[ 0] = "5560001032092970023220000000"; mesonCutArray[ 0] = "01523065009000"; } else if (trainConfig == 26) { - cutarray[ 0] = "568000103209297002322000000"; mesonCutArray[ 0] = "01523065009000"; + cutarray[ 0] = "5680001032092970023220000000"; mesonCutArray[ 0] = "01523065009000"; } else if (trainConfig == 27) { - cutarray[ 0] = "567000103209297002322000000"; mesonCutArray[ 0] = "01523065009000"; + cutarray[ 0] = "5670001032092970023220000000"; mesonCutArray[ 0] = "01523065009000"; } else if (trainConfig == 28) { - cutarray[ 0] = "578000103209297002322000000"; mesonCutArray[ 0] = "01523065009000"; + cutarray[ 0] = "5780001032092970023220000000"; mesonCutArray[ 0] = "01523065009000"; } else if (trainConfig == 29) { - cutarray[ 0] = "469000103209297002322000000"; mesonCutArray[ 0] = "01523065009000"; + cutarray[ 0] = "4690001032092970023220000000"; mesonCutArray[ 0] = "01523065009000"; } else if (trainConfig == 30) { - cutarray[ 0] = "589000103209297002322000000"; mesonCutArray[ 0] = "01523065009000"; + cutarray[ 0] = "5890001032092970023220000000"; mesonCutArray[ 0] = "01523065009000"; } else if (trainConfig == 31) { - cutarray[ 0] = "508000100209297002322000000"; mesonCutArray[ 0] = "01525065009000"; + cutarray[ 0] = "5080001002092970023220000000"; mesonCutArray[ 0] = "01525065009000"; } else { Error(Form("GammaConvV1_%i",trainConfig), "wrong trainConfig variable no cuts have been specified for the configuration"); return; @@ -194,8 +194,8 @@ void AddTask_GammaConvV1_PbPb2( Int_t trainConfig = 1, //change different set task->SetMesonCutList(numberOfCuts,MesonCutList); task->SetMoveParticleAccordingToVertex(kTRUE); task->SetDoMesonAnalysis(kTRUE); - if (enableQAMesonTask) task->SetDoMesonQA(kTRUE); //Attention new switch for Pi0 QA - if (enableQAPhotonTask) task->SetDoPhotonQA(kTRUE); //Attention new switch small for Photon QA + task->SetDoMesonQA(enableQAMesonTask); //Attention new switch for Pi0 QA + task->SetDoPhotonQA(enableQAPhotonTask); //Attention new switch small for Photon QA //connect containers AliAnalysisDataContainer *coutput = diff --git a/PWGGA/GammaConv/macros/AddTask_GammaConvV1_pPb.C b/PWGGA/GammaConv/macros/AddTask_GammaConvV1_pPb.C index 94b52783f1d..efb2523cdd8 100644 --- a/PWGGA/GammaConv/macros/AddTask_GammaConvV1_pPb.C +++ b/PWGGA/GammaConv/macros/AddTask_GammaConvV1_pPb.C @@ -1,7 +1,7 @@ void AddTask_GammaConvV1_pPb( Int_t trainConfig = 1, //change different set of cuts Bool_t isMC = kFALSE, //run MC - Bool_t enableQAMesonTask = kFALSE, //enable QA in AliAnalysisTaskGammaConvV1 - Bool_t enableQAPhotonTask = kFALSE, // enable additional QA task + Int_t enableQAMesonTask = 0, //enable QA in AliAnalysisTaskGammaConvV1 + Int_t enableQAPhotonTask = 0, // enable additional QA task TString fileNameInputForWeighting = "MCSpectraInput.root", // path to file for weigting input TString cutnumberAODBranch = "8000000060084000001500000" // cutnumber for AOD branch ) { @@ -42,7 +42,7 @@ void AddTask_GammaConvV1_pPb( Int_t trainConfig = 1, //change different set of } //========= Set Cutnumber for V0Reader ================================ - TString cutnumber = "800000006008400100150000000"; + TString cutnumber = "8000000060084001001500000000"; Bool_t doEtaShift = kFALSE; AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer(); //========= Add V0 Reader to ANALYSIS manager if not yet existent ===== @@ -102,58 +102,58 @@ void AddTask_GammaConvV1_pPb( Int_t trainConfig = 1, //change different set of // Shifting in pPb direction doEtaShiftIndCuts = kTRUE; stringShift = "pPb"; - cutarray[ 0] = "800000108209317200329000000"; mesonCutArray[ 0] = "01629045009000"; //standard cut Pi0 pPb - cutarray[ 1] = "802000108209317200329000000"; mesonCutArray[ 1] = "01629045009000"; //standard cut Pi0 pPb - cutarray[ 2] = "824000108209317200329000000"; mesonCutArray[ 2] = "01629045009000"; //standard cut Pi0 pPb - cutarray[ 3] = "846000108209317200329000000"; mesonCutArray[ 3] = "01629045009000"; //standard cut Pi0 pPb - cutarray[ 4] = "868000108209317200329000000"; mesonCutArray[ 4] = "01629045009000"; //standard cut Pi0 pPb - cutarray[ 5] = "860000108209317200329000000"; mesonCutArray[ 5] = "01629045009000"; //standard cut Pi0 pPb + cutarray[ 0] = "8000001082093172003290000000"; mesonCutArray[ 0] = "01629045009000"; //standard cut Pi0 pPb + cutarray[ 1] = "8020001082093172003290000000"; mesonCutArray[ 1] = "01629045009000"; //standard cut Pi0 pPb + cutarray[ 2] = "8240001082093172003290000000"; mesonCutArray[ 2] = "01629045009000"; //standard cut Pi0 pPb + cutarray[ 3] = "8460001082093172003290000000"; mesonCutArray[ 3] = "01629045009000"; //standard cut Pi0 pPb + cutarray[ 4] = "8680001082093172003290000000"; mesonCutArray[ 4] = "01629045009000"; //standard cut Pi0 pPb + cutarray[ 5] = "8600001082093172003290000000"; mesonCutArray[ 5] = "01629045009000"; //standard cut Pi0 pPb } else if (trainConfig == 2) { // doEtaShiftIndCuts = kTRUE; // stringShift = "pPb"; - cutarray[ 0] = "800000107209317200329000000"; mesonCutArray[ 0] = "01627045009000"; - cutarray[ 1] = "802000107209317200329000000"; mesonCutArray[ 1] = "01627045009000"; - cutarray[ 2] = "824000107209317200329000000"; mesonCutArray[ 2] = "01627045009000"; - cutarray[ 3] = "846000107209317200329000000"; mesonCutArray[ 3] = "01627045009000"; - cutarray[ 4] = "868000107209317200329000000"; mesonCutArray[ 4] = "01627045009000"; - cutarray[ 5] = "860000107209317200329000000"; mesonCutArray[ 5] = "01627045009000"; + cutarray[ 0] = "8000001072093172003290000000"; mesonCutArray[ 0] = "01627045009000"; + cutarray[ 1] = "8020001072093172003290000000"; mesonCutArray[ 1] = "01627045009000"; + cutarray[ 2] = "8240001072093172003290000000"; mesonCutArray[ 2] = "01627045009000"; + cutarray[ 3] = "8460001072093172003290000000"; mesonCutArray[ 3] = "01627045009000"; + cutarray[ 4] = "8680001072093172003290000000"; mesonCutArray[ 4] = "01627045009000"; + cutarray[ 5] = "8600001072093172003290000000"; mesonCutArray[ 5] = "01627045009000"; } else if (trainConfig == 3) { // doEtaShiftIndCuts = kTRUE; // stringShift = "pPb"; - cutarray[ 0] = "800000100209317200329000000"; mesonCutArray[ 0] = "01621035009000"; - cutarray[ 1] = "802000100209317200329000000"; mesonCutArray[ 1] = "01621035009000"; - cutarray[ 2] = "824000100209317200329000000"; mesonCutArray[ 2] = "01621035009000"; - cutarray[ 3] = "846000100209317200329000000"; mesonCutArray[ 3] = "01621035009000"; - cutarray[ 4] = "868000100209317200329000000"; mesonCutArray[ 4] = "01621035009000"; - cutarray[ 5] = "860000100209317200329000000"; mesonCutArray[ 5] = "01621035009000"; + cutarray[ 0] = "8000001002093172003290000000"; mesonCutArray[ 0] = "01621035009000"; + cutarray[ 1] = "8020001002093172003290000000"; mesonCutArray[ 1] = "01621035009000"; + cutarray[ 2] = "8240001002093172003290000000"; mesonCutArray[ 2] = "01621035009000"; + cutarray[ 3] = "8460001002093172003290000000"; mesonCutArray[ 3] = "01621035009000"; + cutarray[ 4] = "8680001002093172003290000000"; mesonCutArray[ 4] = "01621035009000"; + cutarray[ 5] = "8600001002093172003290000000"; mesonCutArray[ 5] = "01621035009000"; } else if(trainConfig == 4){ // Shifting in pPb direction doEtaShiftIndCuts = kTRUE; stringShift = "pPb"; - cutarray[ 0] = "800000208209317200329000000"; mesonCutArray[ 0] = "01629045009000"; //standard cut Pi0 pPb - cutarray[ 1] = "802000208209317200329000000"; mesonCutArray[ 1] = "01629045009000"; //standard cut Pi0 pPb - cutarray[ 2] = "824000208209317200329000000"; mesonCutArray[ 2] = "01629045009000"; //standard cut Pi0 pPb - cutarray[ 3] = "846000208209317200329000000"; mesonCutArray[ 3] = "01629045009000"; //standard cut Pi0 pPb - cutarray[ 4] = "868000208209317200329000000"; mesonCutArray[ 4] = "01629045009000"; //standard cut Pi0 pPb - cutarray[ 5] = "860000208209317200329000000"; mesonCutArray[ 5] = "01629045009000"; //standard cut Pi0 pPb + cutarray[ 0] = "8000002082093172003290000000"; mesonCutArray[ 0] = "01629045009000"; //standard cut Pi0 pPb + cutarray[ 1] = "8020002082093172003290000000"; mesonCutArray[ 1] = "01629045009000"; //standard cut Pi0 pPb + cutarray[ 2] = "8240002082093172003290000000"; mesonCutArray[ 2] = "01629045009000"; //standard cut Pi0 pPb + cutarray[ 3] = "8460002082093172003290000000"; mesonCutArray[ 3] = "01629045009000"; //standard cut Pi0 pPb + cutarray[ 4] = "8680002082093172003290000000"; mesonCutArray[ 4] = "01629045009000"; //standard cut Pi0 pPb + cutarray[ 5] = "8600002082093172003290000000"; mesonCutArray[ 5] = "01629045009000"; //standard cut Pi0 pPb } else if (trainConfig == 5) { // doEtaShiftIndCuts = kTRUE; // stringShift = "pPb"; - cutarray[ 0] = "800000207209317200329000000"; mesonCutArray[ 0] = "01627045009000"; //standard cut Pi0 pPb Single pT Cut changed - cutarray[ 1] = "802000207209317200329000000"; mesonCutArray[ 1] = "01627045009000"; //standard cut Pi0 pPb Single pT Cut changed - cutarray[ 2] = "824000207209317200329000000"; mesonCutArray[ 2] = "01627045009000"; //standard cut Pi0 pPb Single pT Cut changed - cutarray[ 3] = "846000207209317200329000000"; mesonCutArray[ 3] = "01627045009000"; //standard cut Pi0 pPb Single pT Cut changed - cutarray[ 4] = "868000207209317200329000000"; mesonCutArray[ 4] = "01627045009000"; //standard cut Pi0 pPb Single pT Cut changed - cutarray[ 5] = "860000207209317200329000000"; mesonCutArray[ 5] = "01627045009000"; //standard cut Pi0 pPb Single pT Cut changed + cutarray[ 0] = "8000002072093172003290000000"; mesonCutArray[ 0] = "01627045009000"; //standard cut Pi0 pPb Single pT Cut changed + cutarray[ 1] = "8020002072093172003290000000"; mesonCutArray[ 1] = "01627045009000"; //standard cut Pi0 pPb Single pT Cut changed + cutarray[ 2] = "8240002072093172003290000000"; mesonCutArray[ 2] = "01627045009000"; //standard cut Pi0 pPb Single pT Cut changed + cutarray[ 3] = "8460002072093172003290000000"; mesonCutArray[ 3] = "01627045009000"; //standard cut Pi0 pPb Single pT Cut changed + cutarray[ 4] = "8680002072093172003290000000"; mesonCutArray[ 4] = "01627045009000"; //standard cut Pi0 pPb Single pT Cut changed + cutarray[ 5] = "8600002072093172003290000000"; mesonCutArray[ 5] = "01627045009000"; //standard cut Pi0 pPb Single pT Cut changed } else if (trainConfig == 6) { // doEtaShiftIndCuts = kTRUE; // stringShift = "pPb"; - cutarray[ 0] = "800000200209317200329000000"; mesonCutArray[ 0] = "01621035009000"; //standard cut Pi0 pPb Single pT Cut changed - cutarray[ 1] = "802000200209317200329000000"; mesonCutArray[ 1] = "01621035009000"; //standard cut Pi0 pPb Single pT Cut changed - cutarray[ 2] = "824000200209317200329000000"; mesonCutArray[ 2] = "01621035009000"; //standard cut Pi0 pPb Single pT Cut changed - cutarray[ 3] = "846000200209317200329000000"; mesonCutArray[ 3] = "01621035009000"; //standard cut Pi0 pPb Single pT Cut changed - cutarray[ 4] = "868000200209317200329000000"; mesonCutArray[ 4] = "01621035009000"; //standard cut Pi0 pPb Single pT Cut changed - cutarray[ 5] = "860000200209317200329000000"; mesonCutArray[ 5] = "01621035009000"; //standard cut Pi0 pPb Single pT Cut changed + cutarray[ 0] = "8000002002093172003290000000"; mesonCutArray[ 0] = "01621035009000"; //standard cut Pi0 pPb Single pT Cut changed + cutarray[ 1] = "8020002002093172003290000000"; mesonCutArray[ 1] = "01621035009000"; //standard cut Pi0 pPb Single pT Cut changed + cutarray[ 2] = "8240002002093172003290000000"; mesonCutArray[ 2] = "01621035009000"; //standard cut Pi0 pPb Single pT Cut changed + cutarray[ 3] = "8460002002093172003290000000"; mesonCutArray[ 3] = "01621035009000"; //standard cut Pi0 pPb Single pT Cut changed + cutarray[ 4] = "8680002002093172003290000000"; mesonCutArray[ 4] = "01621035009000"; //standard cut Pi0 pPb Single pT Cut changed + cutarray[ 5] = "8600002002093172003290000000"; mesonCutArray[ 5] = "01621035009000"; //standard cut Pi0 pPb Single pT Cut changed } else { Error(Form("GammaConvV1_%i",trainConfig), "wrong trainConfig variable no cuts have been specified for the configuration"); @@ -198,8 +198,8 @@ void AddTask_GammaConvV1_pPb( Int_t trainConfig = 1, //change different set of task->SetMesonCutList(numberOfCuts,MesonCutList); task->SetMoveParticleAccordingToVertex(kTRUE); task->SetDoMesonAnalysis(kTRUE); - if (enableQAMesonTask) task->SetDoMesonQA(kTRUE); //Attention new switch for Pi0 QA - if (enableQAMesonTask) task->SetDoPhotonQA(kTRUE); //Attention new switch small for Photon QA + task->SetDoMesonQA(enableQAMesonTask); //Attention new switch for Pi0 QA + task->SetDoPhotonQA(enableQAMesonTask); //Attention new switch small for Photon QA //connect containers AliAnalysisDataContainer *coutput = diff --git a/PWGGA/GammaConv/macros/AddTask_GammaConvV1_pp.C b/PWGGA/GammaConv/macros/AddTask_GammaConvV1_pp.C index e832f5264fa..70463f49e54 100644 --- a/PWGGA/GammaConv/macros/AddTask_GammaConvV1_pp.C +++ b/PWGGA/GammaConv/macros/AddTask_GammaConvV1_pp.C @@ -1,7 +1,7 @@ void AddTask_GammaConvV1_pp( Int_t trainConfig = 1, //change different set of cuts Bool_t isMC = kFALSE, //run MC - Bool_t enableQAMesonTask = kFALSE, //enable QA in AliAnalysisTaskGammaConvV1 - Bool_t enableQAPhotonTask = kFALSE, // enable additional QA task + Int_t enableQAMesonTask = 0, //enable QA in AliAnalysisTaskGammaConvV1 + Int_t enableQAPhotonTask = 0, // enable additional QA task TString fileNameInputForWeighting = "MCSpectraInput.root", // path to file for weigting input TString cutnumberAODBranch = "0000000060084001001500000" // cutnumber for AOD branch ) { @@ -42,7 +42,7 @@ void AddTask_GammaConvV1_pp( Int_t trainConfig = 1, //change different set of } //========= Set Cutnumber for V0Reader ================================ - TString cutnumber = "000000000208400000220000000"; + TString cutnumber = "0000000002084000002200000000"; AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer(); //========= Add V0 Reader to ANALYSIS manager if not yet existent ===== @@ -96,20 +96,20 @@ void AddTask_GammaConvV1_pp( Int_t trainConfig = 1, //change different set of TString *mesonCutArray = new TString[numberOfCuts]; if(trainConfig == 1){ - cutarray[ 0] = "000001200209366300380000000"; mesonCutArray[0] = "01631031009000"; //standard cut Pi0 pp 2.76TeV without SDD , only boxes - cutarray[ 1] = "000101200209366300380000000"; mesonCutArray[1] = "01631031009000"; //standard cut Pi0 pp 2.76TeV without SDD, V0AND , only boxes - cutarray[ 2] = "000001200209326000380000000"; mesonCutArray[2] = "01631031009000"; //standard cut Gamma pp 2-76TeV , only boxes - cutarray[ 3] = "000001200209326000380000000"; mesonCutArray[3] = "01631031009000"; //standard cut Gamma pp 2-76TeV , only boxes + cutarray[ 0] = "0000012002093663003800000000"; mesonCutArray[0] = "01631031009000"; //standard cut Pi0 pp 2.76TeV without SDD , only boxes + cutarray[ 1] = "0001012002093663003800000000"; mesonCutArray[1] = "01631031009000"; //standard cut Pi0 pp 2.76TeV without SDD, V0AND , only boxes + cutarray[ 2] = "0000012002093260003800000000"; mesonCutArray[2] = "01631031009000"; //standard cut Gamma pp 2-76TeV , only boxes + cutarray[ 3] = "0000012002093260003800000000"; mesonCutArray[3] = "01631031009000"; //standard cut Gamma pp 2-76TeV , only boxes } else if (trainConfig == 2) { - cutarray[ 0] = "000001100209366300380000000"; mesonCutArray[0] = "01631031009000"; //standard cut Pi0 pp 2.76TeV without SDD , only Minbias MC - cutarray[ 1] = "000101100209366300380000000"; mesonCutArray[1] = "01631031009000"; //standard cut Pi0 pp 2.76TeV without SDD, V0AND - cutarray[ 2] = "000001100209326000380000000"; mesonCutArray[2] = "01631031009000"; //standard cut Gamma pp 2-76TeV - cutarray[ 3] = "000001100209326000380000000"; mesonCutArray[3] = "01631031009000"; //standard cut Gamma pp 2-76TeV , only boxes + cutarray[ 0] = "0000011002093663003800000000"; mesonCutArray[0] = "01631031009000"; //standard cut Pi0 pp 2.76TeV without SDD , only Minbias MC + cutarray[ 1] = "0001011002093663003800000000"; mesonCutArray[1] = "01631031009000"; //standard cut Pi0 pp 2.76TeV without SDD, V0AND + cutarray[ 2] = "0000011002093260003800000000"; mesonCutArray[2] = "01631031009000"; //standard cut Gamma pp 2-76TeV + cutarray[ 3] = "0000011002093260003800000000"; mesonCutArray[3] = "01631031009000"; //standard cut Gamma pp 2-76TeV , only boxes } else if (trainConfig == 3) { - cutarray[ 0] = "000201100209366300380000000"; mesonCutArray[0] = "01631031009000"; //standard cut Pi0 pp 2.76TeV with SDD , only Minbias MC - cutarray[ 1] = "000301100209366300380000000"; mesonCutArray[1] = "01631031009000"; //standard cut Pi0 pp 2.76TeV with SDD, V0AND , only Minbias MC - cutarray[ 2] = "000201200209366300380000000"; mesonCutArray[2] = "01631031009000"; //standard cut Pi0 pp 2.76TeV with SDD , only Boxes MC - cutarray[ 3] = "000301200209366300380000000"; mesonCutArray[3] = "01631031009000"; //standard cut Pi0 pp 2.76TeV with SDD, V0AND, only Boxes MC + cutarray[ 0] = "0002011002093663003800000000"; mesonCutArray[0] = "01631031009000"; //standard cut Pi0 pp 2.76TeV with SDD , only Minbias MC + cutarray[ 1] = "0003011002093663003800000000"; mesonCutArray[1] = "01631031009000"; //standard cut Pi0 pp 2.76TeV with SDD, V0AND , only Minbias MC + cutarray[ 2] = "0002012002093663003800000000"; mesonCutArray[2] = "01631031009000"; //standard cut Pi0 pp 2.76TeV with SDD , only Boxes MC + cutarray[ 3] = "0003012002093663003800000000"; mesonCutArray[3] = "01631031009000"; //standard cut Pi0 pp 2.76TeV with SDD, V0AND, only Boxes MC } else { Error(Form("GammaConvV1_%i",trainConfig), "wrong trainConfig variable no cuts have been specified for the configuration"); return; @@ -145,8 +145,8 @@ void AddTask_GammaConvV1_pp( Int_t trainConfig = 1, //change different set of task->SetMesonCutList(numberOfCuts,MesonCutList); task->SetMoveParticleAccordingToVertex(kTRUE); task->SetDoMesonAnalysis(kTRUE); - if (enableQAMesonTask) task->SetDoMesonQA(kTRUE); //Attention new switch for Pi0 QA - if (enableQAPhotonTask) task->SetDoPhotonQA(kTRUE); //Attention new switch small for Photon QA + task->SetDoMesonQA(enableQAMesonTask); //Attention new switch for Pi0 QA + task->SetDoPhotonQA(enableQAPhotonTask); //Attention new switch small for Photon QA //connect containers AliAnalysisDataContainer *coutput = diff --git a/PWGGA/GammaConv/macros/AddTask_GammaConvdPhi_PbPb.C b/PWGGA/GammaConv/macros/AddTask_GammaConvdPhi_PbPb.C index 63366af3afe..be19c3d3374 100644 --- a/PWGGA/GammaConv/macros/AddTask_GammaConvdPhi_PbPb.C +++ b/PWGGA/GammaConv/macros/AddTask_GammaConvdPhi_PbPb.C @@ -1,4 +1,4 @@ -AliAnalysisTask *AddTask_GammaConvdPhi_PbPb(TString v0Cut = "109000200209297002322000000", +AliAnalysisTask *AddTask_GammaConvdPhi_PbPb(TString v0Cut = "1090002002092970023220000000", TString pionCut = "01522045009000", TString photoncut = "", Bool_t pbpb = kTRUE) { diff --git a/PWGGA/GammaConv/macros/AddTask_GammaConvdPhi_pp.C b/PWGGA/GammaConv/macros/AddTask_GammaConvdPhi_pp.C index 35c3795dd38..8de56d0f8f5 100644 --- a/PWGGA/GammaConv/macros/AddTask_GammaConvdPhi_pp.C +++ b/PWGGA/GammaConv/macros/AddTask_GammaConvdPhi_pp.C @@ -1,4 +1,4 @@ -AliAnalysisTask *AddTask_GammaConvdPhi_pp(TString v0Cut = "000001100209366300380000000", +AliAnalysisTask *AddTask_GammaConvdPhi_pp(TString v0Cut = "0000011002093663003800000000", TString pionCut = "01631031009000", Bool_t pbpb = kFALSE) { @@ -330,32 +330,32 @@ AliAnalysisTask *AddTask_GammaConvdPhi_pp(TString v0Cut = "000001100209366300380 TString *tcutarray =new TString[7]; TString *wcutarray = new TString[7]; - //"000001100209366300380000000", - // "000001100209366300380000000"; // -4 5 sigma electron line - tcutarray[0] = "000001100209266300380000000"; // -3 5 sigma - wcutarray[0] = "000001100209166300380000000"; //dedex -5 -5 sigma + //"0000011002093663003800000000", + // "0000011002093663003800000000"; // -4 5 sigma electron line + tcutarray[0] = "0000011002092663003800000000"; // -3 5 sigma + wcutarray[0] = "0000011002091663003800000000"; //dedex -5 -5 sigma - // "000001100209366300380000000"; // 663: 2 sigma low pt (0.25) 0.5 sigma: high pt (3.5) - tcutarray[1] = "000001100209386300380000000"; // 863 2 1 - wcutarray[1] = "000001100209356300380000000"; // 563 2 -10 + // "0000011002093663003800000000"; // 663: 2 sigma low pt (0.25) 0.5 sigma: high pt (3.5) + tcutarray[1] = "0000011002093863003800000000"; // 863 2 1 + wcutarray[1] = "0000011002093563003800000000"; // 563 2 -10 - tcutarray[2] = "000001100209366300380000000"; - wcutarray[2] = "000001100209366300380000000"; + tcutarray[2] = "0000011002093663003800000000"; + wcutarray[2] = "0000011002093663003800000000"; - tcutarray[3] = "000001100269366300380000000"; // single pt 6: 0.04 tight - wcutarray[3] = "000001100249366300380000000"; // single pt 4: 0.075 loose + tcutarray[3] = "0000011002693663003800000000"; // single pt 6: 0.04 tight + wcutarray[3] = "0000011002493663003800000000"; // single pt 4: 0.075 loose // //tpc cluster cut 9 : 0.6 default - tcutarray[4] = "000001100206366300380000000"; //6 : > 0.7 tight - wcutarray[4] = "000001100208366300380000000"; //8 : > 0.35 loose + tcutarray[4] = "0000011002063663003800000000"; //6 : > 0.7 tight + wcutarray[4] = "0000011002083663003800000000"; //8 : > 0.35 loose // // qt max 3: 0.05 default - tcutarray[5] = "000001100209366300480000000"; //4 : < 0.03 tight - wcutarray[5] = "000001100209366300280000000"; //2 : < 0.07 loose + tcutarray[5] = "0000011002093663004800000000"; //4 : < 0.03 tight + wcutarray[5] = "0000011002093663002800000000"; //2 : < 0.07 loose // // chi2 8 default <20 - tcutarray[6] = "000001100209366300390000000"; //9 : < 15 tight - wcutarray[6] = "000001100209366300320000000"; //2 : < 30 loose + tcutarray[6] = "0000011002093663003900000000"; //9 : < 15 tight + wcutarray[6] = "0000011002093663003200000000"; //2 : < 30 loose ///Add the tight cuts diff --git a/PWGGA/GammaConv/macros/AddTask_Material.C b/PWGGA/GammaConv/macros/AddTask_Material.C index 56c03313cea..4bfaa44f259 100644 --- a/PWGGA/GammaConv/macros/AddTask_Material.C +++ b/PWGGA/GammaConv/macros/AddTask_Material.C @@ -1,5 +1,5 @@ -void AddTask_Material(TString V0ReaderCutNumber = "000000006008400100150000000", - TString TaskCutnumber = "000000009009266374380000000", +void AddTask_Material(TString V0ReaderCutNumber = "0000000060084001001500000000", + TString TaskCutnumber = "0000000090092663743800000000", Bool_t IsMC = kFALSE, Int_t IsHeavyIon = 0, TString cutnumberAODBranch = "0000000060084001001500000", @@ -7,10 +7,10 @@ void AddTask_Material(TString V0ReaderCutNumber = "000000006008400100150000000", ){ // Suitable Cutnumbers for the V0 Reader for - // PbPb: V0ReaderCutNumber = "100000006008400100150000000"; (V0Mult MC) - // or V0ReaderCutNumber = "500000006008400100150000000" (TPC mult MC) - // pPb: V0ReaderCutNumber = "800000006008400100150000000"; - // pp: V0ReaderCutNumber = "000000006008400100150000000"; + // PbPb: V0ReaderCutNumber = "1000000060084001001500000000"; (V0Mult MC) + // or V0ReaderCutNumber = "5000000060084001001500000000" (TPC mult MC) + // pPb: V0ReaderCutNumber = "8000000060084001001500000000"; + // pp: V0ReaderCutNumber = "0000000060084001001500000000"; // ================= Load Librariers ================================= @@ -94,10 +94,10 @@ void AddTask_Material(TString V0ReaderCutNumber = "000000006008400100150000000", // suitable cuts for the material Task: - // PbPb: TaskCutnumber = "568000106009266304480300000"; TPC mult in MC - 60-80% central - // or: TaskCutnumber = "168000106009266304480300000"; V0 mult in MC - 60-80% central - // pPb: TaskCutnumber = "800000009009266374380000000"; - // pp: TaskCutnumber = "000000009009266374380000000"; + // PbPb: TaskCutnumber = "5680001060092663044803000000"; TPC mult in MC - 60-80% central + // or: TaskCutnumber = "1680001060092663044803000000"; V0 mult in MC - 60-80% central + // pPb: TaskCutnumber = "8000000090092663743800000000"; + // pp: TaskCutnumber = "0000000090092663743800000000"; AliConversionCuts *analysisCuts = new AliConversionCuts(); analysisCuts->InitializeCutsFromCutString(TaskCutnumber.Data()); diff --git a/PWGGA/GammaConv/macros/AddTask_PhotonQA.C b/PWGGA/GammaConv/macros/AddTask_PhotonQA.C index 18246f881ba..b5c0ed7e866 100644 --- a/PWGGA/GammaConv/macros/AddTask_PhotonQA.C +++ b/PWGGA/GammaConv/macros/AddTask_PhotonQA.C @@ -1,18 +1,19 @@ -void AddTask_PhotonQA( TString V0ReaderCutNumber = "000000006008400100150000000", - TString TaskCutnumber = "000000009009266374380000000", +void AddTask_PhotonQA( TString V0ReaderCutNumber = "0000000060084001001500000000", + TString TaskCutnumber = "0000000090092663743800000000", Bool_t IsMC = kFALSE, Int_t IsHeavyIon = 0, Bool_t kHistograms = kTRUE, Bool_t kTree = kTRUE, TString V0ReaderCutNumberAODBranch = "0000000060084001001500000", + Bool_t runBasicQAWithStandardOutput = kTRUE, Bool_t doEtaShiftV0Reader = kFALSE ){ // Suitable Cutnumbers for the V0 Reader for - // PbPb: V0ReaderCutNumber = "100000006008400100150000000"; (V0Mult MC) - // or V0ReaderCutNumber = "500000006008400100150000000" (TPC mult MC) - // pPb: V0ReaderCutNumber = "800000006008400100150000000"; - // pp: V0ReaderCutNumber = "000000006008400100150000000"; + // PbPb: V0ReaderCutNumber = "1000000060084001001500000000"; (V0Mult MC) + // or V0ReaderCutNumber = "5000000060084001001500000000" (TPC mult MC) + // pPb: V0ReaderCutNumber = "8000000060084001001500000000"; + // pp: V0ReaderCutNumber = "0000000060084001001500000000"; // ================= Load Librariers ================================= @@ -99,10 +100,10 @@ void AddTask_PhotonQA( TString V0ReaderCutNumber = "000000006008400100150000000 // suitable cuts for the photon Task, however in principle every cutnumber can be chosen which is used in the photon analysis: - // PbPb: TaskCutnumber = "568000106009266304480300000"; TPC mult in MC - 60-80% central - // or: TaskCutnumber = "168000106009266304480300000"; V0 mult in MC - 60-80% central - // pPb: TaskCutnumber = "800000009009266374380000000"; - // pp: TaskCutnumber = "000000009009266374380000000"; + // PbPb: TaskCutnumber = "5680001060092663044803000000"; TPC mult in MC - 60-80% central + // or: TaskCutnumber = "1680001060092663044803000000"; V0 mult in MC - 60-80% central + // pPb: TaskCutnumber = "8000000090092663743800000000"; + // pp: TaskCutnumber = "0000000090092663743800000000"; AliConversionCuts *analysisCuts = new AliConversionCuts(); analysisCuts->InitializeCutsFromCutString(TaskCutnumber.Data()); @@ -115,13 +116,19 @@ void AddTask_PhotonQA( TString V0ReaderCutNumber = "000000006008400100150000000 mgr->AddTask(fQA); AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer(); - AliAnalysisDataContainer *coutput = - mgr->CreateContainer(Form("GammaConv_V1QA_%s",TaskCutnumber.Data()), TList::Class(), - AliAnalysisManager::kOutputContainer,Form("GammaConvV1_QA_%s.root",TaskCutnumber.Data())); - - + if (runBasicQAWithStandardOutput){ + AliAnalysisDataContainer *coutput = + mgr->CreateContainer(Form("GammaConv_V1QA_%s",TaskCutnumber.Data()), TList::Class(), + AliAnalysisManager::kOutputContainer,Form("%s:GammaConvV1_QA_%s",AliAnalysisManager::GetCommonFileName(), TaskCutnumber.Data())); + mgr->ConnectOutput(fQA, 1, coutput); + } else { + AliAnalysisDataContainer *coutput = + mgr->CreateContainer(Form("GammaConv_V1QA_%s",TaskCutnumber.Data()), TList::Class(), + AliAnalysisManager::kOutputContainer,Form("GammaConvV1_QA_%s.root",TaskCutnumber.Data())); + mgr->ConnectOutput(fQA, 1, coutput); + } mgr->ConnectInput(fQA,0,cinput); - mgr->ConnectOutput(fQA, 1, coutput); + //connect containers return; diff --git a/PWGGA/GammaConv/macros/AddTask_Pi0v2.C b/PWGGA/GammaConv/macros/AddTask_Pi0v2.C index 4ce2c02ac1b..81a9e6820d5 100644 --- a/PWGGA/GammaConv/macros/AddTask_Pi0v2.C +++ b/PWGGA/GammaConv/macros/AddTask_Pi0v2.C @@ -25,45 +25,46 @@ TString mesoncutarray[numberOfCuts]; // Standard Cuts -cutarray[0] = "1080000042092970023220000"; mesoncutarray[0] = "01522045000"; //standard cut Pi0 PbPb 00-100 + 01525065009000 +cutarray[0] = "1080000042092970023220000000"; mesoncutarray[0] = "01522045000000"; //standard cut Pi0 PbPb 00-100 // TPC PID -cutarray[1] = "1080001042093970023220000"; mesoncutarray[1] = "01522045000"; -cutarray[2] = "1080001042096970023220000"; mesoncutarray[2] = "01522045000"; -cutarray[3] = "1080001042092470023220000"; mesoncutarray[3] = "01522045000"; -cutarray[4] = "1080001042092770023220000"; mesoncutarray[4] = "01522045000"; -cutarray[5] = "1080001042092950023220000"; mesoncutarray[5] = "01522045000"; +cutarray[1] = "1080001042093970023220000000"; mesoncutarray[1] = "01522045000000"; +cutarray[2] = "1080001042096970023220000000"; mesoncutarray[2] = "01522045000000"; +cutarray[3] = "1080001042092470023220000000"; mesoncutarray[3] = "01522045000000"; +cutarray[4] = "1080001042092770023220000000"; mesoncutarray[4] = "01522045000000"; +cutarray[5] = "1080001042092950023220000000"; mesoncutarray[5] = "01522045000000"; // TOF PID -cutarray[6] = "1080001042092970033220000"; mesoncutarray[6] = "01522045000"; -cutarray[7] = "1080001042092970043220000"; mesoncutarray[7] = "01522045000"; +cutarray[6] = "1080001042092970033220000000"; mesoncutarray[6] = "01522045000000"; +cutarray[7] = "1080001042092970043220000000"; mesoncutarray[7] = "01522045000000"; // Qt max -cutarray[8] = "1080001042092970024220000"; mesoncutarray[8] = "01522045000"; -cutarray[9] = "1080001042092970022220000"; mesoncutarray[9] = "01522045000"; +cutarray[8] = "1080001042092970024220000000"; mesoncutarray[8] = "01522045000000"; +cutarray[9] = "1080001042092970022220000000"; mesoncutarray[9] = "01522045000000"; // Chi2 Gamma -cutarray[10] = "1080001042092970023120000"; mesoncutarray[10] = "01522045000"; -cutarray[11] = "1080001042092970023820000"; mesoncutarray[11] = "01522045000"; +cutarray[10] = "1080001042092970023120000000"; mesoncutarray[10] = "01522045000000"; +cutarray[11] = "1080001042092970023820000000"; mesoncutarray[11] = "01522045000000"; // Psi Pair -cutarray[12] = "1080001042092970023210000"; mesoncutarray[12] = "01522045000"; -cutarray[13] = "1080001042092970023230000"; mesoncutarray[13] = "01522045000"; +cutarray[12] = "1080001042092970023210000000"; mesoncutarray[12] = "01522045000000"; +cutarray[13] = "1080001042092970023230000000"; mesoncutarray[13] = "01522045000000"; // R Cut -cutarray[14] = "1080001044092970023220000"; mesoncutarray[14] = "01522045000"; //5-70 -cutarray[15] = "1080001045092970023220000"; mesoncutarray[15] = "01522045000"; //10-180 -cutarray[16] = "1080001046092970023220000"; mesoncutarray[16] = "01522045000"; //20 -cutarray[17] = "1080001047092970023220000"; mesoncutarray[17] = "01522045000"; //26 -cutarray[18] = "1080001048092970023220000"; mesoncutarray[18] = "01522045000"; //35 -cutarray[19] = "1080001045092970023220000"; mesoncutarray[19] = "01522045000"; //60 +cutarray[14] = "1080001044092970023220000000"; mesoncutarray[14] = "01522045000000"; //5-70 +cutarray[15] = "1080001045092970023220000000"; mesoncutarray[15] = "01522045000000"; //10-180 +cutarray[16] = "1080001046092970023220000000"; mesoncutarray[16] = "01522045000000"; //20 +cutarray[17] = "1080001047092970023220000000"; mesoncutarray[17] = "01522045000000"; //26 +cutarray[18] = "1080001048092970023220000000"; mesoncutarray[18] = "01522045000000"; //35 +cutarray[19] = "1080001045092970023220000000"; mesoncutarray[19] = "01522045000000"; //60 // Single Pt -cutarray[20] = "1080001042492970023220000"; mesoncutarray[20] = "01522045000"; -cutarray[21] = "1080001042192970023220000"; mesoncutarray[21] = "01522045000"; +cutarray[20] = "1080001042492970023220000000"; mesoncutarray[20] = "01522045000000"; +cutarray[21] = "1080001042192970023220000000"; mesoncutarray[21] = "01522045000000"; // Alpha -cutarray[22] = "1080001042092970023220000"; mesoncutarray[22] = "01022085000"; -cutarray[23] = "1080001042092970023220000"; mesoncutarray[23] = "01022005000"; +cutarray[22] = "1080001042092970023220000000"; mesoncutarray[22] = "01022085000000"; +cutarray[23] = "1080001042092970023220000000"; mesoncutarray[23] = "01022005000000"; AliAnalysisTask *AddTask_Pi0v2(Int_t harmonic=2,Bool_t IsHeavyIon=kTRUE,Bool_t doSys=kTRUE){ @@ -97,10 +98,10 @@ AliAnalysisTask *AddTask_Pi0v2(Int_t harmonic=2,Bool_t IsHeavyIon=kTRUE,Bool_t d TString fV0ReaderCut=""; if(IsHeavyIon){ - fV0ReaderCut = "1080000002084001001500000"; + fV0ReaderCut = "1080000002084001001500000000"; } else{ - fV0ReaderCut = "0000000002084001001500000"; + fV0ReaderCut = "0000000002084001001500000000"; } fV0Reader=new AliV0ReaderV1(Form("PhotonPi0v%d",harmonic)); mgr->AddTask(fV0Reader); diff --git a/PWGGA/GammaConv/macros/AddTask_Resolution.C b/PWGGA/GammaConv/macros/AddTask_Resolution.C index 35ec3b54662..bfa3ad0ad90 100644 --- a/PWGGA/GammaConv/macros/AddTask_Resolution.C +++ b/PWGGA/GammaConv/macros/AddTask_Resolution.C @@ -1,5 +1,5 @@ -void AddTask_Resolution( TString V0ReaderCutNumber = "000000006008400100150000000", - TString TaskCutnumber = "000000009009266374380000000", +void AddTask_Resolution( TString V0ReaderCutNumber = "0000000060084001001500000000", + TString TaskCutnumber = "0000000090092663743800000000", Bool_t IsMC = kTRUE, Int_t IsHeavyIon = 0, TString cutnumberAODBranch = "0000000060084001001500000", @@ -95,10 +95,10 @@ void AddTask_Resolution( TString V0ReaderCutNumber = "000000006008400100150000 } // suitable cuts for the material Task: - // PbPb: TaskCutnumber = "568000106009266304480300000"; TPC mult in MC - 60-80% central - // or: TaskCutnumber = "168000106009266304480300000"; V0 mult in MC - 60-80% central - // pPb: TaskCutnumber = "800000009009266374380000000"; - // pp: TaskCutnumber = "000000009009266374380000000"; + // PbPb: TaskCutnumber = "5680001060092663044803000000"; TPC mult in MC - 60-80% central + // or: TaskCutnumber = "1680001060092663044803000000"; V0 mult in MC - 60-80% central + // pPb: TaskCutnumber = "8000000090092663743800000000"; + // pp: TaskCutnumber = "0000000090092663743800000000"; AliConversionCuts *analysisCuts = new AliConversionCuts(); -- 2.43.0