]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG3/vertexingHF/macros/AddTaskLambdac.C
f60b6b65ff3eb1cd3738dd23febb53ea34ed554e
[u/mrichter/AliRoot.git] / PWG3 / vertexingHF / macros / AddTaskLambdac.C
1 AliAnalysisTaskSELambdac *AddTaskLambdac(const char *name,Bool_t storeNtuple,Bool_t readMC,Bool_t MCPid,Bool_t realPid,Bool_t resPid,Bool_t useKF)
2 {
3   //==============================================================================                                                      
4   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
5   if (!mgr) {
6     ::Error("AddTaskLambdac", "No analysis manager to connect to.");
7     return NULL;
8   }
9
10
11   Bool_t stdcuts=kFALSE;
12   TFile* filecuts=new TFile(finname.Data());
13   if(!filecuts->IsOpen()){
14    cout<<"Input file not found: using std cut object"<<endl;
15    stdcuts=kTRUE;
16   }
17   AliRDHFCutsLctopKpi* prodcuts=new AliRDHFCutsLctopKpi();
18   if(stdcuts) prodcuts->SetStandardCutsPP2010();
19   else   prodcuts = (AliRDHFCutsLctopKpi*)filecuts->Get("LctopKpiProdCuts");
20   prodcuts->SetName("LctopKpiProdCuts");
21
22   AliRDHFCutsLctopKpi *analysiscuts = new AliRDHFCutsLctopKpi();
23   analysiscuts = (AliRDHFCutsLctopKpi*)filecuts->Get("LctopKpiAnalysisCuts");
24   if(stdcuts) analysiscuts->SetStandardCutsPP2010();
25   else analysiscuts->SetName("LctopKpiAnalysisCuts");
26
27   // Aanalysis task                                                                                                                     
28   AliAnalysisTaskSELambdac *lambdacTask = new AliAnalysisTaskSELambdac("LambdacAnalysis",storeNtuple,analysiscuts,prodcuts);
29   lambdacTask->SetReadMC(readMC);
30   if(MCPid) lambdacTask->SetMCPid();
31   if(resPid) lambdacTask->SetResonantPid();
32   if(realPid) lambdacTask->SetRealPid();
33   lambdacTask->SetDebugLevel(0);
34   if(useKF) {
35     lambdacTask->SetUseKF();
36      Float_t cuts[10]={0.1,0.1,1.5,0.5,0.1,1.5,0.5,0.1,1.5,0.5};
37       lambdacTask->SetCutsKF(cuts);
38        }
39   mgr->AddTask(lambdacTask);
40
41   //                                                                                                                                    
42   // Create containers for input/output                                                                                                 
43   TString outputfile = AliAnalysisManager::GetCommonFileName();
44   outputfile += ":PWG3_D2H_InvMassLambdac";
45   AliAnalysisDataContainer *cinputLambdac = mgr->CreateContainer("cinputLambdac",TChain::Class(),
46                                                           AliAnalysisManager::kInputContainer);
47   AliAnalysisDataContainer *coutputLambdacCuts = mgr->CreateContainer("coutputLambdacCuts",TList::Class(),
48                                                            AliAnalysisManager::kOutputContainer,
49                                                                 outputfile.Data());
50   AliAnalysisDataContainer *coutputLambdac = mgr->CreateContainer("coutputLambdac",TList::Class(),
51                                                            AliAnalysisManager::kOutputContainer,
52                                                                 outputfile.Data());
53   if(storeNtuple){
54     AliAnalysisDataContainer *coutputLambdac2 = mgr->CreateContainer("coutputLambdac2",TNtuple::Class(),
55                                                            AliAnalysisManager::kOutputContainer,
56                                                                  "InvMassLambdac_nt1.root");
57
58     coutputLambdac2->SetSpecialOutput();
59   }
60
61   mgr->ConnectInput(lambdacTask,0,mgr->GetCommonInputContainer());
62
63   mgr->ConnectOutput(lambdacTask,1,coutputLambdac);
64   mgr->ConnectOutput(lambdacTask,2,coutputLambdacCuts);
65   
66   if(storeNtuple){
67     mgr->ConnectOutput(lambdacTask,3,coutputLambdac2);
68   }
69   return lambdacTask;
70 }