1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: Ana Marin, Kathrin Koch, Kenneth Aamodt *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
16 ////////////////////////////////////////////////
17 //---------------------------------------------
18 // Class for handling of background calculation
19 //---------------------------------------------
20 ////////////////////////////////////////////////
22 #include "AliGammaConversionAODBGHandler.h"
23 #include "AliKFParticle.h"
24 #include "AliAODConversionPhoton.h"
25 #include "AliAODConversionMother.h"
29 ClassImp(AliGammaConversionAODBGHandler)
31 AliGammaConversionAODBGHandler::AliGammaConversionAODBGHandler() :
34 fBGEventCounter(NULL),
35 fBGEventENegCounter(NULL),
39 fNBinsMultiplicity(0),
40 fBinLimitsArrayZ(NULL),
41 fBinLimitsArrayMultiplicity(NULL),
48 AliGammaConversionAODBGHandler::AliGammaConversionAODBGHandler(UInt_t binsZ,UInt_t binsMultiplicity,UInt_t nEvents) :
51 fBGEventCounter(NULL),
52 fBGEventENegCounter(NULL),
56 fNBinsMultiplicity(binsMultiplicity),
57 fBinLimitsArrayZ(NULL),
58 fBinLimitsArrayMultiplicity(NULL),
59 fBGEvents(binsZ,AliGammaConversionMultipicityVector(binsMultiplicity,AliGammaConversionBGEventVector(nEvents))),
60 fBGEventsENeg(binsZ,AliGammaConversionMultipicityVector(binsMultiplicity,AliGammaConversionBGEventVector(nEvents)))
66 AliGammaConversionAODBGHandler::AliGammaConversionAODBGHandler(UInt_t collisionSystem,UInt_t centMin,UInt_t centMax,UInt_t nEvents, Bool_t useTrackMult) :
69 fBGEventCounter(NULL),
70 fBGEventENegCounter(NULL),
74 fNBinsMultiplicity(5),
75 fBinLimitsArrayZ(NULL),
76 fBinLimitsArrayMultiplicity(NULL),
77 fBGEvents(fNBinsZ,AliGammaConversionMultipicityVector(fNBinsMultiplicity,AliGammaConversionBGEventVector(nEvents))),
78 fBGEventsENeg(fNBinsZ,AliGammaConversionMultipicityVector(fNBinsMultiplicity,AliGammaConversionBGEventVector(nEvents)))
82 fBinLimitsArrayZ= new Double_t[8] ;
83 if(collisionSystem > 0 && collisionSystem < 8){ // PbPb
84 fBinLimitsArrayZ[0] = -50.00;
85 fBinLimitsArrayZ[1] = -5.5;
86 fBinLimitsArrayZ[2] = -2.9;
87 fBinLimitsArrayZ[3] = -0.65;
88 fBinLimitsArrayZ[4] = 1.45;
89 fBinLimitsArrayZ[5] = 3.65;
90 fBinLimitsArrayZ[6] = 6.15;
91 fBinLimitsArrayZ[7] = 50;
93 else if(collisionSystem == 0){
94 fBinLimitsArrayZ[0] = -50.00;
95 fBinLimitsArrayZ[1] = -3.375;
96 fBinLimitsArrayZ[2] = -1.605;
97 fBinLimitsArrayZ[3] = -0.225;
98 fBinLimitsArrayZ[4] = 1.065;
99 fBinLimitsArrayZ[5] = 2.445;
100 fBinLimitsArrayZ[6] = 4.245;
101 fBinLimitsArrayZ[7] = 50.00;
104 fBinLimitsArrayZ[0] = -50.00;
105 fBinLimitsArrayZ[1] = -5.85;
106 fBinLimitsArrayZ[2] = -3.35;
107 fBinLimitsArrayZ[3] = -1.15;
108 fBinLimitsArrayZ[4] = 0.85;
109 fBinLimitsArrayZ[5] = 2.95;
110 fBinLimitsArrayZ[6] = 5.55;
111 fBinLimitsArrayZ[7] = 50.00;
116 fBinLimitsArrayMultiplicity= new Double_t[5];
117 if(useTrackMult){ // pp
118 fBinLimitsArrayMultiplicity[0] = 0;
119 fBinLimitsArrayMultiplicity[1] = 8.5;
120 fBinLimitsArrayMultiplicity[2] = 16.5;
121 fBinLimitsArrayMultiplicity[3] = 27.5;
122 fBinLimitsArrayMultiplicity[4] = 200.;
123 if(collisionSystem > 0 && collisionSystem < 8){ // PbPb
124 if(centMin == 0 && centMax == 5){
125 fBinLimitsArrayMultiplicity[0] = 0.;
126 fBinLimitsArrayMultiplicity[1] = 1540.;
127 fBinLimitsArrayMultiplicity[2] = 1665.;
128 fBinLimitsArrayMultiplicity[3] = 1780.;
129 fBinLimitsArrayMultiplicity[4] = 5000.;
131 else if(centMin == 0 && centMax == 10){
132 fBinLimitsArrayMultiplicity[0] = 0.;
133 fBinLimitsArrayMultiplicity[1] = 1360.;
134 fBinLimitsArrayMultiplicity[2] = 1520.;
135 fBinLimitsArrayMultiplicity[3] = 1685.;
136 fBinLimitsArrayMultiplicity[4] = 5000.;
138 else if(centMin == 0 && centMax == 20){
139 fBinLimitsArrayMultiplicity[0] = 0.;
140 fBinLimitsArrayMultiplicity[1] = 1110.;
141 fBinLimitsArrayMultiplicity[2] = 1360.;
142 fBinLimitsArrayMultiplicity[3] = 1600.;
143 fBinLimitsArrayMultiplicity[4] = 5000.;
145 else if(centMin == 0 && centMax == 80){
146 fBinLimitsArrayMultiplicity[0] = 0.;
147 fBinLimitsArrayMultiplicity[1] = 890.;
148 fBinLimitsArrayMultiplicity[2] = 1240.;
149 fBinLimitsArrayMultiplicity[3] = 1540.;
150 fBinLimitsArrayMultiplicity[4] = 5000.;
152 else if(centMin == 5 && centMax == 10){
153 fBinLimitsArrayMultiplicity[0] = 0.;
154 fBinLimitsArrayMultiplicity[1] = 1250.;
155 fBinLimitsArrayMultiplicity[2] = 1345.;
156 fBinLimitsArrayMultiplicity[3] = 1445.;
157 fBinLimitsArrayMultiplicity[4] = 5000.;
159 else if(centMin == 10 && centMax == 20){
160 fBinLimitsArrayMultiplicity[0] = 0.;
161 fBinLimitsArrayMultiplicity[1] = 915.;
162 fBinLimitsArrayMultiplicity[2] = 1020.;
163 fBinLimitsArrayMultiplicity[3] = 1130.;
164 fBinLimitsArrayMultiplicity[4] = 5000.;
166 else if(centMin == 20 && centMax == 40){
167 fBinLimitsArrayMultiplicity[0] = 0.;
168 fBinLimitsArrayMultiplicity[1] = 510.;
169 fBinLimitsArrayMultiplicity[2] = 625.;
170 fBinLimitsArrayMultiplicity[3] = 730.;
171 fBinLimitsArrayMultiplicity[4] = 5000.;
173 else if(centMin == 40 && centMax == 80){
174 fBinLimitsArrayMultiplicity[0] = 0.;
175 fBinLimitsArrayMultiplicity[1] = 185.;
176 fBinLimitsArrayMultiplicity[2] = 250.;
177 fBinLimitsArrayMultiplicity[3] = 300.;
178 fBinLimitsArrayMultiplicity[4] = 5000.;
180 else if(centMin == 60 && centMax == 80){
181 fBinLimitsArrayMultiplicity[0] = 0.;
182 fBinLimitsArrayMultiplicity[1] = 55.;
183 fBinLimitsArrayMultiplicity[2] = 80.;
184 fBinLimitsArrayMultiplicity[3] = 100.;
185 fBinLimitsArrayMultiplicity[4] = 5000.;
188 fBinLimitsArrayMultiplicity[0] = 0.;
189 fBinLimitsArrayMultiplicity[1] = 510.;
190 fBinLimitsArrayMultiplicity[2] = 625.;
191 fBinLimitsArrayMultiplicity[3] = 730.;
192 fBinLimitsArrayMultiplicity[4] = 5000.;
196 else if(collisionSystem == 8 || collisionSystem == 9){ //pPb
198 fBinLimitsArrayMultiplicity[0] = 0.;
199 fBinLimitsArrayMultiplicity[1] = 7.5;
200 fBinLimitsArrayMultiplicity[2] = 16.5;
201 fBinLimitsArrayMultiplicity[3] = 29.5;
202 fBinLimitsArrayMultiplicity[4] = 500.;
204 if(centMin == 0 && centMax == 20){
205 fBinLimitsArrayMultiplicity[0] = 0.;
206 fBinLimitsArrayMultiplicity[1] = 31.5;
207 fBinLimitsArrayMultiplicity[2] = 40.5;
208 fBinLimitsArrayMultiplicity[3] = 50.5;
209 fBinLimitsArrayMultiplicity[4] = 500.;
210 } else if(centMin == 20 && centMax == 40){
211 fBinLimitsArrayMultiplicity[0] = 0.;
212 fBinLimitsArrayMultiplicity[1] = 19.5;
213 fBinLimitsArrayMultiplicity[2] = 25.5;
214 fBinLimitsArrayMultiplicity[3] = 32.5;
215 fBinLimitsArrayMultiplicity[4] = 500.;
216 } else if(centMin == 40 && centMax == 60){
217 fBinLimitsArrayMultiplicity[0] = 0.;
218 fBinLimitsArrayMultiplicity[1] = 12.5;
219 fBinLimitsArrayMultiplicity[2] = 16.5;
220 fBinLimitsArrayMultiplicity[3] = 22.5;
221 fBinLimitsArrayMultiplicity[4] = 500.;
222 } else if(centMin == 60 && centMax == 80){
223 fBinLimitsArrayMultiplicity[0] = 0.;
224 fBinLimitsArrayMultiplicity[1] = 5.5;
225 fBinLimitsArrayMultiplicity[2] = 9.5;
226 fBinLimitsArrayMultiplicity[3] = 13.5;
227 fBinLimitsArrayMultiplicity[4] = 500.;
228 } else if(centMin == 60 && centMax == 100){
229 fBinLimitsArrayMultiplicity[0] = 0.;
230 fBinLimitsArrayMultiplicity[1] = 2.5;
231 fBinLimitsArrayMultiplicity[2] = 6.5;
232 fBinLimitsArrayMultiplicity[3] = 11.5;
233 fBinLimitsArrayMultiplicity[4] = 500.;
237 else{// pp or pPb V0 Mult
238 fBinLimitsArrayMultiplicity[0] = 2;
239 fBinLimitsArrayMultiplicity[1] = 3;
240 fBinLimitsArrayMultiplicity[2] = 4;
241 fBinLimitsArrayMultiplicity[3] = 5;
242 fBinLimitsArrayMultiplicity[4] = 9999;
243 if(collisionSystem > 0 && collisionSystem < 8){ // PbPb
244 if(centMin == 0 && centMax == 5){
245 fBinLimitsArrayMultiplicity[0] = 0.;
246 fBinLimitsArrayMultiplicity[1] = 27.;
247 fBinLimitsArrayMultiplicity[2] = 31.;
248 fBinLimitsArrayMultiplicity[3] = 36.;
249 fBinLimitsArrayMultiplicity[4] = 100.;
251 else if(centMin == 0 && centMax == 10){
252 fBinLimitsArrayMultiplicity[0] = 0.;
253 fBinLimitsArrayMultiplicity[1] = 25.;
254 fBinLimitsArrayMultiplicity[2] = 30.;
255 fBinLimitsArrayMultiplicity[3] = 36.;
256 fBinLimitsArrayMultiplicity[4] = 100.;
258 else if(centMin == 0 && centMax == 20){
259 fBinLimitsArrayMultiplicity[0] = 0.;
260 fBinLimitsArrayMultiplicity[1] = 22.;
261 fBinLimitsArrayMultiplicity[2] = 27.;
262 fBinLimitsArrayMultiplicity[3] = 33.;
263 fBinLimitsArrayMultiplicity[4] = 100.;
265 else if(centMin == 0 && centMax == 80){
266 fBinLimitsArrayMultiplicity[0] = 0.;
267 fBinLimitsArrayMultiplicity[1] = 18.;
268 fBinLimitsArrayMultiplicity[2] = 25.;
269 fBinLimitsArrayMultiplicity[3] = 32.;
270 fBinLimitsArrayMultiplicity[4] = 100.;
272 else if(centMin == 5 && centMax == 10){
273 fBinLimitsArrayMultiplicity[0] = 0.;
274 fBinLimitsArrayMultiplicity[1] = 23.;
275 fBinLimitsArrayMultiplicity[2] = 27.;
276 fBinLimitsArrayMultiplicity[3] = 32.;
277 fBinLimitsArrayMultiplicity[4] = 100.;
279 else if(centMin == 10 && centMax == 20){
280 fBinLimitsArrayMultiplicity[0] = 0.;
281 fBinLimitsArrayMultiplicity[1] = 18.;
282 fBinLimitsArrayMultiplicity[2] = 22.;
283 fBinLimitsArrayMultiplicity[3] = 27.;
284 fBinLimitsArrayMultiplicity[4] = 100.;
286 else if(centMin == 20 && centMax == 40){
287 fBinLimitsArrayMultiplicity[0] = 0.;
288 fBinLimitsArrayMultiplicity[1] = 11.;
289 fBinLimitsArrayMultiplicity[2] = 14.;
290 fBinLimitsArrayMultiplicity[3] = 18.;
291 fBinLimitsArrayMultiplicity[4] = 100.;
293 else if(centMin == 40 && centMax == 80){
294 fBinLimitsArrayMultiplicity[0] = 0.;
295 fBinLimitsArrayMultiplicity[1] = 5.;
296 fBinLimitsArrayMultiplicity[2] = 7.;
297 fBinLimitsArrayMultiplicity[3] = 11.;
298 fBinLimitsArrayMultiplicity[4] = 100.;
300 else if(centMin == 60 && centMax == 80){
301 fBinLimitsArrayMultiplicity[0] = 0.;
302 fBinLimitsArrayMultiplicity[1] = 2.;
303 fBinLimitsArrayMultiplicity[2] = 3.;
304 fBinLimitsArrayMultiplicity[3] = 5.;
305 fBinLimitsArrayMultiplicity[4] = 100.;
308 fBinLimitsArrayMultiplicity[0] = 0.;
309 fBinLimitsArrayMultiplicity[1] = 11.;
310 fBinLimitsArrayMultiplicity[2] = 14.;
311 fBinLimitsArrayMultiplicity[3] = 18.;
312 fBinLimitsArrayMultiplicity[4] = 100.;
317 Initialize(fBinLimitsArrayZ,fBinLimitsArrayMultiplicity);
321 AliGammaConversionAODBGHandler::AliGammaConversionAODBGHandler(const AliGammaConversionAODBGHandler & original) :
323 fNEvents(original.fNEvents),
324 fBGEventCounter(original.fBGEventCounter),
325 fBGEventENegCounter(original.fBGEventENegCounter),
326 fBGProbability(original.fBGProbability),
327 fBGEventVertex(original.fBGEventVertex),
328 fNBinsZ(original.fNBinsZ),
329 fNBinsMultiplicity(original.fNBinsMultiplicity),
330 fBinLimitsArrayZ(original.fBinLimitsArrayZ),
331 fBinLimitsArrayMultiplicity(original.fBinLimitsArrayMultiplicity),
332 fBGEvents(original.fBGEvents),
333 fBGEventsENeg(original.fBGEventsENeg)
338 AliGammaConversionAODBGHandler & AliGammaConversionAODBGHandler::operator = (const AliGammaConversionAODBGHandler & /*source*/)
340 // assignment operator
344 AliGammaConversionAODBGHandler::~AliGammaConversionAODBGHandler(){
346 //Kenneth remember to clear memory!!!!!!!!!!!!!!!!!!!!!
348 for(Int_t z=0;z<fNBinsZ;z++){
349 delete[] fBGEventCounter[z];
351 delete[] fBGEventCounter;
352 fBGEventCounter = NULL;
356 for(Int_t z=0;z<fNBinsZ;z++){
357 for(Int_t m=0;m<fNBinsMultiplicity;m++){
358 delete [] fBGEventVertex[z][m];
360 delete [] fBGEventVertex[z];
362 delete [] fBGEventVertex;
365 if(fBGEventENegCounter){
366 for(Int_t z=0;z<fNBinsZ;z++){
367 delete[] fBGEventENegCounter[z];
369 delete[] fBGEventENegCounter;
370 fBGEventENegCounter = NULL;
373 if(fBinLimitsArrayZ){
374 delete[] fBinLimitsArrayZ;
377 if(fBinLimitsArrayMultiplicity){
378 delete[] fBinLimitsArrayMultiplicity;
382 void AliGammaConversionAODBGHandler::Initialize(Double_t * const zBinLimitsArray, Double_t * const multiplicityBinLimitsArray){
383 // see header file for documantation
386 fBinLimitsArrayZ = zBinLimitsArray;
392 if(multiplicityBinLimitsArray){
393 fBinLimitsArrayMultiplicity = multiplicityBinLimitsArray ;
398 if(fBGEventCounter == NULL){
399 fBGEventCounter= new Int_t*[fNBinsZ];
401 for(Int_t z=0;z<fNBinsZ;z++){
402 fBGEventCounter[z]=new Int_t[fNBinsMultiplicity];
405 for(Int_t z=0;z<fNBinsZ;z++){
406 for(Int_t m=0;m<fNBinsMultiplicity;m++){
407 fBGEventCounter[z][m]=0;
411 if(fBGEventVertex == NULL){
412 fBGEventVertex = new GammaConversionVertex**[fNBinsZ];
414 for(Int_t z=0; z < fNBinsZ; z++){
415 fBGEventVertex[z]= new GammaConversionVertex*[fNBinsMultiplicity];
417 for(Int_t z=0;z<fNBinsZ;z++){
418 for(Int_t m=0;m<fNBinsMultiplicity; m++){
419 fBGEventVertex[z][m]= new GammaConversionVertex[fNEvents];
422 if( fBGEventENegCounter == NULL){
423 fBGEventENegCounter = new Int_t*[fNBinsZ];
426 for(Int_t z=0; z < fNBinsZ; z++){
427 fBGEventENegCounter[z] = new Int_t[fNBinsMultiplicity];
430 for(Int_t z=0;z<fNBinsZ;z++){
431 for(Int_t m=0;m<fNBinsMultiplicity; m++){
432 fBGEventENegCounter[z][m] = 0;
436 if(fBGProbability == NULL){
437 fBGProbability = new Double_t*[fNBinsZ];
439 for(Int_t z=0; z < fNBinsZ; z++){
440 fBGProbability[z] = new Double_t[fNBinsMultiplicity];
443 for(Int_t z=0;z<fNBinsZ;z++){
444 for(Int_t m=0;m<fNBinsMultiplicity; m++){
445 fBGProbability[z][m] = 0;
448 //filling the probability
449 fBGProbability[0][0] = 0.243594;
450 fBGProbability[0][1] = 0.279477;
451 fBGProbability[0][2] = 0.305104;
452 fBGProbability[0][3] = 0.315927;
453 fBGProbability[1][0] = 0.241964;
454 fBGProbability[1][1] = 0.272995;
455 fBGProbability[1][2] = 0.307165;
456 fBGProbability[1][3] = 0.292248;
457 fBGProbability[2][0] = 0.241059;
458 fBGProbability[2][1] = 0.27509;
459 fBGProbability[2][2] = 0.283657;
460 fBGProbability[2][3] = 0.310512;
461 fBGProbability[3][0] = 0.23888;
462 fBGProbability[3][1] = 0.283418;
463 fBGProbability[3][2] = 0.297232;
464 fBGProbability[3][3] = 0.348188;
465 fBGProbability[4][0] = 0.245555;
466 fBGProbability[4][1] = 0.281218;
467 fBGProbability[4][2] = 0.317236;
468 fBGProbability[4][3] = 0.323495;
469 fBGProbability[5][0] = 0.244572;
470 fBGProbability[5][1] = 0.259498;
471 fBGProbability[5][2] = 0.278383;
472 fBGProbability[5][3] = 0.284696;
473 fBGProbability[6][0] = 0.24703;
474 fBGProbability[6][1] = 0.275265;
475 fBGProbability[6][2] = 0.284004;
476 fBGProbability[6][3] = 0.343584;
480 Int_t AliGammaConversionAODBGHandler::GetZBinIndex(Double_t zvalue) const{
481 // see header file for documantation
482 if(fNBinsZ<2 || zvalue<=fBinLimitsArrayZ[0]){
486 for(Int_t i=0; i<fNBinsZ-1 ;i++){
487 if(zvalue >= fBinLimitsArrayZ[i] && zvalue <= fBinLimitsArrayZ[i+1]){
494 Int_t AliGammaConversionAODBGHandler::GetMultiplicityBinIndex(Int_t multiplicity) const{
495 // see header file for documantation
496 if(fNBinsMultiplicity<2){
500 for(Int_t i=0; i<fNBinsMultiplicity-1 ;i++){
501 if(multiplicity >= fBinLimitsArrayMultiplicity[i] && multiplicity < fBinLimitsArrayMultiplicity[i+1]){
505 return fNBinsMultiplicity-1;
508 void AliGammaConversionAODBGHandler::AddEvent(TList* const eventGammas,Double_t xvalue, Double_t yvalue, Double_t zvalue, Int_t multiplicity, Double_t epvalue){
510 // see header file for documantation
512 // cout<<"Entering the AddEvent function"<<endl;
514 Int_t z = GetZBinIndex(zvalue);
515 Int_t m = GetMultiplicityBinIndex(multiplicity);
517 if(fBGEventCounter[z][m] >= fNEvents){
518 fBGEventCounter[z][m]=0;
520 Int_t eventCounter=fBGEventCounter[z][m];
523 if(fBGEventVertex[z][m][eventCounter]){
524 delete fBGEventVertex[z][m][eventCounter];
527 fBGEventVertex[z][m][eventCounter].fX = xvalue;
528 fBGEventVertex[z][m][eventCounter].fY = yvalue;
529 fBGEventVertex[z][m][eventCounter].fZ = zvalue;
530 fBGEventVertex[z][m][eventCounter].fEP = epvalue;
532 //first clear the vector
533 // cout<<"Size of vector: "<<fBGEvents[z][m][eventCounter].size()<<endl;
534 // cout<<"Checking the entries: Z="<<z<<", M="<<m<<", eventCounter="<<eventCounter<<endl;
536 // cout<<"The size of this vector is: "<<fBGEvents[z][m][eventCounter].size()<<endl;
537 for(UInt_t d=0;d<fBGEvents[z][m][eventCounter].size();d++){
538 delete (AliAODConversionPhoton*)(fBGEvents[z][m][eventCounter][d]);
540 fBGEvents[z][m][eventCounter].clear();
542 // add the gammas to the vector
543 for(Int_t i=0; i< eventGammas->GetEntries();i++){
544 // AliKFParticle *t = new AliKFParticle(*(AliKFParticle*)(eventGammas->At(i)));
545 fBGEvents[z][m][eventCounter].push_back(new AliAODConversionPhoton(*(AliAODConversionPhoton*)(eventGammas->At(i))));
547 fBGEventCounter[z][m]++;
549 void AliGammaConversionAODBGHandler::AddElectronEvent(TClonesArray* const eventENeg, Double_t zvalue, Int_t multiplicity){
551 Int_t z = GetZBinIndex(zvalue);
552 Int_t m = GetMultiplicityBinIndex(multiplicity);
554 if(fBGEventENegCounter[z][m] >= fNEvents){
555 fBGEventENegCounter[z][m]=0;
559 Int_t eventENegCounter=fBGEventENegCounter[z][m];
561 //first clear the vector
562 // cout<<"Size of vector: "<<fBGEvents[z][m][eventCounter].size()<<endl;
563 // cout<<"Checking the entries: Z="<<z<<", M="<<m<<", eventCounter="<<eventCounter<<endl;
565 // cout<<"The size of this vector is: "<<fBGEvents[z][m][eventCounter].size()<<endl;
566 for(UInt_t d=0;d<fBGEventsENeg[z][m][eventENegCounter].size();d++){
567 delete (AliAODConversionPhoton*)(fBGEventsENeg[z][m][eventENegCounter][d]);
570 fBGEventsENeg[z][m][eventENegCounter].clear();
572 // add the electron to the vector
573 for(Int_t i=0; i< eventENeg->GetEntriesFast();i++){
574 // AliKFParticle *t = new AliKFParticle(*(AliKFParticle*)(eventGammas->At(i)));
575 fBGEventsENeg[z][m][eventENegCounter].push_back(new AliAODConversionPhoton(*(AliAODConversionPhoton*)(eventENeg->At(i))));
578 fBGEventENegCounter[z][m]++;
582 AliGammaConversionAODVector* AliGammaConversionAODBGHandler::GetBGGoodV0s(Int_t zbin, Int_t mbin, Int_t event){
583 //see headerfile for documentation
584 return &(fBGEvents[zbin][mbin][event]);
586 AliGammaConversionAODVector* AliGammaConversionAODBGHandler::GetBGGoodENeg(Int_t event, Double_t zvalue, Int_t multiplicity){
589 //see headerfile for documentation
590 Int_t z = GetZBinIndex(zvalue);
591 Int_t m = GetMultiplicityBinIndex(multiplicity);
592 return &(fBGEventsENeg[z][m][event]);
596 void AliGammaConversionAODBGHandler::PrintBGArray(){
597 //see headerfile for documentation
598 for(Int_t z=0;z<fNBinsZ;z++){
600 cout<<"Getting the data for z bin: "<<z<<endl;
601 for(Int_t multiplicity=0;multiplicity<fNBinsMultiplicity;multiplicity++){
603 cout<<"Getting the data for multiplicity bin: "<<multiplicity<<endl;
604 for(Int_t event=0;event<fNEvents;event++){
605 if(fBGEvents[z][multiplicity][event].size()>0){
606 cout<<"Event: "<<event<<" has: "<<fBGEvents[z][multiplicity][event].size()<<endl;