1 ///////////////////////////////////////////////////////////////////////////
3 // AliFemtoPicoEventCollectionVectorHideAway: a helper class for //
4 // managing many mixing buffers with up to three variables used for //
7 ///////////////////////////////////////////////////////////////////////////
8 #include "AliFemtoPicoEventCollectionVectorHideAway.h"
10 // -----------------------------------
11 AliFemtoPicoEventCollectionVectorHideAway::AliFemtoPicoEventCollectionVectorHideAway(int bx, double lx, double ux,
12 int by, double ly, double uy,
13 int bz, double lz, double uz):
15 fBinsx(bx), fBinsy(by), fBinsz(bz),
16 fMinx(lx), fMiny(ly), fMinz(lz),
17 fMaxx(ux), fMaxy(uy), fMaxz(uz),
18 fStepx(0), fStepy(0), fStepz(0),
23 fBinsTot = fBinsx * fBinsy * fBinsz;
24 fStepx=0; fStepx = (fMaxx-fMinx)/fBinsx;
25 fStepy=0; fStepy = (fMaxy-fMiny)/fBinsy;
26 fStepz=0; fStepz = (fMaxz-fMinz)/fBinsz;
29 //fCollectionVector = new AliFemtoPicoEventCollectionVector();
31 for ( int i=0; i<fBinsTot; i++) {
32 fCollection = new AliFemtoPicoEventCollection();
33 fCollectionVector.push_back(fCollection);
36 // -----------------------------------
37 AliFemtoPicoEventCollection* AliFemtoPicoEventCollectionVectorHideAway::PicoEventCollection(int ix, int iy, int iz) {
38 // return mixing event collection from a given bin
39 if ( ix<0 || ix >= fBinsx) return 0;
40 if ( iy<0 || iy >= fBinsy) return 0;
41 if ( iz<0 || iz >= fBinsz) return 0;
42 int bin = ix + iy*fBinsx + iz*fBinsy*fBinsx;
43 // cout << " AliFemtoPicoEventCollectionVectorHideAway::PicoEventCollection(...) - bin(ix,iy,iz): ";
44 // cout << bin << "(" << ix <<"," << iy << "," << iz <<")" << endl;
45 return fCollectionVector[bin];
47 // -----------------------------------
48 AliFemtoPicoEventCollection* AliFemtoPicoEventCollectionVectorHideAway::PicoEventCollection(double x, double y, double z) {
49 // return mixing event collection for given values on x, y, z axes
53 ix = (int)floor( (x-fMinx)/fStepx );
54 iy = (int)floor( (y-fMiny)/fStepy );
55 iz = (int)floor( (z-fMinz)/fStepz );
57 return PicoEventCollection( ix,iy,iz );
59 //___________________________________
60 AliFemtoPicoEventCollectionVectorHideAway::AliFemtoPicoEventCollectionVectorHideAway(const AliFemtoPicoEventCollectionVectorHideAway& aColl):
62 fBinsx(0), fBinsy(0), fBinsz(0),
63 fMinx(0), fMiny(0), fMinz(0),
64 fMaxx(0), fMaxy(0), fMaxz(0),
65 fStepx(0), fStepy(0), fStepz(0),
70 fBinsTot = aColl.fBinsTot;
71 fBinsx = aColl.fBinsx;
72 fBinsy = aColl.fBinsy;
73 fBinsz = aColl.fBinsz;
80 fStepx = aColl.fStepx;
81 fStepy = aColl.fStepy;
82 fStepz = aColl.fStepz;
83 fCollection = aColl.fCollection;
85 fCollectionVector.clear();
86 for (int iter=0; aColl.fCollectionVector.size();iter++){
87 fCollectionVector.push_back(aColl.fCollectionVector[iter]);
90 //___________________________________
91 AliFemtoPicoEventCollectionVectorHideAway::~AliFemtoPicoEventCollectionVectorHideAway()
94 fCollectionVector.clear();
96 //___________________________________
97 AliFemtoPicoEventCollectionVectorHideAway& AliFemtoPicoEventCollectionVectorHideAway::operator=(const AliFemtoPicoEventCollectionVectorHideAway& aColl)
99 // assignment operator
103 fBinsTot = aColl.fBinsTot;
104 fBinsx = aColl.fBinsx;
105 fBinsy = aColl.fBinsy;
106 fBinsz = aColl.fBinsz;
113 fStepx = aColl.fStepx;
114 fStepy = aColl.fStepy;
115 fStepz = aColl.fStepz;
116 fCollection = aColl.fCollection;
118 fCollectionVector.clear();
120 for (int iter=0; aColl.fCollectionVector.size();iter++){
121 fCollectionVector.push_back(aColl.fCollectionVector[iter]);
126 unsigned int AliFemtoPicoEventCollectionVectorHideAway::GetBinXNumber(double x) { return (int)floor( (x-fMinx)/fStepx ); }
127 unsigned int AliFemtoPicoEventCollectionVectorHideAway::GetBinYNumber(double y) { return (int)floor( (y-fMiny)/fStepy ); }
128 unsigned int AliFemtoPicoEventCollectionVectorHideAway::GetBinZNumber(double z) { return (int)floor( (z-fMinz)/fStepz ); }