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