Split: fix refs to AddTaskPhysicsSelection.C
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / PiKaPr / TOF / PbPb276 / task / SteerAnalysisTaskTOFSpectraPbPb.C
1 SteerAnalysisTaskTOFSpectraPbPb(const Char_t *inputfilename, Bool_t mcFlag = kFALSE, Bool_t mcTuneFlag = kFALSE, Bool_t pbpbFlag = kFALSE, Int_t maxFiles = kMaxInt, Int_t maxEv = kMaxInt)
2 {
3
4   /* include path for ACLic */
5   gSystem->AddIncludePath("-I$ALICE_ROOT/include");
6   gSystem->AddIncludePath("-I$ALICE_ROOT/TOF");
7   /* load libraries */
8   gSystem->Load("libANALYSIS");
9   gSystem->Load("libANALYSISalice");
10   /* build analysis task class */
11   gROOT->LoadMacro("AliAnalysisParticle.cxx+g");
12   gROOT->LoadMacro("AliAnalysisEvent.cxx+g");
13   gROOT->LoadMacro("AliAnalysisTrack.cxx+g");
14   gROOT->LoadMacro("AliAnalysisTaskTOFSpectraPbPb.cxx+g");
15
16   /* setup input chain */
17   TString str = inputfilename;
18   const Char_t *filename;
19   TChain *chain = new TChain("esdTree");
20   if (str.EndsWith(".xml")) {
21     TGrid::Connect("alien://");
22     Info("SteerTaskTOFSpectraPbPb", "reading data list from collection:");
23     TAlienCollection coll(inputfilename, maxFiles);
24     coll.Reset();
25     while (coll.Next()) {
26       filename = coll.GetTURL();
27       Info("SteerTaskTOFSpectraPbPb", Form("%s", filename));
28       chain->Add(filename);
29     }
30   }
31   else if (str.EndsWith(".txt")) {
32     Info("SteerTaskTOFSpectraPbPb", "reading data list from text file:");
33     ifstream is(inputfilename);
34     Char_t buf[4096];
35     while(!is.eof()) {
36       is.getline(buf, 4096);
37       if (is.eof()) break;
38       chain->Add(buf);
39       Info("SteerTaskTOFSpectraPbPb", Form("%s", buf));
40     }
41     is.close();
42   }
43   else {
44     Info("SteerTaskTOFSpectraPbPb", "single file:");
45     filename = inputfilename;
46     Info("SteerTaskTOFSpectraPbPb", Form("%s", filename));
47     chain->Add(filename);
48   }
49   Info("SteerTaskTOFSpectraPbPb", Form("chain is ready: %d events", chain->GetEntries()));
50
51   /* create analysis manager */
52   AliAnalysisManager *mgr = new AliAnalysisManager("TOFSpectraPbPb");
53
54   /* define input event handler */
55   AliESDInputHandler *esdh = new AliESDInputHandler();
56   esdh->SetReadFriends(kFALSE);
57   mgr->SetInputEventHandler(esdh);
58
59   /* define MC truth event handler */
60   if (mcFlag) {
61     AliMCEventHandler *mch = new AliMCEventHandler();
62     mgr->SetMCtruthEventHandler(mch);
63   }
64
65   /* define output handler */
66   AliAODHandler *outputh = new AliAODHandler();
67   mgr->SetOutputEventHandler(outputh);
68
69   /* add tasks */
70   gROOT->LoadMacro("$ALICE_ROOT/OADB/macros/AddTaskPhysicsSelection.C");
71   AliPhysicsSelectionTask* physSelTask = AddTaskPhysicsSelection(mcFlag);
72   if (pbpbFlag) {
73     gROOT->LoadMacro("$ALICE_ROOT/OADB/macros/AddTaskCentrality.C");
74     AliCentralitySelectionTask *centralityTask = AddTaskCentrality(); 
75     //    centralityTask->SetPass(2);
76     if (mcFlag) centralityTask->SetMCInput();
77   }
78   gROOT->LoadMacro("AddAnalysisTaskTOFSpectraPbPb.C");
79   AliAnalysisTaskTOFSpectraPbPb *thisTask = AddAnalysisTaskTOFSpectraPbPb(mcFlag, mcTuneFlag, pbpbFlag);
80
81   /* start analysis */
82   mgr->SetDebugLevel(0);
83   if (!mgr->InitAnalysis()) return;
84   mgr->PrintStatus();
85   mgr->StartAnalysis("local", chain, maxEv);
86
87   /* create dummy file to tell we are done */
88   gSystem->Exec("touch done");
89
90 }