ROOT logo
#ifndef ALIESDVZERO_H
#define ALIESDVZERO_H

//-------------------------------------------------------------------------
//     Container class for ESD VZERO data
//     Author: Brigitte Cheynis & Cvetan Cheshkov
//-------------------------------------------------------------------------

#include <AliVVZERO.h>

class AliESDVZERO : public AliVVZERO 
{
public:
  AliESDVZERO();
  AliESDVZERO(const AliESDVZERO&o);
  AliESDVZERO(UInt_t BBtriggerV0A,   UInt_t BGtriggerV0A,
	      UInt_t BBtriggerV0C,   UInt_t BGtriggerV0C,
	      Float_t *Multiplicity, Float_t *Adc, 
	      Float_t *Time, Float_t *Width, Bool_t *BBFlag, Bool_t *BGFlag);
  void Copy(TObject &obj) const;

  virtual ~AliESDVZERO() {};

  // Setters
  void SetBBtriggerV0A(UInt_t BBtrigger) {fBBtriggerV0A=BBtrigger;}
  void SetBGtriggerV0A(UInt_t BGtrigger) {fBGtriggerV0A=BGtrigger;}
  void SetBBtriggerV0C(UInt_t BBtrigger) {fBBtriggerV0C=BBtrigger;}
  void SetBGtriggerV0C(UInt_t BGtrigger) {fBGtriggerV0C=BGtrigger;}
  void SetMultiplicity(Float_t Multiplicity[64])
    {for(Int_t i=0;i<64;i++) fMultiplicity[i]=Multiplicity[i];}
  void SetADC(Float_t adc[64])
    {for(Int_t i=0;i<64;i++) fAdc[i]=adc[i];}
  void SetTime(Float_t time[64])
    {for(Int_t i=0;i<64;i++) fTime[i]=time[i];}
  void SetWidth(Float_t width[64])
    {for(Int_t i=0;i<64;i++) fWidth[i]=width[i];}    
  void SetBBFlag(Bool_t BBFlag[64])
    {for(Int_t i=0;i<64;i++) fBBFlag[i]=BBFlag[i];} 
  void SetBGFlag(Bool_t BGFlag[64])
    {for(Int_t i=0;i<64;i++) fBGFlag[i]=BGFlag[i];}   

  void SetV0ATime(Float_t time) {fV0ATime = time;}
  void SetV0CTime(Float_t time) {fV0CTime = time;}
  void SetV0ATimeError(Float_t err) {fV0ATimeError = err;}
  void SetV0CTimeError(Float_t err) {fV0CTimeError = err;}

  void SetV0ADecision(Decision des) {fV0ADecision = des;}
  void SetV0CDecision(Decision des) {fV0CDecision = des;}

  void SetTriggerChargeA(UShort_t chargeA) {fTriggerChargeA = chargeA;}
  void SetTriggerChargeC(UShort_t chargeC) {fTriggerChargeC = chargeC;}
  void SetTriggerBits(UShort_t triggerBits) {fTriggerBits = triggerBits;}

  // Getters  
  virtual Short_t  GetNbPMV0A() const;
  virtual Short_t  GetNbPMV0C() const;
  virtual Float_t  GetMTotV0A() const;
  virtual Float_t  GetMTotV0C() const; 
  virtual Float_t  GetMRingV0A(Int_t ring) const;
  virtual Float_t  GetMRingV0C(Int_t ring) const;

  virtual Float_t  GetMultiplicity(Int_t i) const;
  virtual Float_t  GetMultiplicityV0A(Int_t i) const;
  virtual Float_t  GetMultiplicityV0C(Int_t i) const;    
  virtual Float_t  GetAdc(Int_t i) const;
  virtual Float_t  GetAdcV0A(Int_t i) const; 
  virtual Float_t  GetAdcV0C(Int_t i) const;   
  virtual Float_t  GetTime(Int_t i) const;
  virtual Float_t  GetTimeV0A(Int_t i) const;   
  virtual Float_t  GetTimeV0C(Int_t i) const;    
  virtual Float_t  GetWidth(Int_t i) const;
  virtual Float_t  GetWidthV0A(Int_t i) const;
  virtual Float_t  GetWidthV0C(Int_t i) const;
  virtual Bool_t   BBTriggerV0A(Int_t i) const;
  virtual Bool_t   BGTriggerV0A(Int_t i) const;
  virtual Bool_t   BBTriggerV0C(Int_t i) const;
  virtual Bool_t   BGTriggerV0C(Int_t i) const;  
  virtual Bool_t   GetBBFlag(Int_t i) const;
  virtual Bool_t   GetBGFlag(Int_t i) const;

  virtual Float_t  GetV0ATime() const { return fV0ATime; }
  virtual Float_t  GetV0CTime() const { return fV0CTime; }
  virtual Float_t  GetV0ATimeError() const { return fV0ATimeError; }
  virtual Float_t  GetV0CTimeError() const { return fV0CTimeError; }

  virtual Decision GetV0ADecision() const { return fV0ADecision; }
  virtual Decision GetV0CDecision() const { return fV0CDecision; }

  virtual UShort_t GetTriggerChargeA() const { return fTriggerChargeA; }
  virtual UShort_t GetTriggerChargeC() const { return fTriggerChargeC; }
  virtual UShort_t GetTriggerBits() const { return fTriggerBits; }
  
  AliESDVZERO &operator=(const AliESDVZERO& source);
    
protected:

  UInt_t  fBBtriggerV0A;     // bit mask for Beam-Beam trigger in V0A
  UInt_t  fBGtriggerV0A;     // bit mask for Beam-Gas trigger in V0A
  UInt_t  fBBtriggerV0C;     // bit mask for Beam-Beam trigger in V0C
  UInt_t  fBGtriggerV0C;     // bit mask for Beam-Gas trigger in V0C

  Float_t fMultiplicity[64]; //  multiplicity for each channel
  Float_t fAdc[64];          //  adc for each channel
  Float_t fTime[64];         //  time for each channel
  Float_t fWidth[64];        //  time width for each channel
  Bool_t  fBBFlag[64];       //  BB Flags from Online V0 Electronics
  Bool_t  fBGFlag[64];       //  BG Flags from Online V0 Electronics

  Float_t fV0ATime;          // Average time in V0A
  Float_t fV0CTime;          // Average time in V0C
  Float_t fV0ATimeError;     // Error in the average time in V0A
  Float_t fV0CTimeError;     // Error in the average time in V0C

  Decision fV0ADecision;     // V0A final decision based on average time of channels
  Decision fV0CDecision;     // V0C final decision based on average time of channels

  UShort_t fTriggerChargeA;  // Sum of the trigger (clock=10) charge on A side
  UShort_t fTriggerChargeC;  // Sum of the trigger (clock=10) charge on C side
  UShort_t fTriggerBits;     // V0 trigger bits as defined in the firmware

  ClassDef(AliESDVZERO,10)
};

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