]>
Commit | Line | Data |
---|---|---|
778636d4 | 1 | #if !defined (__CINT__) || (defined(__MAKECINT__)) |
2 | #include <iostream> | |
3 | #include "AliAnalysisGrid.h" | |
4 | #include "TSystem.h" | |
5 | #include "TROOT.h" | |
6 | #include "AliAnalysisManager.h" | |
7 | #include "AliAnalysisGrid.h" | |
8 | #include "AliVEventHandler.h" | |
9 | #include "AliAODInputHandler.h" | |
10 | #include "AliAnalysisAlien.h" | |
11 | #include "AliMCEventHandler.h" | |
12 | #include "AliPhysicsSelectionTask.h" | |
13 | #include "TRegexp.h" | |
14 | #include "AliTriggerAnalysis.h" | |
15 | #include "TChain.h" | |
16 | #include "AliAnalysisTaskPIDResponse.h" | |
17 | #include "AliAODHandler.h" | |
18 | #include "AliAnalysisTaskNanoAODFilter.h" | |
19 | #include "AliESEHelpers.h" | |
20 | ||
21 | #endif | |
22 | void LoadLibs(); | |
23 | ||
24 | class AliAnalysisGrid; | |
25 | class AliESETrkCut; | |
26 | class AliESEEvtCut; | |
27 | ||
28 | AliESETrkCut * TrkCuts() { | |
29 | ||
30 | AliESETrkCut * trk = new AliESETrkCut; | |
31 | ||
32 | AliSpectraAODTrackCuts * trcuts = new AliSpectraAODTrackCuts("TrackCuts"); | |
33 | trcuts->SetDCA(100000); | |
34 | trcuts->SetTrackBits(1); | |
35 | trcuts->SetPt(50); | |
36 | trcuts->SetPtTOFMatching(0.6); | |
37 | trcuts->SetEta(-0.8,0.8); | |
38 | trcuts->SetMinTPCcls(70); | |
39 | trcuts->PrintCuts(); | |
40 | ||
41 | trk->SetTrackCuts(trcuts); | |
42 | trk->Init(); | |
43 | ||
44 | return trk; | |
45 | ||
46 | } | |
47 | ||
48 | AliESEEvtCut * EvtCuts(Int_t mc) { | |
49 | ||
50 | AliESEEvtCut * evt = new AliESEEvtCut; | |
51 | ||
52 | AliSpectraAODEventCuts * evcuts = new AliSpectraAODEventCuts("EventCuts"); | |
53 | evcuts->SetQVectorCut(0,100); | |
54 | evcuts->SetCentralityCutMax(100); | |
55 | evcuts->SetCentralityCutMin(0); | |
56 | if(mc>0)evcuts->SetIsMC(kTRUE); | |
57 | TFile * fCalib = new TFile("./calibV0New.root"); | |
58 | evcuts->SetCalibFile(fCalib); | |
59 | evcuts->SetIsLHC10h(kTRUE); | |
60 | evcuts->PrintCuts(); | |
61 | // evcuts->SetEventSelectionBit(AliVEvent::kAny); | |
62 | ||
63 | evt->SetEventCuts(evcuts); | |
64 | evt->Init(); | |
65 | ||
66 | return evt; | |
67 | ||
68 | } | |
69 | ||
70 | //______________________________________________________________________________ | |
71 | void runLocalESE( | |
72 | const int iMCtruth = 2, | |
73 | const char * addTaskString = ".x AddTaskNanoAODFilter.C(%d,1)" // | |
74 | ) | |
75 | { | |
76 | LoadLibs(); | |
77 | // analysis manager | |
78 | AliAnalysisManager* mgr = new AliAnalysisManager("NanoAOD Filter", "NanoAOD filter for nanoAOD production"); | |
79 | ||
80 | AliAODInputHandler* iH = new AliAODInputHandler(); | |
81 | mgr->SetInputEventHandler(iH); | |
82 | ||
83 | // Define aod output handler | |
84 | AliAODHandler* aodOutputHandler = new AliAODHandler(); | |
85 | aodOutputHandler->SetOutputFileName("AliAOD.NanoAOD.root"); | |
86 | mgr->SetOutputEventHandler(aodOutputHandler); | |
87 | ||
88 | gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDResponse.C"); | |
89 | AliAnalysisTaskPIDResponse *taskPID=AddTaskPIDResponse(iMCtruth); | |
90 | taskPID->SetUseTPCEtaCorrection(kTRUE); | |
91 | ||
92 | // create task | |
93 | cout << "Macro: "<< addTaskString << " " << Form(addTaskString, iMCtruth) << endl; | |
94 | ||
95 | AliAnalysisTaskNanoAODFilter * task = (AliAnalysisTaskNanoAODFilter*) gROOT->ProcessLine(Form(addTaskString, iMCtruth)); | |
96 | ||
97 | // Set Track event and vertex cuts here! | |
98 | task->SetVarList("pt,theta,phi,cstNSigmaTPCPi,cstNSigmaTPCKa,cstNSigmaTPCPr,cstNSigmaTOFPi,cstNSigmaTOFKa,cstNSigmaTOFPr,cstBayesTPCPi,cstBayesTPCKa,cstBayesTPCPr,cstBayesTOFPi,cstBayesTOFKa,cstBayesTOFPr"); | |
99 | task->SetVarListHead("cstCentr,cstQVec"); | |
100 | AliESETrkCut * trkCuts = TrkCuts(); | |
101 | AliESEEvtCut * evtCuts = EvtCuts(iMCtruth); | |
102 | evtCuts->SetTrackCuts(trkCuts->GetTrackCuts()); | |
103 | AliAnalysisESESetter * setter = new AliAnalysisESESetter; | |
104 | setter->SetEventCuts(evtCuts->GetEventCuts()); | |
105 | ||
106 | task->SetTrkCuts(trkCuts); | |
107 | task->SetEvtCuts(evtCuts); | |
108 | task->SetSetter(setter); | |
109 | ||
110 | //task->SelectCollisionCandidates(AliVEvent::kMB);// FIXME | |
111 | // enable debug printouts | |
112 | mgr->SetDebugLevel(10); | |
113 | // mgr->SetNSysInfo(100); | |
114 | if (!mgr->InitAnalysis()) return; | |
115 | mgr->PrintStatus(); | |
116 | ||
117 | // start analysis | |
118 | // Always read the same file: | |
119 | TChain * chain = new TChain("aodTree"); | |
120 | chain->Add("./AliAOD.root"); | |
121 | ||
122 | Printf("Starting Analysis...."); | |
123 | mgr->StartAnalysis("local", chain,123456789); | |
124 | ||
125 | } | |
126 | ||
127 | //______________________________________________________________________________ | |
128 | ||
129 | void LoadLibs() { | |
130 | gSystem->Load("libCore.so"); | |
131 | gSystem->Load("libGeom.so"); | |
132 | gSystem->Load("libPhysics.so"); | |
133 | gSystem->Load("libVMC"); | |
134 | gSystem->Load("libTree"); | |
135 | gSystem->Load("libProof"); | |
136 | gSystem->Load("libMatrix"); | |
137 | gSystem->Load("libMinuit"); | |
138 | gSystem->Load("libSTEERBase"); | |
139 | gSystem->Load("libESD"); | |
140 | gSystem->Load("libAOD"); | |
141 | gSystem->Load("libANALYSIS"); | |
142 | // return; | |
143 | gSystem->Load("libOADB"); | |
144 | gSystem->Load("libANALYSISalice"); | |
145 | gSystem->Load("libTENDER"); | |
146 | gSystem->Load("libCORRFW"); | |
147 | ||
148 | // gSystem->Load("libNanoAOD.so"); | |
149 | gSystem->Load("libPWGLFspectra"); | |
150 | gSystem->Load("libPWGDevNanoAOD"); | |
151 | ||
152 | } |