1 /**************************************************************************
2 * Copyright(c) 1998-2003, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
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 **************************************************************************/
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
21 // Origin: A.De Caro, decaro@sa.infn.it
22 //-----------------------------------------------------------------
24 //---- standard headers ----
25 #include "Riostream.h"
26 //---- Root headers --------
29 //---- AliRoot headers -----
30 #include "AliTOFHeader.h"
33 ClassImp(AliTOFHeader)
35 //--------------------------------------------------------------------------
36 AliTOFHeader::AliTOFHeader() :
38 fDefaultEventTimeValue(0.),
39 fDefaultEventTimeRes(0.),
44 fTOFtimeResolution(0.),
48 // Default Constructor
53 //--------------------------------------------------------------------------
54 AliTOFHeader::AliTOFHeader(Float_t defEvTime, Float_t defResEvTime,
55 Int_t nDifPbins, Float_t *times, Float_t *res,
56 Int_t *nPbin, Float_t tofTimeRes, Float_t t0spread) :
58 fDefaultEventTimeValue(defEvTime),
59 fDefaultEventTimeRes(defResEvTime),
64 fTOFtimeResolution(tofTimeRes),
68 // Constructor for TOF header
72 fEventTimeValues = new TArrayF(fNbins);
73 fEventTimeRes = new TArrayF(fNbins);
74 fNvalues = new TArrayI(fNbins);
75 for (Int_t ii=0; ii<fNbins; ii++) {
76 fEventTimeValues->SetAt(times[ii],ii);
77 fEventTimeRes->SetAt(res[ii],ii);
78 fNvalues->SetAt(nPbin[ii],ii);
84 //--------------------------------------------------------------------------
85 AliTOFHeader::AliTOFHeader(const AliTOFHeader &source):
87 fDefaultEventTimeValue(source.fDefaultEventTimeValue),
88 fDefaultEventTimeRes(source.fDefaultEventTimeRes),
89 fNbins(source.fNbins),
93 fTOFtimeResolution(source.fTOFtimeResolution),
94 fT0spread(source.fT0spread)
101 fEventTimeValues = new TArrayF(fNbins);
102 fEventTimeRes = new TArrayF(fNbins);
103 fNvalues = new TArrayI(fNbins);
104 for(Int_t i=0;i<fNbins;i++) {
105 (*fEventTimeValues)[i]=source.fEventTimeValues->At(i);
106 (*fEventTimeRes)[i]=source.fEventTimeRes->At(i);
107 (*fNvalues)[i]=source.fNvalues->At(i);
113 //--------------------------------------------------------------------------
114 AliTOFHeader &AliTOFHeader::operator=(const AliTOFHeader &source){
116 // assignment operator
119 TObject::operator=(source);
121 fDefaultEventTimeValue=source.fDefaultEventTimeValue;
122 fDefaultEventTimeRes=source.fDefaultEventTimeRes;
123 fNbins=source.fNbins;
124 fTOFtimeResolution=source.fTOFtimeResolution;
125 fT0spread=source.fT0spread;
128 fEventTimeValues = new TArrayF(fNbins);
129 fEventTimeRes = new TArrayF(fNbins);
130 fNvalues = new TArrayI(fNbins);
131 for(Int_t i=0;i<fNbins;i++) {
132 (*fEventTimeValues)[i]=source.fEventTimeValues->At(i);
133 (*fEventTimeRes)[i]=source.fEventTimeRes->At(i);
134 (*fNvalues)[i]=source.fNvalues->At(i);
137 fEventTimeValues = 0;
145 //--------------------------------------------------------------------------
146 void AliTOFHeader::Copy(TObject &obj) const {
148 // this overwrites the virtual TOBject::Copy()
149 // to allow run time copying without casting
152 if (this==&obj) return;
153 AliTOFHeader *robj = dynamic_cast<AliTOFHeader*>(&obj);
154 if (!robj) return; // not an AliTOFHeader
159 //--------------------------------------------------------------------------
160 AliTOFHeader::~AliTOFHeader()
164 if (fEventTimeValues) {
165 delete fEventTimeValues;
169 delete fEventTimeRes;
179 //--------------------------------------------------------------------------
180 void AliTOFHeader::SetNbins(Int_t nbins)
187 if (!fEventTimeValues)
188 fEventTimeValues = new TArrayF(nbins);
190 fEventTimeValues->Set(nbins);
193 fEventTimeRes = new TArrayF(nbins);
195 fEventTimeRes->Set(nbins);
198 fNvalues = new TArrayI(nbins);
200 fNvalues->Set(nbins);
203 //--------------------------------------------------------------------------
204 void AliTOFHeader::SetEventTimeValues(TArrayF *arr)
210 fNbins=arr->GetSize();
212 if (!fEventTimeValues)
213 fEventTimeValues = new TArrayF(fNbins);
215 fEventTimeValues->Set(fNbins);
217 for (Int_t ii=0; ii<fNbins; ii++)
218 fEventTimeValues->SetAt(arr->GetAt(ii),ii);
221 //--------------------------------------------------------------------------
222 void AliTOFHeader::SetEventTimeRes(TArrayF *arr)
228 fNbins=arr->GetSize();
231 fEventTimeRes = new TArrayF(fNbins);
233 fEventTimeRes->Set(fNbins);
235 for (Int_t ii=0; ii<fNbins; ii++)
236 fEventTimeRes->SetAt(arr->GetAt(ii),ii);
239 //--------------------------------------------------------------------------
240 void AliTOFHeader::SetNvalues(TArrayI *arr)
246 fNbins=arr->GetSize();
249 fNvalues = new TArrayI(fNbins);
251 fNvalues->Set(fNbins);
253 for (Int_t ii=0; ii<fNbins; ii++)
254 fNvalues->SetAt(arr->GetAt(ii),ii);