1 AliAnalysisTaskSEHFv2 *AddTaskHFv2(TString filename="DplustoKpipiCuts.root", AliAnalysisTaskSEHFv2::DecChannel decCh=AliAnalysisTaskSEHFv2::kD0toKpi,Bool_t readMC=kFALSE,TString name="",Int_t flagep=0 /*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 //============================================================================
14 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
16 ::Error("AddTaskHFv2", "No analysis manager to connect to.");
20 Bool_t stdcuts=kFALSE;
22 if( filename.EqualTo("") ) {
25 filecuts=TFile::Open(filename.Data());
26 if(!filecuts ||(filecuts&& !filecuts->IsOpen())){
27 AliFatal("Input file not found : check your cut object");
31 AliRDHFCuts *analysiscuts=0x0;
34 TString cutsobjname="loosercuts";
38 cutsobjname="AnalysisCuts";
40 analysiscuts = new AliRDHFCutsDplustoKpipi();
41 analysiscuts->SetStandardCutsPbPb2010();
43 else analysiscuts = (AliRDHFCutsDplustoKpipi*)filecuts->Get(cutsobjname);
47 cutsobjname="D0toKpiCuts";
49 analysiscuts = new AliRDHFCutsD0toKpi();
50 analysiscuts->SetStandardCutsPbPb2010();
52 else analysiscuts = (AliRDHFCutsD0toKpi*)filecuts->Get(cutsobjname);
56 cutsobjname="DStartoKpipiCuts";
58 analysiscuts = new AliRDHFCutsDStartoKpipi();
59 analysiscuts->SetStandardCutsPbPb2010();
61 else analysiscuts = (AliRDHFCutsDStartoKpipi*)filecuts->Get(cutsobjname);
65 cout<<"Not available"<<endl;
70 cout<<"Specific AliRDHFCuts not found"<<endl;
75 const Int_t nphibins=4;
76 const Int_t nphibinlimits=nphibins+1;
77 Float_t pi=TMath::Pi();
78 Float_t philimits[nphibinlimits]={0., pi/4.,pi/2., 3./4.*pi, pi};
81 AliAnalysisTaskSEHFv2 *v2Task = new AliAnalysisTaskSEHFv2("HFv2Analysis",analysiscuts,decCh,nphibinlimits,philimits);
82 v2Task->SetReadMC(readMC);
84 v2Task->SetEtaGapFeatureForEventplaneFromTracks(kTRUE);
86 v2Task->SetDebugLevel(0);
90 TFile *fpar = TFile::Open("VZEROParHist.root");
92 for(Int_t i=0;i<6;i++){
93 TString hhname;hhname.Form("parhist%d_%d",(i+2)*10,(i+3)*10);
94 hh[i]=(TH2D*)fpar->Get(hhname.Data());
96 v2Task->SetVZEROParHist(hh);
100 // Create containers for input/output
102 TString contname=Form("cinputv2%s",suffix.Data());
103 AliAnalysisDataContainer *cinputv2 = mgr->CreateContainer(contname.Data(),TChain::Class(),AliAnalysisManager::kInputContainer);
105 TString outputfile = AliAnalysisManager::GetCommonFileName();
106 TString outputhistos = outputfile += ":PWG3_D2H_HFv2";
108 contname=Form("hEventsInfo%s",suffix.Data());
109 AliAnalysisDataContainer *coutputstat = mgr->CreateContainer(contname.Data(),TH1F::Class(),AliAnalysisManager::kOutputContainer,outputfile.Data());
111 contname=Form("coutputv2%s",suffix.Data());
112 AliAnalysisDataContainer *coutputv2 = mgr->CreateContainer(contname.Data(),TList::Class(),AliAnalysisManager::kOutputContainer,outputfile.Data());
114 contname=Form("cutobj%s",suffix.Data());
115 AliAnalysisDataContainer *cutobj = mgr->CreateContainer(contname.Data(),AliRDHFCuts::Class(),AliAnalysisManager::kOutputContainer,outputfile.Data());
117 mgr->ConnectInput(v2Task,0,mgr->GetCommonInputContainer());
119 mgr->ConnectOutput(v2Task,1,coutputstat);
121 mgr->ConnectOutput(v2Task,2,coutputv2);
123 mgr->ConnectOutput(v2Task,3,cutobj);
126 contname=Form("coutputVZEROpar%s",suffix.Data());
127 AliAnalysisDataContainer *coutputpar = mgr->CreateContainer(contname.Data(),TList::Class(),AliAnalysisManager::kOutputContainer,outputfile.Data());
128 mgr->ConnectOutput(v2Task,4,coutputpar);