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@lsa.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.),
41 fEventTimeValues(new TArrayF(1)),
42 fEventTimeRes(new TArrayF(1)),
43 fNvalues(new TArrayI(1)),
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),
61 fEventTimeValues(new TArrayF(nDifPbins)),
62 fEventTimeRes(new TArrayF(nDifPbins)),
63 fNvalues(new TArrayI(nDifPbins)),
64 fTOFtimeResolution(tofTimeRes),
68 // Constructor for vertex Z from pixels
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);
79 //--------------------------------------------------------------------------
80 AliTOFHeader::AliTOFHeader(const AliTOFHeader &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)
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);
103 //--------------------------------------------------------------------------
104 AliTOFHeader &AliTOFHeader::operator=(const AliTOFHeader &source){
106 // assignment operator
109 TObject::operator=(source);
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);
127 //--------------------------------------------------------------------------
128 void AliTOFHeader::Copy(TObject &obj) const {
130 // this overwrites the virtual TOBject::Copy()
131 // to allow run time copying without casting
134 if(this==&obj)return;
135 AliTOFHeader *robj = dynamic_cast<AliTOFHeader*>(&obj);
136 if(!robj)return; // not an AliTOFHeader
141 //--------------------------------------------------------------------------
142 AliTOFHeader::~AliTOFHeader()
145 fEventTimeValues->Reset();
146 fEventTimeRes->Reset();
149 delete fEventTimeValues;
150 delete fEventTimeRes;
155 //--------------------------------------------------------------------------
156 void AliTOFHeader::SetNbins(Int_t nbins)
163 fEventTimeValues->Set(nbins);
164 fEventTimeRes->Set(nbins);
165 fNvalues->Set(nbins);
168 //--------------------------------------------------------------------------
169 void AliTOFHeader::SetEventTimeValues(TArrayF *arr)
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);
181 //--------------------------------------------------------------------------
182 void AliTOFHeader::SetEventTimeRes(TArrayF *arr)
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);
194 //--------------------------------------------------------------------------
195 void AliTOFHeader::SetNvalues(TArrayI *arr)
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);