1 AliAnalysisTaskSEHFv2 *AddTaskHFv2(TString filename="DplustoKpipiCutsPbPb.root",AliAnalysisTaskSEHFv2::DecChannel decCh=AliAnalysisTaskSEHFv2::kDplustoKpipi,TString cutsobjname="AnalysisCuts", 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 //============================================================================
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;
29 if(decCh==AliAnalysisTaskSEHFv2::kDplustoKpipi){
30 analysiscuts = (AliRDHFCutsDplustoKpipi*)filecuts->Get(cutsobjname);
31 }else if(decCh==AliAnalysisTaskSEHFv2::kD0toKpi){
32 analysiscuts = (AliRDHFCutsD0toKpi*)filecuts->Get(cutsobjname);
33 }else if(decCh==AliAnalysisTaskSEHFv2::kDstartoKpipi){
34 analysiscuts = (AliRDHFCutsDStartoKpipi*)filecuts->Get(cutsobjname);
38 AliFatal("Specific AliRDHFCuts not found");
41 analysiscuts->SetUseCentrality(AliRDHFCuts::kCentV0M);
42 analysiscuts->SetRemoveDaughtersFromPrim(kFALSE);
43 analysiscuts->SetTriggerClass("");
44 analysiscuts->ResetMaskAndEnableMBTrigger();
45 analysiscuts->EnableCentralTrigger();
46 analysiscuts->EnableSemiCentralTrigger();
47 analysiscuts->SetMinCentrality(30.);
48 analysiscuts->SetMaxCentrality(80.);
49 ((AliRDHFCutsDplustoKpipi*)analysiscuts)->SetMinPtCandidate(3.);
50 ((AliRDHFCutsDplustoKpipi*)analysiscuts)->SetUseImpParProdCorrCut(kFALSE);
51 AliAODPidHF *pid = analysiscuts->GetPidHF();
52 pid->SetOldPid(kFALSE);
53 analysiscuts->SetPidHF(pid);
55 AliAnalysisTaskSEHFv2 *v2Task = new AliAnalysisTaskSEHFv2("HFv2Analysis",analysiscuts,decCh);
56 v2Task->SetReadMC(kFALSE);
57 v2Task->SetEtaGapFeatureForEventplaneFromTracks(kFALSE);
58 v2Task->SetNMassBins(104);
59 v2Task->SetMassLimits(0.2,411);
60 v2Task->SetDebugLevel(0);
61 v2Task->SetV0EventPlaneOrder(2);
63 v2Task->SetTPCEP();//SetVZEROEPOnly();
69 // Create containers for input/output
71 TString contname=Form("cinputv2%s",suffix.Data());
72 AliAnalysisDataContainer *cinputv2 = mgr->CreateContainer(contname.Data(),TChain::Class(),AliAnalysisManager::kInputContainer);
74 TString outputfile = AliAnalysisManager::GetCommonFileName();
75 TString outputhistos = outputfile += ":PWG3_D2H_HFv2";
77 contname=Form("hEventsInfo%s",suffix.Data());
78 AliAnalysisDataContainer *coutputstat = mgr->CreateContainer(contname.Data(),TH1F::Class(),AliAnalysisManager::kOutputContainer,outputfile.Data());
80 contname=Form("coutputv2%s",suffix.Data());
81 AliAnalysisDataContainer *coutputv2 = mgr->CreateContainer(contname.Data(),TList::Class(),AliAnalysisManager::kOutputContainer,outputfile.Data());
83 contname=Form("cutobj%s",suffix.Data());
84 AliAnalysisDataContainer *cutobj = mgr->CreateContainer(contname.Data(),AliRDHFCuts::Class(),AliAnalysisManager::kOutputContainer,outputfile.Data());
86 mgr->ConnectInput(v2Task,0,mgr->GetCommonInputContainer());
88 mgr->ConnectOutput(v2Task,1,coutputstat);
90 mgr->ConnectOutput(v2Task,2,coutputv2);
92 mgr->ConnectOutput(v2Task,3,cutobj);