ROOT logo

// -*- mode: C++ -*- 
#ifndef ALIESDTZERO_H
#define ALIESDTZERO_H

/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */


//-------------------------------------------------------------------------
//                          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 <TObject.h>

class AliESDTZERO: public TObject {
public:
  AliESDTZERO();
  AliESDTZERO(const AliESDTZERO& tzero);
  AliESDTZERO& operator=(const AliESDTZERO& tzero);
  virtual void Copy(TObject &obj) const;

  Double32_t GetT0zVertex() const {return fT0zVertex;}
  void SetT0zVertex(Double32_t z) {fT0zVertex=z;}
  Double32_t GetT0() const {return fT0timeStart;}
  void SetT0(Double_t timeStart) {fT0timeStart = timeStart;}
  Float_t GetT0clock() const {return fT0clock;}
  void SetT0clock(Float_t timeStart) {fT0clock = timeStart;}
  //1st
  Double32_t GetT0TOF(Int_t i) const {return fT0TOF[i];}
  const Double32_t * GetT0TOF() const {return fT0TOF;}
  void SetT0TOF(Int_t icase, Float_t time) { fT0TOF[icase] = time;}
  //best
  Double32_t GetT0TOFbest(Int_t i) const {return fT0TOFbest[i];}
  const Double32_t * GetT0TOFbest() const {return fT0TOFbest;}
  void SetT0TOFbest(Int_t icase, Float_t time) { fT0TOFbest[icase] = time;}

  Int_t GetT0Trig() const {return fT0trig;}
  void SetT0Trig(Int_t tvdc) {fT0trig = tvdc;}
  Bool_t GetT0Trig(Int_t i) {return (fT0trig&(1<<i)) != 0;}
  const Double32_t * GetT0time() const {return fT0time;}
  void SetT0time(Double32_t time[24]) {
    for (Int_t i=0; i<24; i++) fT0time[i] = time[i];
  }
  const Double32_t * GetT0amplitude() const {return fT0amplitude;}
  void SetT0amplitude(Double32_t amp[24]) {
    for (Int_t i=0; i<24; i++) fT0amplitude[i] = amp[i];
  }
  Float_t GetTimeFull(Int_t ch, Int_t hit)  const {return fTimeFull[ch][hit];}
  Float_t GetOrA(Int_t hit) const {return fOrA[hit];}
   Float_t GetOrC(Int_t hit) const {return fOrC[hit];}
   Float_t GetTVDC(Int_t hit) const {return fTVDC[hit];}
  
  void SetTimeFull(Int_t ch, Int_t hit, Float_t time) {fTimeFull[ch][hit] = time;}
  void SetOrA (Int_t hit, Float_t time) { fOrA[hit] = time ;}
  void SetOrC (Int_t hit, Float_t time) { fOrC[hit] = time;}
  void SetTVDC(Int_t hit, Float_t time) { fTVDC[hit] = time;}
  
  void SetMultC(Float_t mult) {fMultC = mult;}
  void SetMultA(Float_t mult) {fMultA = mult;}
   Float_t GetMultC()       const {return fMultC;}
   Float_t GetMultA()       const {return fMultA;}

  void SetBackgroundFlag(Bool_t back = false) {fBackground = back;}
  void SetPileupFlag(Bool_t back = false) {fPileup  = back;}
  void SetSatelliteFlag(Bool_t sat = false) { fSattelite = sat;}
 
  Bool_t GetBackgroundFlag()  const {return fBackground;}
   Bool_t GetPileupFlag() const {return fPileup;}
  Bool_t GetSatellite() const {return fSattelite;}

  void SetPileupTime (Int_t hit, Float_t time) { fPileupTime[hit] = time;}
  Float_t GetPileupTime(Int_t hit) const  {return fPileupTime[hit];}


  void    Reset();
  void    Print(const Option_t *opt=0) const;


private:

  Float_t      fT0clock;     // backward compatibility
  Double32_t   fT0TOF[3];     // interaction time in ps with 1st time( A&C, A, C)
  Double32_t   fT0zVertex;       // vertex z position estimated by the T0, cm
  Double32_t   fT0timeStart;     // interaction time estimated by the T0
  Int_t        fT0trig;            // T0 trigger signals
  Double32_t   fT0time[24];      // best TOF on each T0 PMT
  Double32_t   fT0amplitude[24]; // number of particles(MIPs) on each T0 PMT
  Float_t fTimeFull[24][5];    // array's TDC no-correction ;centred  around 0, ns
  Float_t fOrA[5];  //hardware OrA centred around 0, ns
  Float_t fOrC[5];  //hardware OrC centred around 0, ns
  Float_t fTVDC[5]; //hardware TVDC centred around 0, ns
  Bool_t fPileup;   // pile-up flag
  Bool_t fSattelite; //sattelite flag
  Float_t fMultC; // multiplicity on the C side
  Float_t fMultA; // multiplicity on the A side
  Bool_t fBackground; //sattelite flag
  Float_t fPileupTime[6];
  Double32_t   fT0TOFbest[3]; // interaction time in ps ( A&C, A, C) with best time

  ClassDef(AliESDTZERO,7)
};


#endif
 AliESDTZERO.h:1
 AliESDTZERO.h:2
 AliESDTZERO.h:3
 AliESDTZERO.h:4
 AliESDTZERO.h:5
 AliESDTZERO.h:6
 AliESDTZERO.h:7
 AliESDTZERO.h:8
 AliESDTZERO.h:9
 AliESDTZERO.h:10
 AliESDTZERO.h:11
 AliESDTZERO.h:12
 AliESDTZERO.h:13
 AliESDTZERO.h:14
 AliESDTZERO.h:15
 AliESDTZERO.h:16
 AliESDTZERO.h:17
 AliESDTZERO.h:18
 AliESDTZERO.h:19
 AliESDTZERO.h:20
 AliESDTZERO.h:21
 AliESDTZERO.h:22
 AliESDTZERO.h:23
 AliESDTZERO.h:24
 AliESDTZERO.h:25
 AliESDTZERO.h:26
 AliESDTZERO.h:27
 AliESDTZERO.h:28
 AliESDTZERO.h:29
 AliESDTZERO.h:30
 AliESDTZERO.h:31
 AliESDTZERO.h:32
 AliESDTZERO.h:33
 AliESDTZERO.h:34
 AliESDTZERO.h:35
 AliESDTZERO.h:36
 AliESDTZERO.h:37
 AliESDTZERO.h:38
 AliESDTZERO.h:39
 AliESDTZERO.h:40
 AliESDTZERO.h:41
 AliESDTZERO.h:42
 AliESDTZERO.h:43
 AliESDTZERO.h:44
 AliESDTZERO.h:45
 AliESDTZERO.h:46
 AliESDTZERO.h:47
 AliESDTZERO.h:48
 AliESDTZERO.h:49
 AliESDTZERO.h:50
 AliESDTZERO.h:51
 AliESDTZERO.h:52
 AliESDTZERO.h:53
 AliESDTZERO.h:54
 AliESDTZERO.h:55
 AliESDTZERO.h:56
 AliESDTZERO.h:57
 AliESDTZERO.h:58
 AliESDTZERO.h:59
 AliESDTZERO.h:60
 AliESDTZERO.h:61
 AliESDTZERO.h:62
 AliESDTZERO.h:63
 AliESDTZERO.h:64
 AliESDTZERO.h:65
 AliESDTZERO.h:66
 AliESDTZERO.h:67
 AliESDTZERO.h:68
 AliESDTZERO.h:69
 AliESDTZERO.h:70
 AliESDTZERO.h:71
 AliESDTZERO.h:72
 AliESDTZERO.h:73
 AliESDTZERO.h:74
 AliESDTZERO.h:75
 AliESDTZERO.h:76
 AliESDTZERO.h:77
 AliESDTZERO.h:78
 AliESDTZERO.h:79
 AliESDTZERO.h:80
 AliESDTZERO.h:81
 AliESDTZERO.h:82
 AliESDTZERO.h:83
 AliESDTZERO.h:84
 AliESDTZERO.h:85
 AliESDTZERO.h:86
 AliESDTZERO.h:87
 AliESDTZERO.h:88
 AliESDTZERO.h:89
 AliESDTZERO.h:90
 AliESDTZERO.h:91
 AliESDTZERO.h:92
 AliESDTZERO.h:93
 AliESDTZERO.h:94
 AliESDTZERO.h:95
 AliESDTZERO.h:96
 AliESDTZERO.h:97
 AliESDTZERO.h:98
 AliESDTZERO.h:99
 AliESDTZERO.h:100
 AliESDTZERO.h:101
 AliESDTZERO.h:102
 AliESDTZERO.h:103
 AliESDTZERO.h:104
 AliESDTZERO.h:105
 AliESDTZERO.h:106
 AliESDTZERO.h:107
 AliESDTZERO.h:108
 AliESDTZERO.h:109