]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PHOS/html/src/AliPHOSAnalyze.cxx.html
new html documentatin
[u/mrichter/AliRoot.git] / PHOS / html / src / AliPHOSAnalyze.cxx.html
CommitLineData
aa7c9120 1<!DOCTYPE HTML PUBLIC "-// IETF/DTD HTML 2.0// EN">
2<html>
3<!-- -->
4<!-- Author: ROOT team (rootdev@hpsalo.cern.ch) -->
5<!-- -->
6<!-- Date: Tue Apr 3 16:12:51 2001 -->
7<!-- -->
8<head>
9<title>AliPHOSAnalyze - source file</title>
10<link rev=made href="mailto:rootdev@root.cern.ch">
11<meta name="rating" content="General">
12<meta name="objecttype" content="Manual">
13<meta name="keywords" content="software development, oo, object oriented, unix, x11, windows, c++, html, rene brun, fons rademakers">
14<meta name="description" content="ROOT - An Object Oriented Framework For Large Scale Data Analysis.">
15</head>
16<body BGCOLOR="#ffffff" LINK="#0000ff" VLINK="#551a8b" ALINK="#ff0000" TEXT="#000000">
17<a name="TopOfPage"></a>
18<pre>
19/**************************************************************************
20 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
21 * *
22 * Author: The ALICE Off-line Project. *
23 * Contributors are mentioned in the code where appropriate. *
24 * *
25 * Permission to use, copy, modify and distribute this software and its *
26 * documentation strictly for non-commercial purposes is hereby granted *
27 * without fee, provided that the above copyright notice appears in all *
28 * copies and that both the copyright notice and this permission notice *
29 * appear in the supporting documentation. The authors make no claims *
30 * about the suitability of this software for any purpose. It is *
31 * provided "as is" without express or implied warranty. *
32 **************************************************************************/
33
34/* $Id$ */
35
36<b>//_________________________________________________________________________</b>
37<b>// Algorythm class to analyze PHOSv1 events:</b>
38<b>// Construct histograms and displays them.</b>
39<b>// Use the macro EditorBar.C for best access to the functionnalities</b>
40<b>//*--</b>
41<b>//*-- Author: Y. Schutz (SUBATECH) &amp; Gines Martinez (SUBATECH)</b>
42<b>//////////////////////////////////////////////////////////////////////////////</b>
43
44<b>// --- ROOT system ---</b>
45
46#include "TFile.h"
47#include "TH1.h"
48#include "TPad.h"
49#include "TH2.h"
50#include "TH2.h"
51#include "TParticle.h"
52#include "TClonesArray.h"
53#include "TTree.h"
54#include "TMath.h"
55#include "TCanvas.h"
56#include "TStyle.h"
57
58<b>// --- Standard library ---</b>
59
60#include &lt;iostream.h&gt;
61#include &lt;stdio.h&gt;
62
63<b>// --- AliRoot header files ---</b>
64
65#include "AliRun.h"
66#include "AliPHOSv1.h"
67#include "AliPHOSAnalyze.h"
68#include "AliPHOSClusterizerv1.h"
69#include "AliPHOSTrackSegmentMakerv1.h"
70#include "AliPHOSPIDv1.h"
71#include "<a href="../AliPHOSReconstructioner.h">AliPHOSReconstructioner.h</a>"
72#include "AliPHOSDigit.h"
73#include "AliPHOSTrackSegment.h"
74#include "AliPHOSRecParticle.h"
75#include "AliPHOSIndexToObject.h"
76#include "AliPHOSHit.h"
77#include "AliPHOSCpvRecPoint.h"
78#include "AliPHOSPpsdRecPoint.h"
79
80ClassImp(AliPHOSAnalyze)
81
82<b>//____________________________________________________________________________</b>
83<a name="AliPHOSAnalyze:AliPHOSAnalyze"> </a> <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:AliPHOSAnalyze">AliPHOSAnalyze::AliPHOSAnalyze</a>()
84{
85<b> // default ctor (useless)</b>
86
87 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fRootFile">fRootFile</a> = 0 ;
88}
89
90<b>//____________________________________________________________________________</b>
91<a name="AliPHOSAnalyze:AliPHOSAnalyze"> </a><a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:AliPHOSAnalyze">AliPHOSAnalyze::AliPHOSAnalyze</a>(<a href="../ListOfTypes.html#Text_t">Text_t</a> * name)
92{
93<b> // ctor: analyze events from root file "name"</b>
94
95 <a href="../ListOfTypes.html#Bool_t">Bool_t</a> ok = <a href="#AliPHOSAnalyze:OpenRootFile">OpenRootFile</a>(name) ;
96 if ( !ok ) {
97 cout &lt;&lt; " <a href=".././AliPHOSAnalyze.html">AliPHOSAnalyze</a> &gt; Error opening " &lt;&lt; name &lt;&lt; endl ;
98 }
99 else {
100<b> //========== Get AliRun object from file </b>
101 gAlice = (AliRun*) <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fRootFile">fRootFile</a>-&gt;Get("gAlice") ;
102
103<b> //=========== Get the PHOS object and associated geometry from the file </b>
104 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fPHOS">fPHOS</a> = (<a href=".././AliPHOSv1.html">AliPHOSv1</a> *)gAlice-&gt;GetDetector("PHOS") ;
105 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fGeom">fGeom</a> = <a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetInstance">AliPHOSGeometry::GetInstance</a>( <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fPHOS">fPHOS</a>-&gt;GetGeometry()-&gt;GetName(), <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fPHOS">fPHOS</a>-&gt;GetGeometry()-&gt;GetTitle() );
106
107<b> //========== Initializes the Index to Object converter</b>
108 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fObjGetter">fObjGetter</a> = <a href=".././AliPHOSIndexToObject.html#AliPHOSIndexToObject:GetInstance">AliPHOSIndexToObject::GetInstance</a>() ; // &lt;--- To be redone
109<b> //========== Current event <a href="../ListOfTypes.html#number">number</a> </b>
110 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fEvt">fEvt</a> = -999 ;
111
112 }
113 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fDebugLevel">fDebugLevel</a> = 0;
114<b> // fClu = 0 ;</b>
115<b> // fPID = 0 ;</b>
116<b> // fTrs = 0 ;</b>
117<b> // fRec = 0 ;</b>
118 <a href="#AliPHOSAnalyze:ResetHistograms">ResetHistograms</a>() ;
119}
120
121<b>//____________________________________________________________________________</b>
122<a name="AliPHOSAnalyze:AliPHOSAnalyze"> </a><a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:AliPHOSAnalyze">AliPHOSAnalyze::AliPHOSAnalyze</a>(const <a href=".././AliPHOSAnalyze.html">AliPHOSAnalyze</a> &amp; ana)
123{
124<b> // copy ctor</b>
125 ( (<a href=".././AliPHOSAnalyze.html">AliPHOSAnalyze</a> &amp;)ana ).<a href="#AliPHOSAnalyze:Copy">Copy</a>(*this) ;
126}
127
128<b>//____________________________________________________________________________</b>
129<a name="AliPHOSAnalyze:Copy"> </a><a href="../ListOfTypes.html#void">void</a> <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:Copy">AliPHOSAnalyze::Copy</a>(TObject &amp; obj)
130{
131<b> // copy an analysis into an other one</b>
132 TObject::<a href="#AliPHOSAnalyze:Copy">Copy</a>(obj) ;
133<b> // I do nothing more because the copy is silly but the Code checkers requires one</b>
134}
135
136<b>//____________________________________________________________________________</b>
137<a name="AliPHOSAnalyze:~AliPHOSAnalyze"> </a><a href=".././AliPHOSAnalyze.html">AliPHOSAnalyze</a>::~<a href=".././AliPHOSAnalyze.html">AliPHOSAnalyze</a>()
138{
139<b> // dtor</b>
140
141 if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fRootFile">fRootFile</a>-&gt;IsOpen()) <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fRootFile">fRootFile</a>-&gt;Close() ;
142 if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fRootFile">fRootFile</a>) {delete <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fRootFile">fRootFile</a> ; <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fRootFile">fRootFile</a>=0 ;}
143 if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fPHOS">fPHOS</a>) {delete <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fPHOS">fPHOS</a> ; <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fPHOS">fPHOS</a> =0 ;}
144<b> // if(fClu) {delete fClu ; fClu =0 ;}</b>
145<b> // if(fPID) {delete fPID ; fPID =0 ;}</b>
146<b> // if(fRec) {delete fRec ; fRec =0 ;}</b>
147<b> // if(fTrs) {delete fTrs ; fTrs =0 ;}</b>
148
149}
150<b>//____________________________________________________________________________</b>
151<a name="AliPHOSAnalyze:DrawRecon"> </a><a href="../ListOfTypes.html#void">void</a> <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:DrawRecon">AliPHOSAnalyze::DrawRecon</a>(<a href="../ListOfTypes.html#Int_t">Int_t</a> Nevent,<a href="../ListOfTypes.html#Int_t">Int_t</a> Nmod){
152<b> //Draws pimary particles and reconstructed </b>
153<b> //digits, RecPoints, RecPartices etc </b>
154<b> //for event Nevent in the module Nmod.</b>
155
156 TH2F * digitOccupancy = new TH2F("digitOccupancy","EMC digits", 64,-71.,71.,64,-71.,71.);
157 TH2F * sdigitOccupancy = new TH2F("sdigitOccupancy","EMC sdigits", 64,-71.,71.,64,-71.,71.);
158 TH2F * emcOccupancy = new TH2F("emcOccupancy","EMC RecPoints",64,-71.,71.,64,-71.,71.);
159 TH2F * ppsdUp = new TH2F("ppsdUp","PPSD Up digits", 128,-71.,71.,128,-71.,71.) ;
160 TH2F * ppsdUpCl = new TH2F("ppsdUpCl","PPSD Up RecPoints",128,-71.,71.,128,-71.,71.) ;
161 TH2F * ppsdLow = new TH2F("ppsdLow","PPSD Low digits", 128,-71.,71.,128,-71.,71.) ;
162 TH2F * ppsdLowCl = new TH2F("ppsdLowCl","PPSD Low RecPoints",128,-71.,71.,128,-71.,71.) ;
163 TH2F * nbar = new TH2F("nbar","Primary nbar", 64,-71.,71.,64,-71.,71.);
164 TH2F * phot = new TH2F("phot","Primary Photon", 64,-71.,71.,64,-71.,71.);
165 TH2F * charg = new TH2F("charg","Primary charged",64,-71.,71.,64,-71.,71.);
166 TH2F * recPhot = new TH2F("recPhot","RecParticles with primary Photon",64,-71.,71.,64,-71.,71.);
167 TH2F * recNbar = new TH2F("recNbar","RecParticles with primary Nbar", 64,-71.,71.,64,-71.,71.);
168
169<b> //========== Create the Clusterizer</b>
170<b> // fClu = new <a href=".././AliPHOSClusterizerv1.html">AliPHOSClusterizerv1</a>() ; </b>
171
172 gAlice-&gt;GetEvent(Nevent);
173
174 TParticle * primary ;
175 <a href="../ListOfTypes.html#Int_t">Int_t</a> iPrimary ;
176 for ( iPrimary = 0 ; iPrimary &lt; gAlice-&gt;GetNtrack() ; iPrimary++)
177 {
178 primary = gAlice-&gt;Particle(iPrimary) ;
179 <a href="../ListOfTypes.html#Int_t">Int_t</a> primaryType = primary-&gt;GetPdgCode() ;
180 if( (primaryType == 211)||(primaryType == -211)||(primaryType == 2212)||(primaryType == -2212) ) {
181 <a href="../ListOfTypes.html#Int_t">Int_t</a> moduleNumber ;
182 <a href="../ListOfTypes.html#Double_t">Double_t</a> primX, primZ ;
183 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:ImpactOnEmc">ImpactOnEmc</a>(primary-&gt;Theta(), primary-&gt;Phi(), moduleNumber, primX, primZ) ;
184 if(moduleNumber==Nmod)
185 charg-&gt;Fill(primZ,primX,primary-&gt;Energy()) ;
186 }
187 if( primaryType == 22 ) {
188 <a href="../ListOfTypes.html#Int_t">Int_t</a> moduleNumber ;
189 <a href="../ListOfTypes.html#Double_t">Double_t</a> primX, primZ ;
190 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:ImpactOnEmc">ImpactOnEmc</a>(primary-&gt;Theta(), primary-&gt;Phi(), moduleNumber, primX, primZ) ;
191 if(moduleNumber==Nmod)
192 phot-&gt;Fill(primZ,primX,primary-&gt;Energy()) ;
193 }
194 else{
195 if( primaryType == -2112 ) {
196 <a href="../ListOfTypes.html#Int_t">Int_t</a> moduleNumber ;
197 <a href="../ListOfTypes.html#Double_t">Double_t</a> primX, primZ ;
198 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:ImpactOnEmc">ImpactOnEmc</a>(primary-&gt;Theta(), primary-&gt;Phi(), moduleNumber, primX, primZ) ;
199 if(moduleNumber==Nmod)
200 nbar-&gt;Fill(primZ,primX,primary-&gt;Energy()) ;
201 }
202 }
203 }
204
205<b> //Set TreeS here and get AliPHOSSdigitizer</b>
206
207
208 gAlice-&gt;TreeS()-&gt;GetEvent(0) ;
209
210 <a href="../ListOfTypes.html#Int_t">Int_t</a> iSDigit ;
211 <a href=".././AliPHOSDigit.html">AliPHOSDigit</a> * sdigit ;
212
213 if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fPHOS">fPHOS</a>-&gt;SDigits()){
214 for(iSDigit = 0; iSDigit &lt; <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fPHOS">fPHOS</a>-&gt;SDigits()-&gt;GetEntries(); iSDigit++)
215 {
216 sdigit = (<a href=".././AliPHOSDigit.html">AliPHOSDigit</a> *) <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fPHOS">fPHOS</a>-&gt;SDigits()-&gt;At(iSDigit) ;
217 <a href="../ListOfTypes.html#Int_t">Int_t</a> relid[4];
218 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:AbsToRelNumbering">AbsToRelNumbering</a>(sdigit-&gt;GetId(), relid) ;
219 <a href="../ListOfTypes.html#Float_t">Float_t</a> x,z ;
220 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:RelPosInModule">RelPosInModule</a>(relid,x,z) ;
221 <a href="../ListOfTypes.html#Float_t">Float_t</a> e = 1 ; //&lt;--- <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fPHOS">fPHOS</a>-&gt;Calibrate(sdigit-&gt;GetAmp()) ;
222 if(relid[0]==Nmod){
223 if(relid[1]==0) //EMC
224 sdigitOccupancy-&gt;Fill(x,z,e) ;
225 if((relid[1]&gt;0)&amp;&amp;(relid[1]&lt;17))
226 ppsdUp-&gt;Fill(x,z,e) ;
227 if(relid[1]&gt;16)
228 ppsdLow-&gt;Fill(x,z,e) ;
229 }
230 }
231 }
232 else{
233 cout &lt;&lt; "No SDigits read " &lt;&lt; endl ;
234 }
235
236 gAlice-&gt;TreeD()-&gt;GetEvent(0) ;
237
238 if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fPHOS">fPHOS</a>-&gt;Digits()){
239 <a href="../ListOfTypes.html#Int_t">Int_t</a> iDigit ;
240 <a href=".././AliPHOSDigit.html">AliPHOSDigit</a> * digit ;
241 for(iDigit = 0; iDigit &lt; <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fPHOS">fPHOS</a>-&gt;Digits()-&gt;GetEntries(); iDigit++)
242 {
243 digit = (<a href=".././AliPHOSDigit.html">AliPHOSDigit</a> *) <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fPHOS">fPHOS</a>-&gt;Digits()-&gt;At(iDigit) ;
244 <a href="../ListOfTypes.html#Int_t">Int_t</a> relid[4];
245 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:AbsToRelNumbering">AbsToRelNumbering</a>(digit-&gt;GetId(), relid) ;
246 <a href="../ListOfTypes.html#Float_t">Float_t</a> x,z ;
247 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:RelPosInModule">RelPosInModule</a>(relid,x,z) ;
248 <a href="../ListOfTypes.html#Float_t">Float_t</a> e = 1; //&lt;--- fClu-&gt;Calibrate(digit-&gt;GetAmp()) ;
249 if(relid[0]==Nmod){
250 if(relid[1]==0) //EMC
251 digitOccupancy-&gt;Fill(x,z,e) ;
252 if((relid[1]&gt;0)&amp;&amp;(relid[1]&lt;17))
253 ppsdUp-&gt;Fill(x,z,e) ;
254 if(relid[1]&gt;16)
255 ppsdLow-&gt;Fill(x,z,e) ;
256 }
257 }
258 }
259 else{
260 cout &lt;&lt; "No Digits read " &lt;&lt; endl ;
261 }
262
263 gAlice-&gt;TreeR()-&gt;GetEvent(0) ;
264
265 TObjArray * emcRecPoints = <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fPHOS">fPHOS</a>-&gt;EmcRecPoints() ;
266 TObjArray * ppsdRecPoints = <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fPHOS">fPHOS</a>-&gt;PpsdRecPoints() ;
267 TClonesArray * recParticleList = <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fPHOS">fPHOS</a>-&gt;RecParticles() ;
268
269
270 <a href="../ListOfTypes.html#Int_t">Int_t</a> irecp ;
271 TVector3 pos ;
272
273 if(emcRecPoints ){
274 for(irecp = 0; irecp &lt; emcRecPoints-&gt;GetEntries() ; irecp ++){
275 <a href=".././AliPHOSEmcRecPoint.html">AliPHOSEmcRecPoint</a> * emc= (<a href=".././AliPHOSEmcRecPoint.html">AliPHOSEmcRecPoint</a>*)emcRecPoints-&gt;At(irecp) ;
276 if(emc-&gt;GetPHOSMod()==Nmod){
277 emc-&gt;GetLocalPosition(pos) ;
278 emcOccupancy-&gt;Fill(pos.X(),pos.Z(),emc-&gt;GetEnergy());
279 }
280 }
281 }
282 else{
283 cout &lt;&lt; "No EMC rec points read " &lt;&lt; endl ;
284 }
285
286 if(ppsdRecPoints ){
287 for(irecp = 0; irecp &lt; ppsdRecPoints-&gt;GetEntries() ; irecp ++){
288 <a href=".././AliPHOSPpsdRecPoint.html">AliPHOSPpsdRecPoint</a> * ppsd= (<a href=".././AliPHOSPpsdRecPoint.html">AliPHOSPpsdRecPoint</a> *)ppsdRecPoints-&gt;At(irecp) ;
289
290 ppsd-&gt;GetLocalPosition(pos) ;
291 cout &lt;&lt; "PPSD " &lt;&lt; irecp &lt;&lt; " " &lt;&lt; ppsd-&gt;GetPHOSMod() &lt;&lt; " " &lt;&lt; pos.X() &lt;&lt; " " &lt;&lt; pos.Z() &lt;&lt; endl ;
292
293 if(ppsd-&gt;GetPHOSMod()==Nmod){
294 ppsd-&gt;GetLocalPosition(pos) ;
295 if(ppsd-&gt;GetUp())
296 ppsdUpCl-&gt;Fill(pos.X(),pos.Z(),ppsd-&gt;GetEnergy());
297 else
298 ppsdLowCl-&gt;Fill(pos.X(),pos.Z(),ppsd-&gt;GetEnergy());
299 }
300 }
301 }
302 else{
303 cout &lt;&lt; "No PPSD/CPV rec points read " &lt;&lt; endl ;
304 }
305
306 <a href=".././AliPHOSRecParticle.html">AliPHOSRecParticle</a> * recParticle ;
307 <a href="../ListOfTypes.html#Int_t">Int_t</a> iRecParticle ;
308 if(recParticleList ){
309 for(iRecParticle = 0; iRecParticle &lt; recParticleList-&gt;GetEntries() ;iRecParticle++ )
310 {
311 recParticle = (<a href=".././AliPHOSRecParticle.html">AliPHOSRecParticle</a> *) recParticleList-&gt;At(iRecParticle) ;
312
313 <a href="../ListOfTypes.html#Int_t">Int_t</a> moduleNumberRec ;
314 <a href="../ListOfTypes.html#Double_t">Double_t</a> recX, recZ ;
315 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:ImpactOnEmc">ImpactOnEmc</a>(recParticle-&gt;Theta(), recParticle-&gt;Phi(), moduleNumberRec, recX, recZ) ;
316 if(moduleNumberRec == Nmod){
317
318 <a href="../ListOfTypes.html#Double_t">Double_t</a> minDistance = 5. ;
319 <a href="../ListOfTypes.html#Int_t">Int_t</a> closestPrimary = -1 ;
320
321 <a href="../ListOfTypes.html#Int_t">Int_t</a> numberofprimaries ;
322 <a href="../ListOfTypes.html#Int_t">Int_t</a> * listofprimaries = recParticle-&gt;GetPrimaries(numberofprimaries) ;
323 <a href="../ListOfTypes.html#Int_t">Int_t</a> index ;
324 TParticle * primary ;
325 <a href="../ListOfTypes.html#Double_t">Double_t</a> distance = minDistance ;
326
327 for ( index = 0 ; index &lt; numberofprimaries ; index++){
328 primary = gAlice-&gt;Particle(listofprimaries[index]) ;
329 <a href="../ListOfTypes.html#Int_t">Int_t</a> moduleNumber ;
330 <a href="../ListOfTypes.html#Double_t">Double_t</a> primX, primZ ;
331 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:ImpactOnEmc">ImpactOnEmc</a>(primary-&gt;Theta(), primary-&gt;Phi(), moduleNumber, primX, primZ) ;
332 if(moduleNumberRec == moduleNumber)
333 distance = TMath::Sqrt((recX-primX)*(recX-primX)+(recZ-primZ)*(recZ-primZ) ) ;
334 if(minDistance &gt; distance)
335 {
336 minDistance = distance ;
337 closestPrimary = listofprimaries[index] ;
338 }
339 }
340
341 if(closestPrimary &gt;=0 ){
342
343 <a href="../ListOfTypes.html#Int_t">Int_t</a> primaryType = gAlice-&gt;Particle(closestPrimary)-&gt;GetPdgCode() ;
344
345 if(primaryType==22)
346 recPhot-&gt;Fill(recZ,recX,recParticle-&gt;Energy()) ;
347 else
348 if(primaryType==-2112)
349 recNbar-&gt;Fill(recZ,recX,recParticle-&gt;Energy()) ;
350 }
351 }
352 }
353 }
354 else{
355 cout &lt;&lt; "Not Rec Prticles read " &lt;&lt; endl ;
356 }
357
358 digitOccupancy-&gt;Draw("box") ;
359 sdigitOccupancy-&gt;SetLineColor(5) ;
360 sdigitOccupancy-&gt;Draw("box") ;
361 emcOccupancy-&gt;SetLineColor(2) ;
362 emcOccupancy-&gt;Draw("boxsame") ;
363 ppsdUp-&gt;SetLineColor(3) ;
364 ppsdUp-&gt;Draw("boxsame") ;
365 ppsdLow-&gt;SetLineColor(4) ;
366 ppsdLow-&gt;Draw("boxsame") ;
367 phot-&gt;SetLineColor(8) ;
368 phot-&gt;Draw("boxsame") ;
369 nbar-&gt;SetLineColor(6) ;
370 nbar-&gt;Draw("boxsame") ;
371
372}
373<b>// //____________________________________________________________________________</b>
374<b>// <a href="../ListOfTypes.html#void">void</a> <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:Reconstruct">AliPHOSAnalyze::Reconstruct</a>(<a href="../ListOfTypes.html#Int_t">Int_t</a> nevents,<a href="../ListOfTypes.html#Int_t">Int_t</a> firstEvent ) </b>
375<b>// { </b>
376
377<b>// // Performs reconstruction of EMC and CPV (GPS2, IHEP or MIXT)</b>
378<b>// // for events from FirstEvent to Nevents</b>
379
380<b>// <a href="../ListOfTypes.html#Int_t">Int_t</a> ievent ; </b>
381<b>// for ( ievent=firstEvent; ievent&lt;nevents; ievent++) { </b>
382<b>// if (ievent==firstEvent) {</b>
383<b>// cout &lt;&lt; "Analyze &gt; Starting Reconstructing " &lt;&lt; endl ; </b>
384<b>// //========== Create the Clusterizer</b>
385<b>// fClu = new <a href=".././AliPHOSClusterizerv1.html">AliPHOSClusterizerv1</a>() ; </b>
386
387<b>// //========== Creates the track <a href="../ListOfTypes.html#segment">segment</a> maker</b>
388<b>// fTrs = new <a href=".././AliPHOSTrackSegmentMakerv1.html">AliPHOSTrackSegmentMakerv1</a>() ;</b>
389<b>// // fTrs-&gt;UnsetUnfoldFlag() ; </b>
390
391<b>// //========== Creates the particle identifier</b>
392<b>// fPID = new <a href=".././AliPHOSPIDv1.html">AliPHOSPIDv1</a>() ;</b>
393<b>// fPID-&gt;SetShowerProfileCuts(0.3, 1.8, 0.3, 1.8 ) ; </b>
394
395<b>// //========== Creates the Reconstructioner</b>
396<b>// fRec = new <a href=".././AliPHOSReconstructioner.html">AliPHOSReconstructioner</a>(fClu, fTrs, fPID) ; </b>
397<b>// if (<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fDebugLevel">fDebugLevel</a> != 0) fRec -&gt; SetDebugReconstruction(kTRUE); </b>
398<b>// }</b>
399
400<b>// if (<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fDebugLevel">fDebugLevel</a> != 0 ||</b>
401<b>// (ievent+1) % (<a href="../ListOfTypes.html#Int_t">Int_t</a>)TMath::Power( 10, (<a href="../ListOfTypes.html#Int_t">Int_t</a>)TMath::Log10(ievent+1) ) == 0)</b>
402<b>// cout &lt;&lt; "======= Analyze ======&gt; Event " &lt;&lt; ievent+1 &lt;&lt; endl ;</b>
403
404
405<b>// gAlice-&gt;GetEvent(ievent) ;</b>
406<b>// gAlice-&gt;SetEvent(ievent) ;</b>
407
408<b>// if(gAlice-&gt;TreeS() == 0) gAlice-&gt;MakeTree("S");</b>
409<b>// <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fPHOS">fPHOS</a>-&gt;<a href=".././AliPHOSv1.html#AliPHOSv1:MakeBranch">MakeBranch</a>("S") ; </b>
410
411<b>// <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fPHOS">fPHOS</a>-&gt;Hits2SDigits() ; </b>
412
413<b>// if(gAlice-&gt;TreeD() == 0) gAlice-&gt;MakeTree("D");</b>
414<b>// <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fPHOS">fPHOS</a>-&gt;<a href=".././AliPHOSv1.html#AliPHOSv1:MakeBranch">MakeBranch</a>("D") ; </b>
415
416<b>// <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fPHOS">fPHOS</a>-&gt;SDigits2Digits() ;</b>
417
418<b>// if(gAlice-&gt;TreeR() == 0) gAlice-&gt;MakeTree("R");</b>
419
420<b>// <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fPHOS">fPHOS</a>-&gt;Reconstruction(fRec); </b>
421
422<b>// gAlice-&gt;TreeS()-&gt;Fill() ;</b>
423<b>// gAlice-&gt;TreeS()-&gt;Write(0,TObject::kOverwrite); </b>
424
425<b>// gAlice-&gt;TreeD()-&gt;Fill() ;</b>
426<b>// gAlice-&gt;TreeD()-&gt;Write(0,TObject::kOverwrite); </b>
427
428<b>// }</b>
429
430<b>// if(fClu) {delete fClu ; fClu =0 ;}</b>
431<b>// if(fPID) {delete fPID ; fPID =0 ;}</b>
432<b>// if(fRec) {delete fRec ; fRec =0 ;}</b>
433<b>// if(fTrs) {delete fTrs ; fTrs =0 ;}</b>
434
435<b>// }</b>
436
437<b>//-------------------------------------------------------------------------------------</b>
438<a name="AliPHOSAnalyze:ReadAndPrintCPV"> </a><a href="../ListOfTypes.html#void">void</a> <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:ReadAndPrintCPV">AliPHOSAnalyze::ReadAndPrintCPV</a>(<a href="../ListOfTypes.html#Int_t">Int_t</a> EvFirst, <a href="../ListOfTypes.html#Int_t">Int_t</a> EvLast)
439{
440<b>// //</b>
441<b>// // Read and print generated and reconstructed hits in CPV</b>
442<b>// // for events from EvFirst to Nevent.</b>
443<b>// // If only EvFirst is defined, print only this one event.</b>
444<b>// // Author: Yuri Kharlov</b>
445<b>// // 12 October 2000</b>
446<b>// //</b>
447
448<b>// if (EvFirst!=0 &amp;&amp; EvLast==0) EvLast=EvFirst;</b>
449<b>// for ( <a href="../ListOfTypes.html#Int_t">Int_t</a> ievent=EvFirst; ievent&lt;=EvLast; ievent++) { </b>
450
451<b>// //========== Event Number&gt;</b>
452<b>// cout &lt;&lt; endl &lt;&lt; "==== ReadAndPrintCPV ====&gt; Event is " &lt;&lt; ievent+1 &lt;&lt; endl ;</b>
453
454<b>// //=========== Connects the various Tree's for evt</b>
455<b>// <a href="../ListOfTypes.html#Int_t">Int_t</a> ntracks = gAlice-&gt;GetEvent(ievent);</b>
456
457<b>// //========== Creating branches ===================================</b>
458<b>// <a href=".././AliPHOSRecPoint.html#AliPHOSRecPoint:RecPointsList">AliPHOSRecPoint::RecPointsList</a> ** emcRecPoints = <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fPHOS">fPHOS</a>-&gt;EmcRecPoints() ;</b>
459<b>// gAlice-&gt;TreeR()-&gt;SetBranchAddress( "PHOSEmcRP" , emcRecPoints ) ;</b>
460
461<b>// <a href=".././AliPHOSRecPoint.html#AliPHOSRecPoint:RecPointsList">AliPHOSRecPoint::RecPointsList</a> ** cpvRecPoints = <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fPHOS">fPHOS</a>-&gt;PpsdRecPoints() ;</b>
462<b>// gAlice-&gt;TreeR()-&gt;SetBranchAddress( "PHOSPpsdRP", cpvRecPoints ) ;</b>
463
464<b>// // Read and print CPV hits</b>
465
466<b>// AliPHOSCPVModule cpvModule;</b>
467<b>// TClonesArray *cpvHits;</b>
468<b>// <a href="../ListOfTypes.html#Int_t">Int_t</a> nCPVhits;</b>
469<b>// AliPHOSCPVHit *cpvHit;</b>
470<b>// TLorentzVector p;</b>
471<b>// <a href="../ListOfTypes.html#Float_t">Float_t</a> xgen, zgen;</b>
472<b>// <a href="../ListOfTypes.html#Int_t">Int_t</a> ipart;</b>
473<b>// <a href="../ListOfTypes.html#Int_t">Int_t</a> nGenHits = 0;</b>
474<b>// for (<a href="../ListOfTypes.html#Int_t">Int_t</a> itrack=0; itrack&lt;ntracks; itrack++) {</b>
475<b>// //=========== Get the Hits Tree for the Primary track itrack</b>
476<b>// gAlice-&gt;ResetHits();</b>
477<b>// gAlice-&gt;TreeH()-&gt;GetEvent(itrack);</b>
478<b>// <a href="../ListOfTypes.html#Int_t">Int_t</a> iModule = 0 ; </b>
479<b>// for (iModule=0; iModule &lt; <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNCPVModules">GetNCPVModules</a>(); iModule++) {</b>
480<b>// cpvModule = <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fPHOS">fPHOS</a>-&gt;GetCPVModule(iModule);</b>
481<b>// cpvHits = cpvModule.Hits();</b>
482<b>// nCPVhits = cpvHits-&gt;GetEntriesFast();</b>
483<b>// for (<a href="../ListOfTypes.html#Int_t">Int_t</a> ihit=0; ihit&lt;nCPVhits; ihit++) {</b>
484<b>// nGenHits++;</b>
485<b>// cpvHit = (AliPHOSCPVHit*)cpvHits-&gt;UncheckedAt(ihit);</b>
486<b>// p = cpvHit-&gt;GetMomentum();</b>
487<b>// xgen = cpvHit-&gt;X();</b>
488<b>// zgen = cpvHit-&gt;Y();</b>
489<b>// ipart = cpvHit-&gt;GetIpart();</b>
490<b>// printf("CPV hit in module %d: ",iModule+1);</b>
491<b>// printf(" p = (%f, %f, %f, %f) GeV,n",</b>
492<b>// p.Px(),p.Py(),p.Pz(),p.Energy());</b>
493<b>// printf(" (X,Z) = (%8.4f, %8.4f) cm, ipart = %dn",</b>
494<b>// xgen,zgen,ipart);</b>
495<b>// }</b>
496<b>// }</b>
497<b>// }</b>
498
499<b>// // Read and print CPV reconstructed points</b>
500
501<b>// //=========== Gets the Reconstruction TTree</b>
502<b>// gAlice-&gt;TreeR()-&gt;GetEvent(0) ;</b>
503<b>// printf("Recpoints: %dn",(*<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fPHOS">fPHOS</a>-&gt;CpvRecPoints())-&gt;GetEntries());</b>
504<b>// TIter nextRP(*<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fPHOS">fPHOS</a>-&gt;CpvRecPoints() ) ;</b>
505<b>// <a href=".././AliPHOSCpvRecPoint.html">AliPHOSCpvRecPoint</a> *cpvRecPoint ;</b>
506<b>// <a href="../ListOfTypes.html#Int_t">Int_t</a> nRecPoints = 0;</b>
507<b>// while( ( cpvRecPoint = (<a href=".././AliPHOSCpvRecPoint.html">AliPHOSCpvRecPoint</a> *)nextRP() ) ) {</b>
508<b>// nRecPoints++;</b>
509<b>// TVector3 locpos;</b>
510<b>// cpvRecPoint-&gt;GetLocalPosition(locpos);</b>
511<b>// <a href="../ListOfTypes.html#Int_t">Int_t</a> phosModule = cpvRecPoint-&gt;GetPHOSMod();</b>
512<b>// printf("CPV recpoint in module %d: (X,Z) = (%f,%f) cmn",</b>
513<b>// phosModule,locpos.X(),locpos.Z());</b>
514<b>// }</b>
515<b>// printf("This event has %d generated hits and %d reconstructed pointsn",</b>
516<b>// nGenHits,nRecPoints);</b>
517<b>// }</b>
518}
519
520<b>//____________________________________________________________________________</b>
521<a name="AliPHOSAnalyze:AnalyzeCPV"> </a><a href="../ListOfTypes.html#void">void</a> <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:AnalyzeCPV">AliPHOSAnalyze::AnalyzeCPV</a>(<a href="../ListOfTypes.html#Int_t">Int_t</a> Nevents)
522{
523<b>// //</b>
524<b>// // Analyzes CPV characteristics</b>
525<b>// // Author: Yuri Kharlov</b>
526<b>// // 9 October 2000</b>
527<b>// //</b>
528
529<b>// // Book histograms</b>
530
531<b>// TH1F *hDx = new TH1F("hDx" ,"CPV x-resolution@reconstruction",100,-5. , 5.);</b>
532<b>// TH1F *hDz = new TH1F("hDz" ,"CPV z-resolution@reconstruction",100,-5. , 5.);</b>
533<b>// TH1F *hDr = new TH1F("hDr" ,"CPV r-resolution@reconstruction",100, 0. , 5.);</b>
534<b>// TH1S *hNrp = new TH1S("hNrp" ,"CPV rec.<a href="../ListOfTypes.html#point">point</a> multiplicity", 21,-0.5,20.5);</b>
535<b>// TH1S *hNrpX = new TH1S("hNrpX","CPV rec.<a href="../ListOfTypes.html#point">point</a> Phi-length" , 21,-0.5,20.5);</b>
536<b>// TH1S *hNrpZ = new TH1S("hNrpZ","CPV rec.<a href="../ListOfTypes.html#point">point</a> Z-length" , 21,-0.5,20.5);</b>
537
538<b>// cout &lt;&lt; "Start CPV Analysis"&lt;&lt; endl ;</b>
539<b>// for ( <a href="../ListOfTypes.html#Int_t">Int_t</a> ievent=0; ievent&lt;Nevents; ievent++) { </b>
540
541<b>// //========== Event Number&gt; </b>
542<b>// // if ( (ievent+1) % (<a href="../ListOfTypes.html#Int_t">Int_t</a>)TMath::Power( 10, (<a href="../ListOfTypes.html#Int_t">Int_t</a>)TMath::Log10(ievent+1) ) == 0)</b>
543<b>// cout &lt;&lt; endl &lt;&lt; "==== AnalyzeCPV ====&gt; Event is " &lt;&lt; ievent+1 &lt;&lt; endl ;</b>
544
545<b>// //=========== Connects the various Tree's for evt</b>
546<b>// <a href="../ListOfTypes.html#Int_t">Int_t</a> ntracks = gAlice-&gt;GetEvent(ievent);</b>
547
548<b>// //========== Creating branches ===================================</b>
549<b>// <a href=".././AliPHOSRecPoint.html#AliPHOSRecPoint:RecPointsList">AliPHOSRecPoint::RecPointsList</a> ** emcRecPoints = <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fPHOS">fPHOS</a>-&gt;EmcRecPoints() ;</b>
550<b>// gAlice-&gt;TreeR()-&gt;SetBranchAddress( "PHOSEmcRP" , emcRecPoints ) ;</b>
551
552<b>// <a href=".././AliPHOSRecPoint.html#AliPHOSRecPoint:RecPointsList">AliPHOSRecPoint::RecPointsList</a> ** cpvRecPoints = <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fPHOS">fPHOS</a>-&gt;PpsdRecPoints() ;</b>
553<b>// gAlice-&gt;TreeR()-&gt;SetBranchAddress( "PHOSPpsdRP", cpvRecPoints ) ;</b>
554
555<b>// // Create and fill arrays of hits for each CPV module</b>
556
557<b>// <a href="../ListOfTypes.html#Int_t">Int_t</a> nOfModules = <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNModules">GetNModules</a>();</b>
558<b>// TClonesArray **hitsPerModule = new TClonesArray *[nOfModules];</b>
559<b>// <a href="../ListOfTypes.html#Int_t">Int_t</a> iModule = 0; </b>
560<b>// for (iModule=0; iModule &lt; nOfModules; iModule++)</b>
561<b>// hitsPerModule[iModule] = new TClonesArray("AliPHOSCPVHit",100);</b>
562
563<b>// AliPHOSCPVModule cpvModule;</b>
564<b>// TClonesArray *cpvHits;</b>
565<b>// <a href="../ListOfTypes.html#Int_t">Int_t</a> nCPVhits;</b>
566<b>// AliPHOSCPVHit *cpvHit;</b>
567<b>// TLorentzVector p;</b>
568<b>// <a href="../ListOfTypes.html#Float_t">Float_t</a> xzgen[2];</b>
569<b>// <a href="../ListOfTypes.html#Int_t">Int_t</a> ipart;</b>
570
571<b>// // First go through all primary tracks and fill the arrays</b>
572<b>// // of hits per each CPV module</b>
573
574<b>// for (<a href="../ListOfTypes.html#Int_t">Int_t</a> itrack=0; itrack&lt;ntracks; itrack++) {</b>
575<b>// // Get the Hits Tree for the Primary track itrack</b>
576<b>// gAlice-&gt;ResetHits();</b>
577<b>// gAlice-&gt;TreeH()-&gt;GetEvent(itrack);</b>
578<b>// for (<a href="../ListOfTypes.html#Int_t">Int_t</a> iModule=0; iModule &lt; nOfModules; iModule++) {</b>
579<b>// cpvModule = <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fPHOS">fPHOS</a>-&gt;GetCPVModule(iModule);</b>
580<b>// cpvHits = cpvModule.Hits();</b>
581<b>// nCPVhits = cpvHits-&gt;GetEntriesFast();</b>
582<b>// for (<a href="../ListOfTypes.html#Int_t">Int_t</a> ihit=0; ihit&lt;nCPVhits; ihit++) {</b>
583<b>// cpvHit = (AliPHOSCPVHit*)cpvHits-&gt;UncheckedAt(ihit);</b>
584<b>// p = cpvHit-&gt;GetMomentum();</b>
585<b>// xzgen[0] = cpvHit-&gt;X();</b>
586<b>// xzgen[1] = cpvHit-&gt;Y();</b>
587<b>// ipart = cpvHit-&gt;GetIpart();</b>
588<b>// TClonesArray &amp;lhits = *(TClonesArray *)hitsPerModule[iModule];</b>
589<b>// new(lhits[hitsPerModule[iModule]-&gt;GetEntriesFast()]) AliPHOSCPVHit(*cpvHit);</b>
590<b>// }</b>
591<b>// cpvModule.Clear();</b>
592<b>// }</b>
593<b>// }</b>
594<b>// for (iModule=0; iModule &lt; nOfModules; iModule++) {</b>
595<b>// <a href="../ListOfTypes.html#Int_t">Int_t</a> nsum = hitsPerModule[iModule]-&gt;GetEntriesFast();</b>
596<b>// printf("Module %d has %d hitsn",iModule,nsum);</b>
597<b>// }</b>
598
599<b>// // Then go through reconstructed points and for each find</b>
600<b>// // the closeset hit</b>
601<b>// // The distance from the rec.<a href="../ListOfTypes.html#point">point</a> to the closest hit</b>
602<b>// // gives the coordinate resolution of the CPV</b>
603
604<b>// // Get the Reconstruction Tree</b>
605<b>// gAlice-&gt;TreeR()-&gt;GetEvent(0) ;</b>
606<b>// TIter nextRP(*<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fPHOS">fPHOS</a>-&gt;PpsdRecPoints() ) ;</b>
607<b>// <a href=".././AliPHOSCpvRecPoint.html">AliPHOSCpvRecPoint</a> *cpvRecPoint ;</b>
608<b>// <a href="../ListOfTypes.html#Float_t">Float_t</a> xgen, zgen;</b>
609<b>// while( ( cpvRecPoint = (<a href=".././AliPHOSCpvRecPoint.html">AliPHOSCpvRecPoint</a> *)nextRP() ) ) {</b>
610<b>// TVector3 locpos;</b>
611<b>// cpvRecPoint-&gt;GetLocalPosition(locpos);</b>
612<b>// <a href="../ListOfTypes.html#Int_t">Int_t</a> phosModule = cpvRecPoint-&gt;GetPHOSMod();</b>
613<b>// <a href="../ListOfTypes.html#Int_t">Int_t</a> rpMult = cpvRecPoint-&gt;GetDigitsMultiplicity();</b>
614<b>// <a href="../ListOfTypes.html#Int_t">Int_t</a> rpMultX, rpMultZ;</b>
615<b>// cpvRecPoint-&gt;GetClusterLengths(rpMultX,rpMultZ);</b>
616<b>// <a href="../ListOfTypes.html#Float_t">Float_t</a> xrec = locpos.X();</b>
617<b>// <a href="../ListOfTypes.html#Float_t">Float_t</a> zrec = locpos.Z();</b>
618<b>// <a href="../ListOfTypes.html#Float_t">Float_t</a> dxmin = 1.e+10;</b>
619<b>// <a href="../ListOfTypes.html#Float_t">Float_t</a> dzmin = 1.e+10;</b>
620<b>// <a href="../ListOfTypes.html#Float_t">Float_t</a> r2min = 1.e+10;</b>
621<b>// <a href="../ListOfTypes.html#Float_t">Float_t</a> r2;</b>
622
623<b>// cpvHits = hitsPerModule[phosModule-1];</b>
624<b>// <a href="../ListOfTypes.html#Int_t">Int_t</a> nCPVhits = cpvHits-&gt;GetEntriesFast();</b>
625<b>// for (<a href="../ListOfTypes.html#Int_t">Int_t</a> ihit=0; ihit&lt;nCPVhits; ihit++) {</b>
626<b>// cpvHit = (AliPHOSCPVHit*)cpvHits-&gt;UncheckedAt(ihit);</b>
627<b>// xgen = cpvHit-&gt;X();</b>
628<b>// zgen = cpvHit-&gt;Y();</b>
629<b>// r2 = TMath::Power((xgen-xrec),2) + TMath::Power((zgen-zrec),2);</b>
630<b>// if ( r2 &lt; r2min ) {</b>
631<b>// r2min = r2;</b>
632<b>// dxmin = xgen - xrec;</b>
633<b>// dzmin = zgen - zrec;</b>
634<b>// }</b>
635<b>// }</b>
636<b>// hDx -&gt;Fill(dxmin);</b>
637<b>// hDz -&gt;Fill(dzmin);</b>
638<b>// hDr -&gt;Fill(TMath::Sqrt(r2min));</b>
639<b>// hNrp -&gt;Fill(rpMult);</b>
640<b>// hNrpX-&gt;Fill(rpMultX);</b>
641<b>// hNrpZ-&gt;Fill(rpMultZ);</b>
642<b>// }</b>
643<b>// delete [] hitsPerModule;</b>
644<b>// }</b>
645<b>// // Save histograms</b>
646
647<b>// <a href="../ListOfTypes.html#Text_t">Text_t</a> outputname[80] ;</b>
648<b>// sprintf(outputname,"%s.analyzed",<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fRootFile">fRootFile</a>-&gt;GetName());</b>
649<b>// TFile output(outputname,"RECREATE");</b>
650<b>// output.cd();</b>
651
652<b>// hDx -&gt;Write() ;</b>
653<b>// hDz -&gt;Write() ;</b>
654<b>// hDr -&gt;Write() ;</b>
655<b>// hNrp -&gt;Write() ;</b>
656<b>// hNrpX-&gt;Write() ;</b>
657<b>// hNrpZ-&gt;Write() ;</b>
658
659<b>// // Plot histograms</b>
660
661<b>// TCanvas *cpvCanvas = new TCanvas("CPV","CPV analysis",20,20,800,400);</b>
662<b>// gStyle-&gt;SetOptStat(111111);</b>
663<b>// gStyle-&gt;SetOptFit(1);</b>
664<b>// gStyle-&gt;SetOptDate(1);</b>
665<b>// cpvCanvas-&gt;Divide(3,2);</b>
666
667<b>// cpvCanvas-&gt;cd(1);</b>
668<b>// gPad-&gt;SetFillColor(10);</b>
669<b>// hNrp-&gt;SetFillColor(16);</b>
670<b>// hNrp-&gt;Draw();</b>
671
672<b>// cpvCanvas-&gt;cd(2);</b>
673<b>// gPad-&gt;SetFillColor(10);</b>
674<b>// hNrpX-&gt;SetFillColor(16);</b>
675<b>// hNrpX-&gt;Draw();</b>
676
677<b>// cpvCanvas-&gt;cd(3);</b>
678<b>// gPad-&gt;SetFillColor(10);</b>
679<b>// hNrpZ-&gt;SetFillColor(16);</b>
680<b>// hNrpZ-&gt;Draw();</b>
681
682<b>// cpvCanvas-&gt;cd(4);</b>
683<b>// gPad-&gt;SetFillColor(10);</b>
684<b>// hDx-&gt;SetFillColor(16);</b>
685<b>// hDx-&gt;Fit("gaus");</b>
686<b>// hDx-&gt;Draw();</b>
687
688<b>// cpvCanvas-&gt;cd(5);</b>
689<b>// gPad-&gt;SetFillColor(10);</b>
690<b>// hDz-&gt;SetFillColor(16);</b>
691<b>// hDz-&gt;Fit("gaus");</b>
692<b>// hDz-&gt;Draw();</b>
693
694<b>// cpvCanvas-&gt;cd(6);</b>
695<b>// gPad-&gt;SetFillColor(10);</b>
696<b>// hDr-&gt;SetFillColor(16);</b>
697<b>// hDr-&gt;Draw();</b>
698
699<b>// cpvCanvas-&gt;Print("CPV.ps");</b>
700
701}
702
703<b>//____________________________________________________________________________</b>
704<a name="AliPHOSAnalyze:InvariantMass"> </a> <a href="../ListOfTypes.html#void">void</a> <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:InvariantMass">AliPHOSAnalyze::InvariantMass</a>(<a href="../ListOfTypes.html#Int_t">Int_t</a> Nevents )
705{
706<b> // Calculates Real and Mixed invariant mass distributions</b>
707
708 const <a href="../ListOfTypes.html#Int_t">Int_t</a> knMixedEvents = 4 ; //# of events used for calculation of 'mixed' distribution
709 <a href="../ListOfTypes.html#Int_t">Int_t</a> mixedLoops = (<a href="../ListOfTypes.html#Int_t">Int_t</a> )TMath::Ceil(Nevents/knMixedEvents) ;
710
711<b> //========== Booking Histograms</b>
712 TH2D * hRealEM = new TH2D("hRealEM", "Real for EM particles", 250,0.,1.,40,0.,4.) ;
713 TH2D * hRealPhot = new TH2D("hRealPhot", "Real for kPhoton particles", 250,0.,1.,40,0.,4.) ;
714 TH2D * hMixedEM = new TH2D("hMixedEM", "Mixed for EM particles", 250,0.,1.,40,0.,4.) ;
715 TH2D * hMixedPhot= new TH2D("hMixedPhot","Mixed for kPhoton particles",250,0.,1.,40,0.,4.) ;
716
717 <a href="../ListOfTypes.html#Int_t">Int_t</a> ievent;
718 <a href="../ListOfTypes.html#Int_t">Int_t</a> eventInMixedLoop ;
719
720 <a href="../ListOfTypes.html#Int_t">Int_t</a> nRecParticles[4];//knMixedEvents] ;
721
722 <a href=".././AliPHOSRecParticle.html#AliPHOSRecParticle:RecParticlesList">AliPHOSRecParticle::RecParticlesList</a> * allRecParticleList = new TClonesArray("<a href=".././AliPHOSRecParticle.html">AliPHOSRecParticle</a>", knMixedEvents*1000) ;
723
724 for(eventInMixedLoop = 0; eventInMixedLoop &lt; mixedLoops; eventInMixedLoop++ ){
725 <a href="../ListOfTypes.html#Int_t">Int_t</a> iRecPhot = 0 ;
726
727 for ( ievent=0; ievent &lt; knMixedEvents; ievent++){
728
729 <a href="../ListOfTypes.html#Int_t">Int_t</a> absEventNumber = eventInMixedLoop*knMixedEvents + ievent ;
730
731<b> //=========== Connects the various Tree's for evt</b>
732 gAlice-&gt;GetEvent(absEventNumber);
733
734<b> //========== Creating branches =================================== </b>
735 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fPHOS">fPHOS</a>-&gt;SetTreeAddress() ;
736
737 gAlice-&gt;TreeD()-&gt;GetEvent(0) ;
738 gAlice-&gt;TreeR()-&gt;GetEvent(0) ;
739
740 TClonesArray * recParticleList = <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fPHOS">fPHOS</a>-&gt;RecParticles() ;
741
742
743 <a href=".././AliPHOSRecParticle.html">AliPHOSRecParticle</a> * recParticle ;
744 <a href="../ListOfTypes.html#Int_t">Int_t</a> iRecParticle ;
745 for(iRecParticle = 0; iRecParticle &lt; recParticleList-&gt;GetEntries() ;iRecParticle++ )
746 {
747 recParticle = (<a href=".././AliPHOSRecParticle.html">AliPHOSRecParticle</a> *) recParticleList-&gt;At(iRecParticle) ;
748 if((recParticle-&gt;GetType() == <a href=".././AliPHOSFastRecParticle.html#AliPHOSFastRecParticle:kGAMMA">AliPHOSFastRecParticle::kGAMMA</a>)||
749 (recParticle-&gt;GetType() == <a href=".././AliPHOSFastRecParticle.html#AliPHOSFastRecParticle:kNEUTRALEM">AliPHOSFastRecParticle::kNEUTRALEM</a>)){
750 new( (*allRecParticleList)[iRecPhot] ) <a href=".././AliPHOSRecParticle.html">AliPHOSRecParticle</a>(*recParticle) ;
751 iRecPhot++;
752 }
753 }
754
755 nRecParticles[ievent] = iRecPhot-1 ;
756 }
757
758<b> //Now calculate invariant mass:</b>
759 <a href="../ListOfTypes.html#Int_t">Int_t</a> irp1,irp2 ;
760 <a href="../ListOfTypes.html#Int_t">Int_t</a> nCurEvent = 0 ;
761
762 for(irp1 = 0; irp1 &lt; allRecParticleList-&gt;GetEntries()-1; irp1++){
763 <a href=".././AliPHOSRecParticle.html">AliPHOSRecParticle</a> * rp1 = (<a href=".././AliPHOSRecParticle.html">AliPHOSRecParticle</a> *)allRecParticleList-&gt;At(irp1) ;
764
765 for(irp2 = irp1+1; irp2 &lt; allRecParticleList-&gt;GetEntries(); irp2++){
766 <a href=".././AliPHOSRecParticle.html">AliPHOSRecParticle</a> * rp2 = (<a href=".././AliPHOSRecParticle.html">AliPHOSRecParticle</a> *)allRecParticleList-&gt;At(irp2) ;
767
768 <a href="../ListOfTypes.html#Double_t">Double_t</a> invMass ;
769 invMass = (rp1-&gt;Energy()+rp2-&gt;Energy())*(rp1-&gt;Energy()+rp2-&gt;Energy())-
770 (rp1-&gt;Px()+rp2-&gt;Px())*(rp1-&gt;Px()+rp2-&gt;Px())-
771 (rp1-&gt;Py()+rp2-&gt;Py())*(rp1-&gt;Py()+rp2-&gt;Py())-
772 (rp1-&gt;Pz()+rp2-&gt;Pz())*(rp1-&gt;Pz()+rp2-&gt;Pz()) ;
773
774 if(invMass&gt; 0)
775 invMass = TMath::Sqrt(invMass);
776
777 <a href="../ListOfTypes.html#Double_t">Double_t</a> pt ;
778 pt = TMath::Sqrt((rp1-&gt;Px()+rp2-&gt;Px() )*( rp1-&gt;Px()+rp2-&gt;Px() ) +(rp1-&gt;Py()+rp2-&gt;Py())*(rp1-&gt;Py()+rp2-&gt;Py()));
779
780 if(irp1 &gt; nRecParticles[nCurEvent])
781 nCurEvent++;
782
783 if(irp2 &lt;= nRecParticles[nCurEvent]){ //'Real' event
784 hRealEM-&gt;Fill(invMass,pt);
785 if((rp1-&gt;GetType() == <a href=".././AliPHOSFastRecParticle.html#AliPHOSFastRecParticle:kGAMMA">AliPHOSFastRecParticle::kGAMMA</a>)&amp;&amp;(rp2-&gt;GetType() == <a href=".././AliPHOSFastRecParticle.html#AliPHOSFastRecParticle:kGAMMA">AliPHOSFastRecParticle::kGAMMA</a>))
786 hRealPhot-&gt;Fill(invMass,pt);
787 }
788 else{
789 hMixedEM-&gt;Fill(invMass,pt);
790 if((rp1-&gt;GetType() == <a href=".././AliPHOSFastRecParticle.html#AliPHOSFastRecParticle:kGAMMA">AliPHOSFastRecParticle::kGAMMA</a>)&amp;&amp;(rp2-&gt;GetType() == <a href=".././AliPHOSFastRecParticle.html#AliPHOSFastRecParticle:kGAMMA">AliPHOSFastRecParticle::kGAMMA</a>))
791 hMixedPhot-&gt;Fill(invMass,pt);
792 } //real-mixed
793
794 } //loop over second rp
795 }//loop over first rp
796 allRecParticleList-&gt;Delete() ;
797 } //Loop over events
798
799 delete allRecParticleList ;
800
801<b> //writing output</b>
802 TFile output("invmass.root","RECREATE");
803 output.cd();
804
805 hRealEM-&gt;Write() ;
806 hRealPhot-&gt;Write() ;
807 hMixedEM-&gt;Write() ;
808 hMixedPhot-&gt;Write() ;
809
810 output.Write();
811 output.Close();
812
813}
814
815<b>//____________________________________________________________________________</b>
816<a name="AliPHOSAnalyze:ReadAndPrintEMC"> </a> <a href="../ListOfTypes.html#void">void</a> <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:ReadAndPrintEMC">AliPHOSAnalyze::ReadAndPrintEMC</a>(<a href="../ListOfTypes.html#Int_t">Int_t</a> EvFirst, <a href="../ListOfTypes.html#Int_t">Int_t</a> EvLast)
817{
818<b>// //</b>
819<b>// // Read and print generated and reconstructed hits in EMC</b>
820<b>// // for events from EvFirst to Nevent.</b>
821<b>// // If only EvFirst is defined, print only this one event.</b>
822<b>// // Author: Yuri Kharlov</b>
823<b>// // 24 November 2000</b>
824<b>// //</b>
825
826<b>// if (EvFirst!=0 &amp;&amp; EvLast==0) EvLast=EvFirst;</b>
827<b>// <a href="../ListOfTypes.html#Int_t">Int_t</a> ievent;</b>
828<b>// for (ievent=EvFirst; ievent&lt;=EvLast; ievent++) { </b>
829
830<b>// //========== Event Number&gt;</b>
831<b>// cout &lt;&lt; endl &lt;&lt; "==== ReadAndPrintEMC ====&gt; Event is " &lt;&lt; ievent+1 &lt;&lt; endl ;</b>
832
833<b>// //=========== Connects the various Tree's for evt</b>
834<b>// <a href="../ListOfTypes.html#Int_t">Int_t</a> ntracks = gAlice-&gt;GetEvent(ievent);</b>
835<b>// <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fPHOS">fPHOS</a>-&gt;SetTreeAddress() ;</b>
836
837<b>// gAlice-&gt;TreeD()-&gt;GetEvent(0) ;</b>
838<b>// gAlice-&gt;TreeR()-&gt;GetEvent(0) ;</b>
839
840<b>// // Loop over reconstructed particles</b>
841
842<b>// TClonesArray ** recParticleList = <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fPHOS">fPHOS</a>-&gt;RecParticles() ; </b>
843<b>// <a href=".././AliPHOSRecParticle.html">AliPHOSRecParticle</a> * recParticle ;</b>
844<b>// <a href="../ListOfTypes.html#Int_t">Int_t</a> iRecParticle ;</b>
845<b>// <a href="../ListOfTypes.html#Int_t">Int_t</a> *primList;</b>
846<b>// <a href="../ListOfTypes.html#Int_t">Int_t</a> nPrimary;</b>
847<b>// for(iRecParticle = 0; iRecParticle &lt; (*recParticleList)-&gt;GetEntries() ;iRecParticle++ ) {</b>
848<b>// recParticle = (<a href=".././AliPHOSRecParticle.html">AliPHOSRecParticle</a> *) (*recParticleList)-&gt;At(iRecParticle) ;</b>
849<b>// <a href="../ListOfTypes.html#Float_t">Float_t</a> recE = recParticle-&gt;Energy();</b>
850<b>// primList = recParticle-&gt;GetPrimaries(nPrimary);</b>
851<b>// <a href="../ListOfTypes.html#Int_t">Int_t</a> moduleNumberRec ;</b>
852<b>// <a href="../ListOfTypes.html#Double_t">Double_t</a> recX, recZ ;</b>
853<b>// <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:ImpactOnEmc">ImpactOnEmc</a>(recParticle-&gt;Theta(), recParticle-&gt;Phi(), moduleNumberRec, recX, recZ) ;</b>
854<b>// printf("Rec <a href="../ListOfTypes.html#point">point</a>: module %d, (X,Z) = (%8.4f,%8.4f) cm, E = %.3f GeV, primary = %dn",</b>
855<b>// moduleNumberRec,recX,recZ,recE,*primList);</b>
856<b>// }</b>
857
858<b>// // Read and print EMC hits from EMCn branches</b>
859
860<b>// AliPHOSCPVModule emcModule;</b>
861<b>// TClonesArray *emcHits;</b>
862<b>// <a href="../ListOfTypes.html#Int_t">Int_t</a> nEMChits;</b>
863<b>// AliPHOSCPVHit *emcHit;</b>
864<b>// TLorentzVector p;</b>
865<b>// <a href="../ListOfTypes.html#Float_t">Float_t</a> xgen, zgen;</b>
866<b>// <a href="../ListOfTypes.html#Int_t">Int_t</a> ipart, primary;</b>
867<b>// <a href="../ListOfTypes.html#Int_t">Int_t</a> nGenHits = 0;</b>
868<b>// for (<a href="../ListOfTypes.html#Int_t">Int_t</a> itrack=0; itrack&lt;ntracks; itrack++) {</b>
869<b>// //=========== Get the Hits Tree for the Primary track itrack</b>
870<b>// gAlice-&gt;ResetHits();</b>
871<b>// gAlice-&gt;TreeH()-&gt;GetEvent(itrack);</b>
872<b>// <a href="../ListOfTypes.html#Int_t">Int_t</a> iModule = 0 ;</b>
873<b>// for (iModule=0; iModule &lt; <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNModules">GetNModules</a>(); iModule++) {</b>
874<b>// emcModule = <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fPHOS">fPHOS</a>-&gt;GetEMCModule(iModule);</b>
875<b>// emcHits = emcModule.Hits();</b>
876<b>// nEMChits = emcHits-&gt;GetEntriesFast();</b>
877<b>// for (<a href="../ListOfTypes.html#Int_t">Int_t</a> ihit=0; ihit&lt;nEMChits; ihit++) {</b>
878<b>// nGenHits++;</b>
879<b>// emcHit = (AliPHOSCPVHit*)emcHits-&gt;UncheckedAt(ihit);</b>
880<b>// p = emcHit-&gt;GetMomentum();</b>
881<b>// xgen = emcHit-&gt;X();</b>
882<b>// zgen = emcHit-&gt;Y();</b>
883<b>// ipart = emcHit-&gt;GetIpart();</b>
884<b>// primary= emcHit-&gt;GetTrack();</b>
885<b>// printf("EMC hit A: module %d, ",iModule+1);</b>
886<b>// printf(" p = (%f .4, %f .4, %f .4, %f .4) GeV,n",</b>
887<b>// p.Px(),p.Py(),p.Pz(),p.Energy());</b>
888<b>// printf(" (X,Z) = (%8.4f, %8.4f) cm, ipart = %d, primary = %dn",</b>
889<b>// xgen,zgen,ipart,primary);</b>
890<b>// }</b>
891<b>// }</b>
892<b>// }</b>
893
894<b>// // // Read and print EMC hits from PHOS branch</b>
895
896<b>// // for (<a href="../ListOfTypes.html#Int_t">Int_t</a> itrack=0; itrack&lt;ntracks; itrack++) {</b>
897<b>// // //=========== Get the Hits Tree for the Primary track itrack</b>
898<b>// // gAlice-&gt;ResetHits();</b>
899<b>// // gAlice-&gt;TreeH()-&gt;GetEvent(itrack);</b>
900<b>// // TClonesArray *hits = <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fPHOS">fPHOS</a>-&gt;Hits();</b>
901<b>// // <a href=".././AliPHOSHit.html">AliPHOSHit</a> *hit ;</b>
902<b>// // <a href="../ListOfTypes.html#Int_t">Int_t</a> ihit;</b>
903<b>// // for ( ihit = 0 ; ihit &lt; hits-&gt;GetEntries() ; ihit++ ) {</b>
904<b>// // hit = (<a href=".././AliPHOSHit.html">AliPHOSHit</a>*)hits-&gt;At(ihit) ;</b>
905<b>// // <a href="../ListOfTypes.html#Float_t">Float_t</a> hitXYZ[3];</b>
906<b>// // hitXYZ[0] = hit-&gt;X();</b>
907<b>// // hitXYZ[1] = hit-&gt;Y();</b>
908<b>// // hitXYZ[2] = hit-&gt;Z();</b>
909<b>// // ipart = hit-&gt;GetPid();</b>
910<b>// // primary = hit-&gt;GetPrimary();</b>
911<b>// // <a href="../ListOfTypes.html#Int_t">Int_t</a> absId = hit-&gt;GetId();</b>
912<b>// // <a href="../ListOfTypes.html#Int_t">Int_t</a> relId[4];</b>
913<b>// // <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:AbsToRelNumbering">AbsToRelNumbering</a>(absId, relId) ;</b>
914<b>// // <a href="../ListOfTypes.html#Int_t">Int_t</a> module = relId[0];</b>
915<b>// // if (relId[1]==0 &amp;&amp; !(hitXYZ[0]==0 &amp;&amp; hitXYZ[2]==0))</b>
916<b>// // printf("EMC hit B: module %d, (X,Z) = (%8.4f, %8.4f) cm, ipart = %d, primary = %dn",</b>
917<b>// // module,hitXYZ[0],hitXYZ[2],ipart,primary);</b>
918<b>// // }</b>
919<b>// // }</b>
920
921<b>// }</b>
922}
923
924<b>//____________________________________________________________________________</b>
925<a name="AliPHOSAnalyze:AnalyzeEMC"> </a> <a href="../ListOfTypes.html#void">void</a> <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:AnalyzeEMC">AliPHOSAnalyze::AnalyzeEMC</a>(<a href="../ListOfTypes.html#Int_t">Int_t</a> Nevents)
926{
927<b>// //</b>
928<b>// // Read generated and reconstructed hits in EMC for Nevents events.</b>
929<b>// // Plots the coordinate and energy resolution histograms.</b>
930<b>// // Coordinate resolution is a difference between the reconstructed</b>
931<b>// // coordinate and the exact coordinate on the face of the PHOS</b>
932<b>// // Author: Yuri Kharlov</b>
933<b>// // 27 November 2000</b>
934<b>// //</b>
935
936<b>// // Book histograms</b>
937
938<b>// TH1F *hDx1 = new TH1F("hDx1" ,"EMC x-resolution", 100,-5. , 5.);</b>
939<b>// TH1F *hDz1 = new TH1F("hDz1" ,"EMC z-resolution", 100,-5. , 5.);</b>
940<b>// TH1F *hDE1 = new TH1F("hDE1" ,"EMC E-resolution", 100,-2. , 2.);</b>
941
942<b>// TH2F *hDx2 = new TH2F("hDx2" ,"EMC x-resolution", 100, 0., 10., 100,-5. , 5.);</b>
943<b>// TH2F *hDz2 = new TH2F("hDz2" ,"EMC z-resolution", 100, 0., 10., 100,-5. , 5.);</b>
944<b>// TH2F *hDE2 = new TH2F("hDE2" ,"EMC E-resolution", 100, 0., 10., 100, 0. , 5.);</b>
945
946<b>// cout &lt;&lt; "Start EMC Analysis"&lt;&lt; endl ;</b>
947<b>// for (<a href="../ListOfTypes.html#Int_t">Int_t</a> ievent=0; ievent&lt;Nevents; ievent++) { </b>
948
949<b>// //========== Event Number&gt; </b>
950<b>// if ( (ievent+1) % (<a href="../ListOfTypes.html#Int_t">Int_t</a>)TMath::Power( 10, (<a href="../ListOfTypes.html#Int_t">Int_t</a>)TMath::Log10(ievent+1) ) == 0)</b>
951<b>// cout &lt;&lt; "==== AnalyzeEMC ====&gt; Event is " &lt;&lt; ievent+1 &lt;&lt; endl ;</b>
952
953<b>// //=========== Connects the various Tree's for evt</b>
954<b>// <a href="../ListOfTypes.html#Int_t">Int_t</a> ntracks = gAlice-&gt;GetEvent(ievent);</b>
955
956<b>// <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fPHOS">fPHOS</a>-&gt;SetTreeAddress() ;</b>
957
958<b>// gAlice-&gt;TreeD()-&gt;GetEvent(0) ;</b>
959<b>// gAlice-&gt;TreeR()-&gt;GetEvent(0) ;</b>
960
961<b>// // Create and fill arrays of hits for each EMC module</b>
962
963<b>// <a href="../ListOfTypes.html#Int_t">Int_t</a> nOfModules = <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:GetNModules">GetNModules</a>();</b>
964<b>// TClonesArray **hitsPerModule = new TClonesArray *[nOfModules];</b>
965<b>// <a href="../ListOfTypes.html#Int_t">Int_t</a> iModule;</b>
966<b>// for (iModule=0; iModule &lt; nOfModules; iModule++)</b>
967<b>// hitsPerModule[iModule] = new TClonesArray("AliPHOSCPVHit",100);</b>
968
969<b>// AliPHOSCPVModule emcModule;</b>
970<b>// TClonesArray *emcHits;</b>
971<b>// <a href="../ListOfTypes.html#Int_t">Int_t</a> nEMChits;</b>
972<b>// AliPHOSCPVHit *emcHit;</b>
973
974<b>// // First go through all primary tracks and fill the arrays</b>
975<b>// // of hits per each EMC module</b>
976
977<b>// for (<a href="../ListOfTypes.html#Int_t">Int_t</a> itrack=0; itrack&lt;ntracks; itrack++) {</b>
978<b>// // Get the Hits Tree for the Primary track itrack</b>
979<b>// gAlice-&gt;ResetHits();</b>
980<b>// gAlice-&gt;TreeH()-&gt;GetEvent(itrack);</b>
981<b>// for (<a href="../ListOfTypes.html#Int_t">Int_t</a> iModule=0; iModule &lt; nOfModules; iModule++) {</b>
982<b>// emcModule = <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fPHOS">fPHOS</a>-&gt;GetEMCModule(iModule);</b>
983<b>// emcHits = emcModule.Hits();</b>
984<b>// nEMChits = emcHits-&gt;GetEntriesFast();</b>
985<b>// for (<a href="../ListOfTypes.html#Int_t">Int_t</a> ihit=0; ihit&lt;nEMChits; ihit++) {</b>
986<b>// emcHit = (AliPHOSCPVHit*)emcHits-&gt;UncheckedAt(ihit);</b>
987<b>// TClonesArray &amp;lhits = *(TClonesArray *)hitsPerModule[iModule];</b>
988<b>// new(lhits[hitsPerModule[iModule]-&gt;GetEntriesFast()]) AliPHOSCPVHit(*emcHit);</b>
989<b>// }</b>
990<b>// emcModule.Clear();</b>
991<b>// }</b>
992<b>// }</b>
993
994<b>// // Loop over reconstructed particles</b>
995
996<b>// TClonesArray ** recParticleList = <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fPHOS">fPHOS</a>-&gt;RecParticles() ; </b>
997<b>// <a href=".././AliPHOSRecParticle.html">AliPHOSRecParticle</a> * recParticle ;</b>
998<b>// <a href="../ListOfTypes.html#Int_t">Int_t</a> nEMCrecs = (*recParticleList)-&gt;GetEntries();</b>
999<b>// if (nEMCrecs == 1) {</b>
1000<b>// recParticle = (<a href=".././AliPHOSRecParticle.html">AliPHOSRecParticle</a> *) (*recParticleList)-&gt;At(0) ;</b>
1001<b>// <a href="../ListOfTypes.html#Float_t">Float_t</a> recE = recParticle-&gt;Energy();</b>
1002<b>// <a href="../ListOfTypes.html#Int_t">Int_t</a> phosModule;</b>
1003<b>// <a href="../ListOfTypes.html#Double_t">Double_t</a> recX, recZ ;</b>
1004<b>// <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:ImpactOnEmc">ImpactOnEmc</a>(recParticle-&gt;Theta(), recParticle-&gt;Phi(), phosModule, recX, recZ) ;</b>
1005
1006<b>// // for this rec.<a href="../ListOfTypes.html#point">point</a> take the hit list in the same PHOS module</b>
1007
1008<b>// emcHits = hitsPerModule[phosModule-1];</b>
1009<b>// <a href="../ListOfTypes.html#Int_t">Int_t</a> nEMChits = emcHits-&gt;GetEntriesFast();</b>
1010<b>// if (nEMChits == 1) {</b>
1011<b>// <a href="../ListOfTypes.html#Float_t">Float_t</a> genX, genZ, genE;</b>
1012<b>// for (<a href="../ListOfTypes.html#Int_t">Int_t</a> ihit=0; ihit&lt;nEMChits; ihit++) {</b>
1013<b>// emcHit = (AliPHOSCPVHit*)emcHits-&gt;UncheckedAt(ihit);</b>
1014<b>// genX = emcHit-&gt;X();</b>
1015<b>// genZ = emcHit-&gt;Y();</b>
1016<b>// genE = emcHit-&gt;GetMomentum().E();</b>
1017<b>// }</b>
1018<b>// <a href="../ListOfTypes.html#Float_t">Float_t</a> dx = recX - genX;</b>
1019<b>// <a href="../ListOfTypes.html#Float_t">Float_t</a> dz = recZ - genZ;</b>
1020<b>// <a href="../ListOfTypes.html#Float_t">Float_t</a> de = recE - genE;</b>
1021<b>// hDx1 -&gt;Fill(dx);</b>
1022<b>// hDz1 -&gt;Fill(dz);</b>
1023<b>// hDE1 -&gt;Fill(de);</b>
1024<b>// hDx2 -&gt;Fill(genE,dx);</b>
1025<b>// hDz2 -&gt;Fill(genE,dz);</b>
1026<b>// hDE2 -&gt;Fill(genE,recE);</b>
1027<b>// }</b>
1028<b>// }</b>
1029<b>// delete [] hitsPerModule;</b>
1030<b>// }</b>
1031<b>// // Save histograms</b>
1032
1033<b>// <a href="../ListOfTypes.html#Text_t">Text_t</a> outputname[80] ;</b>
1034<b>// sprintf(outputname,"%s.analyzed",<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fRootFile">fRootFile</a>-&gt;GetName());</b>
1035<b>// TFile output(outputname,"RECREATE");</b>
1036<b>// output.cd();</b>
1037
1038<b>// hDx1 -&gt;Write() ;</b>
1039<b>// hDz1 -&gt;Write() ;</b>
1040<b>// hDE1 -&gt;Write() ;</b>
1041<b>// hDx2 -&gt;Write() ;</b>
1042<b>// hDz2 -&gt;Write() ;</b>
1043<b>// hDE2 -&gt;Write() ;</b>
1044
1045<b>// // Plot histograms</b>
1046
1047<b>// TCanvas *emcCanvas = new TCanvas("EMC","EMC analysis",20,20,700,300);</b>
1048<b>// gStyle-&gt;SetOptStat(111111);</b>
1049<b>// gStyle-&gt;SetOptFit(1);</b>
1050<b>// gStyle-&gt;SetOptDate(1);</b>
1051<b>// emcCanvas-&gt;Divide(3,1);</b>
1052
1053<b>// emcCanvas-&gt;cd(1);</b>
1054<b>// gPad-&gt;SetFillColor(10);</b>
1055<b>// hDx1-&gt;SetFillColor(16);</b>
1056<b>// hDx1-&gt;Draw();</b>
1057
1058<b>// emcCanvas-&gt;cd(2);</b>
1059<b>// gPad-&gt;SetFillColor(10);</b>
1060<b>// hDz1-&gt;SetFillColor(16);</b>
1061<b>// hDz1-&gt;Draw();</b>
1062
1063<b>// emcCanvas-&gt;cd(3);</b>
1064<b>// gPad-&gt;SetFillColor(10);</b>
1065<b>// hDE1-&gt;SetFillColor(16);</b>
1066<b>// hDE1-&gt;Draw();</b>
1067
1068<b>// emcCanvas-&gt;Print("EMC.ps");</b>
1069
1070}
1071
1072<b>//____________________________________________________________________________</b>
1073<a name="AliPHOSAnalyze:AnalyzeResolutions"> </a> <a href="../ListOfTypes.html#void">void</a> <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:AnalyzeResolutions">AliPHOSAnalyze::AnalyzeResolutions</a>(<a href="../ListOfTypes.html#Int_t">Int_t</a> Nevents )
1074{
1075<b> // analyzes Nevents events and calculate Energy and Position resolution as well as</b>
1076<b> // probaility of correct indentifiing of the incident particle</b>
1077
1078<b> //========== Booking Histograms</b>
1079 cout &lt;&lt; "AnalyzeResolutions &gt; " &lt;&lt; "Booking Histograms" &lt;&lt; endl ;
1080 <a href="#AliPHOSAnalyze:BookResolutionHistograms">BookResolutionHistograms</a>();
1081
1082 <a href="../ListOfTypes.html#Int_t">Int_t</a> counter[9][5] ;
1083 <a href="../ListOfTypes.html#Int_t">Int_t</a> i1,i2,totalInd = 0 ;
1084 for(i1 = 0; i1&lt;9; i1++)
1085 for(i2 = 0; i2&lt;5; i2++)
1086 counter[i1][i2] = 0 ;
1087
1088 <a href="../ListOfTypes.html#Int_t">Int_t</a> totalPrimary = 0 ;
1089 <a href="../ListOfTypes.html#Int_t">Int_t</a> totalRecPart = 0 ;
1090 <a href="../ListOfTypes.html#Int_t">Int_t</a> totalRPwithPrim = 0 ;
1091 <a href="../ListOfTypes.html#Int_t">Int_t</a> ievent;
1092
1093 cout &lt;&lt; "Start Analysing"&lt;&lt; endl ;
1094 for ( ievent=0; ievent&lt;Nevents; ievent++)
1095 {
1096
1097<b> //========== Event Number&gt; </b>
1098<b> // if ( ( log10((<a href="../ListOfTypes.html#Float_t">Float_t</a>)(ievent+1)) - (<a href="../ListOfTypes.html#Int_t">Int_t</a>)(log10((<a href="../ListOfTypes.html#Float_t">Float_t</a>)(ievent+1))) ) == 0. ) </b>
1099 cout &lt;&lt; "AnalyzeResolutions &gt; " &lt;&lt; "Event is " &lt;&lt; ievent &lt;&lt; endl ;
1100
1101<b> //=========== Connects the various Tree's for evt</b>
1102 gAlice-&gt;GetEvent(ievent);
1103
1104<b> //=========== Gets the Kine TTree</b>
1105 gAlice-&gt;TreeK()-&gt;GetEvent(0) ;
1106
1107<b> //=========== Gets the list of Primari Particles</b>
1108
1109 TParticle * primary ;
1110 <a href="../ListOfTypes.html#Int_t">Int_t</a> iPrimary ;
1111 for ( iPrimary = 0 ; iPrimary &lt; gAlice-&gt;GetNtrack() ; iPrimary++)
1112 {
1113 primary = gAlice-&gt;Particle(iPrimary) ;
1114 <a href="../ListOfTypes.html#Int_t">Int_t</a> primaryType = primary-&gt;GetPdgCode() ;
1115 if( primaryType == 22 ) {
1116 <a href="../ListOfTypes.html#Int_t">Int_t</a> moduleNumber ;
1117 <a href="../ListOfTypes.html#Double_t">Double_t</a> primX, primZ ;
1118 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:ImpactOnEmc">ImpactOnEmc</a>(primary-&gt;Theta(), primary-&gt;Phi(), moduleNumber, primX, primZ) ;
1119 if(moduleNumber){
1120 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPrimary">fhPrimary</a>-&gt;Fill(primary-&gt;Energy()) ;
1121 if(primary-&gt;Energy() &gt; 0.3)
1122 totalPrimary++ ;
1123 }
1124 }
1125 }
1126
1127 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fPHOS">fPHOS</a>-&gt;SetTreeAddress() ;
1128
1129 gAlice-&gt;TreeD()-&gt;GetEvent(0) ;
1130 gAlice-&gt;TreeR()-&gt;GetEvent(0) ;
1131
1132 TClonesArray * recParticleList = <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fPHOS">fPHOS</a>-&gt;RecParticles() ;
1133
1134 <a href=".././AliPHOSRecParticle.html">AliPHOSRecParticle</a> * recParticle ;
1135 <a href="../ListOfTypes.html#Int_t">Int_t</a> iRecParticle ;
1136 for(iRecParticle = 0; iRecParticle &lt; recParticleList-&gt;GetEntries() ;iRecParticle++ )
1137 {
1138 recParticle = (<a href=".././AliPHOSRecParticle.html">AliPHOSRecParticle</a> *) recParticleList-&gt;At(iRecParticle) ;
1139 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllRP">fhAllRP</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy())) ;
1140
1141 <a href="../ListOfTypes.html#Int_t">Int_t</a> moduleNumberRec ;
1142 <a href="../ListOfTypes.html#Double_t">Double_t</a> recX, recZ ;
1143 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:ImpactOnEmc">ImpactOnEmc</a>(recParticle-&gt;Theta(), recParticle-&gt;Phi(), moduleNumberRec, recX, recZ) ;
1144
1145 <a href="../ListOfTypes.html#Double_t">Double_t</a> minDistance = 100. ;
1146 <a href="../ListOfTypes.html#Int_t">Int_t</a> closestPrimary = -1 ;
1147
1148 <a href="../ListOfTypes.html#Int_t">Int_t</a> numberofprimaries ;
1149 <a href="../ListOfTypes.html#Int_t">Int_t</a> * listofprimaries = recParticle-&gt;GetPrimaries(numberofprimaries) ;
1150 <a href="../ListOfTypes.html#Int_t">Int_t</a> index ;
1151 TParticle * primary ;
1152 <a href="../ListOfTypes.html#Double_t">Double_t</a> distance = minDistance ;
1153 <a href="../ListOfTypes.html#Double_t">Double_t</a> dX, dZ;
1154 <a href="../ListOfTypes.html#Double_t">Double_t</a> dXmin = 0.;
1155 <a href="../ListOfTypes.html#Double_t">Double_t</a> dZmin = 0. ;
1156 for ( index = 0 ; index &lt; numberofprimaries ; index++){
1157 primary = gAlice-&gt;Particle(listofprimaries[index]) ;
1158 <a href="../ListOfTypes.html#Int_t">Int_t</a> moduleNumber ;
1159 <a href="../ListOfTypes.html#Double_t">Double_t</a> primX, primZ ;
1160 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fGeom">fGeom</a>-&gt;<a href=".././AliPHOSGeometry.html#AliPHOSGeometry:ImpactOnEmc">ImpactOnEmc</a>(primary-&gt;Theta(), primary-&gt;Phi(), moduleNumber, primX, primZ) ;
1161 if(moduleNumberRec == moduleNumber) {
1162 dX = recX - primX;
1163 dZ = recZ - primZ;
1164 distance = TMath::Sqrt(dX*dX + dZ*dZ) ;
1165 if(minDistance &gt; distance) {
1166 minDistance = distance ;
1167 dXmin = dX;
1168 dZmin = dZ;
1169 closestPrimary = listofprimaries[index] ;
1170 }
1171 }
1172 }
1173 totalRecPart++ ;
1174
1175 if(closestPrimary &gt;=0 ){
1176 totalRPwithPrim++;
1177
1178 <a href="../ListOfTypes.html#Int_t">Int_t</a> primaryType = gAlice-&gt;Particle(closestPrimary)-&gt;GetPdgCode() ;
1179<b>// TParticlePDG* pDGparticle = gAlice-&gt;ParticleAt(closestPrimary)-&gt;GetPDG();</b>
1180<b>// <a href="../ListOfTypes.html#Double_t">Double_t</a> charge = PDGparticle-&gt;Charge() ;</b>
1181<b>// if(charge)</b>
1182<b>// cout &lt;&lt;"Primary " &lt;&lt;primaryType &lt;&lt; " E " &lt;&lt; ((TParticle *)primaryList-&gt;At(closestPrimary))-&gt;Energy() &lt;&lt; endl ;</b>
1183 <a href="../ListOfTypes.html#Int_t">Int_t</a> primaryCode ;
1184 switch(primaryType)
1185 {
1186 case 22:
1187 primaryCode = 0; //Photon
1188 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllEnergy">fhAllEnergy</a> -&gt;Fill(gAlice-&gt;Particle(closestPrimary)-&gt;Energy(), recParticle-&gt;Energy()) ;
1189 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllPosition">fhAllPosition</a> -&gt;Fill(gAlice-&gt;Particle(closestPrimary)-&gt;Energy(), minDistance) ;
1190 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllPositionX">fhAllPositionX</a>-&gt;Fill(dXmin);
1191 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllPositionZ">fhAllPositionZ</a>-&gt;Fill(dZmin);
1192 break;
1193 case 11 :
1194 primaryCode = 1; //Electron
1195 break;
1196 case -11 :
1197 primaryCode = 1; //positron
1198 break;
1199 case 321 :
1200 primaryCode = 4; //K+
1201 break;
1202 case -321 :
1203 primaryCode = 4; //K-
1204 break;
1205 case 310 :
1206 primaryCode = 4; //K0s
1207 break;
1208 case 130 :
1209 primaryCode = 4; //K0l
1210 break;
1211 case 211 :
1212 primaryCode = 2; //K0l
1213 break;
1214 case -211 :
1215 primaryCode = 2; //K0l
1216 break;
1217 case 2212 :
1218 primaryCode = 2; //K0l
1219 break;
1220 case -2212 :
1221 primaryCode = 2; //K0l
1222 break;
1223 default:
1224 primaryCode = 3; //ELSE
1225 break;
1226 }
1227
1228 switch(recParticle-&gt;GetType())
1229 {
1230 case <a href=".././AliPHOSFastRecParticle.html#AliPHOSFastRecParticle:kGAMMA">AliPHOSFastRecParticle::kGAMMA</a>:
1231 if(primaryType == 22){
1232 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotEnergy">fhPhotEnergy</a>-&gt;Fill(gAlice-&gt;Particle(closestPrimary)-&gt;Energy(), recParticle-&gt;Energy() ) ;
1233 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhEMEnergy">fhEMEnergy</a>-&gt;Fill(gAlice-&gt;Particle(closestPrimary)-&gt;Energy(), recParticle-&gt;Energy() ) ;
1234 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPPSDEnergy">fhPPSDEnergy</a>-&gt;Fill(gAlice-&gt;Particle(closestPrimary)-&gt;Energy(), recParticle-&gt;Energy() ) ;
1235
1236 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotPosition">fhPhotPosition</a>-&gt;Fill(gAlice-&gt;Particle(closestPrimary)-&gt;Energy(),minDistance) ;
1237 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhEMPosition">fhEMPosition</a>-&gt;Fill(gAlice-&gt;Particle(closestPrimary)-&gt;Energy(),minDistance) ;
1238 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPPSDPosition">fhPPSDPosition</a>-&gt;Fill(gAlice-&gt;Particle(closestPrimary)-&gt;Energy(),minDistance) ;
1239
1240 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotReg">fhPhotReg</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1241 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotEM">fhPhotEM</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1242 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotPPSD">fhPhotPPSD</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1243
1244 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotPhot">fhPhotPhot</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1245 }
1246 if(primaryType == 2112){ //neutron
1247 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNReg">fhNReg</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1248 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNEM">fhNEM</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1249 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNPPSD">fhNPPSD</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1250 }
1251
1252 if(primaryType == -2112){ //neutron ~
1253 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNBarReg">fhNBarReg</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1254 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNBarEM">fhNBarEM</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1255 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNBarPPSD">fhNBarPPSD</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1256
1257 }
1258 if(primaryCode == 2){
1259 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhChargedReg">fhChargedReg</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1260 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhChargedEM">fhChargedEM</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1261 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhChargedPPSD">fhChargedPPSD</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1262 }
1263
1264 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllReg">fhAllReg</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1265 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllEM">fhAllEM</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1266 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllPPSD">fhAllPPSD</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1267 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhShape">fhShape</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1268 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhVeto">fhVeto</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1269 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPPSD">fhPPSD</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1270 counter[0][primaryCode]++;
1271 break;
1272 case <a href=".././AliPHOSFastRecParticle.html#AliPHOSFastRecParticle:kELECTRON">AliPHOSFastRecParticle::kELECTRON</a>:
1273 if(primaryType == 22){
1274 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotElec">fhPhotElec</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1275 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhEMEnergy">fhEMEnergy</a>-&gt;Fill(gAlice-&gt;Particle(closestPrimary)-&gt;Energy(), recParticle-&gt;Energy() ) ;
1276 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhEMPosition">fhEMPosition</a>-&gt;Fill(gAlice-&gt;Particle(closestPrimary)-&gt;Energy(),minDistance) ;
1277 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotEM">fhPhotEM</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1278 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotPPSD">fhPhotPPSD</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1279 }
1280 if(primaryType == 2112){ //neutron
1281 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNEM">fhNEM</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1282 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNPPSD">fhNPPSD</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1283 }
1284
1285 if(primaryType == -2112){ //neutron ~
1286 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNBarEM">fhNBarEM</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1287 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNBarPPSD">fhNBarPPSD</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1288
1289 }
1290 if(primaryCode == 2){
1291 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhChargedEM">fhChargedEM</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1292 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhChargedPPSD">fhChargedPPSD</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1293 }
1294
1295 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllEM">fhAllEM</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1296 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllPPSD">fhAllPPSD</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1297 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhShape">fhShape</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1298 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPPSD">fhPPSD</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1299 counter[1][primaryCode]++;
1300 break;
1301 case <a href=".././AliPHOSFastRecParticle.html#AliPHOSFastRecParticle:kNEUTRALHA">AliPHOSFastRecParticle::kNEUTRALHA</a>:
1302 if(primaryType == 22)
1303 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotNeuH">fhPhotNeuH</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1304
1305 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhVeto">fhVeto</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1306 counter[2][primaryCode]++;
1307 break ;
1308 case <a href=".././AliPHOSFastRecParticle.html#AliPHOSFastRecParticle:kNEUTRALEM">AliPHOSFastRecParticle::kNEUTRALEM</a>:
1309 if(primaryType == 22){
1310 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhEMEnergy">fhEMEnergy</a>-&gt;Fill(gAlice-&gt;Particle(closestPrimary)-&gt;Energy(),recParticle-&gt;Energy() ) ;
1311 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhEMPosition">fhEMPosition</a>-&gt;Fill(gAlice-&gt;Particle(closestPrimary)-&gt;Energy(),minDistance ) ;
1312
1313 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotNuEM">fhPhotNuEM</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1314 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotEM">fhPhotEM</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1315 }
1316 if(primaryType == 2112) //neutron
1317 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNEM">fhNEM</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1318
1319 if(primaryType == -2112) //neutron ~
1320 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNBarEM">fhNBarEM</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1321
1322 if(primaryCode == 2)
1323 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhChargedEM">fhChargedEM</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1324
1325 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllEM">fhAllEM</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1326 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhShape">fhShape</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1327 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhVeto">fhVeto</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1328
1329 counter[3][primaryCode]++;
1330 break ;
1331 case <a href=".././AliPHOSFastRecParticle.html#AliPHOSFastRecParticle:kCHARGEDHA">AliPHOSFastRecParticle::kCHARGEDHA</a>:
1332 if(primaryType == 22) //photon
1333 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotChHa">fhPhotChHa</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1334
1335 counter[4][primaryCode]++ ;
1336 break ;
1337 case <a href=".././AliPHOSFastRecParticle.html#AliPHOSFastRecParticle:kGAMMAHA">AliPHOSFastRecParticle::kGAMMAHA</a>:
1338 if(primaryType == 22){ //photon
1339 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotGaHa">fhPhotGaHa</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1340 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPPSDEnergy">fhPPSDEnergy</a>-&gt;Fill(gAlice-&gt;Particle(closestPrimary)-&gt;Energy(), recParticle-&gt;Energy() ) ;
1341 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPPSDPosition">fhPPSDPosition</a>-&gt;Fill(gAlice-&gt;Particle(closestPrimary)-&gt;Energy(),minDistance) ;
1342 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotPPSD">fhPhotPPSD</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1343 }
1344 if(primaryType == 2112){ //neutron
1345 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNPPSD">fhNPPSD</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1346 }
1347
1348 if(primaryType == -2112){ //neutron ~
1349 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNBarPPSD">fhNBarPPSD</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1350 }
1351 if(primaryCode == 2){
1352 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhChargedPPSD">fhChargedPPSD</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1353 }
1354
1355 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllPPSD">fhAllPPSD</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1356 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhVeto">fhVeto</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1357 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPPSD">fhPPSD</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1358 counter[5][primaryCode]++ ;
1359 break ;
1360 case <a href=".././AliPHOSFastRecParticle.html#AliPHOSFastRecParticle:kABSURDEM">AliPHOSFastRecParticle::kABSURDEM</a>:
1361 counter[6][primaryCode]++ ;
1362 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhShape">fhShape</a>-&gt;Fill(<a href="#AliPHOSAnalyze:CorrectEnergy">CorrectEnergy</a>(recParticle-&gt;Energy()) ) ;
1363 break;
1364 case <a href=".././AliPHOSFastRecParticle.html#AliPHOSFastRecParticle:kABSURDHA">AliPHOSFastRecParticle::kABSURDHA</a>:
1365 counter[7][primaryCode]++ ;
1366 break;
1367 default:
1368 counter[8][primaryCode]++ ;
1369 break;
1370 }
1371 }
1372 }
1373 } // endfor
1374 <a href="#AliPHOSAnalyze:SaveHistograms">SaveHistograms</a>();
1375 cout &lt;&lt; "Resolutions: Analyzed " &lt;&lt; Nevents &lt;&lt; " event(s)" &lt;&lt; endl ;
1376 cout &lt;&lt; "Resolutions: Total primary " &lt;&lt; totalPrimary &lt;&lt; endl ;
1377 cout &lt;&lt; "Resoluitons: Total reconstracted " &lt;&lt; totalRecPart &lt;&lt; endl ;
1378 cout &lt;&lt; "TotalReconstructed with Primarie " &lt;&lt; totalRPwithPrim &lt;&lt; endl ;
1379 cout &lt;&lt; " Primary: Photon Electron Ch. Hadr. Neutr. Hadr Kaons" &lt;&lt; endl ;
1380 cout &lt;&lt; " Detected as photon " &lt;&lt; counter[0][0] &lt;&lt; " " &lt;&lt; counter[0][1] &lt;&lt; " " &lt;&lt; counter[0][2] &lt;&lt; " " &lt;&lt;counter[0][3] &lt;&lt; " " &lt;&lt; counter[0][4] &lt;&lt; endl ;
1381 cout &lt;&lt; " Detected as electron " &lt;&lt; counter[1][0] &lt;&lt; " " &lt;&lt; counter[1][1] &lt;&lt; " " &lt;&lt; counter[1][2] &lt;&lt; " " &lt;&lt;counter[1][3] &lt;&lt; " " &lt;&lt; counter[1][4] &lt;&lt; endl ;
1382 cout &lt;&lt; " Detected as neutral hadron " &lt;&lt; counter[2][0] &lt;&lt; " " &lt;&lt; counter[2][1] &lt;&lt; " " &lt;&lt; counter[2][2] &lt;&lt; " " &lt;&lt;counter[2][3] &lt;&lt; " " &lt;&lt; counter[2][4] &lt;&lt; endl ;
1383 cout &lt;&lt; " Detected as neutral EM " &lt;&lt; counter[3][0] &lt;&lt; " " &lt;&lt; counter[3][1] &lt;&lt; " " &lt;&lt; counter[3][2] &lt;&lt; " " &lt;&lt;counter[3][3] &lt;&lt; " " &lt;&lt; counter[3][4] &lt;&lt; endl ;
1384 cout &lt;&lt; " Detected as charged hadron " &lt;&lt; counter[4][0] &lt;&lt; " " &lt;&lt; counter[4][1] &lt;&lt; " " &lt;&lt; counter[4][2] &lt;&lt; " " &lt;&lt;counter[4][3] &lt;&lt; " " &lt;&lt; counter[4][4] &lt;&lt; endl ;
1385 cout &lt;&lt; " Detected as gamma-hadron " &lt;&lt; counter[5][0] &lt;&lt; " " &lt;&lt; counter[5][1] &lt;&lt; " " &lt;&lt; counter[5][2] &lt;&lt; " " &lt;&lt;counter[5][3] &lt;&lt; " " &lt;&lt; counter[5][4] &lt;&lt; endl ;
1386 cout &lt;&lt; " Detected as Absurd EM " &lt;&lt; counter[6][0] &lt;&lt; " " &lt;&lt; counter[6][1] &lt;&lt; " " &lt;&lt; counter[6][2] &lt;&lt; " " &lt;&lt;counter[6][3] &lt;&lt; " " &lt;&lt; counter[6][4] &lt;&lt; endl ;
1387 cout &lt;&lt; " Detected as absurd hadron " &lt;&lt; counter[7][0] &lt;&lt; " " &lt;&lt; counter[7][1] &lt;&lt; " " &lt;&lt; counter[7][2] &lt;&lt; " " &lt;&lt;counter[7][3] &lt;&lt; " " &lt;&lt; counter[7][4] &lt;&lt; endl ;
1388 cout &lt;&lt; " Detected as undefined " &lt;&lt; counter[8][0] &lt;&lt; " " &lt;&lt; counter[8][1] &lt;&lt; " " &lt;&lt; counter[8][2] &lt;&lt; " " &lt;&lt;counter[8][3] &lt;&lt; " " &lt;&lt; counter[8][4] &lt;&lt; endl ;
1389
1390 for(i1 = 0; i1&lt;9; i1++)
1391 for(i2 = 0; i2&lt;5; i2++)
1392 totalInd+=counter[i1][i2] ;
1393 cout &lt;&lt; "Indentified particles " &lt;&lt; totalInd &lt;&lt; endl ;
1394
1395} // endfunction
1396
1397
1398<b>//____________________________________________________________________________</b>
1399<a name="AliPHOSAnalyze:BookingHistograms"> </a><a href="../ListOfTypes.html#void">void</a> <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:BookingHistograms">AliPHOSAnalyze::BookingHistograms</a>()
1400{
1401<b> // Books the histograms where the results of the analysis are stored (to be changed)</b>
1402
1403 delete <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhEmcDigit">fhEmcDigit</a> ;
1404 delete <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhVetoDigit">fhVetoDigit</a> ;
1405 delete <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhConvertorDigit">fhConvertorDigit</a> ;
1406 delete <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhEmcCluster">fhEmcCluster</a> ;
1407 delete <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhVetoCluster">fhVetoCluster</a> ;
1408 delete <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhConvertorCluster">fhConvertorCluster</a> ;
1409 delete <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhConvertorEmc">fhConvertorEmc</a> ;
1410
1411 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhEmcDigit">fhEmcDigit</a> = new TH1F("hEmcDigit", "hEmcDigit", 1000, 0. , 25.);
1412 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhVetoDigit">fhVetoDigit</a> = new TH1F("hVetoDigit", "hVetoDigit", 500, 0. , 3.e-5);
1413 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhConvertorDigit">fhConvertorDigit</a> = new TH1F("hConvertorDigit","hConvertorDigit", 500, 0. , 3.e-5);
1414 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhEmcCluster">fhEmcCluster</a> = new TH1F("hEmcCluster", "hEmcCluster", 1000, 0. , 30.);
1415 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhVetoCluster">fhVetoCluster</a> = new TH1F("hVetoCluster", "hVetoCluster", 500, 0. , 3.e-5);
1416 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhConvertorCluster">fhConvertorCluster</a> = new TH1F("hConvertorCluster","hConvertorCluster",500, 0. , 3.e-5);
1417 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhConvertorEmc">fhConvertorEmc</a> = new TH2F("hConvertorEmc", "hConvertorEmc", 200, 1. , 3., 200, 0., 3.e-5);
1418
1419}
1420<b>//____________________________________________________________________________</b>
1421<a name="AliPHOSAnalyze:BookResolutionHistograms"> </a><a href="../ListOfTypes.html#void">void</a> <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:BookResolutionHistograms">AliPHOSAnalyze::BookResolutionHistograms</a>()
1422{
1423<b> // Books the histograms where the results of the Resolution analysis are stored</b>
1424
1425<b>// if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllEnergy">fhAllEnergy</a>)</b>
1426<b>// delete <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllEnergy">fhAllEnergy</a> ;</b>
1427<b>// if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotEnergy">fhPhotEnergy</a>)</b>
1428<b>// delete <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotEnergy">fhPhotEnergy</a> ;</b>
1429<b>// if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhEMEnergy">fhEMEnergy</a>)</b>
1430<b>// delete <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhEMEnergy">fhEMEnergy</a> ;</b>
1431<b>// if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPPSDEnergy">fhPPSDEnergy</a>)</b>
1432<b>// delete <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPPSDEnergy">fhPPSDEnergy</a> ;</b>
1433
1434
1435 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllEnergy">fhAllEnergy</a> = new TH2F("hAllEnergy", "Energy of any RP with primary photon",100, 0., 5., 100, 0., 5.);
1436 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotEnergy">fhPhotEnergy</a> = new TH2F("hPhotEnergy", "Energy of kGAMMA with primary photon",100, 0., 5., 100, 0., 5.);
1437 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhEMEnergy">fhEMEnergy</a> = new TH2F("hEMEnergy", "Energy of EM with primary photon", 100, 0., 5., 100, 0., 5.);
1438 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPPSDEnergy">fhPPSDEnergy</a> = new TH2F("hPPSDEnergy", "Energy of PPSD with primary photon", 100, 0., 5., 100, 0., 5.);
1439
1440<b>// if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllPosition">fhAllPosition</a>)</b>
1441<b>// delete <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllPosition">fhAllPosition</a> ;</b>
1442<b>// if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotPosition">fhPhotPosition</a>)</b>
1443<b>// delete <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotPosition">fhPhotPosition</a> ;</b>
1444<b>// if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhEMPosition">fhEMPosition</a>)</b>
1445<b>// delete <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhEMPosition">fhEMPosition</a> ;</b>
1446<b>// if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPPSDPosition">fhPPSDPosition</a>)</b>
1447<b>// delete <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPPSDPosition">fhPPSDPosition</a> ;</b>
1448
1449
1450 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllPosition">fhAllPosition</a> = new TH2F("hAllPosition", "Position of any RP with primary photon",100, 0., 5., 100, 0., 5.);
1451 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotPosition">fhPhotPosition</a> = new TH2F("hPhotPosition", "Position of kGAMMA with primary photon",100, 0., 5., 100, 0., 5.);
1452 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhEMPosition">fhEMPosition</a> = new TH2F("hEMPosition", "Position of EM with primary photon", 100, 0., 5., 100, 0., 5.);
1453 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPPSDPosition">fhPPSDPosition</a> = new TH2F("hPPSDPosition", "Position of PPSD with primary photon", 100, 0., 5., 100, 0., 5.);
1454
1455 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllPositionX">fhAllPositionX</a> = new TH1F("hAllPositionX", "#Delta X of any RP with primary photon",100, -2., 2.);
1456 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllPositionZ">fhAllPositionZ</a> = new TH1F("hAllPositionZ", "#Delta X of any RP with primary photon",100, -2., 2.);
1457
1458<b>// if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllReg">fhAllReg</a>)</b>
1459<b>// delete <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllReg">fhAllReg</a> ;</b>
1460<b>// if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotReg">fhPhotReg</a>)</b>
1461<b>// delete <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotReg">fhPhotReg</a> ;</b>
1462<b>// if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNReg">fhNReg</a>)</b>
1463<b>// delete <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNReg">fhNReg</a> ;</b>
1464<b>// if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNBarReg">fhNBarReg</a>)</b>
1465<b>// delete <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNBarReg">fhNBarReg</a> ;</b>
1466<b>// if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhChargedReg">fhChargedReg</a>)</b>
1467<b>// delete <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhChargedReg">fhChargedReg</a> ;</b>
1468
1469 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllReg">fhAllReg</a> = new TH1F("hAllReg", "All primaries registered as photon", 100, 0., 5.);
1470 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotReg">fhPhotReg</a> = new TH1F("hPhotReg", "Photon registered as photon", 100, 0., 5.);
1471 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNReg">fhNReg</a> = new TH1F("hNReg", "N registered as photon", 100, 0., 5.);
1472 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNBarReg">fhNBarReg</a> = new TH1F("hNBarReg", "NBar registered as photon", 100, 0., 5.);
1473 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhChargedReg">fhChargedReg</a>= new TH1F("hChargedReg", "Charged hadron registered as photon",100, 0., 5.);
1474
1475<b>// if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllEM">fhAllEM</a>)</b>
1476<b>// delete <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllEM">fhAllEM</a> ;</b>
1477<b>// if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotEM">fhPhotEM</a>)</b>
1478<b>// delete <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotEM">fhPhotEM</a> ;</b>
1479<b>// if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNEM">fhNEM</a>)</b>
1480<b>// delete <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNEM">fhNEM</a> ;</b>
1481<b>// if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNBarEM">fhNBarEM</a>)</b>
1482<b>// delete <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNBarEM">fhNBarEM</a> ;</b>
1483<b>// if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhChargedEM">fhChargedEM</a>)</b>
1484<b>// delete <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhChargedEM">fhChargedEM</a> ;</b>
1485
1486 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllEM">fhAllEM</a> = new TH1F("hAllEM", "All primary registered as EM",100, 0., 5.);
1487 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotEM">fhPhotEM</a> = new TH1F("hPhotEM", "Photon registered as EM", 100, 0., 5.);
1488 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNEM">fhNEM</a> = new TH1F("hNEM", "N registered as EM", 100, 0., 5.);
1489 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNBarEM">fhNBarEM</a> = new TH1F("hNBarEM", "NBar registered as EM", 100, 0., 5.);
1490 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhChargedEM">fhChargedEM</a>= new TH1F("hChargedEM","Charged registered as EM",100, 0., 5.);
1491
1492<b>// if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllPPSD">fhAllPPSD</a>)</b>
1493<b>// delete <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllPPSD">fhAllPPSD</a> ;</b>
1494<b>// if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotPPSD">fhPhotPPSD</a>)</b>
1495<b>// delete <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotPPSD">fhPhotPPSD</a> ;</b>
1496<b>// if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNPPSD">fhNPPSD</a>)</b>
1497<b>// delete <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNPPSD">fhNPPSD</a> ;</b>
1498<b>// if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNBarPPSD">fhNBarPPSD</a>)</b>
1499<b>// delete <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNBarPPSD">fhNBarPPSD</a> ;</b>
1500<b>// if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhChargedPPSD">fhChargedPPSD</a>)</b>
1501<b>// delete <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhChargedPPSD">fhChargedPPSD</a> ;</b>
1502
1503 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllPPSD">fhAllPPSD</a> = new TH1F("hAllPPSD", "All primary registered as PPSD",100, 0., 5.);
1504 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotPPSD">fhPhotPPSD</a> = new TH1F("hPhotPPSD", "Photon registered as PPSD", 100, 0., 5.);
1505 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNPPSD">fhNPPSD</a> = new TH1F("hNPPSD", "N registered as PPSD", 100, 0., 5.);
1506 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNBarPPSD">fhNBarPPSD</a> = new TH1F("hNBarPPSD", "NBar registered as PPSD", 100, 0., 5.);
1507 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhChargedPPSD">fhChargedPPSD</a>= new TH1F("hChargedPPSD","Charged registered as PPSD",100, 0., 5.);
1508
1509<b>// if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPrimary">fhPrimary</a>)</b>
1510<b>// delete <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPrimary">fhPrimary</a> ;</b>
1511 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPrimary">fhPrimary</a>= new TH1F("hPrimary", "hPrimary", 100, 0., 5.);
1512
1513<b>// if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllRP">fhAllRP</a>)</b>
1514<b>// delete <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllRP">fhAllRP</a> ;</b>
1515<b>// if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhVeto">fhVeto</a>)</b>
1516<b>// delete <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhVeto">fhVeto</a> ;</b>
1517<b>// if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhShape">fhShape</a>)</b>
1518<b>// delete <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhShape">fhShape</a> ;</b>
1519<b>// if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPPSD">fhPPSD</a>)</b>
1520<b>// delete <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPPSD">fhPPSD</a> ;</b>
1521
1522 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllRP">fhAllRP</a> = new TH1F("hAllRP","All Reconstructed particles", 100, 0., 5.);
1523 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhVeto">fhVeto</a> = new TH1F("hVeto", "All uncharged particles", 100, 0., 5.);
1524 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhShape">fhShape</a> = new TH1F("hShape","All particles with EM shaower",100, 0., 5.);
1525 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPPSD">fhPPSD</a> = new TH1F("hPPSD", "All PPSD photon particles", 100, 0., 5.);
1526
1527
1528<b>// if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotPhot">fhPhotPhot</a>)</b>
1529<b>// delete <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotPhot">fhPhotPhot</a> ;</b>
1530<b>// if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotElec">fhPhotElec</a>)</b>
1531<b>// delete <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotElec">fhPhotElec</a> ;</b>
1532<b>// if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotNeuH">fhPhotNeuH</a>)</b>
1533<b>// delete <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotNeuH">fhPhotNeuH</a> ;</b>
1534<b>// if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotNuEM">fhPhotNuEM</a>)</b>
1535<b>// delete <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotNuEM">fhPhotNuEM</a> ;</b>
1536<b>// if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotChHa">fhPhotChHa</a>)</b>
1537<b>// delete <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotChHa">fhPhotChHa</a> ;</b>
1538<b>// if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotGaHa">fhPhotGaHa</a>)</b>
1539<b>// delete <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotGaHa">fhPhotGaHa</a> ;</b>
1540
1541 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotPhot">fhPhotPhot</a> = new TH1F("hPhotPhot","hPhotPhot", 100, 0., 5.); //Photon registered as photon
1542 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotElec">fhPhotElec</a> = new TH1F("hPhotElec","hPhotElec", 100, 0., 5.); //Photon registered as Electron
1543 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotNeuH">fhPhotNeuH</a> = new TH1F("hPhotNeuH","hPhotNeuH", 100, 0., 5.); //Photon registered as Neutral Hadron
1544 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotNuEM">fhPhotNuEM</a> = new TH1F("hPhotNuEM","hPhotNuEM", 100, 0., 5.); //Photon registered as Neutral EM
1545 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotChHa">fhPhotChHa</a> = new TH1F("hPhotChHa","hPhotChHa", 100, 0., 5.); //Photon registered as Charged Hadron
1546 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotGaHa">fhPhotGaHa</a> = new TH1F("hPhotGaHa","hPhotGaHa", 100, 0., 5.); //Photon registered as Gamma-Hadron
1547}
1548
1549<b>//____________________________________________________________________________</b>
1550<a name="AliPHOSAnalyze:OpenRootFile"> </a><a href="../ListOfTypes.html#Bool_t">Bool_t</a> <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:OpenRootFile">AliPHOSAnalyze::OpenRootFile</a>(<a href="../ListOfTypes.html#Text_t">Text_t</a> * name)
1551{
1552<b> // Open the root file named "name"</b>
1553
1554 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fRootFile">fRootFile</a> = new TFile(name, "update") ;
1555 return <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fRootFile">fRootFile</a>-&gt;IsOpen() ;
1556}
1557
1558<b>//____________________________________________________________________________</b>
1559<a name="AliPHOSAnalyze:SaveHistograms"> </a><a href="../ListOfTypes.html#void">void</a> <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:SaveHistograms">AliPHOSAnalyze::SaveHistograms</a>()
1560{
1561<b> // Saves the histograms in a root file named "name.analyzed" </b>
1562
1563 <a href="../ListOfTypes.html#Text_t">Text_t</a> outputname[80] ;
1564 sprintf(outputname,"%s.analyzed",<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fRootFile">fRootFile</a>-&gt;GetName());
1565 TFile output(outputname,"RECREATE");
1566 output.cd();
1567
1568 if (<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllEnergy">fhAllEnergy</a>)
1569 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllEnergy">fhAllEnergy</a>-&gt;Write() ;
1570 if (<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotEnergy">fhPhotEnergy</a>)
1571 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotEnergy">fhPhotEnergy</a>-&gt;Write() ;
1572 if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhEMEnergy">fhEMEnergy</a>)
1573 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhEMEnergy">fhEMEnergy</a>-&gt;Write() ;
1574 if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPPSDEnergy">fhPPSDEnergy</a>)
1575 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPPSDEnergy">fhPPSDEnergy</a>-&gt;Write() ;
1576 if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllPosition">fhAllPosition</a>)
1577 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllPosition">fhAllPosition</a>-&gt;Write() ;
1578 if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllPositionX">fhAllPositionX</a>)
1579 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllPositionX">fhAllPositionX</a>-&gt;Write() ;
1580 if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllPositionZ">fhAllPositionZ</a>)
1581 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllPositionZ">fhAllPositionZ</a>-&gt;Write() ;
1582 if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotPosition">fhPhotPosition</a>)
1583 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotPosition">fhPhotPosition</a>-&gt;Write() ;
1584 if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhEMPosition">fhEMPosition</a>)
1585 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhEMPosition">fhEMPosition</a>-&gt;Write() ;
1586 if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPPSDPosition">fhPPSDPosition</a>)
1587 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPPSDPosition">fhPPSDPosition</a>-&gt;Write() ;
1588 if (<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllReg">fhAllReg</a>)
1589 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllReg">fhAllReg</a>-&gt;Write() ;
1590 if (<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotReg">fhPhotReg</a>)
1591 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotReg">fhPhotReg</a>-&gt;Write() ;
1592 if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNReg">fhNReg</a>)
1593 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNReg">fhNReg</a>-&gt;Write() ;
1594 if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNBarReg">fhNBarReg</a>)
1595 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNBarReg">fhNBarReg</a>-&gt;Write() ;
1596 if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhChargedReg">fhChargedReg</a>)
1597 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhChargedReg">fhChargedReg</a>-&gt;Write() ;
1598 if (<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllEM">fhAllEM</a>)
1599 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllEM">fhAllEM</a>-&gt;Write() ;
1600 if (<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotEM">fhPhotEM</a>)
1601 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotEM">fhPhotEM</a>-&gt;Write() ;
1602 if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNEM">fhNEM</a>)
1603 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNEM">fhNEM</a>-&gt;Write() ;
1604 if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNBarEM">fhNBarEM</a>)
1605 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNBarEM">fhNBarEM</a>-&gt;Write() ;
1606 if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhChargedEM">fhChargedEM</a>)
1607 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhChargedEM">fhChargedEM</a>-&gt;Write() ;
1608 if (<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllPPSD">fhAllPPSD</a>)
1609 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllPPSD">fhAllPPSD</a>-&gt;Write() ;
1610 if (<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotPPSD">fhPhotPPSD</a>)
1611 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotPPSD">fhPhotPPSD</a>-&gt;Write() ;
1612 if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNPPSD">fhNPPSD</a>)
1613 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNPPSD">fhNPPSD</a>-&gt;Write() ;
1614 if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNBarPPSD">fhNBarPPSD</a>)
1615 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNBarPPSD">fhNBarPPSD</a>-&gt;Write() ;
1616 if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhChargedPPSD">fhChargedPPSD</a>)
1617 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhChargedPPSD">fhChargedPPSD</a>-&gt;Write() ;
1618 if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPrimary">fhPrimary</a>)
1619 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPrimary">fhPrimary</a>-&gt;Write() ;
1620 if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllRP">fhAllRP</a>)
1621 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllRP">fhAllRP</a>-&gt;Write() ;
1622 if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhVeto">fhVeto</a>)
1623 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhVeto">fhVeto</a>-&gt;Write() ;
1624 if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhShape">fhShape</a>)
1625 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhShape">fhShape</a>-&gt;Write() ;
1626 if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPPSD">fhPPSD</a>)
1627 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPPSD">fhPPSD</a>-&gt;Write() ;
1628 if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotPhot">fhPhotPhot</a>)
1629 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotPhot">fhPhotPhot</a>-&gt;Write() ;
1630 if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotElec">fhPhotElec</a>)
1631 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotElec">fhPhotElec</a>-&gt;Write() ;
1632 if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotNeuH">fhPhotNeuH</a>)
1633 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotNeuH">fhPhotNeuH</a>-&gt;Write() ;
1634 if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotNuEM">fhPhotNuEM</a>)
1635 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotNuEM">fhPhotNuEM</a>-&gt;Write() ;
1636 if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotNuEM">fhPhotNuEM</a>)
1637 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotNuEM">fhPhotNuEM</a>-&gt;Write() ;
1638 if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotChHa">fhPhotChHa</a>)
1639 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotChHa">fhPhotChHa</a>-&gt;Write() ;
1640 if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotGaHa">fhPhotGaHa</a>)
1641 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotGaHa">fhPhotGaHa</a>-&gt;Write() ;
1642 if(<a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhEnergyCorrelations">fhEnergyCorrelations</a>)
1643 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhEnergyCorrelations">fhEnergyCorrelations</a>-&gt;Write() ;
1644
1645 output.Write();
1646 output.Close();
1647}
1648<b>//____________________________________________________________________________</b>
1649<a name="AliPHOSAnalyze:CorrectEnergy"> </a><a href="../ListOfTypes.html#Float_t">Float_t</a> <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:CorrectEnergy">AliPHOSAnalyze::CorrectEnergy</a>(<a href="../ListOfTypes.html#Float_t">Float_t</a> ERecPart)
1650{
1651 return ERecPart/0.8783 ;
1652}
1653
1654<b>//____________________________________________________________________________</b>
1655<a name="AliPHOSAnalyze:ResetHistograms"> </a><a href="../ListOfTypes.html#void">void</a> <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:ResetHistograms">AliPHOSAnalyze::ResetHistograms</a>()
1656{
1657 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhEnergyCorrelations">fhEnergyCorrelations</a> = 0 ; //Energy correlations between Eloss in Convertor and PPSD(2)
1658
1659 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhEmcDigit">fhEmcDigit</a> = 0 ; // Histo of digit energies in the Emc
1660 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhVetoDigit">fhVetoDigit</a> = 0 ; // Histo of digit energies in the Veto
1661 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhConvertorDigit">fhConvertorDigit</a> = 0 ; // Histo of digit energies in the Convertor
1662 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhEmcCluster">fhEmcCluster</a> = 0 ; // Histo of Cluster energies in Emc
1663 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhVetoCluster">fhVetoCluster</a> = 0 ; // Histo of Cluster energies in Veto
1664 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhConvertorCluster">fhConvertorCluster</a> = 0 ; // Histo of Cluster energies in Convertor
1665 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhConvertorEmc">fhConvertorEmc</a> = 0 ; // 2d Convertor versus Emc energies
1666
1667 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllEnergy">fhAllEnergy</a> = 0 ;
1668 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotEnergy">fhPhotEnergy</a> = 0 ; // Total spectrum of detected photons
1669 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhEMEnergy">fhEMEnergy</a> = 0 ; // Spectrum of detected electrons with electron primary
1670 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPPSDEnergy">fhPPSDEnergy</a> = 0 ;
1671 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllPosition">fhAllPosition</a> = 0 ;
1672 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllPositionX">fhAllPositionX</a> = 0 ;
1673 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllPositionZ">fhAllPositionZ</a> = 0 ;
1674 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotPosition">fhPhotPosition</a> = 0 ;
1675 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhEMPosition">fhEMPosition</a> = 0 ;
1676 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPPSDPosition">fhPPSDPosition</a> = 0 ;
1677
1678 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotReg">fhPhotReg</a> = 0 ;
1679 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllReg">fhAllReg</a> = 0 ;
1680 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNReg">fhNReg</a> = 0 ;
1681 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNBarReg">fhNBarReg</a> = 0 ;
1682 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhChargedReg">fhChargedReg</a> = 0 ;
1683 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotEM">fhPhotEM</a> = 0 ;
1684 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllEM">fhAllEM</a> = 0 ;
1685 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNEM">fhNEM</a> = 0 ;
1686 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNBarEM">fhNBarEM</a> = 0 ;
1687 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhChargedEM">fhChargedEM</a> = 0 ;
1688 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotPPSD">fhPhotPPSD</a> = 0 ;
1689 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhAllPPSD">fhAllPPSD</a> = 0 ;
1690 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNPPSD">fhNPPSD</a> = 0 ;
1691 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhNBarPPSD">fhNBarPPSD</a> = 0 ;
1692 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhChargedPPSD">fhChargedPPSD</a> = 0 ;
1693
1694 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPrimary">fhPrimary</a> = 0 ;
1695
1696 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotPhot">fhPhotPhot</a> = 0 ;
1697 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotElec">fhPhotElec</a> = 0 ;
1698 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotNeuH">fhPhotNeuH</a> = 0 ;
1699 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotNuEM">fhPhotNuEM</a> = 0 ;
1700 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotChHa">fhPhotChHa</a> = 0 ;
1701 <a href=".././AliPHOSAnalyze.html#AliPHOSAnalyze:fhPhotGaHa">fhPhotGaHa</a> = 0 ;
1702
1703}
1704</pre>
1705
1706<!--SIGNATURE-->
1707<br>
1708<address>
1709<hr>
1710<center>
1711<a href="http://root.cern.ch/root/Welcome.html">ROOT page</a> - <a href="../ClassIndex.html">Class index</a> - <a href="#TopOfPage">Top of the page</a><br>
1712</center>
1713<hr>This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to <a href="mailto:rootdev@root.cern.ch">ROOT support</a>, or contact <a href="mailto:rootdev@root.cern.ch">the developers</a> with any questions or problems regarding ROOT.
1714</address>
1715</body>
1716</html>