1 AliAnalysisTaskSEHFv2 *AddTaskHFv2(TString filename="DplustoKpipiCuts.root", AliAnalysisTaskSEHFv2::DecChannel decCh=AliAnalysisTaskSEHFv2::kD0toKpi,Bool_t readMC=kFALSE,TString name="",Int_t flagep=1 /*0=tracks,1=V0*/)
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();
15 ::Error("AddTaskHFv2", "No analysis manager to connect to.");
18 Bool_t stdcuts=kFALSE;
19 TFile* filecuts=new TFile(filename.Data());
20 if(!filecuts->IsOpen()){
21 cout<<"Input file not found: using std cut object"<<endl;
25 AliRDHFCuts *analysiscuts=0x0;
28 TString cutsobjname="loosercuts";
32 cutsobjname="AnalysisCuts";
34 analysiscuts = new AliRDHFCutsDplustoKpipi();
35 analysiscuts->SetStandardCutsPbPb2010();
37 else analysiscuts = (AliRDHFCutsDplustoKpipi*)filecuts->Get(cutsobjname);
41 cutsobjname="D0toKpiCuts";
43 analysiscuts = new AliRDHFCutsD0toKpi();
44 analysiscuts->SetStandardCutsPbPb2010();
46 else analysiscuts = (AliRDHFCutsD0toKpi*)filecuts->Get(cutsobjname);
50 cutsobjname="DStartoKpipiCuts";
52 analysiscuts = new AliRDHFCutsDStartoKpipi();
53 analysiscuts->SetStandardCutsPbPb2010();
55 else analysiscuts = (AliRDHFCutsDStartoKpipi*)filecuts->Get(cutsobjname);
59 cout<<"Not available"<<endl;
64 cout<<"Specific AliRDHFCuts not found"<<endl;
69 const Int_t nphibins=4;
70 const Int_t nphibinlimits=nphibins+1;
71 Float_t pi=TMath::Pi();
72 Float_t philimits[nphibinlimits]={0., pi/4.,pi/2., 3./4.*pi, pi};
75 AliAnalysisTaskSEHFv2 *v2Task = new AliAnalysisTaskSEHFv2("HFv2Analysis",analysiscuts,decCh,nphibinlimits,philimits);
76 v2Task->SetReadMC(readMC);
78 v2Task->SetEtaGapFeatureForEventplaneFromTracks(kTRUE);
80 v2Task->SetDebugLevel(0);
84 TFile *fpar = TFile::Open("VZEROParHist.root");
86 for(Int_t i=0;i<6;i++){
87 TString hhname;hhname.Form("parhist%d_%d",(i+2)*10,(i+3)*10);
88 hh[i]=(TH2D*)fpar->Get(hhname.Data());
90 v2Task->SetVZEROParHist(hh);
94 // Create containers for input/output
96 TString contname=Form("cinputv2%s",suffix.Data());
97 AliAnalysisDataContainer *cinputv2 = mgr->CreateContainer(contname.Data(),TChain::Class(),AliAnalysisManager::kInputContainer);
99 TString outputfile = AliAnalysisManager::GetCommonFileName();
100 TString outputhistos = outputfile += ":PWG3_D2H_HFv2";
102 contname=Form("hEventsInfo%s",suffix.Data());
103 AliAnalysisDataContainer *coutputstat = mgr->CreateContainer(contname.Data(),TH1F::Class(),AliAnalysisManager::kOutputContainer,outputfile.Data());
105 contname=Form("coutputv2%s",suffix.Data());
106 AliAnalysisDataContainer *coutputv2 = mgr->CreateContainer(contname.Data(),TList::Class(),AliAnalysisManager::kOutputContainer,outputfile.Data());
108 contname=Form("cutobj%s",suffix.Data());
109 AliAnalysisDataContainer *cutobj = mgr->CreateContainer(contname.Data(),AliRDHFCuts::Class(),AliAnalysisManager::kOutputContainer,outputfile.Data());
111 mgr->ConnectInput(v2Task,0,mgr->GetCommonInputContainer());
113 mgr->ConnectOutput(v2Task,1,coutputstat);
115 mgr->ConnectOutput(v2Task,2,coutputv2);
117 mgr->ConnectOutput(v2Task,3,cutobj);
120 contname=Form("coutputVZEROpar%s",suffix.Data());
121 AliAnalysisDataContainer *coutputpar = mgr->CreateContainer(contname.Data(),TList::Class(),AliAnalysisManager::kOutputContainer,outputfile.Data());
122 mgr->ConnectOutput(v2Task,4,coutputpar);