]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/STEERBase/AliTOFHeader.cxx
option to switch CR off
[u/mrichter/AliRoot.git] / STEER / STEERBase / AliTOFHeader.cxx
CommitLineData
f858b00e 1/**************************************************************************
2 * Copyright(c) 1998-2003, 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// Implementation of the Event Time class
18// for the Event Data Summary class
19// This class contains the Event Time
20// as estimated by the TOF combinatorial algorithm
cb2442a7 21// Origin: A.De Caro, decaro@sa.infn.it
f858b00e 22//-----------------------------------------------------------------
23
24//---- standard headers ----
25#include "Riostream.h"
26//---- Root headers --------
27#include "TArrayF.h"
28#include "TArrayI.h"
29//---- AliRoot headers -----
30#include "AliTOFHeader.h"
31
32
33ClassImp(AliTOFHeader)
34
35//--------------------------------------------------------------------------
36AliTOFHeader::AliTOFHeader() :
37 TObject(),
38 fDefaultEventTimeValue(0.),
39 fDefaultEventTimeRes(0.),
40 fNbins(0),
5f9d3ebb 41 fEventTimeValues(0),
42 fEventTimeRes(0),
43 fNvalues(0),
f858b00e 44 fTOFtimeResolution(0.),
49a1368d 45 fT0spread(0.),
46 fNumberOfTOFclusters(-1),
47 fNumberOfTOFtrgPads(-1),
48 fTrigMask(new AliTOFTriggerMask())
f858b00e 49{
50 //
51 // Default Constructor
52 //
53
54}
55
56//--------------------------------------------------------------------------
57AliTOFHeader::AliTOFHeader(Float_t defEvTime, Float_t defResEvTime,
58 Int_t nDifPbins, Float_t *times, Float_t *res,
59 Int_t *nPbin, Float_t tofTimeRes, Float_t t0spread) :
60 TObject(),
61 fDefaultEventTimeValue(defEvTime),
62 fDefaultEventTimeRes(defResEvTime),
63 fNbins(nDifPbins),
cb2442a7 64 fEventTimeValues(0),
65 fEventTimeRes(0),
66 fNvalues(0),
f858b00e 67 fTOFtimeResolution(tofTimeRes),
49a1368d 68 fT0spread(t0spread),
69 fNumberOfTOFclusters(-1),
70 fNumberOfTOFtrgPads(-1),
71 fTrigMask(new AliTOFTriggerMask())
f858b00e 72{
73 //
cb2442a7 74 // Constructor for TOF header
f858b00e 75 //
76
cb2442a7 77 if (fNbins>0) {
78 fEventTimeValues = new TArrayF(fNbins);
79 fEventTimeRes = new TArrayF(fNbins);
80 fNvalues = new TArrayI(fNbins);
81 for (Int_t ii=0; ii<fNbins; ii++) {
82 fEventTimeValues->SetAt(times[ii],ii);
83 fEventTimeRes->SetAt(res[ii],ii);
84 fNvalues->SetAt(nPbin[ii],ii);
85 }
f858b00e 86 }
87
88}
89
90//--------------------------------------------------------------------------
91AliTOFHeader::AliTOFHeader(const AliTOFHeader &source):
92 TObject(source),
93 fDefaultEventTimeValue(source.fDefaultEventTimeValue),
94 fDefaultEventTimeRes(source.fDefaultEventTimeRes),
95 fNbins(source.fNbins),
cb2442a7 96 fEventTimeValues(0),
97 fEventTimeRes(0),
98 fNvalues(0),
f858b00e 99 fTOFtimeResolution(source.fTOFtimeResolution),
49a1368d 100 fT0spread(source.fT0spread),
101 fNumberOfTOFclusters(source.fNumberOfTOFclusters),
102 fNumberOfTOFtrgPads(source.fNumberOfTOFtrgPads),
103 fTrigMask(NULL)
f858b00e 104{
105 //
106 // Copy constructor
107 //
108
cb2442a7 109 if (fNbins>0) {
110 fEventTimeValues = new TArrayF(fNbins);
111 fEventTimeRes = new TArrayF(fNbins);
112 fNvalues = new TArrayI(fNbins);
113 for(Int_t i=0;i<fNbins;i++) {
114 (*fEventTimeValues)[i]=source.fEventTimeValues->At(i);
115 (*fEventTimeRes)[i]=source.fEventTimeRes->At(i);
116 (*fNvalues)[i]=source.fNvalues->At(i);
117 }
f858b00e 118 }
119
49a1368d 120 if(source.fTrigMask) fTrigMask = new AliTOFTriggerMask(*(source.fTrigMask));
121 else fTrigMask = new AliTOFTriggerMask();
f858b00e 122}
123//--------------------------------------------------------------------------
124AliTOFHeader &AliTOFHeader::operator=(const AliTOFHeader &source){
125 //
126 // assignment operator
127 //
128 if(&source != this){
129 TObject::operator=(source);
130
131 fDefaultEventTimeValue=source.fDefaultEventTimeValue;
132 fDefaultEventTimeRes=source.fDefaultEventTimeRes;
133 fNbins=source.fNbins;
f858b00e 134 fTOFtimeResolution=source.fTOFtimeResolution;
135 fT0spread=source.fT0spread;
49a1368d 136 fNumberOfTOFclusters=source.fNumberOfTOFclusters;
137 fNumberOfTOFtrgPads=source.fNumberOfTOFtrgPads;
138
cb2442a7 139 if (fNbins>0) {
140 fEventTimeValues = new TArrayF(fNbins);
141 fEventTimeRes = new TArrayF(fNbins);
142 fNvalues = new TArrayI(fNbins);
143 for(Int_t i=0;i<fNbins;i++) {
144 (*fEventTimeValues)[i]=source.fEventTimeValues->At(i);
145 (*fEventTimeRes)[i]=source.fEventTimeRes->At(i);
146 (*fNvalues)[i]=source.fNvalues->At(i);
147 }
148 } else {
149 fEventTimeValues = 0;
150 fEventTimeRes = 0;
151 fNvalues = 0;
f858b00e 152 }
cb2442a7 153
49a1368d 154 if(source.fTrigMask && fTrigMask) *fTrigMask = *(source.fTrigMask);
155 else if(! fTrigMask) fTrigMask = new AliTOFTriggerMask();
f858b00e 156 }
157 return *this;
158}
159//--------------------------------------------------------------------------
160void AliTOFHeader::Copy(TObject &obj) const {
161
162 // this overwrites the virtual TOBject::Copy()
163 // to allow run time copying without casting
164 // in AliESDEvent
165
cb2442a7 166 if (this==&obj) return;
f858b00e 167 AliTOFHeader *robj = dynamic_cast<AliTOFHeader*>(&obj);
cb2442a7 168 if (!robj) return; // not an AliTOFHeader
f858b00e 169 *robj = *this;
170
171}
172
173//--------------------------------------------------------------------------
174AliTOFHeader::~AliTOFHeader()
175{
176
cb2442a7 177 fNbins = 0;
178 if (fEventTimeValues) {
179 delete fEventTimeValues;
180 fEventTimeValues=0;
181 }
182 if (fEventTimeRes) {
183 delete fEventTimeRes;
184 fEventTimeRes=0;
185 }
186 if (fNvalues) {
187 delete fNvalues;
188 fNvalues=0;
189 }
49a1368d 190 if(fTrigMask){
191 delete fTrigMask;
192 fTrigMask=NULL;
193 }
f858b00e 194
195}
196
197//--------------------------------------------------------------------------
198void AliTOFHeader::SetNbins(Int_t nbins)
199{
200 //
201 //
202 //
203
204 fNbins=nbins;
cb2442a7 205 if (!fEventTimeValues)
206 fEventTimeValues = new TArrayF(nbins);
207 else
208 fEventTimeValues->Set(nbins);
209
210 if (!fEventTimeRes)
211 fEventTimeRes = new TArrayF(nbins);
212 else
213 fEventTimeRes->Set(nbins);
214
215 if (!fNvalues)
216 fNvalues = new TArrayI(nbins);
217 else
218 fNvalues->Set(nbins);
f858b00e 219
220}
221//--------------------------------------------------------------------------
222void AliTOFHeader::SetEventTimeValues(TArrayF *arr)
223{
224 //
225 //
226 //
227
228 fNbins=arr->GetSize();
cb2442a7 229
230 if (!fEventTimeValues)
231 fEventTimeValues = new TArrayF(fNbins);
232 else
233 fEventTimeValues->Set(fNbins);
234
235 for (Int_t ii=0; ii<fNbins; ii++)
f858b00e 236 fEventTimeValues->SetAt(arr->GetAt(ii),ii);
237
238}
239//--------------------------------------------------------------------------
240void AliTOFHeader::SetEventTimeRes(TArrayF *arr)
241{
242 //
243 //
244 //
245
246 fNbins=arr->GetSize();
cb2442a7 247
248 if (!fEventTimeRes)
249 fEventTimeRes = new TArrayF(fNbins);
250 else
251 fEventTimeRes->Set(fNbins);
252
253 for (Int_t ii=0; ii<fNbins; ii++)
f858b00e 254 fEventTimeRes->SetAt(arr->GetAt(ii),ii);
255
256}
257//--------------------------------------------------------------------------
258void AliTOFHeader::SetNvalues(TArrayI *arr)
259{
260 //
261 //
262 //
263
264 fNbins=arr->GetSize();
cb2442a7 265
266 if (!fNvalues)
267 fNvalues = new TArrayI(fNbins);
268 else
269 fNvalues->Set(fNbins);
270
271 for (Int_t ii=0; ii<fNbins; ii++)
f858b00e 272 fNvalues->SetAt(arr->GetAt(ii),ii);
273
274}