]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG3/vertexingHF/macros/AddTaskDplus.C
Speed up
[u/mrichter/AliRoot.git] / PWG3 / vertexingHF / macros / AddTaskDplus.C
1 AliAnalysisTaskSEDplus *AddTaskDplus(Bool_t storeNtuple=kFALSE,
2                                      Bool_t readMC=kFALSE,
3                                      TString filename="DplustoKpipiCuts.root")
4 {
5   //                                                                                                                                    
6   // Test macro for the AliAnalysisTaskSE for D+ candidates 
7
8   //Invariant mass histogram and                                                 
9   // association with MC truth (using MC info in AOD)                                                                                   
10   //  R. Bala, bala@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("AddTaskDplus", "No analysis manager to connect to.");
16   }
17
18   Bool_t stdcuts=kFALSE;
19   TFile* filecuts=new TFile(filename.Data());
20   if(!filecuts->IsOpen()){
21     cout<<"Input file not found: using standard cuts"<<endl;
22     stdcuts=kTRUE;
23   }
24   
25   
26   //Analysis Task
27
28   
29   AliRDHFCutsDplustoKpipi* analysiscuts=new AliRDHFCutsDplustoKpipi();
30   if(stdcuts) analysiscuts->SetStandardCutsPP2010();
31   else analysiscuts = (AliRDHFCutsDplustoKpipi*)filecuts->Get("AnalysisCuts");
32
33   AliRDHFCutsDplustoKpipi* prodcuts=new AliRDHFCutsDplustoKpipi();
34   if(stdcuts) prodcuts->SetStandardCutsPP2010();
35   else prodcuts = (AliRDHFCutsDplustoKpipi*)filecuts->Get("ProdCuts");
36   
37   //AliRDHFCutsDplustoKpipi *prodcuts = (AliRDHFCutsDplustoKpipi*)fileCuts->Get("ProdCuts");
38   //AliRDHFCutsDplustoKpipi *analysiscuts = (AliRDHFCutsDplustoKpipi*)fileCuts->Get("AnalysisCuts");
39
40   
41   AliAnalysisTaskSEDplus *dplusTask = new AliAnalysisTaskSEDplus("DplusAnalysis",analysiscuts,prodcuts,storeNtuple);
42   dplusTask->SetReadMC(readMC);
43   dplusTask->SetDoLikeSign(kTRUE);
44   //  dplusTask->SetUseTPCpid(kTRUE);
45   //dplusTask->SetUseTOFpid(kTRUE);
46   dplusTask->SetDebugLevel(0);
47   dplusTask->SetMassLimits(0.2);
48   mgr->AddTask(dplusTask);
49   
50   // Create containers for input/output 
51   
52   AliAnalysisDataContainer *cinputDplus = mgr->CreateContainer("cinputDplus",TChain::Class(),
53                                                                AliAnalysisManager::kInputContainer);
54   TString outputfile = AliAnalysisManager::GetCommonFileName();
55   outputfile += ":PWG3_D2H_InvMassDplus";
56   
57   AliAnalysisDataContainer *coutputDplusCuts = mgr->CreateContainer("coutputDplusCuts",TList::Class(),
58                                                                     AliAnalysisManager::kOutputContainer,
59                                                                     outputfile.Data());
60   
61   AliAnalysisDataContainer *coutputDplus = mgr->CreateContainer("coutputDplus",TList::Class(),
62                                                                 AliAnalysisManager::kOutputContainer,
63                                                                 outputfile.Data());
64   AliAnalysisDataContainer *coutputDplusNorm = mgr->CreateContainer("coutputDplusNorm",AliNormalizationCounter::Class(),
65                                                                 AliAnalysisManager::kOutputContainer,
66                                                                 outputfile.Data());
67   
68   if(storeNtuple){
69     AliAnalysisDataContainer *coutputDplus2 = mgr->CreateContainer("coutputDplus2",TNtuple::Class(),
70                                                                    AliAnalysisManager::kOutputContainer,
71                                                                    "InvMassDplus_nt1.root");
72     
73     coutputDplus2->SetSpecialOutput();
74   }
75   mgr->ConnectInput(dplusTask,0,mgr->GetCommonInputContainer());
76   
77   mgr->ConnectOutput(dplusTask,1,coutputDplus);
78   
79   mgr->ConnectOutput(dplusTask,2,coutputDplusCuts);
80
81   mgr->ConnectOutput(dplusTask,3,coutputDplusNorm);  
82   if(storeNtuple){
83     mgr->ConnectOutput(dplusTask,4,coutputDplus2);
84   }
85   return dplusTask;
86 }