1 /**************************************************************************
2 * Copyright(c) 1998-1999, 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 // Implemenation Class AliESDTZERO
18 // This is a class that summarizes the TZERO data for the ESD
19 // Origin: Christian Klein-Boesing, CERN, Christian.Klein-Boesing@cern.ch
20 //-------------------------------------------------------------------------
24 #include "AliESDTZERO.h"
30 //______________________________________________________________________________
31 AliESDTZERO::AliESDTZERO() :
44 for(int i = 0;i<24;i++) {
45 fT0time[i] = fT0amplitude[i] = 0;
46 for(Int_t iHit=0; iHit<5; iHit++) {
47 fTimeFull[i][iHit] = -9999;
48 if (i==0) fOrA[iHit] = -9999;
49 if (i==0)fOrC[iHit] = -9999;
50 if (i==0) fTVDC[iHit] = -9999;
53 for(Int_t iHit=0; iHit<6; iHit++) fPileupTime[iHit]= -9999;
54 for(int i = 0;i<3;i++) {
56 fT0TOFbest[i] = -9999;
59 //______________________________________________________________________________
60 AliESDTZERO::AliESDTZERO(const AliESDTZERO &tzero ) :
62 fT0clock(tzero.fT0clock),
63 fT0zVertex(tzero.fT0zVertex),
64 fT0timeStart(tzero.fT0timeStart),
65 fT0trig(tzero.fT0trig),
66 fPileup(tzero.fPileup),
67 fSattelite(tzero.fSattelite),
70 fBackground(tzero.fBackground)
73 for(int i = 0;i<3;i++) {
74 fT0TOF[i] = tzero.fT0TOF[i];
75 fT0TOFbest[i] = tzero.fT0TOFbest[i];
77 for(int iHit=0; iHit<6; iHit++) fPileupTime[iHit] = tzero.fPileupTime[iHit];
78 for(int i = 0;i<24;i++){
79 fT0time[i] = tzero.fT0time[i];
80 fT0amplitude[i] = tzero.fT0amplitude[i];
81 for(Int_t iHit=0; iHit<5; iHit++) {
82 fTimeFull[i][iHit] = tzero.fTimeFull[i][iHit];
83 if (i==0) fOrA[iHit] = tzero.fOrA[iHit];
84 if (i==0) fOrC[iHit] = tzero.fOrC[iHit];
85 if (i==0) fTVDC[iHit] = tzero.fTVDC[iHit];
89 //______________________________________________________________________________
90 AliESDTZERO& AliESDTZERO::operator=(const AliESDTZERO& tzero){
91 // assigmnent operator
93 TObject::operator=(tzero);
94 fT0clock = tzero.fT0clock;
95 fT0zVertex = tzero.fT0zVertex;
96 fT0timeStart = tzero.fT0timeStart;
97 fPileup = tzero.fPileup;
98 fSattelite = tzero.fSattelite;
99 fBackground = tzero.fBackground;
100 fMultC = tzero.fMultC;
101 fMultA = tzero.fMultA;
102 fT0trig = tzero.fT0trig;
103 for(int i = 0;i<3;i++) {
104 fT0TOF[i] = tzero.fT0TOF[i];
105 fT0TOFbest[i] = tzero.fT0TOFbest[i];
108 for(int iHit=0; iHit<6; iHit++) fPileupTime[iHit] = tzero.fPileupTime[iHit];
109 for(int i = 0;i<24;i++){
110 fT0time[i] = tzero.fT0time[i];
111 fT0amplitude[i] = tzero.fT0amplitude[i];
112 for(Int_t iHit=0; iHit<5; iHit++) {
113 fTimeFull[i][iHit] = tzero.fTimeFull[i][iHit];
114 if (i==0) fOrA[iHit] = tzero.fOrA[iHit];
115 if (i==0) fOrC[iHit] = tzero.fOrC[iHit];
116 if (i==0) fTVDC[iHit] = tzero.fTVDC[iHit];
122 //______________________________________________________________________________
123 void AliESDTZERO::Copy(TObject &obj) const {
125 // this overwrites the virtual TOBject::Copy()
126 // to allow run time copying without casting
129 if(this==&obj)return;
130 AliESDTZERO *robj = dynamic_cast<AliESDTZERO*>(&obj);
131 if(!robj)return; // not an AliESDTZERO
137 //______________________________________________________________________________
138 void AliESDTZERO::Reset()
144 for(int i = 0;i<24;i++) {
145 fT0time[i] = fT0amplitude[i] = 0;
146 for(Int_t iHit=0; iHit<5; iHit++) fTimeFull[i][iHit] = -9999;
148 for(Int_t iHit=0; iHit<5; iHit++) fOrA[iHit] = fOrC[iHit] = fTVDC[iHit] = -9999;
149 for(Int_t iHit=0; iHit<6; iHit++) fPileupTime[iHit]= -9999;
150 for(int i = 0;i<3;i++) {
152 fT0TOFbest[i] = -9999;
156 //______________________________________________________________________________
157 void AliESDTZERO::Print(const Option_t *) const
159 // does noting fornow
160 AliInfo(Form(" Vertex %f (T0A+T0C)/2 %f #channels T0signal %f ns OrA %f ns OrC %f \n",fT0zVertex, fT0timeStart, fT0TOF[0],fT0TOF[1],fT0TOF[2]));
163 for (Int_t i=0; i<5; i++) tr[i] = fT0trig & (1<<i);
164 AliInfo(Form("T0 triggers %d %d %d %d %d",tr[0],tr[1],tr[2],tr[3],tr[4]));