]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGHF/vertexingHF/macros/AddTaskDs.C
Transition PWG3 --> PWGHF
[u/mrichter/AliRoot.git] / PWGHF / vertexingHF / macros / AddTaskDs.C
1 AliAnalysisTaskSEDs *AddTaskDs(Int_t storeNtuple=0,Bool_t readMC=kFALSE,
2                                      TString filename="DstoKKpiCuts.root")
3 {
4   //                                                                                                                                    
5   // Test macro for the AliAnalysisTaskSE for Ds candidates 
6
7   //Invariant mass histogram and                                                 
8   // association with MC truth (using MC info in AOD)                                                                                   
9   // Origin: R. Bala, bala@to.infn.it         
10   // Modified for Ds meson: G.M. Innocenti innocent@to.infn.it
11   // Get the pointer to the existing analysis manager via the static access method.                                                     
12   //==============================================================================                                                      
13
14   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
15   if (!mgr) {
16     ::Error("AddTaskDs", "No analysis manager to connect to.");
17   }
18
19
20   TFile* filecuts=new TFile(filename.Data());
21   if(!filecuts->IsOpen()){
22     cout<<"Error: Input file not found!"<<endl;
23     return 0;
24   }
25   
26   
27   //Analysis Task
28
29   
30   AliRDHFCutsDstoKKpi* analysiscuts=new AliRDHFCutsDstoKKpi();
31   analysiscuts = (AliRDHFCutsDstoKKpi*)filecuts->Get("AnalysisCuts");
32
33   AliRDHFCutsDstoKKpi* prodcuts=new AliRDHFCutsDstoKKpi();
34   prodcuts = (AliRDHFCutsDstoKKpi*)filecuts->Get("ProdCuts");
35   
36   //AliRDHFCutsDstoKKpi *prodcuts = (AliRDHFCutsDstoKKpi*)fileCuts->Get("ProdCuts");
37   //AliRDHFCutsDstoKKpi *analysiscuts = (AliRDHFCutsDstoKKpi*)fileCuts->Get("AnalysisCuts");
38
39   AliAnalysisTaskSEDs *dsTask = new AliAnalysisTaskSEDs("DsAnalysis",prodcuts,analysiscuts,storeNtuple);
40   dsTask->SetReadMC(readMC);
41   //dsTask->SetDoLikeSign(kTRUE);
42   //  dsTask->SetUseTPCpid(kTRUE);
43   //dsTask->SetUseTOFpid(kTRUE);
44   dsTask->SetDebugLevel(10);
45   //dsTask->SetMassLimits(0.2);
46   mgr->AddTask(dsTask);
47   
48   // Create containers for input/output 
49   
50   AliAnalysisDataContainer *cinputDs = mgr->CreateContainer("cinputDs",TChain::Class(),
51                                                                AliAnalysisManager::kInputContainer);
52   TString outputfile = AliAnalysisManager::GetCommonFileName();
53   outputfile += ":PWG3_D2H_InvMassDs";
54   
55   AliAnalysisDataContainer *coutputDsCuts = mgr->CreateContainer("coutputDsCuts",TList::Class(),
56                                                                     AliAnalysisManager::kOutputContainer,
57                                                                     outputfile.Data());
58   
59   AliAnalysisDataContainer *coutputDs = mgr->CreateContainer("coutputDs",TList::Class(),
60                                                                 AliAnalysisManager::kOutputContainer,
61                                                                 outputfile.Data());
62   AliAnalysisDataContainer *coutputDsNorm = mgr->CreateContainer("coutputDsNorm",AliNormalizationCounter::Class(),
63                                                                 AliAnalysisManager::kOutputContainer,
64                                                                 outputfile.Data());
65   
66    if(storeNtuple){
67     AliAnalysisDataContainer *coutputDs2 = mgr->CreateContainer("coutputDs2",TNtuple::Class(),
68                                                                    AliAnalysisManager::kOutputContainer,
69                                                                    "InvMassDs_nt1.root");
70     
71     coutputDs2->SetSpecialOutput();
72   }
73   
74   mgr->ConnectInput(dsTask,0,mgr->GetCommonInputContainer());
75   
76   mgr->ConnectOutput(dsTask,1,coutputDs);
77   
78   mgr->ConnectOutput(dsTask,2,coutputDsCuts);
79
80   mgr->ConnectOutput(dsTask,3,coutputDsNorm);  
81   
82   if(storeNtuple){
83     mgr->ConnectOutput(dsTask,4,coutputDs2);
84   }
85   
86   return dsTask;
87 }