]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGHF/vertexingHF/macros/AddTaskLc2V0bachelor.C
Add possiblity to use track rotation for background subtraction (A.De Caro)
[u/mrichter/AliRoot.git] / PWGHF / vertexingHF / macros / AddTaskLc2V0bachelor.C
CommitLineData
992ba7d8 1AliAnalysisTaskSELc2V0bachelor *AddTaskLc2V0bachelor(TString finname="Lc2V0bachelorCuts.root",
0dbd1d4f 2 Bool_t theMCon=kFALSE,
a578b2da 3 Bool_t onTheFly=kFALSE,
43c7bace 4 Bool_t writeVariableTree=kTRUE,
5 Int_t nTour=0,
516f546e 6 Bool_t additionalChecks=kFALSE,
7 Bool_t trackRotation=kFALSE)
992ba7d8 8
9{
10
11 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
12 if (!mgr) {
13 ::Error("AddTaskLc2V0bachelor", "No analysis manager to connect to.");
14 return NULL;
15 }
16
17 // cuts are stored in a TFile generated by makeTFile4CutsLc2V0bachelor.C in ./macros/
18 // set there the cuts!!!!!
19
20 Bool_t stdcuts=kFALSE;
21 TFile* filecuts;
22 if( finname.EqualTo("") ) {
23 stdcuts=kTRUE;
24 } else {
25 filecuts=TFile::Open(finname.Data());
26 if(!filecuts ||(filecuts&& !filecuts->IsOpen())){
27 AliFatal("Input file not found : check your cut object");
28 }
29 }
30
43c7bace 31 cout << " Is it std on not std cut? " << stdcuts << endl;
992ba7d8 32 AliRDHFCutsLctoV0* RDHFCutsLctoV0anal = new AliRDHFCutsLctoV0();
33 if (stdcuts) RDHFCutsLctoV0anal->SetStandardCutsPP2010();
34 else RDHFCutsLctoV0anal = (AliRDHFCutsLctoV0*)filecuts->Get("LctoV0AnalysisCuts");
35 RDHFCutsLctoV0anal->SetName("LctoV0AnalysisCuts");
36 RDHFCutsLctoV0anal->SetMinPtCandidate(-1.);
37 RDHFCutsLctoV0anal->SetMaxPtCandidate(10000.);
38
39
40 // mm let's see if everything is ok
43c7bace 41 if (!RDHFCutsLctoV0anal) {
992ba7d8 42 cout << "Specific AliRDHFCutsLctoV0 not found\n";
43 return;
44 }
45
46
47 //CREATE THE TASK
48
49 printf("CREATE TASK\n");
516f546e 50 AliAnalysisTaskSELc2V0bachelor *task = new AliAnalysisTaskSELc2V0bachelor("AliAnalysisTaskSELc2V0bachelor",RDHFCutsLctoV0anal,onTheFly,writeVariableTree,additionalChecks,trackRotation);
43c7bace 51 task->SetAdditionalChecks(additionalChecks);
992ba7d8 52 task->SetMC(theMCon);
43c7bace 53 task->SetK0SAnalysis(kTRUE);
992ba7d8 54 task->SetDebugLevel(0);
55 mgr->AddTask(task);
56
57 // Create and connect containers for input/output
58 TString outputfile = AliAnalysisManager::GetCommonFileName();
43c7bace 59 outputfile += ":PWG3_D2H_Lc2pK0S_";
60 outputfile += nTour;
992ba7d8 61
62 mgr->ConnectInput(task,0,mgr->GetCommonInputContainer());
63
64 // ----- output data -----
43c7bace 65 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(Form("chist%1d",nTour),TList::Class(),AliAnalysisManager::kOutputContainer,outputfile.Data()); // general histos
992ba7d8 66 mgr->ConnectOutput(task,1,coutput1);
43c7bace 67 AliAnalysisDataContainer *coutputLc2 = mgr->CreateContainer(Form("Lc2pK0Scounter%1d",nTour),AliNormalizationCounter::Class(),AliAnalysisManager::kOutputContainer, outputfile.Data()); //counter
68 mgr->ConnectOutput(task,2,coutputLc2);
69 AliAnalysisDataContainer *coutputLc3 = mgr->CreateContainer(Form("Lc2pK0SCuts%1d",nTour),AliRDHFCutsLctoV0::Class(),AliAnalysisManager::kOutputContainer,outputfile.Data()); // cuts
70 mgr->ConnectOutput(task,3,coutputLc3);
71 if (!writeVariableTree) {
72 AliAnalysisDataContainer *coutputLc4 = mgr->CreateContainer(Form("Lc2pK0SAll%1d",nTour),TList::Class(),AliAnalysisManager::kOutputContainer,outputfile.Data()); // production histos
73 mgr->ConnectOutput(task,4,coutputLc4);
74 AliAnalysisDataContainer *coutputLc5 = mgr->CreateContainer(Form("Lc2pK0SPIDBach%1d",nTour),TList::Class(),AliAnalysisManager::kOutputContainer, outputfile.Data()); // analysis histos
75 mgr->ConnectOutput(task,5,coutputLc5);
516f546e 76
77 if (trackRotation) {
78 AliAnalysisDataContainer *coutputLc6 = mgr->CreateContainer(Form("Lc2pK0SPIDBachTR%1d",nTour),TList::Class(),AliAnalysisManager::kOutputContainer, outputfile.Data()); // analysis histos
79 mgr->ConnectOutput(task,6,coutputLc6);
80 }
81
43c7bace 82 } else {
83 AliAnalysisDataContainer *coutputLc4 = mgr->CreateContainer(Form("Lc2pK0Svariables%1d",nTour),TTree::Class(),AliAnalysisManager::kOutputContainer,outputfile.Data()); // variables tree
84 mgr->ConnectOutput(task,4,coutputLc4);
a578b2da 85 }
992ba7d8 86
87 return task;
88
89}