]>
Commit | Line | Data |
---|---|---|
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 | |
21 | // Origin: A.De Caro, decaro@lsa.infn.it | |
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 | ||
33 | ClassImp(AliTOFHeader) | |
34 | ||
35 | //-------------------------------------------------------------------------- | |
36 | AliTOFHeader::AliTOFHeader() : | |
37 | TObject(), | |
38 | fDefaultEventTimeValue(0.), | |
39 | fDefaultEventTimeRes(0.), | |
40 | fNbins(0), | |
41 | fEventTimeValues(new TArrayF(1)), | |
42 | fEventTimeRes(new TArrayF(1)), | |
43 | fNvalues(new TArrayI(1)), | |
44 | fTOFtimeResolution(0.), | |
45 | fT0spread(0.) | |
46 | { | |
47 | // | |
48 | // Default Constructor | |
49 | // | |
50 | ||
51 | } | |
52 | ||
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) : | |
57 | TObject(), | |
58 | fDefaultEventTimeValue(defEvTime), | |
59 | fDefaultEventTimeRes(defResEvTime), | |
60 | fNbins(nDifPbins), | |
61 | fEventTimeValues(new TArrayF(nDifPbins)), | |
62 | fEventTimeRes(new TArrayF(nDifPbins)), | |
63 | fNvalues(new TArrayI(nDifPbins)), | |
64 | fTOFtimeResolution(tofTimeRes), | |
65 | fT0spread(t0spread) | |
66 | { | |
67 | // | |
68 | // Constructor for vertex Z from pixels | |
69 | // | |
70 | ||
71 | for (Int_t ii=0; ii<fNbins; ii++) { | |
72 | fEventTimeValues->SetAt(times[ii],ii); | |
73 | fEventTimeRes->SetAt(res[ii],ii); | |
74 | fNvalues->SetAt(nPbin[ii],ii); | |
75 | } | |
76 | ||
77 | } | |
78 | ||
79 | //-------------------------------------------------------------------------- | |
80 | AliTOFHeader::AliTOFHeader(const AliTOFHeader &source): | |
81 | TObject(source), | |
82 | fDefaultEventTimeValue(source.fDefaultEventTimeValue), | |
83 | fDefaultEventTimeRes(source.fDefaultEventTimeRes), | |
84 | fNbins(source.fNbins), | |
85 | fEventTimeValues(new TArrayF(fNbins)), | |
86 | fEventTimeRes(new TArrayF(fNbins)), | |
87 | fNvalues(new TArrayI(fNbins)), | |
88 | fTOFtimeResolution(source.fTOFtimeResolution), | |
89 | fT0spread(source.fT0spread) | |
90 | { | |
91 | // | |
92 | // Copy constructor | |
93 | // | |
94 | ||
95 | ||
96 | for(Int_t i=0;i<fNbins;i++) { | |
97 | fEventTimeValues->SetAt(source.fEventTimeValues->GetAt(i),i); | |
98 | fEventTimeRes->SetAt(source.fEventTimeRes->GetAt(i),i); | |
99 | fNvalues->SetAt(source.fNvalues->GetAt(i),i); | |
100 | } | |
101 | ||
102 | } | |
103 | //-------------------------------------------------------------------------- | |
104 | AliTOFHeader &AliTOFHeader::operator=(const AliTOFHeader &source){ | |
105 | // | |
106 | // assignment operator | |
107 | // | |
108 | if(&source != this){ | |
109 | TObject::operator=(source); | |
110 | ||
111 | fDefaultEventTimeValue=source.fDefaultEventTimeValue; | |
112 | fDefaultEventTimeRes=source.fDefaultEventTimeRes; | |
113 | fNbins=source.fNbins; | |
114 | fEventTimeValues=new TArrayF(fNbins); | |
115 | fEventTimeRes=new TArrayF(fNbins); | |
116 | fNvalues=new TArrayI(fNbins); | |
117 | fTOFtimeResolution=source.fTOFtimeResolution; | |
118 | fT0spread=source.fT0spread; | |
119 | for(Int_t i=0;i<fNbins;i++) { | |
120 | fEventTimeValues->SetAt(source.fEventTimeValues->GetAt(i),i); | |
121 | fEventTimeRes->SetAt(source.fEventTimeRes->GetAt(i),i); | |
122 | fNvalues->SetAt(source.fNvalues->GetAt(i),i); | |
123 | } | |
124 | } | |
125 | return *this; | |
126 | } | |
127 | //-------------------------------------------------------------------------- | |
128 | void AliTOFHeader::Copy(TObject &obj) const { | |
129 | ||
130 | // this overwrites the virtual TOBject::Copy() | |
131 | // to allow run time copying without casting | |
132 | // in AliESDEvent | |
133 | ||
134 | if(this==&obj)return; | |
135 | AliTOFHeader *robj = dynamic_cast<AliTOFHeader*>(&obj); | |
136 | if(!robj)return; // not an AliTOFHeader | |
137 | *robj = *this; | |
138 | ||
139 | } | |
140 | ||
141 | //-------------------------------------------------------------------------- | |
142 | AliTOFHeader::~AliTOFHeader() | |
143 | { | |
144 | ||
145 | fEventTimeValues->Reset(); | |
146 | fEventTimeRes->Reset(); | |
147 | fNvalues->Reset(); | |
148 | ||
149 | delete fEventTimeValues; | |
150 | delete fEventTimeRes; | |
151 | delete fNvalues; | |
152 | ||
153 | } | |
154 | ||
155 | //-------------------------------------------------------------------------- | |
156 | void AliTOFHeader::SetNbins(Int_t nbins) | |
157 | { | |
158 | // | |
159 | // | |
160 | // | |
161 | ||
162 | fNbins=nbins; | |
163 | fEventTimeValues->Set(nbins); | |
164 | fEventTimeRes->Set(nbins); | |
165 | fNvalues->Set(nbins); | |
166 | ||
167 | } | |
168 | //-------------------------------------------------------------------------- | |
169 | void AliTOFHeader::SetEventTimeValues(TArrayF *arr) | |
170 | { | |
171 | // | |
172 | // | |
173 | // | |
174 | ||
175 | fNbins=arr->GetSize(); | |
176 | fEventTimeValues->Set(arr->GetSize()); | |
177 | for (Int_t ii=0; ii<arr->GetSize(); ii++) | |
178 | fEventTimeValues->SetAt(arr->GetAt(ii),ii); | |
179 | ||
180 | } | |
181 | //-------------------------------------------------------------------------- | |
182 | void AliTOFHeader::SetEventTimeRes(TArrayF *arr) | |
183 | { | |
184 | // | |
185 | // | |
186 | // | |
187 | ||
188 | fNbins=arr->GetSize(); | |
189 | fEventTimeRes->Set(arr->GetSize()); | |
190 | for (Int_t ii=0; ii<arr->GetSize(); ii++) | |
191 | fEventTimeRes->SetAt(arr->GetAt(ii),ii); | |
192 | ||
193 | } | |
194 | //-------------------------------------------------------------------------- | |
195 | void AliTOFHeader::SetNvalues(TArrayI *arr) | |
196 | { | |
197 | // | |
198 | // | |
199 | // | |
200 | ||
201 | fNbins=arr->GetSize(); | |
202 | fNvalues->Set(arr->GetSize()); | |
203 | for (Int_t ii=0; ii<arr->GetSize(); ii++) | |
204 | fNvalues->SetAt(arr->GetAt(ii),ii); | |
205 | ||
206 | } |