1 ////////////////////////////////////////////////////////////////////////////////
3 // AliFemtoPicoEvent - 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. //
7 ////////////////////////////////////////////////////////////////////////////////
8 /***************************************************************************
12 * Author: Mike Lisa, Ohio State, lisa@mps.ohio-state.edu
13 ***************************************************************************
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.
23 ***************************************************************************
26 * Revision 1.1.2.1 2007/10/12 14:28:37 akisiel
27 * New wave of cleanup and rule conformance
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
32 * Revision 1.2 2007/05/03 09:42:29 akisiel
33 * Fixing Effective C++ warnings
35 * Revision 1.1.1.1 2007/04/25 15:38:41 panos
36 * Importing the HBT code dir
38 * Revision 1.1.1.1 2007/03/07 10:14:49 mchojnacki
39 * First version on CVS
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
49 * Revision 1.3 2000/06/01 20:40:13 laue
50 * AliFemtoIO.cc: updated for new V0s
51 * AliFemtoPicoEvent.cc: collections especially cleared
52 * franks1DHistoD.h, include changed from <stdio> to <cstdio>
53 * franks1DHistoD.cc, cout statement deleted
55 * Revision 1.2 2000/03/17 17:23:05 laue
56 * Roberts new three particle correlations implemented.
58 * Revision 1.1.1.1 1999/06/29 16:02:57 lisa
59 * Installation of AliFemtoMaker
61 **************************************************************************/
63 #include "AliFemtoPicoEvent.h"
64 #include "AliFemtoParticleCollection.h"
67 AliFemtoPicoEvent::AliFemtoPicoEvent() :
68 fFirstParticleCollection(0),
69 fSecondParticleCollection(0),
70 fThirdParticleCollection(0)
72 // Default constructor
73 fFirstParticleCollection = new AliFemtoParticleCollection;
74 fSecondParticleCollection = new AliFemtoParticleCollection;
75 fThirdParticleCollection = new AliFemtoParticleCollection;
78 AliFemtoPicoEvent::AliFemtoPicoEvent(const AliFemtoPicoEvent& aPicoEvent) :
79 fFirstParticleCollection(0),
80 fSecondParticleCollection(0),
81 fThirdParticleCollection(0)
84 AliFemtoParticleIterator iter;
86 fFirstParticleCollection = new AliFemtoParticleCollection;
87 if (aPicoEvent.fFirstParticleCollection) {
88 for (iter=aPicoEvent.fFirstParticleCollection->begin();iter!=aPicoEvent.fFirstParticleCollection->end();iter++){
89 fFirstParticleCollection->push_back(*iter);
92 fSecondParticleCollection = new AliFemtoParticleCollection;
93 if (aPicoEvent.fSecondParticleCollection) {
94 for (iter=aPicoEvent.fSecondParticleCollection->begin();iter!=aPicoEvent.fSecondParticleCollection->end();iter++){
95 fSecondParticleCollection->push_back(*iter);
98 fThirdParticleCollection = new AliFemtoParticleCollection;
99 if (aPicoEvent.fThirdParticleCollection) {
100 for (iter=aPicoEvent.fThirdParticleCollection->begin();iter!=aPicoEvent.fThirdParticleCollection->end();iter++){
101 fThirdParticleCollection->push_back(*iter);
106 AliFemtoPicoEvent::~AliFemtoPicoEvent(){
108 AliFemtoParticleIterator iter;
110 if (fFirstParticleCollection){
111 for (iter=fFirstParticleCollection->begin();iter!=fFirstParticleCollection->end();iter++){
114 fFirstParticleCollection->clear();
115 delete fFirstParticleCollection;
116 fFirstParticleCollection = 0;
119 if (fSecondParticleCollection){
120 for (iter=fSecondParticleCollection->begin();iter!=fSecondParticleCollection->end();iter++){
123 fSecondParticleCollection->clear();
124 delete fSecondParticleCollection;
125 fSecondParticleCollection = 0;
128 if (fThirdParticleCollection){
129 if (fThirdParticleCollection->size() != 0 ) {
130 for (iter=fThirdParticleCollection->begin();iter!=fThirdParticleCollection->end();iter++){
134 fThirdParticleCollection->clear();
135 delete fThirdParticleCollection;
136 fThirdParticleCollection = 0;
140 AliFemtoPicoEvent& AliFemtoPicoEvent::operator=(const AliFemtoPicoEvent& aPicoEvent)
142 // Assignment operator
143 if (this == &aPicoEvent)
146 AliFemtoParticleIterator iter;
148 if (fFirstParticleCollection){
149 for (iter=fFirstParticleCollection->begin();iter!=fFirstParticleCollection->end();iter++){
152 fFirstParticleCollection->clear();
153 delete fFirstParticleCollection;
154 fFirstParticleCollection = 0;
157 if (fSecondParticleCollection){
158 for (iter=fSecondParticleCollection->begin();iter!=fSecondParticleCollection->end();iter++){
161 fSecondParticleCollection->clear();
162 delete fSecondParticleCollection;
163 fSecondParticleCollection = 0;
166 if (fThirdParticleCollection){
167 if (fThirdParticleCollection->size() != 0 ) {
168 for (iter=fThirdParticleCollection->begin();iter!=fThirdParticleCollection->end();iter++){
172 fThirdParticleCollection->clear();
173 delete fThirdParticleCollection;
174 fThirdParticleCollection = 0;
177 fFirstParticleCollection = new AliFemtoParticleCollection;
178 if (aPicoEvent.fFirstParticleCollection) {
179 for (iter=aPicoEvent.fFirstParticleCollection->begin();iter!=aPicoEvent.fFirstParticleCollection->end();iter++){
180 fFirstParticleCollection->push_back(*iter);
183 fSecondParticleCollection = new AliFemtoParticleCollection;
184 if (aPicoEvent.fSecondParticleCollection) {
185 for (iter=aPicoEvent.fSecondParticleCollection->begin();iter!=aPicoEvent.fSecondParticleCollection->end();iter++){
186 fSecondParticleCollection->push_back(*iter);
189 fThirdParticleCollection = new AliFemtoParticleCollection;
190 if (aPicoEvent.fThirdParticleCollection) {
191 for (iter=aPicoEvent.fThirdParticleCollection->begin();iter!=aPicoEvent.fThirdParticleCollection->end();iter++){
192 fThirdParticleCollection->push_back(*iter);