fMinPPhotonAsymmetryCut=3.5;
fMinPhotonAsymmetry=0.06;
break;
+ case 3:
+ fDoPhotonAsymmetryCut=1;
+ fMinPPhotonAsymmetryCut=0.0;
+ fMinPhotonAsymmetry=0.05;
+ break;
default:
AliError(Form("PhotonAsymmetryCut not defined %d",doPhotonAsymmetryCut));
return kFALSE;
\r
}\r
\r
- /*if( lTrack->GetNcls(1) < fMinClsTPC ) {\r
-\r
- return kFALSE;\r
- }*/\r
-\r
- //Findable clusters\r
-\r
- /*Double_t clsToF=0;\r
-\r
-\r
- if (!fUseCorrectedTPCClsInfo ){\r
- if(lTrack->GetTPCNclsF()!=0){\r
-\r
- clsToF = (Double_t)lTrack->GetNcls(1)/(Double_t)lTrack->GetTPCNclsF();\r
- }// Ncluster/Nfindablecluster\r
- }\r
- else {\r
-\r
- //clsToF = lTrack->GetTPCClusterInfo(2,0,GetFirstTPCRow(photon->GetConversionRadius()));\r
- clsToF = lTrack->GetTPCClusterInfo(2,1); //NOTE ask friederike\r
- \r
- }*/\r
-\r
+ \r
\r
if( clsToF < fMinClsTPCToF){\r
return kFALSE;\r
else {\r
\r
//clsToF = lTrack->GetTPCClusterInfo(2,0,GetFirstTPCRow(photon->GetConversionRadius()));\r
- clsToF = lTrack->GetTPCClusterInfo(2,1); //NOTE ask friederike\r
+ clsToF = lTrack->GetTPCClusterInfo(2,0); //NOTE ask friederike\r
\r
}\r
\r
fPIDnSigmaAbovePionLineTPCHighPt=-100;\r
break;\r
case 1: // -10\r
- fPIDnSigmaAbovePionLineTPC=3.0; //Update Sep-05-2013 from -10 to 3\r
- fPIDnSigmaAbovePionLineTPCHighPt=-10; \r
+ fPIDnSigmaAbovePionLineTPC=3.0; //Update Sep-05-2013 from -10 to 3\r
+ fPIDnSigmaAbovePionLineTPCHighPt=-10;\r
break;\r
case 2: // 1\r
- fPIDnSigmaAbovePionLineTPC=-1;\r
- fPIDnSigmaAbovePionLineTPCHighPt=-10;\r
+ fPIDnSigmaAbovePionLineTPC=2; //Update Sep-09-2013 from -1 to 2\r
+ fPIDnSigmaAbovePionLineTPCHighPt=-1; //Update Sep-09-2013 from -10 to -1\r
break;\r
case 3: // 0\r
- fPIDnSigmaAbovePionLineTPC=0;\r
- fPIDnSigmaAbovePionLineTPCHighPt=-10;\r
+ fPIDnSigmaAbovePionLineTPC=2; //Update Sep-09-2013 from 0 to 2\r
+ fPIDnSigmaAbovePionLineTPCHighPt=0; //Update Sep-09-2013 from -10 to 0\r
break;\r
case 4: // 1\r
fPIDnSigmaAbovePionLineTPC=1;\r
fMinClsTPCToF= 0.35;\r
fUseCorrectedTPCClsInfo=0;\r
break;\r
+ case 9: // 35% of findable clusters\r
+ fMinClsTPC = 70.; \r
+ fesdTrackCuts->SetMinNClustersTPC(fMinClsTPC);\r
+ fMinClsTPCToF= 0.35;\r
+ fUseCorrectedTPCClsInfo=1;\r
+ break;\r
\r
default:\r
cout<<"Warning: clsTPCCut not defined "<<clsTPCCut<<endl;\r
-void AddTask_gamconv_GammaConvDalitzV1_PbPb( Bool_t isMC = kFALSE, //run MC
+void AddTask_GammaConvDalitzV1_PbPb( Bool_t isMC = kFALSE, //run MC
Bool_t enableQAMesonTask = kTRUE, //enable QA in AliAnalysisTaskGammaConvDalitzV1
Bool_t enableDoMesonChic = kFALSE, // enable additional Chic analysis
+ TString fileNameInputForWeighting = "MCSpectraInput.root", // path to file for weigting input
+ Bool_t doWeighting = kFALSE, //enable Weighting
TString cutnumberAODBranch = "0000000060084001001500000"
) {
//========= Set Cutnumber for V0Reader ================================
TString ConvCutnumber = "108000000008400100150000000"; //Online V0 finder
- TString ElecCuts = "900054000000020000"; //Electron Cuts
-
+ TString ElecCuts = "903162000550020210"; //Electron Cuts
+ //903162000550020210
+ //900054000000020000
AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
fElectronSelector->Init();
mgr->AddTask(fElectronSelector);
+ AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
+
+ //connect input V0Reader
+
+ mgr->ConnectInput (fElectronSelector,0,cinput1);
+
}
TString *MesonCutarray = new TString[numberOfCuts];
- Bool_t doEtaShiftIndCuts = kFALSE;
-
-
+
- TString *cutarray = new TString[numberOfCuts];
- TString *mesonCutArray = new TString[numberOfCuts];
- Bool_t doEtaShiftIndCuts = kFALSE;
- TString stringShift = "";
- // Shifting in pPb direction
+ ConvCutarray[0] = "312000104209297100322000000"; MesonCutarray[0] = "01522045009000"; ElecCutarray[0] = "905162002552021217"; //PbPb 5-10% kAny
+ ConvCutarray[1] = "112000104209297100322000000"; MesonCutarray[1] = "01522045009000"; ElecCutarray[1] = "905162002552021217"; //PbPb 10-20% kAny
+ ConvCutarray[2] = "124000104209297100322000000"; MesonCutarray[2] = "01522045009000"; ElecCutarray[2] = "905162002552021217"; //PbPb 20-40% kAny
+ ConvCutarray[3] = "146000104209297100322000000"; MesonCutarray[3] = "01522045009000"; ElecCutarray[3] = "905162002552021217"; //PbPb 40-60% kAny
+ ConvCutarray[4] = "168000104209297100322000000"; MesonCutarray[4] = "01522045009000"; ElecCutarray[4] = "905162002552021217"; //PbPb 60-80% kAny
- doEtaShiftIndCuts = kTRUE;
- stringShift = "pPb";
- ConvCutarray[0] = "312000104209297100322000000"; MesonCutarray[0] = "01522045009000"; ElecCutarray[0] = "905162001552021217"; //PbPb 5-10%
- ConvCutarray[1] = "112000104209297100322000000"; MesonCutarray[1] = "01522045009000"; ElecCutarray[1] = "905162001552021217"; //PbPb 10-20%
- ConvCutarray[2] = "124000104209297100322000000"; MesonCutarray[2] = "01522045009000"; ElecCutarray[2] = "905162001552021217"; //PbPb 20-40%
- ConvCutarray[3] = "146000104209297100322000000"; MesonCutarray[3] = "01522045009000"; ElecCutarray[3] = "905162001552021217"; //PbPb 40-60%
- ConvCutarray[4] = "168000104209297100322000000"; MesonCutarray[4] = "01522045009000"; ElecCutarray[4] = "905162001552021217"; //PbPb 60-80%
TList *ConvCutList = new TList();
TList *HeaderList = new TList();
TObjString *Header1 = new TObjString("pi0_1");
HeaderList->Add(Header1);
- //TObjString *Header3 = new TObjString("eta_2");
- //HeaderList->Add(Header3);
+
+ //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];
+
ElecCutList->SetOwner(kTRUE);
AliDalitzElectronCuts **analysisElecCuts = new AliDalitzElectronCuts*[numberOfCuts];
ConvCutList->Add(analysisCuts[i]);
analysisCuts[i]->SetFillCutHistograms("",kFALSE);
+
+ if (i == 0 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0510V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_0510V0M");
+ if (i == 1 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_2040V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_2040V0M");
+ if (i == 2 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_4060V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_4060V0M");
+ if (i == 3 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_6080V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_6080V0M");
+
+
+
}
if(enableQAMesonTask) task->SetDoMesonQA(kTRUE);
- if(enableDoMesonChic) task->SetDoMesonAnalysis(kTRUE);
+ if(enableDoMesonChic) task->SetDoChicAnalysis(kTRUE);
//connect containers
AliAnalysisDataContainer *coutput =
mgr->CreateContainer("GammaConvDalitzV1", TList::Class(),
- AliAnalysisManager::kOutputContainer,"GammaConvDalitzV1.root");
+ AliAnalysisManager::kOutputContainer,"GammaConvV1.root");
mgr->AddTask(task);
mgr->ConnectInput(task,0,cinput);
--- /dev/null
+void AddTask_GammaConvDalitzV1_pPb( Bool_t isMC = kFALSE, //run MC
+ Bool_t enableQAMesonTask = kTRUE, //enable QA in AliAnalysisTaskGammaConvDalitzV1
+ Bool_t enableDoMesonChic = kFALSE, // enable additional Chic analysis
+ TString cutnumberAODBranch = "0000000060084001001500000"
+ ) {
+
+
+
+ cout<<"Entro -1"<<endl;
+
+ // ================= 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");
+
+
+ cout<<"Entro 0"<<endl;
+
+ // ================== GetAnalysisManager ===============================
+ AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
+ if (!mgr) {
+ Error("AddTask_GammaConvDalitzV1_pPb", "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 ConvCutnumber = "800000006008400100150000000"; //Online V0 finder
+ TString ElecCuts = "900054000000020000"; //Electron Cuts
+ Bool_t doEtaShift = kFALSE;
+
+
+
+ AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
+
+ //========= 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( ConvCutnumber !=""){
+ fCuts= new AliConversionCuts(ConvCutnumber.Data(),ConvCutnumber.Data());
+ fCuts->SetPreSelectionCutFlag(kTRUE);
+ if(fCuts->InitializeCutsFromCutString(ConvCutnumber.Data())){
+ fCuts->DoEtaShift(doEtaShift);
+ fV0ReaderV1->SetConversionCuts(fCuts);
+ fCuts->SetFillCutHistograms("",kTRUE);
+ }
+ }
+ if(inputHandler->IsA()==AliAODInputHandler::Class()){
+ // AOD mode
+ fV0ReaderV1->SetDeltaAODBranchName(Form("GammaConv_%s_gamma",cutnumberAODBranch.Data()));
+ }
+ fV0ReaderV1->Init();
+
+ AliLog::SetGlobalLogLevel(AliLog::kInfo);
+
+ //connect input V0Reader
+ mgr->AddTask(fV0ReaderV1);
+ mgr->ConnectInput(fV0ReaderV1,0,cinput);
+
+ }
+
+ //================================================
+ //========= Add Electron Selector ================
+
+
+ if( !(AliDalitzElectronSelector*)mgr->GetTask("ElectronSelector") ){
+
+ AliDalitzElectronSelector *fElectronSelector = new AliDalitzElectronSelector("ElectronSelector");
+
+ // Set AnalysisCut Number
+
+ AliDalitzElectronCuts *fElecCuts=0;
+
+ //ElecCuts = "900054000000020000";
+
+ if( ElecCuts!=""){
+
+ fElecCuts= new AliDalitzElectronCuts(ElecCuts.Data(),ElecCuts.Data());
+
+ if(fElecCuts->InitializeCutsFromCutString(ElecCuts.Data())){
+
+ fElectronSelector->SetDalitzElectronCuts(fElecCuts);
+
+ fElecCuts->SetFillCutHistograms("",kTRUE);
+
+ }
+
+ }
+
+ fElectronSelector->Init();
+ mgr->AddTask(fElectronSelector);
+
+ AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
+
+ //connect input V0Reader
+
+ mgr->ConnectInput (fElectronSelector,0,cinput1);
+
+ }
+
+
+
+ cout<<"Entro"<<endl;
+ //================================================
+ //========= Add task to the ANALYSIS manager =====
+ //================================================
+ // find input container
+
+
+
+ AliAnalysisTaskGammaConvDalitzV1 *task=NULL;
+
+ task= new AliAnalysisTaskGammaConvDalitzV1("GammaConvDalitzV1");
+
+ task->SetIsHeavyIon(2);
+ task->SetIsMC(isMC);
+
+
+
+ // Cut Numbers to use in Analysis
+ Int_t numberOfCuts = 5;
+
+ TString *ConvCutarray = new TString[numberOfCuts];
+
+ TString *ElecCutarray = new TString[numberOfCuts];
+
+ TString *MesonCutarray = new TString[numberOfCuts];
+
+ Bool_t doEtaShiftIndCuts = kFALSE;
+ TString stringShift = "";
+
+ // Shifting in pPb direction
+
+ doEtaShiftIndCuts = kTRUE;
+ stringShift = "pPb";
+
+ ConvCutarray[0] = "800000008209360300220000000"; ElecCutarray[0] = "904754002582026217"; MesonCutarray[0] = "01039035009000"; //standard cut Pi0 PbPb 00-100
+ //ConvCutarray[1] = "800000008209360300220000000"; ElecCutarray[1] = "904754002582026217"; MesonCutarray[1] = "01039035000000"; //standard cut Pi0 PbPb 00-100 + No extra smearing
+ ConvCutarray[1] = "800000008209360300220000000"; ElecCutarray[1] = "904754002582026117"; MesonCutarray[1] = "01039035009000"; //standard cut Pi0 PbPb 00-100 + Single Pt primary > 0.100 GeV
+ //ConvCutarray[3] = "800000008209360300220000000"; ElecCutarray[3] = "904754002582026317"; MesonCutarray[3] = "01039035009000"; //standard cut Pi0 PbPb 00-100 + Single Pt primary > 0.150 GeV
+ ConvCutarray[2] = "800000008209460300220000000"; ElecCutarray[2] = "904754002582026217"; MesonCutarray[2] = "01039035009000"; //standard cut Pi0 PbPb 00-100 + dEdx electron gamma -6 ,7 sigmas
+ ConvCutarray[3] = "800000008209360300220300000"; ElecCutarray[3] = "904754002582026217"; MesonCutarray[3] = "01039035009000"; //standard cut Pi0 PbPb 00-100 do Aysemtri cut
+ ConvCutarray[4] = "800000008209460300220000000"; ElecCutarray[4] = "902754002582026217"; MesonCutarray[4] = "01039035009000"; //standard cut Pi0 PbPb 00-100 dEdx electrons primary and secondary -6 7 sigmas
+
+ //ConvCutarray[7] = "800000008249360300220000000"; ElecCutarray[7] = "904754002582026217"; MesonCutarray[7] = "01039035009000"; //standard cut Pi0 PbPb 00-100 Single Pt gamma > 0.075 GeV
+ //ConvCutarray[8] = "800000008219360300220000000"; ElecCutarray[8] = "904754002582026217"; MesonCutarray[8] = "01039035009000"; //standard cut Pi0 PbPb 00-100 Single Pt gamma > 0.100 GeV
+ //ConvCutarray[9] = "800000008209360300220000000"; ElecCutarray[9] = "904854002582026217"; MesonCutarray[9] = "01039035009000"; //standard cut Pi0 PbPb 00-100
+
+
+ TList *ConvCutList = new TList();
+ TList *MesonCutList = new TList();
+ TList *ElecCutList = 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];
+ ElecCutList->SetOwner(kTRUE);
+ AliDalitzElectronCuts **analysisElecCuts = new AliDalitzElectronCuts*[numberOfCuts];
+
+
+
+ for(Int_t i = 0; i<numberOfCuts; i++){
+
+
+ analysisCuts[i] = new AliConversionCuts();
+ if( ! analysisCuts[i]->InitializeCutsFromCutString(ConvCutarray[i].Data()) ) {
+ cout<<"ERROR: analysisCuts [" <<i<<"]"<<endl;
+ return 0;
+ }
+ else {
+
+ if (doEtaShiftIndCuts) {
+ analysisCuts[i]->DoEtaShift(doEtaShiftIndCuts);
+ analysisCuts[i]->SetEtaShift(stringShift);
+ }
+ ConvCutList->Add(analysisCuts[i]);
+ analysisCuts[i]->SetFillCutHistograms("",kFALSE);
+ analysisCuts[i]->SetAcceptedHeader(HeaderList);
+ }
+
+
+
+ analysisMesonCuts[i] = new AliConversionMesonCuts();
+
+ if( ! analysisMesonCuts[i]->InitializeCutsFromCutString(MesonCutarray[i].Data()) ) {
+ cout<<"ERROR: analysisMesonCuts [ " <<i<<" ] "<<endl;
+ return 0;
+ }
+ else {
+ MesonCutList->Add(analysisMesonCuts[i]);
+ analysisMesonCuts[i]->SetFillCutHistograms("");
+ }
+
+
+ TString cutName( Form("%s_%s_%s",ConvCutarray[i].Data(),ElecCutarray[i].Data(),MesonCutarray[i].Data() ) );
+
+
+ analysisElecCuts[i] = new AliDalitzElectronCuts();
+ if( !analysisElecCuts[i]->InitializeCutsFromCutString(ElecCutarray[i].Data())) {
+
+ cout<< "ERROR: analysisElecCuts [ " <<i<<" ] "<<endl;
+ return 0;
+ }
+ else {
+ ElecCutList->Add(analysisElecCuts[i]);
+ analysisElecCuts[i]->SetFillCutHistograms("",kFALSE,cutName);
+ }
+
+
+
+
+ }
+
+
+ task->SetConversionCutList(numberOfCuts,ConvCutList);
+ task->SetMesonCutList(MesonCutList);
+ task->SetElectronCutList(ElecCutList);
+
+ task->SetMoveParticleAccordingToVertex(kTRUE);
+
+
+ if(enableQAMesonTask) task->SetDoMesonQA(kTRUE);
+ if(enableDoMesonChic) task->SetDoChicAnalysis(kTRUE);
+
+ //connect containers
+ AliAnalysisDataContainer *coutput =
+ mgr->CreateContainer("GammaConvDalitzV1", TList::Class(),
+ AliAnalysisManager::kOutputContainer,"GammaConvV1.root");
+
+ mgr->AddTask(task);
+ mgr->ConnectInput(task,0,cinput);
+ mgr->ConnectOutput(task,1,coutput);
+
+ return;
+
+}
+++ /dev/null
-AliAnalysisTask *AddTask_gamconv_GammaConvV1_PbPb(){
-
- gSystem->Load("libANALYSISalice.so");
-
- //get the current analysis manager
- AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
- if (!mgr) {
- Error("AddTask_GammaConvV1", "No analysis manager found.");
- return 0;
- }
-
- TString trainConfig=gSystem->Getenv("CONFIG_FILE");
- Int_t IsHeavyIon=1;
-
- Bool_t IsMC = kFALSE;
- if (trainConfig.Contains("MC")) IsMC=kTRUE;
-
-
- TString cutnumber = "108000000008400100150000000";
- Bool_t doEtaShift = kFALSE;
-
- //========= Add PID Reponse to ANALYSIS manager ====
- if(!(AliPIDResponse*)mgr->GetTask("PIDResponseTask")){
- gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDResponse.C");
- AddTaskPIDResponse(IsMC);
- }
-
- //========= Add V0 Reader to ANALYSIS manager =====
- AliV0ReaderV1 *fV0ReaderV1=new AliV0ReaderV1("V0ReaderV1");
- ConfigV0ReaderV1(fV0ReaderV1,cutnumber,IsHeavyIon,doEtaShift);
- mgr->AddTask(fV0ReaderV1);
-
- AliLog::SetGlobalLogLevel(AliLog::kInfo);
-
- AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
- //connect input V0Reader
- mgr->ConnectInput (fV0ReaderV1,0,cinput);
-
- AliAnalysisTaskGammaConvV1 *task=NULL;
- task= new AliAnalysisTaskGammaConvV1("GammaConvV1");
- task->SetIsHeavyIon(IsHeavyIon);
- task->SetIsMC(IsMC);
- // Cut Numbers to use in Analysis
-
- Int_t numberOfCuts = 4;
-
- TString *cutarray = new TString[numberOfCuts];
- TString *mesonCutArray = new TString[numberOfCuts];
-
- cutarray[ 0] = "301000204209297002322000000"; mesonCutArray[ 0] = "01522045009000";
- cutarray[ 1] = "124000204209297002322000000"; mesonCutArray[ 1] = "01522045009000";
- cutarray[ 2] = "146000204209297002322000000"; mesonCutArray[ 2] = "01522065009000";
- cutarray[ 3] = "168000204209297002322000000"; mesonCutArray[ 3] = "01522065009000";
-
- 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; i<numberOfCuts; i++){
- analysisCuts[i] = new AliConversionCuts();
-// if (i==0) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, "MCSpectraInput.root", "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0005V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_0005V0M");
-// if (i==1) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, "MCSpectraInput.root", "Pi0_Hijing_LHC13d2_PbPb_2760GeV_2040V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_2040V0M");
-// if (i==2) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, "MCSpectraInput.root", "Pi0_Hijing_LHC13d2_PbPb_2760GeV_4060V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_4060V0M");
-// if (i==3) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, "MCSpectraInput.root", "Pi0_Hijing_LHC13d2_PbPb_2760GeV_6080V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_6080V0M");
- if (i==0) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, "MCSpectraInput.root", "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0005V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_0005V0M");
- if (i==1) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, "MCSpectraInput.root", "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_2040V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_2040V0M");
- if (i==2) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, "MCSpectraInput.root", "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_4060V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_4060V0M");
- if (i==3) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, "MCSpectraInput.root", "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_6080V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_6080V0M");
-
-// if (i==1) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, "MCSpectraInput.root", "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0010", "", "K0s_RatioDataToMC_Hijing_PbPb_2760GeV_0010");
-// if (i==2) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, "MCSpectraInput.root", "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0510", "", "K0s_RatioDataToMC_Hijing_PbPb_2760GeV_0510");
-// if (i==3) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE,"MCSpectraInput.root", "Pi0_Hijing_LHC13d2_PbPb_2760GeV_1020", "", "K0s_RatioDataToMC_Hijing_PbPb_2760GeV_1020");
-// if (i==7) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, "MCSpectraInput.root", "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0020", "", "K0s_RatioDataToMC_Hijing_PbPb_2760GeV_0020");
-// if (i==8) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, "MCSpectraInput.root", "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0040", "", "K0s_RatioDataToMC_Hijing_PbPb_2760GeV_0040");
-// if (i==9) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, "MCSpectraInput.root", "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0080", "", "K0s_RatioDataToMC_Hijing_PbPb_2760GeV_0080");
-// if (i==10) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, "MCSpectraInput.root", "Pi0_Hijing_LHC13d2_PbPb_2760GeV_4080", "", "K0s_RatioDataToMC_Hijing_PbPb_2760GeV_4080");
-
- analysisCuts[i]->InitializeCutsFromCutString(cutarray[i].Data());
- ConvCutList->Add(analysisCuts[i]);
-
- analysisCuts[i]->SetFillCutHistograms("",kFALSE);
- analysisCuts[i]->SetAcceptedHeader(HeaderList);
- analysisMesonCuts[i] = new AliConversionMesonCuts();
- analysisMesonCuts[i]->InitializeCutsFromCutString(mesonCutArray[i].Data());
- MesonCutList->Add(analysisMesonCuts[i]);
- analysisMesonCuts[i]->SetFillCutHistograms("");
-
-// if ( i < 5){
-// AliConversionCuts *QACuts = new AliConversionCuts();
-// QACuts->InitializeCutsFromCutString(cutarray[i].Data());
-// QACuts->SetFillCutHistograms("",kTRUE);
-// QACuts->SetAcceptedHeader(HeaderList);
-// AddQATaskV1(QACuts,IsHeavyIon,kTRUE,kFALSE,IsMC);
-// }
-
- }
-
- task->SetConversionCutList(numberOfCuts,ConvCutList);
- task->SetMesonCutList(numberOfCuts,MesonCutList);
- task->SetMoveParticleAccordingToVertex(kTRUE);
- task->SetDoMesonAnalysis(kTRUE);
- task->SetDoMesonQA(kTRUE); //Attention new switch for Pi0 QA
- task->SetDoPhotonQA(kTRUE); //Attention new switch small for Photon QA
- mgr->AddTask(task);
-
- //connect containers
- AliAnalysisDataContainer *coutput1 =
- mgr->CreateContainer("GammaConvV1", TList::Class(),
- AliAnalysisManager::kOutputContainer,"GammaConvV1.root");
- mgr->ConnectInput (task, 0, cinput );
- mgr->ConnectOutput (task, 1, coutput1);
-
- return task;
-}
-
-void ConfigV0ReaderV1(AliV0ReaderV1 *fV0ReaderV1,TString analysiscut="",Int_t IsHeavyIon=0,Bool_t doEtaShift = kFALSE){
-
- fV0ReaderV1->SetUseOwnXYZCalculation(kTRUE);
- fV0ReaderV1->SetCreateAODs(kFALSE);// AOD Output
- fV0ReaderV1->SetUseAODConversionPhoton(kTRUE);
-
- AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
- if (!mgr) {
- Error("AddTask_V0ReaderV1", "No analysis manager found.");
- return;
- }
- AliVEventHandler *inputHandler=mgr->GetInputEventHandler();
-
- if(inputHandler->IsA()==AliESDInputHandler::Class()){
- // ESD mode
- }
-
- // Set AnalysisCut Number
- AliConversionCuts *fCuts=NULL;
- if(analysiscut!=""){
- fCuts= new AliConversionCuts(analysiscut.Data(),analysiscut.Data());
- if(fCuts->InitializeCutsFromCutString(analysiscut.Data())){
- if (IsHeavyIon==2){
- fCuts->DoEtaShift(doEtaShift);
- }
- fCuts->SetPreSelectionCutFlag(kTRUE);
- fV0ReaderV1->SetConversionCuts(fCuts);
- fCuts->SetFillCutHistograms("",kTRUE);
- }
- }
-
- fV0ReaderV1->Init();
-}
-
-void AddQATaskV1(AliConversionCuts *ConversionCuts, Int_t IsHeavyIon, Bool_t tree, Bool_t histograms, Bool_t IsMCQA){
-
- //get the current analysis manager
- AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
- if (!mgr) {
- Error("AddTask_V0ReaderV1QA", "No analysis manager found.");
- return 0;
- }
- AliAnalysisTaskConversionQA *fQA =
- new AliAnalysisTaskConversionQA(Form("%s_QA",(ConversionCuts->GetCutNumber()).Data()));
- fQA->SetConversionCuts(ConversionCuts,IsHeavyIon);
- fQA->FillType(tree,histograms);
- fQA->SetIsMC(IsMCQA);
- mgr->AddTask(fQA);
-
- AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
- AliAnalysisDataContainer *coutput =
- mgr->CreateContainer(Form("GammaConv_V1QA_%s",(ConversionCuts->GetCutNumber()).Data()), TList::Class(),
- AliAnalysisManager::kOutputContainer,Form("GammaConvV1_QAHist_%s.root",(ConversionCuts->GetCutNumber()).Data()));
-
-
- mgr->ConnectInput(fQA,0,cinput);
- if(histograms) mgr->ConnectOutput(fQA, 1, coutput);
-
- if(tree){
- TString addoutput=gSystem->Getenv("ADD_OUTPUT_FILES");
- if (addoutput.Length()) addoutput+=",";
- addoutput+=Form("GammaConvV1_QATree_%s.root",(ConversionCuts->GetCutNumber()).Data());
- gSystem->Setenv("ADD_OUTPUT_FILES",addoutput.Data());
- cout<<"Adding addoutput.Data(): "<<Form("GammaConvV1_QATree_%s.root",(ConversionCuts->GetCutNumber()).Data())<<endl;
- }
-
-}