]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliESDVZERO.h
Inherits from AliPIDResponse
[u/mrichter/AliRoot.git] / STEER / AliESDVZERO.h
index 4b59e65f4959d9fee4bd1c4f3dd175766e8d8a4b..af81959d54eced1379ef0543bab3d46ef9d19ee8 100644 (file)
-#ifndef AliESDVZERO_H
-#define AliESDVZERO_H
+#ifndef ALIESDVZERO_H
+#define ALIESDVZERO_H
 
-#include <TObject.h>
+//-------------------------------------------------------------------------
+//     Container class for ESD VZERO data
+//     Author: Brigitte Cheynis & Cvetan Cheshkov
+//-------------------------------------------------------------------------
 
-class AliESDVZERO : public TObject 
+#include <AliVVZERO.h>
+
+class AliESDVZERO : public AliVVZERO 
 {
 public:
   AliESDVZERO();
-  AliESDVZERO(const AliESDVZERO&);
-  AliESDVZERO(UInt_t BBtriggerV0A, UInt_t BGtriggerV0A,
-             UInt_t BBtriggerV0C, UInt_t BGtriggerV0C,
-             Short_t *Multiplicity,Short_t *Adc, Short_t *Time);
+  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() {};
-  
-  virtual void SetBBtriggerV0A(UInt_t BBtrigger) {fBBtriggerV0A=BBtrigger;}
-  virtual void SetBGtriggerV0A(UInt_t BGtrigger) {fBGtriggerV0A=BGtrigger;}
-  virtual void SetBBtriggerV0C(UInt_t BBtrigger) {fBBtriggerV0C=BBtrigger;}
-  virtual void SetBGtriggerV0C(UInt_t BGtrigger) {fBGtriggerV0C=BGtrigger;}
-  virtual void SetMultiplicity(Short_t Multiplicity[64])
+
+  // 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];}
-  virtual void SetADC(Short_t adc[64])
+  void SetADC(Float_t adc[64])
     {for(Int_t i=0;i<64;i++) fAdc[i]=adc[i];}
-  virtual void SetTime(Short_t time[64])
+  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;}
+         
   // Getters  
-  Short_t GetNbPMV0A();
-  Short_t GetNbPMV0C();
-  Int_t GetMTotV0A();
-  Int_t GetMTotV0C(); 
-  Int_t* GetMRingV0A();
-  Int_t* GetMRingV0C();
-  Int_t GetMRingV0A(Int_t ring);
-  Int_t GetMRingV0C(Int_t ring);
-
-  Int_t GetMultiplicity(Int_t i);
-  Int_t GetAdc(Int_t i);
-  Int_t GetTime(Int_t i);
-  Int_t GetMultiplicityV0A(Int_t i);
-  Int_t GetAdcV0A(Int_t i);
-  Int_t GetTimeV0A(Int_t i);
-  Int_t GetMultiplicityV0C(Int_t i);
-  Int_t GetAdcV0C(Int_t i);
-  Int_t GetTimeV0C(Int_t i);
-  Bool_t BBTriggerV0A(Int_t i);
-  Bool_t BGTriggerV0A(Int_t i);
-  Bool_t BBTriggerV0C(Int_t i);
-  Bool_t BGTriggerV0C(Int_t i);
-
-  Bool_t OutOfRange(Int_t i, const char *s, Int_t upper) const;
+  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; }
+  
   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
+  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
 
-  Short_t fMultiplicity[64]; // multiplicity per PMT
-  Short_t fAdc[64]; //  adc per PMT
-  Short_t fTime[64]; // time per PMT
+  Decision fV0ADecision;     // V0A final decision based on average time of channels
+  Decision fV0CDecision;     // V0C final decision based on average time of channels
 
-  ClassDef(AliESDVZERO,4)
+  ClassDef(AliESDVZERO,9)
 };
 
 #endif