Using CTP times instead of DQA times to get the durations (following a question from...
[u/mrichter/AliRoot.git] / PWGCF / FEMTOSCOPY / K0Analysis / AliFemtoK0EventCollection.cxx
CommitLineData
0da241a9 1/**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
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 **************************************************************************/
15
16////////////////////////////////////////////////////////////////////////////////
17//
18// These classes provide storage for event and track information which
19// are used for same-event and mixed-event analyses in AliFemtoK0Analysis.
20//
21// authors: Dhevan Gangadharan (dhevan.raja.gangadharan@cern.ch)
22// Matthew Steinpreis (matthew.steinpreis@cern.ch)
23////////////////////////////////////////////////////////////////////////////////
24
25#include "AliFemtoK0EventCollection.h"
26
27AliFemtoK0Particle::AliFemtoK0Particle() :
28 fMomentum(),
29 fPt(0),
30 fMass(0),
31 fDaughterID1(0),
32 fDaughterID2(0),
33 fK0(0),
34 fXPos(),
35 fXNeg(),
36 fPPos(),
37 fPNeg(),
38 fCovPos(),
39 fCovNeg()
40{
41 //Default constructor
42}
43//_____________________________________________________________________________
44AliFemtoK0Particle::AliFemtoK0Particle(const AliFemtoK0Particle &obj) :
45 fMomentum(),
46 fPt(obj.fPt),
47 fMass(obj.fMass),
48 fDaughterID1(obj.fDaughterID1),
49 fDaughterID2(obj.fDaughterID2),
50 fK0(obj.fK0),
51 fXPos(),
52 fXNeg(),
53 fPPos(),
54 fPNeg(),
55 fCovPos(),
56 fCovNeg()
57{
58 // copy constructor
59}
60//_____________________________________________________________________________
61AliFemtoK0Particle &AliFemtoK0Particle::operator=(const AliFemtoK0Particle &obj)
62{
63 //Assignment operator
64 if(this == &obj) return *this;
65
66 fMomentum[0] = obj.fMomentum[0];
67 fMomentum[1] = obj.fMomentum[1];
68 fMomentum[2] = obj.fMomentum[2];
69 fPt = obj.fPt;
70 fMass = obj.fMass;
71 fDaughterID1 = obj.fDaughterID1;
72 fDaughterID2 = obj.fDaughterID2;
73 fK0 = obj.fK0;
74 fXPos[0] = obj.fXPos[0];
75 fXPos[1] = obj.fXPos[1];
76 fXPos[2] = obj.fXPos[2];
77 fXNeg[0] = obj.fXNeg[0];
78 fXNeg[1] = obj.fXNeg[1];
79 fXNeg[2] = obj.fXNeg[2];
80 fPPos[0] = obj.fPPos[0];
81 fPPos[1] = obj.fPPos[1];
82 fPPos[2] = obj.fPPos[2];
83 fPNeg[0] = obj.fPNeg[0];
84 fPNeg[1] = obj.fPNeg[1];
85 fPNeg[2] = obj.fPNeg[2];
86 fCovPos[0] = obj.fCovPos[0]; fCovPos[1] = obj.fCovPos[1]; fCovPos[2] = obj.fCovPos[2];
87 fCovPos[3] = obj.fCovPos[3]; fCovPos[4] = obj.fCovPos[4]; fCovPos[5] = obj.fCovPos[5];
88 fCovPos[6] = obj.fCovPos[6]; fCovPos[7] = obj.fCovPos[7]; fCovPos[8] = obj.fCovPos[8];
89 fCovPos[9] = obj.fCovPos[9]; fCovPos[10] = obj.fCovPos[10]; fCovPos[11] = obj.fCovPos[11];
90 fCovPos[12] = obj.fCovPos[12]; fCovPos[13] = obj.fCovPos[13]; fCovPos[14] = obj.fCovPos[14];
91 fCovPos[17] = obj.fCovPos[17]; fCovPos[17] = obj.fCovPos[17]; fCovPos[17] = obj.fCovPos[17];
92 fCovPos[18] = obj.fCovPos[18]; fCovPos[19] = obj.fCovPos[19]; fCovPos[20] = obj.fCovPos[20];
93 fCovNeg[0] = obj.fCovNeg[0]; fCovNeg[1] = obj.fCovNeg[1]; fCovNeg[2] = obj.fCovNeg[2];
94 fCovNeg[3] = obj.fCovNeg[3]; fCovNeg[4] = obj.fCovNeg[4]; fCovNeg[5] = obj.fCovNeg[5];
95 fCovNeg[6] = obj.fCovNeg[6]; fCovNeg[7] = obj.fCovNeg[7]; fCovNeg[8] = obj.fCovNeg[8];
96 fCovNeg[9] = obj.fCovNeg[9]; fCovNeg[10] = obj.fCovNeg[10]; fCovNeg[11] = obj.fCovNeg[11];
97 fCovNeg[12] = obj.fCovNeg[12]; fCovNeg[13] = obj.fCovNeg[13]; fCovNeg[14] = obj.fCovNeg[14];
98 fCovNeg[17] = obj.fCovNeg[17]; fCovNeg[17] = obj.fCovNeg[17]; fCovNeg[17] = obj.fCovNeg[17];
99 fCovNeg[18] = obj.fCovNeg[18]; fCovNeg[19] = obj.fCovNeg[19]; fCovNeg[20] = obj.fCovNeg[20];
100
101 return (*this);
102}
103//_____________________________________________________________________________
104AliFemtoK0Particle::~AliFemtoK0Particle()
105{
106 // Destructor
107}
108//_____________________________________________________________________________
109
110AliFemtoK0Event::AliFemtoK0Event():
111 fFillStatus(0),
112 fNumV0s(0),
113 fK0Particle(0x0)
114{
115 //Default constructor
116}
117//_____________________________________________________________________________
118AliFemtoK0Event::AliFemtoK0Event(const AliFemtoK0Event &obj) :
119 fFillStatus(obj.fFillStatus),
120 fNumV0s(obj.fNumV0s),
121 fK0Particle(obj.fK0Particle)
122{
123 //Copy constructor
124}
125//_____________________________________________________________________________
126AliFemtoK0Event &AliFemtoK0Event::operator=(const AliFemtoK0Event &obj)
127{
128 //Assignment operator
129 if(this == &obj) return *this;
130
131 fFillStatus = obj.fFillStatus;
132 fNumV0s = obj.fNumV0s;
133 fK0Particle = obj.fK0Particle;
134
135 return (*this);
136}
137//_____________________________________________________________________________
138AliFemtoK0Event::~AliFemtoK0Event()
139{
140 //Destructor
141 if(fK0Particle) delete fK0Particle;
142}
143
144//_____________________________________________________________________________
145AliFemtoK0EventCollection::AliFemtoK0EventCollection() :
146 fBufferSize(0),
147 fLimit(0),
148 fEvt(0x0)
149{
150 //Default constructor
151}
152//_____________________________________________________________________________
153AliFemtoK0EventCollection::AliFemtoK0EventCollection(short a, int lim) :
154 fBufferSize(0),
155 fLimit(0),
156 fEvt(0x0)
157{
158 //maint constructor
159
160 SetBufferSize(a);
161
162 fEvt = new AliFemtoK0Event[fBufferSize]; //allocate pointer array of type particle_event
163 fLimit = lim;
164
165 for(int ii = 0; ii < fBufferSize; ii++){ //Initialize particle table pointers to NULL
166 (fEvt + ii)->fK0Particle = NULL;
167 (fEvt + ii)->fNumV0s = 0;
168 (fEvt + ii)->fFillStatus = 0;
169
170 (fEvt + ii)->fK0Particle = new AliFemtoK0Particle[fLimit];
171 }
172}
173//_____________________________________________________________________________
174AliFemtoK0EventCollection::AliFemtoK0EventCollection(const AliFemtoK0EventCollection &obj)
175 : fBufferSize(obj.fBufferSize),
176 fLimit(obj.fLimit),
177 fEvt(obj.fEvt)
178{
179 //copy constructor
180}
181//_____________________________________________________________________________
182AliFemtoK0EventCollection &AliFemtoK0EventCollection::operator=(const
183AliFemtoK0EventCollection &obj)
184{
185 //Assignment operator
186 if(this == &obj) return *this;
187
188 fBufferSize = obj.fBufferSize;
189 fLimit = obj.fLimit;
190 fEvt = obj.fEvt;
191
192 return (*this);
193}
194//_____________________________________________________________________________
195AliFemtoK0EventCollection::~AliFemtoK0EventCollection()
196{
197 for(int i =0; i < fBufferSize; i++){
198 if((fEvt + i)->fK0Particle != NULL){
199 delete [] (fEvt + i)->fK0Particle;
200 }
201 }
202
203 delete [] fEvt;
204}
205//_____________________________________________________________________________
206void AliFemtoK0EventCollection::FIFOShift(){ //Shift elements in FIFO by one and clear last element in FIFO
207
208 for(unsigned short i=fBufferSize-1 ; i > 0; i--){
209 for(int j=0; j<(fEvt + i-1)->fNumV0s; j++) (fEvt + i)->fK0Particle[j] = (fEvt + i-1)->fK0Particle[j];
210 (fEvt + i)->fFillStatus = (fEvt + i-1)->fFillStatus;
211 (fEvt + i)->fNumV0s = (fEvt + i-1)->fNumV0s;
212 }
213
214 (fEvt)->fNumV0s=0;
215 (fEvt)->fFillStatus=0;
216
217}
218