From 33bbd991eef41d3806d603d0eb0df53b487f8692 Mon Sep 17 00:00:00 2001 From: fbock Date: Thu, 13 Jun 2013 12:09:32 +0000 Subject: [PATCH] Separated AddTasks for pp, PbPb, pPb & added root file for reweighting spectra --- .../GammaConv/macros/AddTask_GammaConvV1_2.C | 196 ---------------- .../GammaConv/macros/AddTask_GammaConvV1_3.C | 197 ---------------- .../macros/AddTask_GammaConvV1_PbPb.C | 210 ++++++++++++++++++ .../macros/AddTask_GammaConvV1_pPb.C | 210 ++++++++++++++++++ .../GammaConv/macros/AddTask_GammaConvV1_pp.C | 163 ++++++++++++++ PWGGA/GammaConv/macros/MCSpectraInput.root | Bin 0 -> 57809 bytes 6 files changed, 583 insertions(+), 393 deletions(-) delete mode 100644 PWGGA/GammaConv/macros/AddTask_GammaConvV1_2.C delete mode 100644 PWGGA/GammaConv/macros/AddTask_GammaConvV1_3.C create mode 100644 PWGGA/GammaConv/macros/AddTask_GammaConvV1_PbPb.C create mode 100644 PWGGA/GammaConv/macros/AddTask_GammaConvV1_pPb.C create mode 100644 PWGGA/GammaConv/macros/AddTask_GammaConvV1_pp.C create mode 100644 PWGGA/GammaConv/macros/MCSpectraInput.root diff --git a/PWGGA/GammaConv/macros/AddTask_GammaConvV1_2.C b/PWGGA/GammaConv/macros/AddTask_GammaConvV1_2.C deleted file mode 100644 index ececa8bbfed..00000000000 --- a/PWGGA/GammaConv/macros/AddTask_GammaConvV1_2.C +++ /dev/null @@ -1,196 +0,0 @@ - -void AddTask_GammaConvV1_2(TString trainConfig = "pp", Bool_t isMC = kFALSE, UInt_t triggerMaskpPb = AliVEvent::kINT7){ - - gSystem->Load("libCore.so"); - gSystem->Load("libTree.so"); - gSystem->Load("libGeom.so"); - gSystem->Load("libVMC.so"); - gSystem->Load("libPhysics.so"); - gSystem->Load("libMinuit"); - gSystem->Load("libSTEERBase"); - gSystem->Load("libESD"); - gSystem->Load("libAOD"); - gSystem->Load("libANALYSIS"); - gSystem->Load("libANALYSISalice"); - gSystem->Load("libPWGGAGammaConv.so"); - gSystem->Load("libCDB.so"); - gSystem->Load("libSTEER.so"); - gSystem->Load("libSTEERBase.so"); - gSystem->Load("libTENDER.so"); - gSystem->Load("libTENDERSupplies.so"); - - - AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); - if (!mgr) { - Error("AddTask_GammaConvV1", "No analysis manager found."); - return 0; - } - - Int_t IsHeavyIon=0; - if (trainConfig.Contains("PbPb")) IsHeavyIon=1; - else if (trainConfig.Contains("pPb")) IsHeavyIon=2; - - Bool_t doEtaShift = kFALSE; - - TString cutnumber = ""; - if(IsHeavyIon == 1){ - cutnumber = "1000000002084001001500000"; - } else if (IsHeavyIon==2){ - cutnumber = "8000000062084001001500000"; - doEtaShift = kFALSE; // Only needed if Eta Range is small, but default is now +- 5.0 - } else{ - cutnumber = "0000000002084000002200000"; - } - - //========= Add PID Reponse to ANALYSIS manager ==== - if(!(AliPIDResponse*)mgr->GetTask("PIDResponseTask")){ - gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDResponse.C"); - AddTaskPIDResponse(); - } - - //========= Add V0 Reader to ANALYSIS manager ===== - AliV0ReaderV1 *fV0ReaderV1 = new AliV0ReaderV1("V0ReaderV1"); - - fV0ReaderV1->SetUseOwnXYZCalculation(kTRUE); - fV0ReaderV1->SetCreateAODs(kFALSE);// AOD Output - fV0ReaderV1->SetUseAODConversionPhoton(kTRUE); - - if (!mgr) { - Error("AddTask_V0ReaderV1", "No analysis manager found."); - return; - } - AliVEventHandler *inputHandler=mgr->GetInputEventHandler(); - - if(inputHandler->IsA()==AliESDInputHandler::Class()){ - // ESD mode - } - - if(inputHandler->IsA()==AliAODInputHandler::Class()){ - // AOD mode - // task->SetUseSatelliteAODs(kTRUE); - } - - // Set AnalysisCut Number - AliConversionCuts *fCuts=NULL; - if(cutnumber!=""){ - fCuts= new AliConversionCuts(cutnumber.Data(),cutnumber.Data()); - if(fCuts->InitializeCutsFromCutString(cutnumber.Data())){ - if (IsHeavyIon==2){ - fCuts->SelectCollisionCandidates(triggerMaskpPb); - fCuts->DoEtaShift(doEtaShift); - } - fV0ReaderV1->SetConversionCuts(fCuts); - fCuts->SetFillCutHistograms("",kTRUE); - } - } - fV0ReaderV1->Init(); - - - - AliLog::SetGlobalLogLevel(AliLog::kInfo); - - //================================================ - // data containers - //================================================ - // find input container - //below the trunk version - AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer(); - //connect input V0Reader - mgr->AddTask(fV0ReaderV1); - mgr->ConnectInput(fV0ReaderV1,0,cinput); - - //================================================ - //========= Add task to the ANALYSIS manager ===== - //================================================ - // data containers - //================================================ - // find input container - AliAnalysisTaskGammaConvV1 *task=NULL; - task= new AliAnalysisTaskGammaConvV1("GammaConvV1"); - task->SetIsHeavyIon(IsHeavyIon); - // Cut Numbers to use in Analysis - Int_t numberOfCuts = 2; - if(trainConfig.Contains("PbPb")) numberOfCuts = 7; - else if(trainConfig.Contains("pPb")) numberOfCuts = 5; - else numberOfCuts = 3; - - TString *cutarray = new TString[numberOfCuts]; - TString *mesonCutArray = new TString[numberOfCuts]; - - if(trainConfig.Contains("PbPb")){ - cutarray[ 0] = "3010002042092970023220000"; mesonCutArray[ 0] = "01522045000"; - cutarray[ 1] = "1010002042092970023220000"; mesonCutArray[ 1] = "01522045000"; - cutarray[ 2] = "3120002042092970023220000"; mesonCutArray[ 2] = "01522045000"; - cutarray[ 3] = "1120002042092970023220000"; mesonCutArray[ 3] = "01522045000"; - cutarray[ 4] = "1240002042092970023220000"; mesonCutArray[ 4] = "01522045000"; - cutarray[ 5] = "1460002042092970023220000"; mesonCutArray[ 5] = "01522065000"; - cutarray[ 6] = "1680002042092970023220000"; mesonCutArray[ 6] = "01522065000"; - } else if(trainConfig.Contains("pPb")){ //pA needs thighter rapidity cut y < 0.5 - cutarray[ 0] = "8000000082093172003290000"; mesonCutArray[ 0] = "01629045000"; - cutarray[ 1] = "8020000002093172023290000"; mesonCutArray[ 1] = "01621045000"; //standard cut Pi0 PbPb 00-20 - cutarray[ 2] = "8240000002093172023290000"; mesonCutArray[ 2] = "01621045000"; //standard cut Pi0 PbPb 20-40 - cutarray[ 3] = "8460000002093172023290000"; mesonCutArray[ 3] = "01621045000"; //standard cut Pi0 PbPb 40-60 - cutarray[ 4] = "8600000002093172023290000"; mesonCutArray[ 4] = "01621045000"; //standard cut Pi0 PbPb 60-100 - } else { - cutarray[ 0] = "0000011002093663003800000"; mesonCutArray[0] = "01631031009"; //standard cut Pi0 pp 2.76TeV without SDD , only Minbias MC - cutarray[ 1] = "0001011002093663003800000"; mesonCutArray[1] = "01631031009"; //standard cut Pi0 pp 2.76TeV without SDD, V0AND - cutarray[ 2] = "0000011002093260003800000"; mesonCutArray[2] = "01631031009"; //standard cut Gamma pp 2-76TeV - - } - - TList *ConvCutList = new TList(); - TList *MesonCutList = new TList(); - - TList *HeaderList = new TList(); - // TObjString *Header1 = new TObjString("PARAM"); - // HeaderList->Add(Header1); - TObjString *Header2 = new TObjString("pi0_1"); - HeaderList->Add(Header2); - TObjString *Header3 = new TObjString("eta_2"); - HeaderList->Add(Header3); -// TObjString *Header4 = new TObjString("Hijing"); -// HeaderList->Add(Header4); - - - ConvCutList->SetOwner(kTRUE); - AliConversionCuts **analysisCuts = new AliConversionCuts*[numberOfCuts]; - MesonCutList->SetOwner(kTRUE); - AliConversionMesonCuts **analysisMesonCuts = new AliConversionMesonCuts*[numberOfCuts]; - - - for(Int_t i = 0; iInitializeCutsFromCutString(cutarray[i].Data()); - if (trainConfig.Contains("pPb")){ - analysisCuts[i]->SelectCollisionCandidates(triggerMaskpPb); - } - ConvCutList->Add(analysisCuts[i]); - - analysisCuts[i]->SetFillCutHistograms("",kFALSE); - analysisMesonCuts[i] = new AliConversionMesonCuts(); - analysisMesonCuts[i]->InitializeCutsFromCutString(mesonCutArray[i].Data()); - MesonCutList->Add(analysisMesonCuts[i]); - analysisMesonCuts[i]->SetFillCutHistograms(""); - analysisCuts[i]->SetAcceptedHeader(HeaderList); - } - - - task->SetConversionCutList(numberOfCuts,ConvCutList); - task->SetMesonCutList(numberOfCuts,MesonCutList); - task->SetMoveParticleAccordingToVertex(kTRUE); - task->SetDoMesonAnalysis(kTRUE); - if (trainConfig.Contains("pPb") || trainConfig.Contains("pp") )task->SetDoMesonQA(kTRUE); //Attention new switch for Pi0 QA - if (trainConfig.Contains("pPb") || trainConfig.Contains("pp") )task->SetDoPhotonQA(kTRUE); //Attention new switch small for Photon QA - - //connect containers - AliAnalysisDataContainer *coutput = - mgr->CreateContainer("GammaConvV1", TList::Class(), - AliAnalysisManager::kOutputContainer,"GammaConvV1.root"); - - mgr->AddTask(task); - mgr->ConnectInput(task,0,cinput); - mgr->ConnectOutput(task,1,coutput); - - return task; - -} diff --git a/PWGGA/GammaConv/macros/AddTask_GammaConvV1_3.C b/PWGGA/GammaConv/macros/AddTask_GammaConvV1_3.C deleted file mode 100644 index a2eb92f74b7..00000000000 --- a/PWGGA/GammaConv/macros/AddTask_GammaConvV1_3.C +++ /dev/null @@ -1,197 +0,0 @@ - -void AddTask_GammaConvV1_3(TString trainConfig = "pp", Bool_t isMC = kFALSE, UInt_t triggerMaskpPb = AliVEvent::kINT7){ - - gSystem->Load("libCore.so"); - gSystem->Load("libTree.so"); - gSystem->Load("libGeom.so"); - gSystem->Load("libVMC.so"); - gSystem->Load("libPhysics.so"); - gSystem->Load("libMinuit"); - gSystem->Load("libSTEERBase"); - gSystem->Load("libESD"); - gSystem->Load("libAOD"); - gSystem->Load("libANALYSIS"); - gSystem->Load("libANALYSISalice"); - gSystem->Load("libPWGGAGammaConv.so"); - gSystem->Load("libCDB.so"); - gSystem->Load("libSTEER.so"); - gSystem->Load("libSTEERBase.so"); - gSystem->Load("libTENDER.so"); - gSystem->Load("libTENDERSupplies.so"); - - - AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); - if (!mgr) { - Error("AddTask_GammaConvV1", "No analysis manager found."); - return 0; - } - - Int_t IsHeavyIon=0; - if (trainConfig.Contains("PbPb")) IsHeavyIon=1; - else if (trainConfig.Contains("pPb")) IsHeavyIon=2; - - Bool_t doEtaShift = kFALSE; - - TString cutnumber = ""; - if(IsHeavyIon == 1){ - cutnumber = "1000000002084001001500000"; - } else if (IsHeavyIon==2){ - cutnumber = "8000000062084001001500000"; - doEtaShift = kFALSE; // Only needed if Eta Range is small, but default is now +- 5.0 - } else{ - cutnumber = "0000000002084000002200000"; - } - - //========= Add PID Reponse to ANALYSIS manager ==== - if(!(AliPIDResponse*)mgr->GetTask("PIDResponseTask")){ - gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDResponse.C"); - AddTaskPIDResponse(); - } - - //========= Add V0 Reader to ANALYSIS manager ===== - AliV0ReaderV1 *fV0ReaderV1 = new AliV0ReaderV1("V0ReaderV1"); - - fV0ReaderV1->SetUseOwnXYZCalculation(kTRUE); - fV0ReaderV1->SetCreateAODs(kFALSE);// AOD Output - fV0ReaderV1->SetUseAODConversionPhoton(kTRUE); - - if (!mgr) { - Error("AddTask_V0ReaderV1", "No analysis manager found."); - return; - } - AliVEventHandler *inputHandler=mgr->GetInputEventHandler(); - - if(inputHandler->IsA()==AliESDInputHandler::Class()){ - // ESD mode - } - - if(inputHandler->IsA()==AliAODInputHandler::Class()){ - // AOD mode - // task->SetUseSatelliteAODs(kTRUE); - } - - // Set AnalysisCut Number - AliConversionCuts *fCuts=NULL; - if(cutnumber!=""){ - fCuts= new AliConversionCuts(cutnumber.Data(),cutnumber.Data()); - if(fCuts->InitializeCutsFromCutString(cutnumber.Data())){ - if (IsHeavyIon==2){ - fCuts->SelectCollisionCandidates(triggerMaskpPb); - fCuts->DoEtaShift(doEtaShift); - } - fV0ReaderV1->SetConversionCuts(fCuts); - fCuts->SetFillCutHistograms("",kTRUE); - } - } - fV0ReaderV1->Init(); - - - - AliLog::SetGlobalLogLevel(AliLog::kInfo); - - //================================================ - // data containers - //================================================ - // find input container - //below the trunk version - AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer(); - //connect input V0Reader - mgr->AddTask(fV0ReaderV1); - mgr->ConnectInput(fV0ReaderV1,0,cinput); - - //================================================ - //========= Add task to the ANALYSIS manager ===== - //================================================ - // data containers - //================================================ - // find input container - AliAnalysisTaskGammaConvV1 *task=NULL; - task= new AliAnalysisTaskGammaConvV1("GammaConvV1"); - task->SetIsHeavyIon(IsHeavyIon); - // Cut Numbers to use in Analysis - Int_t numberOfCuts = 2; - if(trainConfig.Contains("PbPb")) numberOfCuts = 3; - else if(trainConfig.Contains("pPb")) numberOfCuts = 5; - else numberOfCuts = 4; - - TString *cutarray = new TString[numberOfCuts]; - TString *mesonCutArray = new TString[numberOfCuts]; - - if(trainConfig.Contains("PbPb")){ - cutarray[ 0] = "1460001042092970023220000"; mesonCutArray[ 0] = "01522065000"; // Standard cut 40-60 - cutarray[ 1] = "1020003042092370023750000"; mesonCutArray[ 1] = "01522045009"; -// Standard cut gamma 0-20% - cutarray[ 2] = "1480003042092370023750000"; mesonCutArray[ 2] = "01522065009"; // Standard cut gamma 40-80 - } else if(trainConfig.Contains("pPb")){ //pA needs thighter rapidity cut y < 0.5 - cutarray[ 0] = "8000000002093172023290000"; mesonCutArray[ 0] = "01621045000"; - cutarray[ 1] = "8020000002093172023290000"; mesonCutArray[ 1] = "01621045000"; //standard cut Pi0 PbPb 00-20 - cutarray[ 2] = "8240000002093172023290000"; mesonCutArray[ 2] = "01621045000"; //standard cut Pi0 PbPb 20-40 - cutarray[ 3] = "8460000002093172023290000"; mesonCutArray[ 3] = "01621045000"; //standard cut Pi0 PbPb 40-60 - cutarray[ 4] = "8600000002093172023290000"; mesonCutArray[ 4] = "01621045000"; //standard cut Pi0 PbPb 60-100 - - } else { - cutarray[ 0] = "0002011002093663003800000"; mesonCutArray[0] = "01631031009"; //standard cut Pi0 pp 2.76TeV with SDD , only Minbias MC - cutarray[ 1] = "0003011002093663003800000"; mesonCutArray[1] = "01631031009"; //standard cut Pi0 pp 2.76TeV with SDD, V0AND , only Minbias MC - cutarray[ 2] = "0002012002093663003800000"; mesonCutArray[2] = "01631031009"; //standard cut Pi0 pp 2.76TeV with SDD , only Boxes MC - cutarray[ 3] = "0003012002093663003800000"; mesonCutArray[3] = "01631031009"; //standard cut Pi0 pp 2.76TeV with SDD, V0AND, only Boxes MC - } - - TList *ConvCutList = new TList(); - TList *MesonCutList = new TList(); - - TList *HeaderList = new TList(); - // TObjString *Header1 = new TObjString("PARAM"); - // HeaderList->Add(Header1); - TObjString *Header2 = new TObjString("BOX"); - HeaderList->Add(Header2); -// TObjString *Header3 = new TObjString("Pythia"); -// HeaderList->Add(Header3); -// TObjString *Header4 = new TObjString("Hijing"); -// HeaderList->Add(Header4); - - - ConvCutList->SetOwner(kTRUE); - AliConversionCuts **analysisCuts = new AliConversionCuts*[numberOfCuts]; - MesonCutList->SetOwner(kTRUE); - AliConversionMesonCuts **analysisMesonCuts = new AliConversionMesonCuts*[numberOfCuts]; - - - for(Int_t i = 0; iInitializeCutsFromCutString(cutarray[i].Data()); - if (trainConfig.Contains("pPb")){ - analysisCuts[i]->SelectCollisionCandidates(triggerMaskpPb); - analysisCuts[i]->DoEtaShift(kTRUE); - analysisCuts[i]->SetEtaShift("pPb"); - } - ConvCutList->Add(analysisCuts[i]); - - analysisCuts[i]->SetFillCutHistograms("",kFALSE); - analysisMesonCuts[i] = new AliConversionMesonCuts(); - analysisMesonCuts[i]->InitializeCutsFromCutString(mesonCutArray[i].Data()); - MesonCutList->Add(analysisMesonCuts[i]); - analysisMesonCuts[i]->SetFillCutHistograms(""); - analysisCuts[i]->SetAcceptedHeader(HeaderList); - } - - - task->SetConversionCutList(numberOfCuts,ConvCutList); - task->SetMesonCutList(numberOfCuts,MesonCutList); - task->SetMoveParticleAccordingToVertex(kTRUE); - task->SetDoMesonAnalysis(kTRUE); - if (trainConfig.Contains("pPb") || trainConfig.Contains("pp") )task->SetDoMesonQA(kTRUE); //Attention new switch for Pi0 QA - if (trainConfig.Contains("pPb") || trainConfig.Contains("pp") )task->SetDoPhotonQA(kTRUE); //Attention new switch small for Photon QA - - - //connect containers - AliAnalysisDataContainer *coutput = - mgr->CreateContainer("GammaConvV1", TList::Class(), - AliAnalysisManager::kOutputContainer,"GammaConvV1.root"); - - mgr->AddTask(task); - mgr->ConnectInput(task,0,cinput); - mgr->ConnectOutput(task,1,coutput); - - return task; - -} diff --git a/PWGGA/GammaConv/macros/AddTask_GammaConvV1_PbPb.C b/PWGGA/GammaConv/macros/AddTask_GammaConvV1_PbPb.C new file mode 100644 index 00000000000..06caa309fb7 --- /dev/null +++ b/PWGGA/GammaConv/macros/AddTask_GammaConvV1_PbPb.C @@ -0,0 +1,210 @@ +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 + TString fileNameInputForWeighting = "MCSpectraInput.root" // path to file for weigting input + ) { + + // ================= Load Librariers ================================= + gSystem->Load("libCore.so"); + gSystem->Load("libTree.so"); + gSystem->Load("libGeom.so"); + gSystem->Load("libVMC.so"); + gSystem->Load("libPhysics.so"); + gSystem->Load("libMinuit"); + gSystem->Load("libSTEERBase"); + gSystem->Load("libESD"); + gSystem->Load("libAOD"); + gSystem->Load("libANALYSIS"); + gSystem->Load("libANALYSISalice"); + gSystem->Load("libPWGGAGammaConv.so"); + gSystem->Load("libCDB.so"); + gSystem->Load("libSTEER.so"); + gSystem->Load("libSTEERBase.so"); + gSystem->Load("libTENDER.so"); + gSystem->Load("libTENDERSupplies.so"); + + // ================== GetAnalysisManager =============================== + AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); + if (!mgr) { + Error(Form("AddTask_GammaConvV1_%i",trainConfig), "No analysis manager found."); + return ; + } + + // ================== GetInputEventHandler ============================= + AliVEventHandler *inputHandler=mgr->GetInputEventHandler(); + + //========= Add PID Reponse to ANALYSIS manager ==== + if(!(AliPIDResponse*)mgr->GetTask("PIDResponseTask")){ + gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDResponse.C"); + AddTaskPIDResponse(isMC); + } + + //========= Set Cutnumber for V0Reader ================================ + TString cutnumber = "1000000000084001001500000"; + + //========= Add V0 Reader to ANALYSIS manager if not yet existent ===== + if( !(AliV0ReaderV1*)mgr->GetTask("V0ReaderV1") ){ + AliV0ReaderV1 *fV0ReaderV1 = new AliV0ReaderV1("V0ReaderV1"); + + fV0ReaderV1->SetUseOwnXYZCalculation(kTRUE); + fV0ReaderV1->SetCreateAODs(kFALSE);// AOD Output + fV0ReaderV1->SetUseAODConversionPhoton(kTRUE); + + if (!mgr) { + Error("AddTask_V0ReaderV1", "No analysis manager found."); + return; + } + + // Set AnalysisCut Number + AliConversionCuts *fCuts=NULL; + if(cutnumber!=""){ + fCuts= new AliConversionCuts(cutnumber.Data(),cutnumber.Data()); + fCuts->SetPreSelectionCutFlag(kTRUE); + if(fCuts->InitializeCutsFromCutString(cutnumber.Data())){ + fV0ReaderV1->SetConversionCuts(fCuts); + fCuts->SetFillCutHistograms("",kTRUE); + } + } + fV0ReaderV1->Init(); + + AliLog::SetGlobalLogLevel(AliLog::kInfo); + + //================================================ + // data containers for V0Reader + //================================================ + AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer(); + //connect input V0Reader + mgr->AddTask(fV0ReaderV1); + mgr->ConnectInput(fV0ReaderV1,0,cinput); + + } + + //================================================ + //========= Add task to the ANALYSIS manager ===== + //================================================ + // data containers + //================================================ + // find input container + AliAnalysisTaskGammaConvV1 *task=NULL; + task= new AliAnalysisTaskGammaConvV1(Form("GammaConvV1_%i",trainConfig)); + task->SetIsHeavyIon(1); + task->SetIsMC(isMC); + // Cut Numbers to use in Analysis + Int_t numberOfCuts = 4; + + TString *cutarray = new TString[numberOfCuts]; + TString *mesonCutArray = new TString[numberOfCuts]; + + if(trainConfig === 1){ // Standard neutral pion cuts + cutarray[ 0] = "3010001042092970023220000"; mesonCutArray[ 0] = "01522045009"; // 0-5% + cutarray[ 1] = "3120001042092970023220000"; mesonCutArray[ 1] = "01522045009"; // 5-10% + cutarray[ 2] = "1010001042092970023220000"; mesonCutArray[ 2] = "01522045009"; // 0-10% + cutarray[ 3] = "1120001042092970023220000"; mesonCutArray[ 3] = "01522045009"; // 10-20% + } else if (trainConfig == 2) { // Standard neutral pion cuts + cutarray[ 0] = "1240001042092970023220000"; mesonCutArray[ 0] = "01522045009"; // 20-40% + cutarray[ 1] = "1460001042092970023220000"; mesonCutArray[ 1] = "01522065009"; // 40-60% + cutarray[ 2] = "1680001042092970023220000"; mesonCutArray[ 2] = "01522065009"; // 60-80% + cutarray[ 3] = "1080001042092970023220000"; mesonCutArray[ 3] = "01522065009"; // 0-80% + } else if (trainConfig == 3) { // Standard direct photon cuts + cutarray[ 0] = "1020001042092370023700000"; mesonCutArray[ 0] = "01522045009"; // 0-20% + cutarray[ 1] = "1040001042092370023700000"; mesonCutArray[ 1] = "01522045009"; // 0-40% + cutarray[ 2] = "1480001042092370023700000"; mesonCutArray[ 2] = "01522065009"; // 40-80% + cutarray[ 3] = "1080001042092370023700000"; mesonCutArray[ 3] = "01522045009"; // 0-80% + } else if (trainConfig == 4) { // Standard direct photon cuts + cutarray[ 0] = "1010001042092370023700000"; mesonCutArray[ 0] = "01522045009"; // 0-10% + cutarray[ 1] = "1120001042092370023700000"; mesonCutArray[ 1] = "01522045009"; // 10-20% + cutarray[ 2] = "1240001042092370023700000"; mesonCutArray[ 2] = "01522045009"; // 20-40% + cutarray[ 3] = "1090001042092370023700000"; mesonCutArray[ 3] = "01522045009"; // 0-90% + } else if (trainConfig == 5) { // Standard neutral pion cuts only added signals + cutarray[ 0] = "3010002042092970023220000"; mesonCutArray[ 0] = "01522045009"; // 0-5% + cutarray[ 1] = "3120002042092970023220000"; mesonCutArray[ 1] = "01522045009"; // 5-10% + cutarray[ 2] = "1010002042092970023220000"; mesonCutArray[ 2] = "01522045009"; // 0-10% + cutarray[ 3] = "1120002042092970023220000"; mesonCutArray[ 3] = "01522045009"; // 10-20% + } else if (trainConfig == 6) { // Standard neutral pion cuts only added signals + cutarray[ 0] = "1240002042092970023220000"; mesonCutArray[ 0] = "01522045009"; // 20-40% + cutarray[ 1] = "1460002042092970023220000"; mesonCutArray[ 1] = "01522065009"; // 40-60% + cutarray[ 2] = "1680002042092970023220000"; mesonCutArray[ 2] = "01522065009"; // 60-80% + cutarray[ 3] = "1080002042092970023220000"; mesonCutArray[ 3] = "01522065009"; // 0-80% + } else if (trainConfig == 7) { // Standard direct photon cuts + cutarray[ 0] = "1020003042092370023700000"; mesonCutArray[ 0] = "01522045009"; // 0-20% + cutarray[ 1] = "1040003042092370023700000"; mesonCutArray[ 1] = "01522045009"; // 0-40% + cutarray[ 2] = "1480003042092370023700000"; mesonCutArray[ 2] = "01522065009"; // 40-80% + cutarray[ 3] = "1080003042092370023700000"; mesonCutArray[ 3] = "01522045009"; // 0-80% + } else if (trainConfig == 8) { // Standard direct photon cuts + cutarray[ 0] = "1010003042092370023700000"; mesonCutArray[ 0] = "01522045009"; // 0-10% + cutarray[ 1] = "1120003042092370023700000"; mesonCutArray[ 1] = "01522045009"; // 10-20% + cutarray[ 2] = "1240003042092370023700000"; mesonCutArray[ 2] = "01522045009"; // 20-40% + cutarray[ 3] = "1090003042092370023700000"; mesonCutArray[ 3] = "01522045009"; // 0-90% + } else { + Error(Form("GammaConvV1_%i",trainConfig), "wrong trainConfig variable no cuts have been specified for the configuration"); + return; + } + + TList *ConvCutList = new TList(); + TList *MesonCutList = new TList(); + + TList *HeaderList = new TList(); + TObjString *Header1 = new TObjString("pi0_1"); + HeaderList->Add(Header1); + TObjString *Header3 = new TObjString("eta_2"); + HeaderList->Add(Header3); + + ConvCutList->SetOwner(kTRUE); + AliConversionCuts **analysisCuts = new AliConversionCuts*[numberOfCuts]; + MesonCutList->SetOwner(kTRUE); + AliConversionMesonCuts **analysisMesonCuts = new AliConversionMesonCuts*[numberOfCuts]; + + + for(Int_t i = 0; iSetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, fileNameInputForWeighting, "Pi0_Hijing_PbPb_2760GeV_0005", "", "K0s_RatioDataToMC_Hijing_PbPb_2760GeV_0005"); + if (i==1) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, fileNameInputForWeighting, "Pi0_Hijing_PbPb_2760GeV_0510", "", "K0s_RatioDataToMC_Hijing_PbPb_2760GeV_0510"); + if (i==2) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, fileNameInputForWeighting, "Pi0_Hijing_PbPb_2760GeV_0010", "", "K0s_RatioDataToMC_Hijing_PbPb_2760GeV_0010"); + if (i==3) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE,fileNameInputForWeighting, "Pi0_Hijing_PbPb_2760GeV_1020", "", "K0s_RatioDataToMC_Hijing_PbPb_2760GeV_1020"); + } else if (trainConfig == 2){ + if (i==0) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, fileNameInputForWeighting, "Pi0_Hijing_PbPb_2760GeV_2040", "", "K0s_RatioDataToMC_Hijing_PbPb_2760GeV_2040"); + if (i==1) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, fileNameInputForWeighting, "Pi0_Hijing_PbPb_2760GeV_4060", "", "K0s_RatioDataToMC_Hijing_PbPb_2760GeV_4060");; + if (i==2) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, fileNameInputForWeighting, "Pi0_Hijing_PbPb_2760GeV_6080", "", "K0s_RatioDataToMC_Hijing_PbPb_2760GeV_6080"); + if (i==3) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, fileNameInputForWeighting, "Pi0_Hijing_PbPb_2760GeV_0080", "", "K0s_RatioDataToMC_Hijing_PbPb_2760GeV_0080"); + } else if (trainConfig == 3){ + if (i==0) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, fileNameInputForWeighting, "Pi0_Hijing_PbPb_2760GeV_0020", "", "K0s_RatioDataToMC_Hijing_PbPb_2760GeV_0020"); + if (i==1) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, fileNameInputForWeighting, "Pi0_Hijing_PbPb_2760GeV_0040", "", "K0s_RatioDataToMC_Hijing_PbPb_2760GeV_0040"); + if (i==2) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, fileNameInputForWeighting, "Pi0_Hijing_PbPb_2760GeV_4080", "", "K0s_RatioDataToMC_Hijing_PbPb_2760GeV_4080");i + if (i==3) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, fileNameInputForWeighting, "Pi0_Hijing_PbPb_2760GeV_0080", "", "K0s_RatioDataToMC_Hijing_PbPb_2760GeV_0080"); + } else if (trainConfig == 4){ + if (i==0) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, fileNameInputForWeighting, "Pi0_Hijing_PbPb_2760GeV_0010", "", "K0s_RatioDataToMC_Hijing_PbPb_2760GeV_0010"); + if (i==1) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE,fileNameInputForWeighting, "Pi0_Hijing_PbPb_2760GeV_1020", "", "K0s_RatioDataToMC_Hijing_PbPb_2760GeV_1020"); + if (i==2) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, fileNameInputForWeighting, "Pi0_Hijing_PbPb_2760GeV_2040", "", "K0s_RatioDataToMC_Hijing_PbPb_2760GeV_2040"); + } + analysisCuts[i] = new AliConversionCuts(); + analysisCuts[i]->InitializeCutsFromCutString(cutarray[i].Data()); + ConvCutList->Add(analysisCuts[i]); + + analysisCuts[i]->SetFillCutHistograms("",kFALSE); + analysisMesonCuts[i] = new AliConversionMesonCuts(); + analysisMesonCuts[i]->InitializeCutsFromCutString(mesonCutArray[i].Data()); + MesonCutList->Add(analysisMesonCuts[i]); + analysisMesonCuts[i]->SetFillCutHistograms(""); + analysisCuts[i]->SetAcceptedHeader(HeaderList); + } + + task->SetConversionCutList(numberOfCuts,ConvCutList); + 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 + + //connect containers + AliAnalysisDataContainer *coutput = + mgr->CreateContainer("GammaConvV1", TList::Class(), + AliAnalysisManager::kOutputContainer,Form("GammaConvV1_%i.root",trainConfig)); + + mgr->AddTask(task); + mgr->ConnectInput(task,0,cinput); + mgr->ConnectOutput(task,1,coutput); + + return; + +} diff --git a/PWGGA/GammaConv/macros/AddTask_GammaConvV1_pPb.C b/PWGGA/GammaConv/macros/AddTask_GammaConvV1_pPb.C new file mode 100644 index 00000000000..364d01d6c9b --- /dev/null +++ b/PWGGA/GammaConv/macros/AddTask_GammaConvV1_pPb.C @@ -0,0 +1,210 @@ +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 + TString fileNameInputForWeighting = "MCSpectraInput.root" // path to file for weigting input + ) { + + // ================= Load Librariers ================================= + gSystem->Load("libCore.so"); + gSystem->Load("libTree.so"); + gSystem->Load("libGeom.so"); + gSystem->Load("libVMC.so"); + gSystem->Load("libPhysics.so"); + gSystem->Load("libMinuit"); + gSystem->Load("libSTEERBase"); + gSystem->Load("libESD"); + gSystem->Load("libAOD"); + gSystem->Load("libANALYSIS"); + gSystem->Load("libANALYSISalice"); + gSystem->Load("libPWGGAGammaConv.so"); + gSystem->Load("libCDB.so"); + gSystem->Load("libSTEER.so"); + gSystem->Load("libSTEERBase.so"); + gSystem->Load("libTENDER.so"); + gSystem->Load("libTENDERSupplies.so"); + + // ================== GetAnalysisManager =============================== + AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); + if (!mgr) { + Error(Form("AddTask_GammaConvV1_%i",trainConfig), "No analysis manager found."); + return ; + } + + // ================== GetInputEventHandler ============================= + AliVEventHandler *inputHandler=mgr->GetInputEventHandler(); + + //========= Add PID Reponse to ANALYSIS manager ==== + if(!(AliPIDResponse*)mgr->GetTask("PIDResponseTask")){ + gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDResponse.C"); + AddTaskPIDResponse(isMC); + } + + //========= Set Cutnumber for V0Reader ================================ + TString cutnumber = "8000000060084001001500000"; + Bool_t doEtaShift = kFALSE; + //========= Add V0 Reader to ANALYSIS manager if not yet existent ===== + if( !(AliV0ReaderV1*)mgr->GetTask("V0ReaderV1") ){ + AliV0ReaderV1 *fV0ReaderV1 = new AliV0ReaderV1("V0ReaderV1"); + + fV0ReaderV1->SetUseOwnXYZCalculation(kTRUE); + fV0ReaderV1->SetCreateAODs(kFALSE);// AOD Output + fV0ReaderV1->SetUseAODConversionPhoton(kTRUE); + + if (!mgr) { + Error("AddTask_V0ReaderV1", "No analysis manager found."); + return; + } + + // Set AnalysisCut Number + AliConversionCuts *fCuts=NULL; + if(cutnumber!=""){ + fCuts= new AliConversionCuts(cutnumber.Data(),cutnumber.Data()); + fCuts->SetPreSelectionCutFlag(kTRUE); + if(fCuts->InitializeCutsFromCutString(cutnumber.Data())){ + fCuts->DoEtaShift(doEtaShift); + fV0ReaderV1->SetConversionCuts(fCuts); + fCuts->SetFillCutHistograms("",kTRUE); + } + } + fV0ReaderV1->Init(); + + AliLog::SetGlobalLogLevel(AliLog::kInfo); + + //================================================ + // data containers for V0Reader + //================================================ + AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer(); + //connect input V0Reader + mgr->AddTask(fV0ReaderV1); + mgr->ConnectInput(fV0ReaderV1,0,cinput); + + } + + //================================================ + //========= Add task to the ANALYSIS manager ===== + //================================================ + // data containers + //================================================ + // find input container + AliAnalysisTaskGammaConvV1 *task=NULL; + task= new AliAnalysisTaskGammaConvV1(Form("GammaConvV1_%i",trainConfig)); + task->SetIsHeavyIon(2); + task->SetIsMC(isMC); + // Cut Numbers to use in Analysis + Int_t numberOfCuts = 6; + + TString *cutarray = new TString[numberOfCuts]; + TString *mesonCutArray = new TString[numberOfCuts]; + Bool_t doEtaShiftIndCuts = kFALSE; + TString stringShift = ""; + if(trainConfig === 1){ + // Shifting in pPb direction + doEtaShiftIndCuts = kTRUE; + stringShift = "pPb"; + cutarray[ 0] = "8000000082093172003290000"; mesonCutArray[ 0] = "01629045000"; //standard cut Pi0 pPb 00-100 Midrapidity + cutarray[ 1] = "8020000082093172003290000"; mesonCutArray[ 1] = "01629045000"; //standard cut Pi0 pPb 00-20 Midrapidity + cutarray[ 2] = "8240000082093172003290000"; mesonCutArray[ 2] = "01629045000"; //standard cut Pi0 pPb 20-40 Midrapidity + cutarray[ 3] = "8460000082093172003290000"; mesonCutArray[ 3] = "01629045000"; //standard cut Pi0 pPb 40-60 Midrapidity + cutarray[ 4] = "8600000082093172003290000"; mesonCutArray[ 4] = "01629045000"; //standard cut Pi0 pPb 60-100 Midrapidity + cutarray[ 5] = "8000000082093172003290000"; mesonCutArray[ 5] = "01620045000"; //standard cut Pi0 pPb0-100 Midrapidity open y cut + } else if (trainConfig == 2) { + // no shifting + cutarray[ 0] = "8000000072093172003290000"; mesonCutArray[ 0] = "01627045000"; //standard cut Pi0 pPb 00-100 Fwd (PHOS) rapidity + cutarray[ 1] = "8020000072093172003290000"; mesonCutArray[ 1] = "01627045000"; //standard cut Pi0 pPb 00-20 Fwd (PHOS) rapidity + cutarray[ 2] = "8240000072093172003290000"; mesonCutArray[ 2] = "01627045000"; //standard cut Pi0 pPb 20-40 Fwd (PHOS) rapidity + cutarray[ 3] = "8460000072093172003290000"; mesonCutArray[ 3] = "01627045000"; //standard cut Pi0 pPb 40-60 Fwd (PHOS) rapidity + cutarray[ 4] = "8600000072093172003290000"; mesonCutArray[ 4] = "01627045000"; //standard cut Pi0 pPb 60-100 Fwd (PHOS) rapidity + cutarray[ 5] = "8000000072093172003290000"; mesonCutArray[ 5] = "01620045000"; //standard cut Pi0 pPb 00-100 Fwd (PHOS) rapidity open y cut + } else if (trainConfig == 3) { + // no shifting + cutarray[ 0] = "8000000002093172003290000"; mesonCutArray[ 0] = "01621045000"; //standard cut Pi0 pPb 00-100 Full Eta Range + cutarray[ 1] = "8020000002093172003290000"; mesonCutArray[ 1] = "01621045000"; //standard cut Pi0 pPb 00-20 Full Eta Range + cutarray[ 2] = "8240000002093172003290000"; mesonCutArray[ 2] = "01621045000"; //standard cut Pi0 pPb 20-40 Full Eta Range + cutarray[ 3] = "8460000002093172003290000"; mesonCutArray[ 3] = "01621045000"; //standard cut Pi0 pPb 40-60 Full Eta Range + cutarray[ 4] = "8600000002093172003290000"; mesonCutArray[ 4] = "01621045000"; //standard cut Pi0 pPb 60-100 Full Eta Range + cutarray[ 5] = "8000000002093172003290000"; mesonCutArray[ 5] = "01620045000"; //standard cut Pi0 pPb 00-100 Full Eta Range open y cut + + } else if (trainConfig == 4) { + // shifting in Pbp direction + doEtaShiftIndCuts = kTRUE; + stringShift = "Pbp"; + cutarray[ 0] = "8000000082093172003290000"; mesonCutArray[ 0] = "01629045000"; //standard cut Pi0 pPb 00-100 Pbp shift + cutarray[ 1] = "8020000082093172003290000"; mesonCutArray[ 1] = "01629045000"; //standard cut Pi0 pPb 00-20 Pbp shift + cutarray[ 2] = "8240000082093172003290000"; mesonCutArray[ 2] = "01629045000"; //standard cut Pi0 pPb 20-40 Pbp shift + cutarray[ 3] = "8460000082093172003290000"; mesonCutArray[ 3] = "01629045000"; //standard cut Pi0 pPb 40-60 Pbp shift + cutarray[ 4] = "8600000082093172003290000"; mesonCutArray[ 4] = "01629045000"; //standard cut Pi0 pPb 60-100 Pbp shift + cutarray[ 5] = "8000000082093172003290000"; mesonCutArray[ 5] = "01620045000"; //standard cut Pi0 pPb0-100 Pbp shift open y cut + } else if (trainConfig == 5) { + // Special trigger setup + cutarray[ 0] = "8000000002093172003290000"; mesonCutArray[ 0] = "01620045000"; //standard cut Pi0 pPb open eta and y cut + cutarray[ 1] = "8004000002093172003290000"; mesonCutArray[ 1] = "01620045000"; //Special trigger kTRD + cutarray[ 2] = "8005000002093172003290000"; mesonCutArray[ 2] = "01620045000"; //Special trigger kPHI7 + cutarray[ 3] = "8006000002093172003290000"; mesonCutArray[ 3] = "01620045000"; // Special trigger kEMCEJE + cutarray[ 4] = "8007000002093172003290000"; mesonCutArray[ 4] = "01620045000"; // Special trigger kEMCEGA + cutarray[ 5] = "8008000002093172003290000"; mesonCutArray[ 5] = "01620045000"; // Special trigger kHighMult + } else { + Error(Form("GammaConvV1_%i",trainConfig), "wrong trainConfig variable no cuts have been specified for the configuration"); + return; + } + + TList *ConvCutList = new TList(); + TList *MesonCutList = new TList(); + + TList *HeaderList = new TList(); + TObjString *Header1 = new TObjString("pi0_1"); + HeaderList->Add(Header1); + TObjString *Header3 = new TObjString("eta_2"); + HeaderList->Add(Header3); + + ConvCutList->SetOwner(kTRUE); + AliConversionCuts **analysisCuts = new AliConversionCuts*[numberOfCuts]; + MesonCutList->SetOwner(kTRUE); + AliConversionMesonCuts **analysisMesonCuts = new AliConversionMesonCuts*[numberOfCuts]; + + + for(Int_t i = 0; iInitializeCutsFromCutString(cutarray[i].Data()); + if (doEtaShiftIndCuts) { + analysisCuts[i]->DoEtaShift(doEtaShiftIndCuts); + analysisCuts[i]->SetEtaShift(stringShift); + } + + if (trainConfig == 5) { + if (i == 1) analysisCuts[i]->SelectSpecialTrigger(AliVEvent::kTRD, "AliVEvent::kTRD" ); + if (i == 2) analysisCuts[i]->SelectSpecialTrigger(AliVEvent::kPHI7,"AliVEvent::kPHI7" ); + if (i == 3) analysisCuts[i]->SelectSpecialTrigger(AliVEvent::kEMCEJE,"AliVEvent::kEMCEJE" ); + if (i == 4) analysisCuts[i]->SelectSpecialTrigger(AliVEvent::kEMCEGA,"AliVEvent::kEMCEGA" ); + if (i == 5) analysisCuts[i]->SelectSpecialTrigger(AliVEvent::kHighMult,"AliVEvent::kHighMult" ); + } + ConvCutList->Add(analysisCuts[i]); + + analysisCuts[i]->SetFillCutHistograms("",kFALSE); + analysisMesonCuts[i] = new AliConversionMesonCuts(); + analysisMesonCuts[i]->InitializeCutsFromCutString(mesonCutArray[i].Data()); + MesonCutList->Add(analysisMesonCuts[i]); + analysisMesonCuts[i]->SetFillCutHistograms(""); + analysisCuts[i]->SetAcceptedHeader(HeaderList); + } + + task->SetConversionCutList(numberOfCuts,ConvCutList); + 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 + + //connect containers + AliAnalysisDataContainer *coutput = + mgr->CreateContainer("GammaConvV1", TList::Class(), + AliAnalysisManager::kOutputContainer,Form("GammaConvV1_%i.root",trainConfig)); + + mgr->AddTask(task); + mgr->ConnectInput(task,0,cinput); + mgr->ConnectOutput(task,1,coutput); + + return; + +} diff --git a/PWGGA/GammaConv/macros/AddTask_GammaConvV1_pp.C b/PWGGA/GammaConv/macros/AddTask_GammaConvV1_pp.C new file mode 100644 index 00000000000..d2dfebba7d1 --- /dev/null +++ b/PWGGA/GammaConv/macros/AddTask_GammaConvV1_pp.C @@ -0,0 +1,163 @@ +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 + TString fileNameInputForWeighting = "MCSpectraInput.root" // path to file for weigting input + ) { + + // ================= Load Librariers ================================= + gSystem->Load("libCore.so"); + gSystem->Load("libTree.so"); + gSystem->Load("libGeom.so"); + gSystem->Load("libVMC.so"); + gSystem->Load("libPhysics.so"); + gSystem->Load("libMinuit"); + gSystem->Load("libSTEERBase"); + gSystem->Load("libESD"); + gSystem->Load("libAOD"); + gSystem->Load("libANALYSIS"); + gSystem->Load("libANALYSISalice"); + gSystem->Load("libPWGGAGammaConv.so"); + gSystem->Load("libCDB.so"); + gSystem->Load("libSTEER.so"); + gSystem->Load("libSTEERBase.so"); + gSystem->Load("libTENDER.so"); + gSystem->Load("libTENDERSupplies.so"); + + // ================== GetAnalysisManager =============================== + AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); + if (!mgr) { + Error(Form("AddTask_GammaConvV1_%i",trainConfig), "No analysis manager found."); + return ; + } + + // ================== GetInputEventHandler ============================= + AliVEventHandler *inputHandler=mgr->GetInputEventHandler(); + + //========= Add PID Reponse to ANALYSIS manager ==== + if(!(AliPIDResponse*)mgr->GetTask("PIDResponseTask")){ + gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDResponse.C"); + AddTaskPIDResponse(isMC); + } + + //========= Set Cutnumber for V0Reader ================================ + TString cutnumber = "0000000002084000002200000"; + + //========= Add V0 Reader to ANALYSIS manager if not yet existent ===== + if( !(AliV0ReaderV1*)mgr->GetTask("V0ReaderV1") ){ + AliV0ReaderV1 *fV0ReaderV1 = new AliV0ReaderV1("V0ReaderV1"); + + fV0ReaderV1->SetUseOwnXYZCalculation(kTRUE); + fV0ReaderV1->SetCreateAODs(kFALSE);// AOD Output + fV0ReaderV1->SetUseAODConversionPhoton(kTRUE); + + if (!mgr) { + Error("AddTask_V0ReaderV1", "No analysis manager found."); + return; + } + + // Set AnalysisCut Number + AliConversionCuts *fCuts=NULL; + if(cutnumber!=""){ + fCuts= new AliConversionCuts(cutnumber.Data(),cutnumber.Data()); + fCuts->SetPreSelectionCutFlag(kTRUE); + if(fCuts->InitializeCutsFromCutString(cutnumber.Data())){ + fV0ReaderV1->SetConversionCuts(fCuts); + fCuts->SetFillCutHistograms("",kTRUE); + } + } + fV0ReaderV1->Init(); + + AliLog::SetGlobalLogLevel(AliLog::kInfo); + + //================================================ + // data containers for V0Reader + //================================================ + AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer(); + //connect input V0Reader + mgr->AddTask(fV0ReaderV1); + mgr->ConnectInput(fV0ReaderV1,0,cinput); + + } + + //================================================ + //========= Add task to the ANALYSIS manager ===== + //================================================ + // data containers + //================================================ + // find input container + AliAnalysisTaskGammaConvV1 *task=NULL; + task= new AliAnalysisTaskGammaConvV1(Form("GammaConvV1_%i",trainConfig)); + task->SetIsHeavyIon(0); + task->SetIsMC(isMC); + // Cut Numbers to use in Analysis + Int_t numberOfCuts = 4; + + TString *cutarray = new TString[numberOfCuts]; + TString *mesonCutArray = new TString[numberOfCuts]; + + if(trainConfig === 1){ + cutarray[ 0] = "0000012002093663003800000"; mesonCutArray[0] = "01631031009"; //standard cut Pi0 pp 2.76TeV without SDD , only boxes + cutarray[ 1] = "0001012002093663003800000"; mesonCutArray[1] = "01631031009"; //standard cut Pi0 pp 2.76TeV without SDD, V0AND , only boxes + cutarray[ 2] = "0000012002093260003800000"; mesonCutArray[2] = "01631031009"; //standard cut Gamma pp 2-76TeV , only boxes + cutarray[ 3] = "0000012002093260003800000"; mesonCutArray[3] = "01631031009"; //standard cut Gamma pp 2-76TeV , only boxes + } else if (trainConfig == 2) { + cutarray[ 0] = "0000011002093663003800000"; mesonCutArray[0] = "01631031009"; //standard cut Pi0 pp 2.76TeV without SDD , only Minbias MC + cutarray[ 1] = "0001011002093663003800000"; mesonCutArray[1] = "01631031009"; //standard cut Pi0 pp 2.76TeV without SDD, V0AND + cutarray[ 2] = "0000011002093260003800000"; mesonCutArray[2] = "01631031009"; //standard cut Gamma pp 2-76TeV + cutarray[ 3] = "0000011002093260003800000"; mesonCutArray[3] = "01631031009"; //standard cut Gamma pp 2-76TeV , only boxes + } else if (trainConfig == 3) { + cutarray[ 0] = "0002011002093663003800000"; mesonCutArray[0] = "01631031009"; //standard cut Pi0 pp 2.76TeV with SDD , only Minbias MC + cutarray[ 1] = "0003011002093663003800000"; mesonCutArray[1] = "01631031009"; //standard cut Pi0 pp 2.76TeV with SDD, V0AND , only Minbias MC + cutarray[ 2] = "0002012002093663003800000"; mesonCutArray[2] = "01631031009"; //standard cut Pi0 pp 2.76TeV with SDD , only Boxes MC + cutarray[ 3] = "0003012002093663003800000"; mesonCutArray[3] = "01631031009"; //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; + } + + TList *ConvCutList = new TList(); + TList *MesonCutList = new TList(); + + TList *HeaderList = new TList(); + TObjString *Header2 = new TObjString("BOX"); + HeaderList->Add(Header2); + + ConvCutList->SetOwner(kTRUE); + AliConversionCuts **analysisCuts = new AliConversionCuts*[numberOfCuts]; + MesonCutList->SetOwner(kTRUE); + AliConversionMesonCuts **analysisMesonCuts = new AliConversionMesonCuts*[numberOfCuts]; + + + for(Int_t i = 0; iInitializeCutsFromCutString(cutarray[i].Data()); + ConvCutList->Add(analysisCuts[i]); + + analysisCuts[i]->SetFillCutHistograms("",kFALSE); + analysisMesonCuts[i] = new AliConversionMesonCuts(); + analysisMesonCuts[i]->InitializeCutsFromCutString(mesonCutArray[i].Data()); + MesonCutList->Add(analysisMesonCuts[i]); + analysisMesonCuts[i]->SetFillCutHistograms(""); + analysisCuts[i]->SetAcceptedHeader(HeaderList); + } + + task->SetConversionCutList(numberOfCuts,ConvCutList); + 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 + + //connect containers + AliAnalysisDataContainer *coutput = + mgr->CreateContainer("GammaConvV1", TList::Class(), + AliAnalysisManager::kOutputContainer,Form("GammaConvV1_%i.root",trainConfig)); + + mgr->AddTask(task); + mgr->ConnectInput(task,0,cinput); + mgr->ConnectOutput(task,1,coutput); + + return; + +} diff --git a/PWGGA/GammaConv/macros/MCSpectraInput.root b/PWGGA/GammaConv/macros/MCSpectraInput.root new file mode 100644 index 0000000000000000000000000000000000000000..44cd0e59d45d9523204e368eca5b55bcda7e9153 GIT binary patch literal 57809 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 literal 0 HcmV?d00001 -- 2.43.5