]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGHF/vertexingHF/charmFlow/AddTaskHFv2.C
possibility to choose a combination of 3 subevents out of TPC,TPC+,TPC-,V0A,V0C for...
[u/mrichter/AliRoot.git] / PWGHF / vertexingHF / charmFlow / AddTaskHFv2.C
CommitLineData
1c451ce0 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,2=v0A,3=V0C*/)
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){
1c451ce0 74 v2Task->SetTPCEP();
f97320e9 75 suffix+="TPC";
1c451ce0 76 }else if(flagep==1){
e74d1295 77 v2Task->SetVZEROEP();
f97320e9 78 suffix+="VZERO";
1c451ce0 79 }else if(flagep==2){
80 v2Task->SetVZEROAEP();
81 suffix+="VZEROA";
82 }else if(flagep==3){
83 v2Task->SetVZEROCEP();
84 suffix+="VZEROC";
e74d1295 85 }
a8f6c03f 86 mgr->AddTask(v2Task);
87
88 // Create containers for input/output
89
90 TString contname=Form("cinputv2%s",suffix.Data());
91 AliAnalysisDataContainer *cinputv2 = mgr->CreateContainer(contname.Data(),TChain::Class(),AliAnalysisManager::kInputContainer);
92
93 TString outputfile = AliAnalysisManager::GetCommonFileName();
f97320e9 94 TString outputhistos = Form("%s:PWGHF_D2H_HFv2_%s",outputfile.Data(),suffix.Data());
a8f6c03f 95
96 contname=Form("hEventsInfo%s",suffix.Data());
f97320e9 97 AliAnalysisDataContainer *coutputstat = mgr->CreateContainer(contname.Data(),TH1F::Class(),AliAnalysisManager::kOutputContainer,outputhistos.Data());
a8f6c03f 98
99 contname=Form("coutputv2%s",suffix.Data());
f97320e9 100 AliAnalysisDataContainer *coutputv2 = mgr->CreateContainer(contname.Data(),TList::Class(),AliAnalysisManager::kOutputContainer,outputhistos.Data());
a8f6c03f 101
102 contname=Form("cutobj%s",suffix.Data());
f97320e9 103 AliAnalysisDataContainer *cutobj = mgr->CreateContainer(contname.Data(),AliRDHFCuts::Class(),AliAnalysisManager::kOutputContainer,outputhistos.Data());
a8f6c03f 104
105 mgr->ConnectInput(v2Task,0,mgr->GetCommonInputContainer());
106
107 mgr->ConnectOutput(v2Task,1,coutputstat);
108
109 mgr->ConnectOutput(v2Task,2,coutputv2);
110
111 mgr->ConnectOutput(v2Task,3,cutobj);
112
a8f6c03f 113 return v2Task;
114}