]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGHF/vertexingHF/macros/AddTaskLambdac.C
update (Rossella)
[u/mrichter/AliRoot.git] / PWGHF / vertexingHF / macros / AddTaskLambdac.C
1 AliAnalysisTaskSE *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;
14   if( finname.EqualTo("") ) {
15     stdcuts=kTRUE; 
16   } else {
17       filecuts=TFile::Open(finname.Data());
18       if(!filecuts ||(filecuts&& !filecuts->IsOpen())){
19         AliFatal("Input file not found : check your cut object");
20       }
21   }
22   AliRDHFCutsLctopKpi* prodcuts=new AliRDHFCutsLctopKpi();
23   if(stdcuts) prodcuts->SetStandardCutsPP2010();
24   else   prodcuts = (AliRDHFCutsLctopKpi*)filecuts->Get("LctopKpiProdCuts");
25   prodcuts->SetName("LctopKpiProdCuts");
26   prodcuts->SetMinPtCandidate(-1.);
27   prodcuts->SetMaxPtCandidate(10000.);
28
29   AliRDHFCutsLctopKpi *analysiscuts = new AliRDHFCutsLctopKpi();
30   if(stdcuts) analysiscuts->SetStandardCutsPP2010();
31   else analysiscuts = (AliRDHFCutsLctopKpi*)filecuts->Get("LctopKpiAnalysisCuts");
32   analysiscuts->SetName("LctopKpiAnalysisCuts");
33   analysiscuts->SetMinPtCandidate(-1.);
34   analysiscuts->SetMaxPtCandidate(10000.);
35
36   // Aanalysis task                                                                                                                     
37   AliAnalysisTaskSELambdac *lambdacTask = new AliAnalysisTaskSELambdac("LambdacAnalysis",storeNtuple,analysiscuts,prodcuts);
38   lambdacTask->SetReadMC(readMC);
39   if(MCPid) lambdacTask->SetMCPid();
40   if(resPid) lambdacTask->SetResonantPid();
41   if(realPid) lambdacTask->SetRealPid();
42   lambdacTask->SetFillVarHists(fillVarHists);
43   lambdacTask->SetPriorsHists(priorsHists);
44   lambdacTask->SetMultiplicityHists(multiplicityHists);
45
46   lambdacTask->SetDebugLevel(0);
47   if(useKF) {
48     lambdacTask->SetUseKF();
49     Float_t cuts[10]={0.1,0.1,1.5,0.5,0.1,1.5,0.5,0.1,1.5,0.5};
50     lambdacTask->SetCutsKF(cuts);
51   }
52   mgr->AddTask(lambdacTask);
53
54   //
55   // Create containers for input/output
56   TString outputfile = AliAnalysisManager::GetCommonFileName();
57   outputfile += ":PWG3_D2H_InvMassLambdac";
58
59   TString finDirname="First_PbPb";
60   TString inname = "cinputLc";
61   TString outname = "coutputLc";
62   TString cutsname = "coutputLcCuts";
63   TString normname = "coutputLcNorm";
64   TString ntuplename = "coutputLc2";
65   TString nev2 = "coutputNev";
66   TString outname2 = "coutputLambdacMC";
67   TString aPrioriname = "coutputAPriori";
68   TString multiplicityname = "coutputMultiplicity";
69   inname += finDirname.Data();
70   outname += finDirname.Data();
71   cutsname += finDirname.Data();
72   normname += finDirname.Data();
73   ntuplename += finDirname.Data();
74   nev2 += finDirname.Data();
75   outname2 += finDirname.Data();
76   aPrioriname += finDirname.Data();
77   multiplicityname += finDirname.Data();
78
79
80   TString centr=Form("%.0f%.0f",analysiscuts->GetMinCentrality(),analysiscuts->GetMaxCentrality());
81   inname += centr;
82   outname += centr;
83   cutsname += centr;
84   normname += centr;
85   ntuplename += centr;
86   nev2 += centr;
87   outname2 += centr;
88   aPrioriname += centr;
89   multiplicityname += centr;
90
91
92   AliAnalysisDataContainer *cinputLambdac = mgr->CreateContainer(inname,TChain::Class(),
93                                                                  AliAnalysisManager::kInputContainer);
94   mgr->ConnectInput(lambdacTask,0,mgr->GetCommonInputContainer());
95
96   AliAnalysisDataContainer *coutputLambdacCuts = mgr->CreateContainer(cutsname,TList::Class(),
97                                                                       AliAnalysisManager::kOutputContainer,outputfile.Data());
98   mgr->ConnectOutput(lambdacTask,2,coutputLambdacCuts);
99
100   AliAnalysisDataContainer *coutputLambdac = mgr->CreateContainer(outname,TList::Class(),
101                                                                   AliAnalysisManager::kOutputContainer,outputfile.Data());
102   mgr->ConnectOutput(lambdacTask,1,coutputLambdac);
103
104   AliAnalysisDataContainer *coutputLambdacMC = mgr->CreateContainer(outname2,TList::Class(),
105                                                                     AliAnalysisManager::kOutputContainer,outputfile.Data());
106   mgr->ConnectOutput(lambdacTask,3,coutputLambdacMC);
107
108   AliAnalysisDataContainer *coutputLambdacNev = mgr->CreateContainer(nev2,TH1F::Class(),
109                                                                      AliAnalysisManager::kOutputContainer,outputfile.Data());
110   mgr->ConnectOutput(lambdacTask,4,coutputLambdacNev);
111
112   AliAnalysisDataContainer *coutputAPriori = mgr->CreateContainer(aPrioriname,TList::Class(),
113                                                                   AliAnalysisManager::kOutputContainer,outputfile.Data());
114   mgr->ConnectOutput(lambdacTask,5,coutputAPriori);
115   AliAnalysisDataContainer *coutputMultiplicity = mgr->CreateContainer(multiplicityname,TList::Class(),
116                                                                        AliAnalysisManager::kOutputContainer,outputfile.Data());
117   mgr->ConnectOutput(lambdacTask,6,coutputMultiplicity);
118
119   AliAnalysisDataContainer *coutputLambdacNorm = mgr->CreateContainer(normname,AliNormalizationCounter::Class(),AliAnalysisManager::kOutputContainer,outputfile.Data());
120
121  mgr->ConnectOutput(lambdacTask,7,coutputLambdacNorm);
122
123   if (storeNtuple) {
124     AliAnalysisDataContainer *coutputLambdac2 = mgr->CreateContainer(ntuplename,TNtuple::Class(),
125                                                                      AliAnalysisManager::kOutputContainer,"InvMassLambdac_nt1.root");
126     coutputLambdac2->SetSpecialOutput();
127     mgr->ConnectOutput(lambdacTask,7,coutputLambdac2);
128   }
129
130
131   return lambdacTask;
132 }