]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGCF/FEMTOSCOPY/AliFemtoUser/AliFemtoPicoEventRP.cxx
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGCF / FEMTOSCOPY / AliFemtoUser / AliFemtoPicoEventRP.cxx
CommitLineData
45eb0b7a 1////////////////////////////////////////////////////////////////////////////////
2// //
3// AliFemtoPicoEventRP - internal AliFemto representation of the event. //
4// Created for the sake of minimizing the used size. Multiple instances are //
5// stored in memory when several mixing bins are used. //
6// //
7////////////////////////////////////////////////////////////////////////////////
8/***************************************************************************
9 *
10 * $Id: AliFemtoPicoEventRP.cxx 21376 2007-10-12 14:57:18Z akisiel $
11 *
12 * Author: Mike Lisa, Ohio State, lisa@mps.ohio-state.edu
13 ***************************************************************************
14 *
15 * Description: part of STAR HBT Framework: AliFemtoMaker package
16 * PicoEvents are last-step ultra-compressed "events" just containing
17 * bare information about the particles of interest. They have already
18 * gone through Event and Track cuts, so only Pair cuts are left.
19 * PicoEvents are *internal* to the code, and are stored in the
20 * Event-mixing buffers.
21 *
22 *
23 ***************************************************************************
24 *
25 * $Log$
26 * Revision 1.1.2.1 2007/10/12 14:28:37 akisiel
27 * New wave of cleanup and rule conformance
28 *
29 * Revision 1.1 2007/05/16 10:22:11 akisiel
30 * Making the directory structure of AliFemto flat. All files go into one common directory
31 *
32 * Revision 1.2 2007/05/03 09:42:29 akisiel
33 * Fixing Effective C++ warnings
34 *
35 * Revision 1.1.1.1 2007/04/25 15:38:41 panos
36 * Importing the HBT code dir
37 *
38 * Revision 1.1.1.1 2007/03/07 10:14:49 mchojnacki
39 * First version on CVS
40 *
41 * Revision 1.4 2000/07/16 21:38:23 laue
42 * AliFemtoCoulomb.cxx AliFemtoSectoredAnalysis.cxx : updated for standalone version
43 * AliFemtoV0.cc AliFemtoV0.h : some cast to prevent compiling warnings
44 * AliFemtoParticle.cc AliFemtoParticle.h : pointers mTrack,mV0 initialized to 0
45 * AliFemtoIOBinary.cc : some printouts in #ifdef STHBTDEBUG
46 * AliFemtoEvent.cc : B-Field set to 0.25Tesla, we have to think about a better
47 * solution
48 *
49 * Revision 1.3 2000/06/01 20:40:13 laue
50 * AliFemtoIO.cc: updated for new V0s
51 * AliFemtoPicoEventRP.cc: collections especially cleared
52 * franks1DHistoD.h, include changed from <stdio> to <cstdio>
53 * franks1DHistoD.cc, cout statement deleted
54 *
55 * Revision 1.2 2000/03/17 17:23:05 laue
56 * Roberts new three particle correlations implemented.
57 *
58 * Revision 1.1.1.1 1999/06/29 16:02:57 lisa
59 * Installation of AliFemtoMaker
60 *
61 **************************************************************************/
62
63#include "AliFemtoPicoEventRP.h"
64#include "AliFemtoParticleCollection.h"
65#include "AliEventplane.h"
66
67//________________
68AliFemtoPicoEventRP::AliFemtoPicoEventRP() : AliFemtoPicoEvent(),
69 fFirstParticleCollection(0),
70 fSecondParticleCollection(0),
71 fThirdParticleCollection(0),
72 fPicoEventplane(0)
73{
74 // Default constructor
75 fFirstParticleCollection = new AliFemtoParticleCollection;
76 fSecondParticleCollection = new AliFemtoParticleCollection;
77 fThirdParticleCollection = new AliFemtoParticleCollection;
78 fPicoEventplane = new AliEventplane;
79}
80//_________________
81AliFemtoPicoEventRP::AliFemtoPicoEventRP(const AliFemtoPicoEventRP& aPicoEvent) : AliFemtoPicoEvent(),
82 fFirstParticleCollection(0),
83 fSecondParticleCollection(0),
84 fThirdParticleCollection(0),
85 fPicoEventplane(0)
86{
87 // Copy constructor
88 AliFemtoParticleIterator iter;
89
90 fFirstParticleCollection = new AliFemtoParticleCollection;
91 if (aPicoEvent.fFirstParticleCollection) {
92 for (iter=aPicoEvent.fFirstParticleCollection->begin();iter!=aPicoEvent.fFirstParticleCollection->end();iter++){
93 fFirstParticleCollection->push_back(*iter);
94 }
95 }
96 fSecondParticleCollection = new AliFemtoParticleCollection;
97 if (aPicoEvent.fSecondParticleCollection) {
98 for (iter=aPicoEvent.fSecondParticleCollection->begin();iter!=aPicoEvent.fSecondParticleCollection->end();iter++){
99 fSecondParticleCollection->push_back(*iter);
100 }
101 }
102 fThirdParticleCollection = new AliFemtoParticleCollection;
103 if (aPicoEvent.fThirdParticleCollection) {
104 for (iter=aPicoEvent.fThirdParticleCollection->begin();iter!=aPicoEvent.fThirdParticleCollection->end();iter++){
105 fThirdParticleCollection->push_back(*iter);
106 }
107 }
108 fPicoEventplane = aPicoEvent.fPicoEventplane;
109}
110//_________________
111AliFemtoPicoEventRP::~AliFemtoPicoEventRP(){
112 // Destructor
113 AliFemtoParticleIterator iter;
114
115 if (fFirstParticleCollection){
116 for (iter=fFirstParticleCollection->begin();iter!=fFirstParticleCollection->end();iter++){
117 delete *iter;
118 }
119 fFirstParticleCollection->clear();
120 delete fFirstParticleCollection;
121 fFirstParticleCollection = 0;
122 }
123
124 if (fSecondParticleCollection){
125 for (iter=fSecondParticleCollection->begin();iter!=fSecondParticleCollection->end();iter++){
126 delete *iter;
127 }
128 fSecondParticleCollection->clear();
129 delete fSecondParticleCollection;
130 fSecondParticleCollection = 0;
131 }
132
133 if (fThirdParticleCollection){
134 if (fThirdParticleCollection->size() != 0 ) {
135 for (iter=fThirdParticleCollection->begin();iter!=fThirdParticleCollection->end();iter++){
136 delete *iter;
137 }
138 }
139 fThirdParticleCollection->clear();
140 delete fThirdParticleCollection;
141 fThirdParticleCollection = 0;
142 }
143 if (fPicoEventplane) {
144 fPicoEventplane->Reset();
145 fPicoEventplane = 0;
146 }
147}
148//_________________
149AliFemtoPicoEventRP& AliFemtoPicoEventRP::operator=(const AliFemtoPicoEventRP& aPicoEvent)
150{
151 // Assignment operator
152 if (this == &aPicoEvent)
153 return *this;
154
155 AliFemtoParticleIterator iter;
156
157 if (fFirstParticleCollection){
158 for (iter=fFirstParticleCollection->begin();iter!=fFirstParticleCollection->end();iter++){
159 delete *iter;
160 }
161 fFirstParticleCollection->clear();
162 delete fFirstParticleCollection;
163 fFirstParticleCollection = 0;
164 }
165
166 if (fSecondParticleCollection){
167 for (iter=fSecondParticleCollection->begin();iter!=fSecondParticleCollection->end();iter++){
168 delete *iter;
169 }
170 fSecondParticleCollection->clear();
171 delete fSecondParticleCollection;
172 fSecondParticleCollection = 0;
173 }
174
175 if (fThirdParticleCollection){
176 if (fThirdParticleCollection->size() != 0 ) {
177 for (iter=fThirdParticleCollection->begin();iter!=fThirdParticleCollection->end();iter++){
178 delete *iter;
179 }
180 }
181 fThirdParticleCollection->clear();
182 delete fThirdParticleCollection;
183 fThirdParticleCollection = 0;
184 }
185
186 fFirstParticleCollection = new AliFemtoParticleCollection;
187 if (aPicoEvent.fFirstParticleCollection) {
188 for (iter=aPicoEvent.fFirstParticleCollection->begin();iter!=aPicoEvent.fFirstParticleCollection->end();iter++){
189 fFirstParticleCollection->push_back(*iter);
190 }
191 }
192 fSecondParticleCollection = new AliFemtoParticleCollection;
193 if (aPicoEvent.fSecondParticleCollection) {
194 for (iter=aPicoEvent.fSecondParticleCollection->begin();iter!=aPicoEvent.fSecondParticleCollection->end();iter++){
195 fSecondParticleCollection->push_back(*iter);
196 }
197 }
198 fThirdParticleCollection = new AliFemtoParticleCollection;
199 if (aPicoEvent.fThirdParticleCollection) {
200 for (iter=aPicoEvent.fThirdParticleCollection->begin();iter!=aPicoEvent.fThirdParticleCollection->end();iter++){
201 fThirdParticleCollection->push_back(*iter);
202 }
203 }
204
205 return *this;
206}
207