]>
Commit | Line | Data |
---|---|---|
f97320e9 | 1 | AliAnalysisTaskSEHFv2 *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 | } |