ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

//-------------------------------------------------------------------------
//                        Implemenation Class AliESDTZERO
//   This is a class that summarizes the TZERO data for the ESD   
//   Origin: Christian Klein-Boesing, CERN, Christian.Klein-Boesing@cern.ch 
//-------------------------------------------------------------------------



#include "AliESDTZERO.h"
#include "AliLog.h"


ClassImp(AliESDTZERO)

//______________________________________________________________________________
AliESDTZERO::AliESDTZERO() :
  TObject(),
  fT0clock(0),
  fT0zVertex(0),
  fT0timeStart(0),   
  fT0trig(0),
  fPileup(kFALSE),
  fSattelite(kFALSE),
  fMultC(0),
  fMultA(0),
  fBackground(0)

{
  for(int i = 0;i<24;i++) {
    fT0time[i] = fT0amplitude[i] = 0;
    for(Int_t iHit=0; iHit<5; iHit++) {
      fTimeFull[i][iHit] = -9999;   
      if (i==0) fOrA[iHit] = -9999; 
      if (i==0)fOrC[iHit] = -9999;  
      if (i==0) fTVDC[iHit] = -9999; 
    }
  }
  for(Int_t iHit=0; iHit<6; iHit++) fPileupTime[iHit]= -9999;
  for(int i = 0;i<3;i++) {
    fT0TOF[i] = -9999;
    fT0TOFbest[i] = -9999;
  }
}
//______________________________________________________________________________
AliESDTZERO::AliESDTZERO(const AliESDTZERO &tzero ) :
  TObject(tzero),
  fT0clock(tzero.fT0clock),  
  fT0zVertex(tzero.fT0zVertex),
  fT0timeStart(tzero.fT0timeStart),
  fT0trig(tzero.fT0trig),
  fPileup(tzero.fPileup),
  fSattelite(tzero.fSattelite),
  fMultC(tzero.fMultC),
  fMultA(tzero.fMultA),
  fBackground(tzero.fBackground)
{
  // copy constuctor
  for(int i = 0;i<3;i++) {
    fT0TOF[i] = tzero.fT0TOF[i];
    fT0TOFbest[i] = tzero.fT0TOFbest[i];
  }
  for(int iHit=0; iHit<6; iHit++)  fPileupTime[iHit] = tzero.fPileupTime[iHit]; 
  for(int i = 0;i<24;i++){
    fT0time[i] = tzero.fT0time[i]; 
    fT0amplitude[i] = tzero.fT0amplitude[i];
    for(Int_t iHit=0; iHit<5; iHit++) {
      fTimeFull[i][iHit] = tzero.fTimeFull[i][iHit];   
     if (i==0)  fOrA[iHit] = tzero.fOrA[iHit]; 
     if (i==0)  fOrC[iHit] = tzero.fOrC[iHit];  
     if (i==0)  fTVDC[iHit] = tzero.fTVDC[iHit]; 
    }
  }
}
//______________________________________________________________________________
AliESDTZERO& AliESDTZERO::operator=(const AliESDTZERO& tzero){
  // assigmnent operator
  if(this!=&tzero) {
    TObject::operator=(tzero);
    fT0clock = tzero.fT0clock;
    fT0zVertex = tzero.fT0zVertex;
    fT0timeStart = tzero.fT0timeStart;
    fPileup = tzero.fPileup;
    fSattelite = tzero.fSattelite;
    fBackground = tzero.fBackground;
    fMultC = tzero.fMultC;
    fMultA = tzero.fMultA;
    fT0trig = tzero.fT0trig;
    for(int i = 0;i<3;i++) {
      fT0TOF[i] = tzero.fT0TOF[i];
      fT0TOFbest[i] = tzero.fT0TOFbest[i];
    }

    for(int iHit=0; iHit<6; iHit++)  fPileupTime[iHit] = tzero.fPileupTime[iHit]; 
    for(int i = 0;i<24;i++){
      fT0time[i] = tzero.fT0time[i]; 
      fT0amplitude[i] = tzero.fT0amplitude[i];
      for(Int_t iHit=0; iHit<5; iHit++) {
	fTimeFull[i][iHit] = tzero.fTimeFull[i][iHit];   
	if (i==0) 	fOrA[iHit] = tzero.fOrA[iHit]; 
	if (i==0) 	fOrC[iHit] = tzero.fOrC[iHit];  
	if (i==0) 	fTVDC[iHit] = tzero.fTVDC[iHit]; 
    }
   }
  } 
  return *this;
}
//______________________________________________________________________________
void AliESDTZERO::Copy(TObject &obj) const {
  
  // this overwrites the virtual TOBject::Copy()
  // to allow run time copying without casting
  // in AliESDEvent

  if(this==&obj)return;
  AliESDTZERO *robj = dynamic_cast<AliESDTZERO*>(&obj);
  if(!robj)return; // not an AliESDTZERO
  *robj = *this;

}


//______________________________________________________________________________
void AliESDTZERO::Reset()
{
  // reset contents
  fT0clock=0;
  fT0zVertex = -9999;  
  fT0timeStart = 0;
  for(int i = 0;i<24;i++) {
    fT0time[i] = fT0amplitude[i] =  0;
    for(Int_t iHit=0; iHit<5; iHit++)  fTimeFull[i][iHit] = -9999;
  }
  for(Int_t iHit=0; iHit<5; iHit++) fOrA[iHit] = fOrC[iHit] = fTVDC[iHit] = -9999; 
  for(Int_t iHit=0; iHit<6; iHit++) fPileupTime[iHit]= -9999;
  for(int i = 0;i<3;i++) {
    fT0TOF[i] = -9999;
    fT0TOFbest[i] = -9999;
  }
}

//______________________________________________________________________________
void AliESDTZERO::Print(const Option_t *) const
{
  // does noting fornow
  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]));

  Bool_t tr[5];
  for (Int_t i=0; i<5; i++) tr[i] = fT0trig & (1<<i);
  AliInfo(Form("T0 triggers %d %d %d %d %d",tr[0],tr[1],tr[2],tr[3],tr[4])); 

}
 AliESDTZERO.cxx:1
 AliESDTZERO.cxx:2
 AliESDTZERO.cxx:3
 AliESDTZERO.cxx:4
 AliESDTZERO.cxx:5
 AliESDTZERO.cxx:6
 AliESDTZERO.cxx:7
 AliESDTZERO.cxx:8
 AliESDTZERO.cxx:9
 AliESDTZERO.cxx:10
 AliESDTZERO.cxx:11
 AliESDTZERO.cxx:12
 AliESDTZERO.cxx:13
 AliESDTZERO.cxx:14
 AliESDTZERO.cxx:15
 AliESDTZERO.cxx:16
 AliESDTZERO.cxx:17
 AliESDTZERO.cxx:18
 AliESDTZERO.cxx:19
 AliESDTZERO.cxx:20
 AliESDTZERO.cxx:21
 AliESDTZERO.cxx:22
 AliESDTZERO.cxx:23
 AliESDTZERO.cxx:24
 AliESDTZERO.cxx:25
 AliESDTZERO.cxx:26
 AliESDTZERO.cxx:27
 AliESDTZERO.cxx:28
 AliESDTZERO.cxx:29
 AliESDTZERO.cxx:30
 AliESDTZERO.cxx:31
 AliESDTZERO.cxx:32
 AliESDTZERO.cxx:33
 AliESDTZERO.cxx:34
 AliESDTZERO.cxx:35
 AliESDTZERO.cxx:36
 AliESDTZERO.cxx:37
 AliESDTZERO.cxx:38
 AliESDTZERO.cxx:39
 AliESDTZERO.cxx:40
 AliESDTZERO.cxx:41
 AliESDTZERO.cxx:42
 AliESDTZERO.cxx:43
 AliESDTZERO.cxx:44
 AliESDTZERO.cxx:45
 AliESDTZERO.cxx:46
 AliESDTZERO.cxx:47
 AliESDTZERO.cxx:48
 AliESDTZERO.cxx:49
 AliESDTZERO.cxx:50
 AliESDTZERO.cxx:51
 AliESDTZERO.cxx:52
 AliESDTZERO.cxx:53
 AliESDTZERO.cxx:54
 AliESDTZERO.cxx:55
 AliESDTZERO.cxx:56
 AliESDTZERO.cxx:57
 AliESDTZERO.cxx:58
 AliESDTZERO.cxx:59
 AliESDTZERO.cxx:60
 AliESDTZERO.cxx:61
 AliESDTZERO.cxx:62
 AliESDTZERO.cxx:63
 AliESDTZERO.cxx:64
 AliESDTZERO.cxx:65
 AliESDTZERO.cxx:66
 AliESDTZERO.cxx:67
 AliESDTZERO.cxx:68
 AliESDTZERO.cxx:69
 AliESDTZERO.cxx:70
 AliESDTZERO.cxx:71
 AliESDTZERO.cxx:72
 AliESDTZERO.cxx:73
 AliESDTZERO.cxx:74
 AliESDTZERO.cxx:75
 AliESDTZERO.cxx:76
 AliESDTZERO.cxx:77
 AliESDTZERO.cxx:78
 AliESDTZERO.cxx:79
 AliESDTZERO.cxx:80
 AliESDTZERO.cxx:81
 AliESDTZERO.cxx:82
 AliESDTZERO.cxx:83
 AliESDTZERO.cxx:84
 AliESDTZERO.cxx:85
 AliESDTZERO.cxx:86
 AliESDTZERO.cxx:87
 AliESDTZERO.cxx:88
 AliESDTZERO.cxx:89
 AliESDTZERO.cxx:90
 AliESDTZERO.cxx:91
 AliESDTZERO.cxx:92
 AliESDTZERO.cxx:93
 AliESDTZERO.cxx:94
 AliESDTZERO.cxx:95
 AliESDTZERO.cxx:96
 AliESDTZERO.cxx:97
 AliESDTZERO.cxx:98
 AliESDTZERO.cxx:99
 AliESDTZERO.cxx:100
 AliESDTZERO.cxx:101
 AliESDTZERO.cxx:102
 AliESDTZERO.cxx:103
 AliESDTZERO.cxx:104
 AliESDTZERO.cxx:105
 AliESDTZERO.cxx:106
 AliESDTZERO.cxx:107
 AliESDTZERO.cxx:108
 AliESDTZERO.cxx:109
 AliESDTZERO.cxx:110
 AliESDTZERO.cxx:111
 AliESDTZERO.cxx:112
 AliESDTZERO.cxx:113
 AliESDTZERO.cxx:114
 AliESDTZERO.cxx:115
 AliESDTZERO.cxx:116
 AliESDTZERO.cxx:117
 AliESDTZERO.cxx:118
 AliESDTZERO.cxx:119
 AliESDTZERO.cxx:120
 AliESDTZERO.cxx:121
 AliESDTZERO.cxx:122
 AliESDTZERO.cxx:123
 AliESDTZERO.cxx:124
 AliESDTZERO.cxx:125
 AliESDTZERO.cxx:126
 AliESDTZERO.cxx:127
 AliESDTZERO.cxx:128
 AliESDTZERO.cxx:129
 AliESDTZERO.cxx:130
 AliESDTZERO.cxx:131
 AliESDTZERO.cxx:132
 AliESDTZERO.cxx:133
 AliESDTZERO.cxx:134
 AliESDTZERO.cxx:135
 AliESDTZERO.cxx:136
 AliESDTZERO.cxx:137
 AliESDTZERO.cxx:138
 AliESDTZERO.cxx:139
 AliESDTZERO.cxx:140
 AliESDTZERO.cxx:141
 AliESDTZERO.cxx:142
 AliESDTZERO.cxx:143
 AliESDTZERO.cxx:144
 AliESDTZERO.cxx:145
 AliESDTZERO.cxx:146
 AliESDTZERO.cxx:147
 AliESDTZERO.cxx:148
 AliESDTZERO.cxx:149
 AliESDTZERO.cxx:150
 AliESDTZERO.cxx:151
 AliESDTZERO.cxx:152
 AliESDTZERO.cxx:153
 AliESDTZERO.cxx:154
 AliESDTZERO.cxx:155
 AliESDTZERO.cxx:156
 AliESDTZERO.cxx:157
 AliESDTZERO.cxx:158
 AliESDTZERO.cxx:159
 AliESDTZERO.cxx:160
 AliESDTZERO.cxx:161
 AliESDTZERO.cxx:162
 AliESDTZERO.cxx:163
 AliESDTZERO.cxx:164
 AliESDTZERO.cxx:165
 AliESDTZERO.cxx:166