]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGHF/vertexingHF/charmFlow/AddTaskHFv2.C
- ownership of output hist lists
[u/mrichter/AliRoot.git] / PWGHF / vertexingHF / charmFlow / AddTaskHFv2.C
CommitLineData
f97320e9 1AliAnalysisTaskSEHFv2 *AddTaskHFv2(TString filename="DplustoKpipiCutsPbPb.root",AliAnalysisTaskSEHFv2::DecChannel decCh=AliAnalysisTaskSEHFv2::kDplustoKpipi,TString cutsobjname="AnalysisCuts", Bool_t readMC=kFALSE, TString suffix="", Int_t flagep=0 /*0=tracks,1=V0*/)
a8f6c03f 2{
3 //
4 // Test macro for the AliAnalysisTaskSE for D
5 // mesons v2 analysis with event plane method
6 // Authors: Chiara Bianchin, cbianchi@pd.infn.it,
7 // Robert Grajcarek, grajcarek@physi.uni-heidelberg.de
8 // Giacomo Ortona, ortona@to.infn.it,
9 // Carlos Perez Lara, carlos.eugenio.perez.lara@cern.ch
10 // Francesco Prino, prino@to.infn.it
11 // Get the pointer to the existing analysis manager via the static access method.
12 //============================================================================
13 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
14 if (!mgr) {
15 ::Error("AddTaskHFv2", "No analysis manager to connect to.");
16 return NULL;
17 }
f97320e9 18
a8f6c03f 19 Bool_t stdcuts=kFALSE;
f97320e9 20 TFile* filecuts;
21 if( filename.EqualTo("") ) {
22 stdcuts=kTRUE;
23 } else {
24 filecuts=TFile::Open(filename.Data());
25 if(!filecuts ||(filecuts&& !filecuts->IsOpen())){
26 AliFatal("Input file not found : check your cut object");
27 }
a8f6c03f 28 }
29
30 AliRDHFCuts *analysiscuts=0x0;
f97320e9 31 Int_t pdgmes=-1;
a8f6c03f 32 //Analysis cuts
f97320e9 33
6e88402f 34 if(decCh==AliAnalysisTaskSEHFv2::kDplustoKpipi){
f97320e9 35 if(stdcuts){
36 analysiscuts = new AliRDHFCutsDplustoKpipi();
37 analysiscuts->SetStandardCutsPbPb2011();
38 }else analysiscuts = (AliRDHFCutsDplustoKpipi*)filecuts->Get(cutsobjname);
39 suffix.Prepend("Dplus");
40 pdgmes=411;
6e88402f 41 }else if(decCh==AliAnalysisTaskSEHFv2::kD0toKpi){
f97320e9 42 if(stdcuts) {
43 analysiscuts = new AliRDHFCutsD0toKpi();
44 analysiscuts->SetStandardCutsPbPb2011();
45 }
46 else analysiscuts = (AliRDHFCutsD0toKpi*)filecuts->Get(cutsobjname);
47 suffix.Prepend("Dzero");
48 pdgmes=421;
6e88402f 49 }else if(decCh==AliAnalysisTaskSEHFv2::kDstartoKpipi){
f97320e9 50 if(stdcuts) {
51 analysiscuts = new AliRDHFCutsDStartoKpipi();
52 analysiscuts->SetStandardCutsPbPb2011();
53 }
54 else analysiscuts = (AliRDHFCutsDStartoKpipi*)filecuts->Get(cutsobjname);
55 suffix.Prepend("Dstar");
56 pdgmes=413;
57 }
58 if(pdgmes==-1){
59 AliFatal("Wrong meson setting");
6e88402f 60 }
a8f6c03f 61 if(!analysiscuts){
6e88402f 62 AliFatal("Specific AliRDHFCuts not found");
a8f6c03f 63 }
64
a8f6c03f 65 // Analysis task
aaf4df1a 66 AliAnalysisTaskSEHFv2 *v2Task = new AliAnalysisTaskSEHFv2("HFv2Analysis",analysiscuts,decCh);
f97320e9 67 v2Task->SetReadMC(readMC);
aaf4df1a 68 v2Task->SetEtaGapFeatureForEventplaneFromTracks(kFALSE);
69 v2Task->SetNMassBins(104);
f97320e9 70 v2Task->SetMassLimits(0.2,pdgmes);
a8f6c03f 71 v2Task->SetDebugLevel(0);
aaf4df1a 72 v2Task->SetV0EventPlaneOrder(2);
e74d1295 73 if(flagep==0){
74 v2Task->SetTPCEP();//SetVZEROEPOnly();
f97320e9 75 suffix+="TPC";
e74d1295 76 }else{
77 v2Task->SetVZEROEP();
f97320e9 78 suffix+="VZERO";
e74d1295 79 }
a8f6c03f 80 mgr->AddTask(v2Task);
81
82 // Create containers for input/output
83
84 TString contname=Form("cinputv2%s",suffix.Data());
85 AliAnalysisDataContainer *cinputv2 = mgr->CreateContainer(contname.Data(),TChain::Class(),AliAnalysisManager::kInputContainer);
86
87 TString outputfile = AliAnalysisManager::GetCommonFileName();
f97320e9 88 TString outputhistos = Form("%s:PWGHF_D2H_HFv2_%s",outputfile.Data(),suffix.Data());
a8f6c03f 89
90 contname=Form("hEventsInfo%s",suffix.Data());
f97320e9 91 AliAnalysisDataContainer *coutputstat = mgr->CreateContainer(contname.Data(),TH1F::Class(),AliAnalysisManager::kOutputContainer,outputhistos.Data());
a8f6c03f 92
93 contname=Form("coutputv2%s",suffix.Data());
f97320e9 94 AliAnalysisDataContainer *coutputv2 = mgr->CreateContainer(contname.Data(),TList::Class(),AliAnalysisManager::kOutputContainer,outputhistos.Data());
a8f6c03f 95
96 contname=Form("cutobj%s",suffix.Data());
f97320e9 97 AliAnalysisDataContainer *cutobj = mgr->CreateContainer(contname.Data(),AliRDHFCuts::Class(),AliAnalysisManager::kOutputContainer,outputhistos.Data());
a8f6c03f 98
99 mgr->ConnectInput(v2Task,0,mgr->GetCommonInputContainer());
100
101 mgr->ConnectOutput(v2Task,1,coutputstat);
102
103 mgr->ConnectOutput(v2Task,2,coutputv2);
104
105 mgr->ConnectOutput(v2Task,3,cutobj);
106
a8f6c03f 107 return v2Task;
108}