]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGHF/vertexingHF/macros/AddTaskLambdac.C
Geometry updated in OCDB - Raffaele
[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,
60eac73d 2 Bool_t fillVarHists=kFALSE, Bool_t priorsHists=kFALSE, Bool_t multiplicityHists=kFALSE)
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();
23 if(stdcuts) prodcuts->SetStandardCutsPP2010();
24 else prodcuts = (AliRDHFCutsLctopKpi*)filecuts->Get("LctopKpiProdCuts");
25 prodcuts->SetName("LctopKpiProdCuts");
47aa3d55 26 prodcuts->SetMinPtCandidate(-1.);
27 prodcuts->SetMaxPtCandidate(10000.);
95e5b6b5 28
95e5b6b5 29 AliRDHFCutsLctopKpi *analysiscuts = new AliRDHFCutsLctopKpi();
7ad4b782 30 if(stdcuts) analysiscuts->SetStandardCutsPP2010();
4fc75076 31 else analysiscuts = (AliRDHFCutsLctopKpi*)filecuts->Get("LctopKpiAnalysisCuts");
32 analysiscuts->SetName("LctopKpiAnalysisCuts");
47aa3d55 33 analysiscuts->SetMinPtCandidate(-1.);
34 analysiscuts->SetMaxPtCandidate(10000.);
7ad4b782 35
95e5b6b5 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();
60eac73d 42 lambdacTask->SetFillVarHists(fillVarHists);
43 lambdacTask->SetPriorsHists(priorsHists);
44 lambdacTask->SetMultiplicityHists(multiplicityHists);
45
95e5b6b5 46 lambdacTask->SetDebugLevel(0);
47 if(useKF) {
48 lambdacTask->SetUseKF();
60eac73d 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 }
95e5b6b5 52 mgr->AddTask(lambdacTask);
53
60eac73d 54 //
55 // Create containers for input/output
95e5b6b5 56 TString outputfile = AliAnalysisManager::GetCommonFileName();
57 outputfile += ":PWG3_D2H_InvMassLambdac";
6ad0ece9 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(),
60eac73d 93 AliAnalysisManager::kInputContainer);
94 mgr->ConnectInput(lambdacTask,0,mgr->GetCommonInputContainer());
95
6ad0ece9 96 AliAnalysisDataContainer *coutputLambdacCuts = mgr->CreateContainer(cutsname,TList::Class(),
60eac73d 97 AliAnalysisManager::kOutputContainer,outputfile.Data());
98 mgr->ConnectOutput(lambdacTask,2,coutputLambdacCuts);
99
6ad0ece9 100 AliAnalysisDataContainer *coutputLambdac = mgr->CreateContainer(outname,TList::Class(),
60eac73d 101 AliAnalysisManager::kOutputContainer,outputfile.Data());
102 mgr->ConnectOutput(lambdacTask,1,coutputLambdac);
95e5b6b5 103
6ad0ece9 104 AliAnalysisDataContainer *coutputLambdacMC = mgr->CreateContainer(outname2,TList::Class(),
60eac73d 105 AliAnalysisManager::kOutputContainer,outputfile.Data());
106 mgr->ConnectOutput(lambdacTask,3,coutputLambdacMC);
107
6ad0ece9 108 AliAnalysisDataContainer *coutputLambdacNev = mgr->CreateContainer(nev2,TH1F::Class(),
60eac73d 109 AliAnalysisManager::kOutputContainer,outputfile.Data());
110 mgr->ConnectOutput(lambdacTask,4,coutputLambdacNev);
111
6ad0ece9 112 AliAnalysisDataContainer *coutputAPriori = mgr->CreateContainer(aPrioriname,TList::Class(),
60eac73d 113 AliAnalysisManager::kOutputContainer,outputfile.Data());
114 mgr->ConnectOutput(lambdacTask,5,coutputAPriori);
6ad0ece9 115 AliAnalysisDataContainer *coutputMultiplicity = mgr->CreateContainer(multiplicityname,TList::Class(),
60eac73d 116 AliAnalysisManager::kOutputContainer,outputfile.Data());
117 mgr->ConnectOutput(lambdacTask,6,coutputMultiplicity);
118
6ad0ece9 119 AliAnalysisDataContainer *coutputLambdacNorm = mgr->CreateContainer(normname,AliNormalizationCounter::Class(),AliAnalysisManager::kOutputContainer,outputfile.Data());
120
121 mgr->ConnectOutput(lambdacTask,7,coutputLambdacNorm);
122
60eac73d 123 if (storeNtuple) {
6ad0ece9 124 AliAnalysisDataContainer *coutputLambdac2 = mgr->CreateContainer(ntuplename,TNtuple::Class(),
60eac73d 125 AliAnalysisManager::kOutputContainer,"InvMassLambdac_nt1.root");
95e5b6b5 126 coutputLambdac2->SetSpecialOutput();
60eac73d 127 mgr->ConnectOutput(lambdacTask,7,coutputLambdac2);
95e5b6b5 128 }
129
95e5b6b5 130
95e5b6b5 131 return lambdacTask;
132}