]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG0/dNdPt/macros/rundNdPt.C
classes for limnosity related info from LHC DIP data.
[u/mrichter/AliRoot.git] / PWG0 / dNdPt / macros / rundNdPt.C
CommitLineData
0aaa8b91 1void rundNdPt(const char *fileList ="inputList.txt",const char *outFile = "outputFile.root", Int_t NumberOfFiles=10,Int_t fromFile=0, Int_t nEvents=1000, Int_t firstEvent =0, Bool_t bUseMCInfo=kTRUE, Float_t zvWindow=20., Int_t cutMode=9,Float_t etaWindow=0.9, Float_t ptMin=0.15,AlidNdPtHelper::AnalysisMode analysisMode = AlidNdPtHelper::kTPC, AlidNdPtHelper::OutputObject outputObject=AlidNdPtHelper::kCorrection,const char *corrFile = "corrMatricesFile.root",Bool_t bProof=kFALSE)
2{
3 // set Proof
4 if(bProof) {
5
6 //cout << "*** START PROOF Lite SESSION ***" << endl;
f33b8af4 7 TProof::Open(""); // 1. Enter your username here
0aaa8b91 8
f33b8af4 9 /*
0aaa8b91 10 TProofMgr * proofmgr = TProof::Mgr("lxialpod2.gsi.de:21001");
f33b8af4 11 //TProofMgr * proofmgr = TProof::Mgr("lxialpod.gsi.de:21001");
bad4ba69 12 //TProofMgr * proofmgr = TProof::Mgr("lxial39.gsi.de:21001");
0aaa8b91 13 TProof * proof = proofmgr->CreateSession();
f33b8af4 14 proof->SetParameter("PROOF_MaxSlavesPerNode", (Long_t)10000);
15 */
0aaa8b91 16
17 // -- Load AliRoot Libraries
4fa29112 18 gROOT->LoadMacro("ProofEnableAliRootGSI.C");
bad4ba69 19 ProofEnableAliRootGSI("/u/jacek/alice/AliRoot/trunk");
0aaa8b91 20 }
21
22 // Swtich off all AliInfo (too much output!!!)
23 AliLog::SetGlobalLogLevel(AliLog::kError);
24
25 // Create analysis manager
26 AliAnalysisManager *mgr = new AliAnalysisManager;
27
28 //
29 // Create event cuts
30 //
31 AlidNdPtEventCuts *evtCuts = new AlidNdPtEventCuts("AlidNdPtEventCuts","Event cuts");
32 evtCuts->SetZvRange(-zvWindow,zvWindow);
33 evtCuts->SetMeanXYZv(0.0,0.0,0.0);
34 evtCuts->SetSigmaMeanXYZv(1.0,1.0,10.0);
bad4ba69 35 evtCuts->SetTriggerRequired(kTRUE);
0aaa8b91 36
37 // Create geom. acceptance cuts
38 AlidNdPtAcceptanceCuts *accCuts = new AlidNdPtAcceptanceCuts("AlidNdPtAcceptanceCuts","Geom. acceptance cuts");
39 accCuts->SetEtaRange(-etaWindow,etaWindow);
40 accCuts->SetPtRange(ptMin,1.e10);
41 accCuts->SetMaxDCAr(3.0);
42 accCuts->SetMaxDCAz(30.0);
43
44 // Create standard esd track cuts
4fa29112 45 gROOT->LoadMacro("CreatedNdPtTrackCuts.C");
bad4ba69 46 AliESDtrackCuts* esdTrackCuts = CreatedNdPtTrackCuts(cutMode);
0aaa8b91 47 if (!esdTrackCuts) {
48 printf("ERROR: esdTrackCuts could not be created\n");
49 return;
50 } else {
51 esdTrackCuts->SetHistogramsOn(kTRUE);
52 }
53
54 //
55 // Create task
56 //
57 AlidNdPtTask *task = new AlidNdPtTask("AlidNdPtTask");
58 if (bUseMCInfo) task->SetUseMCInfo(kTRUE);
59
60 // create cut analysis object
61 if(outputObject==AlidNdPtHelper::kCutAnalysis)
62 {
63 AlidNdPtCutAnalysis *fdNdPtCutAnalysis = new AlidNdPtCutAnalysis("dNdPtCutAnalysis","dN/dPt Cut Analysis");
64 fdNdPtCutAnalysis->SetEventCuts(evtCuts);
65 fdNdPtCutAnalysis->SetAcceptanceCuts(accCuts);
66 fdNdPtCutAnalysis->SetTrackCuts(esdTrackCuts);
67 fdNdPtCutAnalysis->SetAnalysisMode(analysisMode);
f33b8af4 68 if(bUseMCInfo)
69 {
70 fdNdPtCutAnalysis->SetTrigger(AliTriggerAnalysis::kMB1);
71 fdNdPtCutAnalysis->SetUseMCInfo(kTRUE);
72 }
73 else { // online trigger
74 //fdNdPtCutAnalysis->SetTriggerClass("CBEAMB-ABCE-NOPF-ALL");
75 fdNdPtCutAnalysis->SetTriggerClass("CINT1B-ABCE-NOPF-ALL");
76 //fdNdPtCutAnalysis->SetTriggerClass("CINT1A-ABCE-NOPF-ALL");
77 //fdNdPtCutAnalysis->SetTriggerClass("CINT1C-ABCE-NOPF-ALL");
78 //fdNdPtCutAnalysis->SetTriggerClass("CINT1-E-NOPF-ALL");
79 }
0aaa8b91 80
81 task->AddAnalysisObject( fdNdPtCutAnalysis );
82 }
83
84 // create analysis object
85 if(outputObject==AlidNdPtHelper::kAnalysis)
86 {
87 AlidNdPtAnalysis *fdNdPtAnalysis = new AlidNdPtAnalysis("dNdPtAnalysis","dN/dPt Analysis");
88 fdNdPtAnalysis->SetEventCuts(evtCuts);
89 fdNdPtAnalysis->SetAcceptanceCuts(accCuts);
90 fdNdPtAnalysis->SetTrackCuts(esdTrackCuts);
91 fdNdPtAnalysis->SetAnalysisMode(analysisMode);
f33b8af4 92 if(bUseMCInfo)
93 {
94 fdNdPtAnalysis->SetTrigger(AliTriggerAnalysis::kMB1);
95 fdNdPtAnalysis->SetUseMCInfo(kTRUE);
96 }
97 else { // online trigger
98 //fdNdPtAnalysis->SetTriggerClass("CBEAMB-ABCE-NOPF-ALL");
99 fdNdPtAnalysis->SetTriggerClass("CINT1B-ABCE-NOPF-ALL");
100 //fdNdPtAnalysis->SetTriggerClass("CINT1A-ABCE-NOPF-ALL");
101 //fdNdPtAnalysis->SetTriggerClass("CINT1C-ABCE-NOPF-ALL");
102 //fdNdPtAnalysis->SetTriggerClass("CINT1-E-NOPF-ALL");
103 }
0aaa8b91 104
105 fdNdPtAnalysis->SetHistogramsOn(kTRUE);
106 //fdNdPtAnalysis->SetHistogramsOn(kFALSE);
107 task->AddAnalysisObject( fdNdPtAnalysis );
108 }
109
110 // create correction object
111 if(outputObject == AlidNdPtHelper::kCorrection)
112 {
113 AlidNdPtCorrection *fdNdPtCorrection = new AlidNdPtCorrection("dNdPtCorrection","dN/dPt Correction", corrFile);
114
115 fdNdPtCorrection->SetEventCuts(evtCuts);
116 fdNdPtCorrection->SetAcceptanceCuts(accCuts);
117 fdNdPtCorrection->SetTrackCuts(esdTrackCuts);
118 fdNdPtCorrection->SetAnalysisMode(analysisMode);
f33b8af4 119 if(bUseMCInfo)
120 {
121 fdNdPtCorrection->SetTrigger(AliTriggerAnalysis::kMB1);
122 fdNdPtCorrection->SetUseMCInfo(kTRUE);
123 }
124 else { // online trigger
125 //fdNdPtCorrection->SetTriggerClass("CBEAMB-ABCE-NOPF-ALL");
126 fdNdPtCorrection->SetTriggerClass("CINT1B-ABCE-NOPF-ALL");
127 //fdNdPtCorrection->SetTriggerClass("CINT1A-ABCE-NOPF-ALL");
128 //fdNdPtCorrection->SetTriggerClass("CINT1C-ABCE-NOPF-ALL");
129 //fdNdPtCorrection->SetTriggerClass("CINT1-E-NOPF-ALL");
130 }
0aaa8b91 131
132 task->AddAnalysisObject( fdNdPtCorrection );
133 }
134
135 // Add task
136 mgr->AddTask(task);
137
138 // Add ESD handler
139 AliESDInputHandler* esdH = new AliESDInputHandler;
140 //esdH->SetInactiveBranches("*");
141 mgr->SetInputEventHandler(esdH);
142
143 if(bUseMCInfo) {
144 // Enable MC event handler
145 AliMCEventHandler* handler = new AliMCEventHandler;
146 handler->SetReadTR(kFALSE);
147 //handler->SetReadTR(kTRUE);
148 mgr->SetMCtruthEventHandler(handler);
149 }
150
151 // Create input chain
152 gROOT->LoadMacro("$ALICE_ROOT/PWG0/CreateESDChain.C");
153 TChain* chain = CreateESDChain(fileList, NumberOfFiles, fromFile);
154 if(!chain) {
155 printf("ERROR: chain cannot be created\n");
156 return;
157 }
158
159 // Create containers for input
0aaa8b91 160 AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
161 mgr->ConnectInput(task, 0, cinput);
162
163 // Create containers for output
164 AliAnalysisDataContainer *coutput = mgr->CreateContainer("coutput", TList::Class(), AliAnalysisManager::kOutputContainer, outFile);
165 mgr->ConnectOutput(task, 0, coutput);
166
167 // Enable debug printouts
168 mgr->SetDebugLevel(0);
169
170 if (!mgr->InitAnalysis())
171 return;
172
173 mgr->PrintStatus();
174
175 if(bProof) mgr->StartAnalysis("proof",chain, nEvents, firstEvent);
176 else mgr->StartAnalysis("local",chain,nEvents, firstEvent);
177}
178