]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/FEMTOSCOPY/AliFemto/AliFemtoPicoEventCollectionVectorHideAway.cxx
Making the directory structure of AliFemto flat. All files go into one common directory
[u/mrichter/AliRoot.git] / PWG2 / FEMTOSCOPY / AliFemto / AliFemtoPicoEventCollectionVectorHideAway.cxx
1 /***************************************************************************
2  *
3  * $Id$
4  *
5  * Author: Mike Lisa, Ohio State, lisa@mps.ohio-state.edu
6  ***************************************************************************
7  *
8  * Description: part of STAR HBT Framework: AliFemtoMaker package
9  *
10  ***************************************************************************
11  *
12  * $Log$
13  * Revision 1.2  2007/05/03 09:42:29  akisiel
14  * Fixing Effective C++ warnings
15  *
16  * Revision 1.1.1.1  2007/04/25 15:38:41  panos
17  * Importing the HBT code dir
18  *
19  * Revision 1.1.1.1  2007/03/07 10:14:49  mchojnacki
20  * First version on CVS
21  *
22  * Revision 1.3  2002/11/01 20:45:53  magestro
23  * Fixed bug in 3rd dimension of event collection vector, probably never encountered
24  *
25  * Revision 1.2  2001/11/11 18:34:13  laue
26  * AliFemtoPicoEventCollectionVectorHideAway: updated for 3d grid
27  * AliFemtoVertexMultAnalysis: new
28  *
29  * Revision 1.1  2000/07/16 21:44:11  laue
30  * Collection and analysis for vertex dependent event mixing
31  *
32  *
33  **************************************************************************/
34 #include "AliFemtoPicoEventCollectionVectorHideAway.h"
35
36 // -----------------------------------
37 AliFemtoPicoEventCollectionVectorHideAway::AliFemtoPicoEventCollectionVectorHideAway(int bx, double lx, double ux,
38                                                                                      int by, double ly, double uy,
39                                                                                      int bz, double lz, double uz):
40   fBinsTot(0),
41   fBinsx(bx), fBinsy(by), fBinsz(bz),
42   fMinx(lx),  fMiny(ly),  fMinz(lz),
43   fMaxx(ux),  fMaxy(uy),  fMaxz(uz),
44   fStepx(0),  fStepy(0),  fStepz(0),
45   fCollection(0),
46   fCollectionVector(0)
47 {
48   fBinsTot = fBinsx * fBinsy * fBinsz;
49   fStepx=0;  fStepx = (fMaxx-fMinx)/fBinsx;
50   fStepy=0;  fStepy = (fMaxy-fMiny)/fBinsy;
51   fStepz=0;  fStepz = (fMaxz-fMinz)/fBinsz;
52   
53   
54   //fCollectionVector = new AliFemtoPicoEventCollectionVector();
55   fCollection = 0;
56   for ( int i=0; i<fBinsTot; i++) {
57     fCollection = new AliFemtoPicoEventCollection();
58     fCollectionVector.push_back(fCollection);
59   }
60 }
61 // -----------------------------------
62 AliFemtoPicoEventCollection* AliFemtoPicoEventCollectionVectorHideAway::PicoEventCollection(int ix, int iy, int iz) { 
63   if ( ix<0 || ix >= fBinsx) return 0;
64   if ( iy<0 || iy >= fBinsy) return 0;
65   if ( iz<0 || iz >= fBinsz) return 0;
66   int bin = ix + iy*fBinsx + iz*fBinsy*fBinsx; 
67   cout << " AliFemtoPicoEventCollectionVectorHideAway::PicoEventCollection(...) - bin(ix,iy,iz): ";
68   cout << bin << "(" << ix <<"," << iy << "," << iz <<")" << endl;
69   return fCollectionVector[bin]; 
70 }
71 // -----------------------------------
72 AliFemtoPicoEventCollection* AliFemtoPicoEventCollectionVectorHideAway::PicoEventCollection(double x, double y, double z) {
73   int ix,iy,iz;
74   ix=0;iy=0;iz=0;
75
76   ix = (int)floor( (x-fMinx)/fStepx );
77   iy = (int)floor( (y-fMiny)/fStepy );
78   iz = (int)floor( (z-fMinz)/fStepz );
79
80   return PicoEventCollection( ix,iy,iz );
81 }
82 //___________________________________
83 AliFemtoPicoEventCollectionVectorHideAway::AliFemtoPicoEventCollectionVectorHideAway(const AliFemtoPicoEventCollectionVectorHideAway& aColl):
84   fBinsTot(0),
85   fBinsx(0), fBinsy(0), fBinsz(0),
86   fMinx(0),  fMiny(0),  fMinz(0),
87   fMaxx(0),  fMaxy(0),  fMaxz(0),
88   fStepx(0),  fStepy(0),  fStepz(0),
89   fCollection(0),
90   fCollectionVector(0)
91 {
92
93   fBinsTot = aColl.fBinsTot;
94   fBinsx = aColl.fBinsx;
95   fBinsy = aColl.fBinsy;
96   fBinsz = aColl.fBinsz;
97   fMinx  = aColl.fMinx;
98   fMiny  = aColl.fMiny;
99   fMinz  = aColl.fMinz;
100   fMaxx  = aColl.fMaxx;
101   fMaxy  = aColl.fMaxy;
102   fMaxz  = aColl.fMaxz;
103   fStepx = aColl.fStepx;
104   fStepy = aColl.fStepy;
105   fStepz = aColl.fStepz;
106   fCollection = aColl.fCollection;
107
108   fCollectionVector.clear();
109   for (int iter=0; aColl.fCollectionVector.size();iter++){
110     fCollectionVector.push_back(aColl.fCollectionVector[iter]);
111   }
112 }
113 //___________________________________
114 AliFemtoPicoEventCollectionVectorHideAway::~AliFemtoPicoEventCollectionVectorHideAway()
115 {
116   fCollectionVector.clear();
117 }
118 //___________________________________
119 AliFemtoPicoEventCollectionVectorHideAway& AliFemtoPicoEventCollectionVectorHideAway::operator=(const AliFemtoPicoEventCollectionVectorHideAway& aColl)
120 {
121   if (this == &aColl)
122     return *this;
123
124   fBinsTot = aColl.fBinsTot;
125   fBinsx = aColl.fBinsx;
126   fBinsy = aColl.fBinsy;
127   fBinsz = aColl.fBinsz;
128   fMinx  = aColl.fMinx;
129   fMiny  = aColl.fMiny;
130   fMinz  = aColl.fMinz;
131   fMaxx  = aColl.fMaxx;
132   fMaxy  = aColl.fMaxy;
133   fMaxz  = aColl.fMaxz;
134   fStepx = aColl.fStepx;
135   fStepy = aColl.fStepy;
136   fStepz = aColl.fStepz;
137   fCollection = aColl.fCollection;
138
139   fCollectionVector.clear();
140
141   for (int iter=0; aColl.fCollectionVector.size();iter++){
142     fCollectionVector.push_back(aColl.fCollectionVector[iter]);
143   }
144
145   return *this;
146 }