]>
Commit | Line | Data |
---|---|---|
9b0cb3c3 | 1 | |
2 | void runTaskNormalization(const char * incollection,const char * filename = "LHC09b12_7TeV_0.5T_norm.root", Bool_t isMC = 1,Int_t nev =123456789) { | |
3 | ||
4 | ||
5 | // Load libraries | |
6 | gSystem->Load("libANALYSIS") ; | |
7 | gSystem->Load("libANALYSISalice") ; | |
8 | gSystem->Load("libCORRFW") ; | |
9 | gSystem->Load("libITSbase") ; | |
10 | gSystem->Load("libPWG0base") ; | |
11 | ||
12 | ||
13 | // chain | |
14 | TChain* analysisChain = 0; | |
15 | analysisChain = new TChain("esdTree"); | |
16 | if (TString(incollection).Contains(".root")){ | |
17 | analysisChain->Add(incollection); | |
18 | } | |
19 | else if (TString(incollection).Contains("xml")){ | |
20 | TGrid::Connect("alien://"); | |
21 | TAlienCollection * coll = TAlienCollection::Open (incollection); | |
22 | while(coll->Next()){ | |
23 | analysisChain->Add(TString("alien://")+coll->GetLFN()); | |
24 | } | |
25 | } else { | |
26 | ifstream file_collect(incollection); | |
27 | TString line; | |
28 | while (line.ReadLine(file_collect) ) { | |
29 | analysisChain->Add(line.Data()); | |
30 | } | |
31 | } | |
32 | analysisChain->GetListOfFiles()->Print(); | |
33 | ||
34 | ||
35 | // Make the analysis manager | |
36 | AliAnalysisManager *mgr = new AliAnalysisManager("TestManager"); | |
37 | // mgr->SetDebugLevel(3); | |
38 | // Add ESD handler | |
39 | AliESDInputHandler* esdH = new AliESDInputHandler; | |
40 | ||
41 | mgr->SetInputEventHandler(esdH); | |
42 | ||
43 | if(isMC) { | |
44 | AliMCEventHandler *mc = new AliMCEventHandler(); | |
45 | mc->SetReadTR(kFALSE); | |
46 | mgr->SetMCtruthEventHandler(mc); | |
47 | } | |
48 | // assign simple task | |
49 | // gROOT->LoadMacro("AliCollisionNormalization.cxx++g"); | |
50 | // gROOT->LoadMacro("AliCollisionNormalizationTask.cxx++g"); | |
51 | //____________________________________________// | |
52 | // Physics selection | |
53 | gROOT->LoadMacro("$(ALICE_ROOT)/ANALYSIS/macros/AddTaskPhysicsSelection.C"); | |
54 | AliPhysicsSelectionTask* physSelTask = AddTaskPhysicsSelection(isMC,1,!isMC); // Use Physics Selection. Enable computation of BG if is not MC | |
55 | // task->SelectCollisionCandidates(); /// This should be disabled, at least for MC: we need all the events | |
56 | physSelTask->GetPhysicsSelection()->SetBin0Callback("TaskNormalization"); | |
57 | ||
58 | // assign simple task | |
59 | AliCollisionNormalizationTask * task = new AliCollisionNormalizationTask("TaskNormalization"); | |
60 | // task->SetMC(); | |
61 | task->SetMC(isMC); | |
62 | mgr->AddTask(task); | |
63 | ||
64 | ||
65 | ||
66 | AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer(); | |
67 | mgr->ConnectInput(task,0,cinput1); | |
68 | ||
69 | ||
70 | ||
71 | // Attach output | |
72 | cOutput = mgr->CreateContainer("Norm", TList::Class(), AliAnalysisManager::kOutputContainer,filename); | |
73 | mgr->ConnectOutput(task, 1, cOutput); | |
74 | ||
75 | if (!mgr->InitAnalysis()) return; | |
76 | ||
77 | mgr->PrintStatus(); | |
78 | mgr->StartAnalysis("local",analysisChain,nev); | |
79 | ||
80 | } |