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