]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGHF/vertexingHF/macros/AddTaskLambdac.C
Asymmetric nSigma cuts for TOF
[u/mrichter/AliRoot.git] / PWGHF / vertexingHF / macros / AddTaskLambdac.C
CommitLineData
6ad0ece9 1AliAnalysisTaskSE *AddTaskLambdac(TString finname,Bool_t storeNtuple,Bool_t readMC,Bool_t MCPid,Bool_t realPid,Bool_t resPid,Bool_t useKF,
7d020878 2 Bool_t fillVarHists=kFALSE, Bool_t priorsHists=kFALSE, Bool_t multiplicityHists=kFALSE, Int_t syst=0, TString postname="")
95e5b6b5 3{
4 //==============================================================================
5 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
6 if (!mgr) {
7 ::Error("AddTaskLambdac", "No analysis manager to connect to.");
8 return NULL;
9 }
10
95e5b6b5 11
7ad4b782 12 Bool_t stdcuts=kFALSE;
0c22e2ac 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 }
95e5b6b5 21 }
7ad4b782 22 AliRDHFCutsLctopKpi* prodcuts=new AliRDHFCutsLctopKpi();
7d020878 23 // syst = 0 : pp, syst = 1: PbPb, syst = 2 : pPb
24 if(stdcuts) {
25 if(syst==0) prodcuts->SetStandardCutsPP2010();
26 if(syst==1) prodcuts->SetStandardCutsPbPb2011();
27 if(syst==2) prodcuts->SetStandardCutsPPb2013();
28 }
7ad4b782 29 else prodcuts = (AliRDHFCutsLctopKpi*)filecuts->Get("LctopKpiProdCuts");
30 prodcuts->SetName("LctopKpiProdCuts");
47aa3d55 31 prodcuts->SetMinPtCandidate(-1.);
32 prodcuts->SetMaxPtCandidate(10000.);
95e5b6b5 33
95e5b6b5 34 AliRDHFCutsLctopKpi *analysiscuts = new AliRDHFCutsLctopKpi();
7d020878 35 if(stdcuts) {
36 if(syst==0) analysiscuts->SetStandardCutsPP2010();
37 if(syst==1) analysiscuts->SetStandardCutsPbPb2011();
38 if(syst==2) analysiscuts->SetStandardCutsPPb2013();
39 }
4fc75076 40 else analysiscuts = (AliRDHFCutsLctopKpi*)filecuts->Get("LctopKpiAnalysisCuts");
41 analysiscuts->SetName("LctopKpiAnalysisCuts");
47aa3d55 42 analysiscuts->SetMinPtCandidate(-1.);
43 analysiscuts->SetMaxPtCandidate(10000.);
7ad4b782 44
95e5b6b5 45 // Aanalysis task
46 AliAnalysisTaskSELambdac *lambdacTask = new AliAnalysisTaskSELambdac("LambdacAnalysis",storeNtuple,analysiscuts,prodcuts);
47 lambdacTask->SetReadMC(readMC);
48 if(MCPid) lambdacTask->SetMCPid();
49 if(resPid) lambdacTask->SetResonantPid();
50 if(realPid) lambdacTask->SetRealPid();
60eac73d 51 lambdacTask->SetFillVarHists(fillVarHists);
52 lambdacTask->SetPriorsHists(priorsHists);
53 lambdacTask->SetMultiplicityHists(multiplicityHists);
e49041ef 54 lambdacTask->SetAnalysis(kTRUE);
60eac73d 55
95e5b6b5 56 lambdacTask->SetDebugLevel(0);
57 if(useKF) {
58 lambdacTask->SetUseKF();
60eac73d 59 Float_t cuts[10]={0.1,0.1,1.5,0.5,0.1,1.5,0.5,0.1,1.5,0.5};
60 lambdacTask->SetCutsKF(cuts);
61 }
95e5b6b5 62 mgr->AddTask(lambdacTask);
63
60eac73d 64 //
65 // Create containers for input/output
95e5b6b5 66 TString outputfile = AliAnalysisManager::GetCommonFileName();
67 outputfile += ":PWG3_D2H_InvMassLambdac";
6ad0ece9 68
ca694cd7 69 TString finDirname="pp";
6ad0ece9 70 TString inname = "cinputLc";
71 TString outname = "coutputLc";
72 TString cutsname = "coutputLcCuts";
73 TString normname = "coutputLcNorm";
74 TString ntuplename = "coutputLc2";
75 TString nev2 = "coutputNev";
76 TString outname2 = "coutputLambdacMC";
77 TString aPrioriname = "coutputAPriori";
78 TString multiplicityname = "coutputMultiplicity";
79 inname += finDirname.Data();
80 outname += finDirname.Data();
81 cutsname += finDirname.Data();
82 normname += finDirname.Data();
83 ntuplename += finDirname.Data();
84 nev2 += finDirname.Data();
85 outname2 += finDirname.Data();
86 aPrioriname += finDirname.Data();
87 multiplicityname += finDirname.Data();
88
ca694cd7 89 inname += postname.Data();
90 outname += postname.Data();
91 cutsname += postname.Data();
92 normname += postname.Data();
93 ntuplename += postname.Data();
94 nev2 += postname.Data();
95 outname2 += postname.Data();
96 aPrioriname += postname.Data();
97 multiplicityname += postname.Data();
6ad0ece9 98
99
100 AliAnalysisDataContainer *cinputLambdac = mgr->CreateContainer(inname,TChain::Class(),
60eac73d 101 AliAnalysisManager::kInputContainer);
102 mgr->ConnectInput(lambdacTask,0,mgr->GetCommonInputContainer());
103
6ad0ece9 104 AliAnalysisDataContainer *coutputLambdacCuts = mgr->CreateContainer(cutsname,TList::Class(),
60eac73d 105 AliAnalysisManager::kOutputContainer,outputfile.Data());
106 mgr->ConnectOutput(lambdacTask,2,coutputLambdacCuts);
107
6ad0ece9 108 AliAnalysisDataContainer *coutputLambdac = mgr->CreateContainer(outname,TList::Class(),
60eac73d 109 AliAnalysisManager::kOutputContainer,outputfile.Data());
110 mgr->ConnectOutput(lambdacTask,1,coutputLambdac);
95e5b6b5 111
6ad0ece9 112 AliAnalysisDataContainer *coutputLambdacMC = mgr->CreateContainer(outname2,TList::Class(),
60eac73d 113 AliAnalysisManager::kOutputContainer,outputfile.Data());
114 mgr->ConnectOutput(lambdacTask,3,coutputLambdacMC);
115
6ad0ece9 116 AliAnalysisDataContainer *coutputLambdacNev = mgr->CreateContainer(nev2,TH1F::Class(),
60eac73d 117 AliAnalysisManager::kOutputContainer,outputfile.Data());
118 mgr->ConnectOutput(lambdacTask,4,coutputLambdacNev);
119
6ad0ece9 120 AliAnalysisDataContainer *coutputAPriori = mgr->CreateContainer(aPrioriname,TList::Class(),
60eac73d 121 AliAnalysisManager::kOutputContainer,outputfile.Data());
122 mgr->ConnectOutput(lambdacTask,5,coutputAPriori);
6ad0ece9 123 AliAnalysisDataContainer *coutputMultiplicity = mgr->CreateContainer(multiplicityname,TList::Class(),
60eac73d 124 AliAnalysisManager::kOutputContainer,outputfile.Data());
125 mgr->ConnectOutput(lambdacTask,6,coutputMultiplicity);
126
6ad0ece9 127 AliAnalysisDataContainer *coutputLambdacNorm = mgr->CreateContainer(normname,AliNormalizationCounter::Class(),AliAnalysisManager::kOutputContainer,outputfile.Data());
128
129 mgr->ConnectOutput(lambdacTask,7,coutputLambdacNorm);
130
60eac73d 131 if (storeNtuple) {
6ad0ece9 132 AliAnalysisDataContainer *coutputLambdac2 = mgr->CreateContainer(ntuplename,TNtuple::Class(),
60eac73d 133 AliAnalysisManager::kOutputContainer,"InvMassLambdac_nt1.root");
95e5b6b5 134 coutputLambdac2->SetSpecialOutput();
60eac73d 135 mgr->ConnectOutput(lambdacTask,7,coutputLambdac2);
95e5b6b5 136 }
137
95e5b6b5 138
95e5b6b5 139 return lambdacTask;
140}