]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliESDVZERO.cxx
AddTrial method added, changed trials to unsigned int
[u/mrichter/AliRoot.git] / STEER / AliESDVZERO.cxx
index a264b5a11d82780f0ac4ba21d36e5ee2a8502ce1..26c555eaf0cddad245b3f04a10542ff7f32a1aa3 100644 (file)
-#include <Riostream.h>
+/**************************************************************************
+ * Copyright(c) 1998-2007, 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.                  *
+ **************************************************************************/
+
+//-------------------------------------------------------------------------
+//     Container class for ESD VZERO data
+//     Author: Brigitte Cheynis & Cvetan Cheshkov
+//-------------------------------------------------------------------------
+
 #include "AliESDVZERO.h"
+#include "AliLog.h"
 
 ClassImp(AliESDVZERO)
 
+//__________________________________________________________________________
 AliESDVZERO::AliESDVZERO()
-  :TObject(),
+  :AliVVZERO(),
    fBBtriggerV0A(0),
    fBGtriggerV0A(0),
    fBBtriggerV0C(0),
-   fBGtriggerV0C(0)
+   fBGtriggerV0C(0),
+   fV0ATime(-1024),
+   fV0CTime(-1024),
+   fV0ATimeError(0),
+   fV0CTimeError(0),
+   fV0ADecision(kV0Invalid),
+   fV0CDecision(kV0Invalid)
 {   
    // Default constructor 
    for(Int_t j=0; j<64; j++){ 
-      fMultiplicity[j] = 0;   
+      fMultiplicity[j] = 0.0;   
+      fAdc[j]   = 0.0;   
+      fTime[j]  = 0.0; 
+      fWidth[j] = 0.0; 
+      fBBFlag[j]= kFALSE;
+      fBGFlag[j]= kFALSE;  
    }
 }
 
+//__________________________________________________________________________
 AliESDVZERO::AliESDVZERO(const AliESDVZERO &o)
-  :TObject(o),
+  :AliVVZERO(o),
    fBBtriggerV0A(o.fBBtriggerV0A),
    fBGtriggerV0A(o.fBGtriggerV0A),
    fBBtriggerV0C(o.fBBtriggerV0C),
-   fBGtriggerV0C(o.fBGtriggerV0C)
+   fBGtriggerV0C(o.fBGtriggerV0C),
+   fV0ATime(o.fV0ATime),
+   fV0CTime(o.fV0CTime),
+   fV0ATimeError(o.fV0ATimeError),
+   fV0CTimeError(o.fV0CTimeError),
+   fV0ADecision(o.fV0ADecision),
+   fV0CDecision(o.fV0CDecision)
 {   
    // Default constructor 
-   for(Int_t j=0; j<64; j++)
+   for(Int_t j=0; j<64; j++) {
        fMultiplicity[j] = o.fMultiplicity[j];
+       fAdc[j]    = o.fAdc[j];
+       fTime[j]   = o.fTime[j];
+       fWidth[j]  = o.fWidth[j];
+       fBBFlag[j] = o.fBBFlag[j];
+       fBGFlag[j] = o.fBGFlag[j];
+   }
 }
 
+//__________________________________________________________________________
 AliESDVZERO::AliESDVZERO(UInt_t BBtriggerV0A, UInt_t BGtriggerV0A,
              UInt_t BBtriggerV0C, UInt_t BGtriggerV0C,
-             Short_t *Multiplicity)
-  :TObject(),
+             Float_t *Multiplicity, Float_t *Adc, 
+             Float_t *Time, Float_t *Width, Bool_t *BBFlag, Bool_t *BGFlag)
+  :AliVVZERO(),
    fBBtriggerV0A(BBtriggerV0A),
    fBGtriggerV0A(BGtriggerV0A),
    fBBtriggerV0C(BBtriggerV0C),
-   fBGtriggerV0C(BGtriggerV0C)
-
+   fBGtriggerV0C(BGtriggerV0C),
+   fV0ATime(-1024),
+   fV0CTime(-1024),
+   fV0ATimeError(0),
+   fV0CTimeError(0),
+   fV0ADecision(kV0Invalid),
+   fV0CDecision(kV0Invalid)
 {
    // Constructor
-   for(Int_t j=0; j<64; j++)
+   for(Int_t j=0; j<64; j++) {
        fMultiplicity[j] = Multiplicity[j];
+       fAdc[j]    = Adc[j];
+       fTime[j]   = Time[j];
+       fWidth[j]  = Width[j];
+       fBBFlag[j] = BBFlag[j];
+       fBGFlag[j] = BGFlag[j];
+   }
 }
 
-
+//__________________________________________________________________________
 AliESDVZERO& AliESDVZERO::operator=(const AliESDVZERO& o)
 {
 
   if(this==&o) return *this;
-  TObject::operator=(o);
+  AliVVZERO::operator=(o);
   // Assignment operator
   fBBtriggerV0A=o.fBBtriggerV0A;
   fBGtriggerV0A=o.fBGtriggerV0A;
   fBBtriggerV0C=o.fBBtriggerV0C;
   fBGtriggerV0C=o.fBGtriggerV0C;
-   for(Int_t j=0; j<64; j++)
+
+  fV0ATime = o.fV0ATime;
+  fV0CTime = o.fV0CTime;
+  fV0ATimeError = o.fV0ATimeError;
+  fV0CTimeError = o.fV0CTimeError;
+  fV0ADecision = o.fV0ADecision;
+  fV0CDecision = o.fV0CDecision;
+
+   for(Int_t j=0; j<64; j++) {
        fMultiplicity[j] = o.fMultiplicity[j];
+       fAdc[j]    = o.fAdc[j];
+       fTime[j]   = o.fTime[j];
+       fWidth[j]  = o.fWidth[j];
+       fBBFlag[j] = o.fBBFlag[j];
+       fBGFlag[j] = o.fBGFlag[j];
+   }
   return *this;
 }
 
-Short_t AliESDVZERO::GetNbPMV0A()
+//______________________________________________________________________________
+void AliESDVZERO::Copy(TObject &obj) const {
+  
+  // this overwrites the virtual TOBject::Copy()
+  // to allow run time copying without casting
+  // in AliESDEvent
+
+  if(this==&obj)return;
+  AliESDVZERO *robj = dynamic_cast<AliESDVZERO*>(&obj);
+  if(!robj)return; // not an AliESDVZERO
+  *robj = *this;
+
+}
+
+//__________________________________________________________________________
+Short_t AliESDVZERO::GetNbPMV0A() const
 {
+  // Returns the number of
+  // fired PM in V0A
   Short_t n=0;
   for(Int_t i=32;i<64;i++) 
     if (fMultiplicity[i]>0) n++;
   return n;
 }
 
-Short_t AliESDVZERO::GetNbPMV0C()
+//__________________________________________________________________________
+Short_t AliESDVZERO::GetNbPMV0C() const
 {
+  // Returns the number of
+  // fired PM in V0C
   Short_t n=0;
   for(Int_t i=0;i<32;i++) 
     if (fMultiplicity[i]>0) n++;
   return n;
 }
 
-Int_t AliESDVZERO::GetMTotV0A()
+//__________________________________________________________________________
+Float_t AliESDVZERO::GetMTotV0A() const
 {
-  Int_t n=0;
+  // returns total multiplicity
+  // in V0A
+  Float_t mul=0.0;
   for(Int_t i=32;i<64;i++) 
-    n+= (Int_t) fMultiplicity[i];
-  return n;
+    mul+=  fMultiplicity[i];
+  return mul;
 }
 
-Int_t AliESDVZERO::GetMTotV0C()
+//__________________________________________________________________________
+Float_t AliESDVZERO::GetMTotV0C() const
 {
-  Int_t n=0;
+  // returns total multiplicity
+  // in V0C
+  Float_t mul=0.0;
   for(Int_t i=0;i<32;i++) 
-    n+= (Int_t) fMultiplicity[i];
-  return n;
+    mul+=  fMultiplicity[i];
+  return mul;
 }
 
+//__________________________________________________________________________
+Float_t AliESDVZERO::GetMRingV0A(Int_t ring) const
+{ 
+  // returns multiplicity in a
+  // given ring of V0A
+  if (OutOfRange(ring, "AliESDVZERO:::GetMRingV0A",4)) return -1;
+  Float_t mul =0.0;
+
+  if (ring == 0) for(Int_t i=32;i<40;i++) mul +=  fMultiplicity[i];
+  if (ring == 1) for(Int_t i=40;i<48;i++) mul +=  fMultiplicity[i];
+  if (ring == 2) for(Int_t i=48;i<56;i++) mul +=  fMultiplicity[i];
+  if (ring == 3) for(Int_t i=56;i<64;i++) mul +=  fMultiplicity[i];
+  return mul ;
+}
+
+//__________________________________________________________________________
+Float_t AliESDVZERO::GetMRingV0C(Int_t ring) const
+{ 
+  // returns multiplicity in a
+  // given ring of V0C
+  if (OutOfRange(ring, "AliESDVZERO:::GetMRingV0C",4)) return -1;
+  Float_t mul =0.0;
+
+  if (ring == 0) for(Int_t i=0;i<8;i++)   mul +=  fMultiplicity[i];
+  if (ring == 1) for(Int_t i=8;i<16;i++)  mul +=  fMultiplicity[i];
+  if (ring == 2) for(Int_t i=16;i<24;i++) mul +=  fMultiplicity[i];
+  if (ring == 3) for(Int_t i=24;i<32;i++) mul +=  fMultiplicity[i];
+  return mul ;
+}
+
+//__________________________________________________________________________
+Float_t AliESDVZERO::GetMultiplicity(Int_t i) const
 
-Int_t* AliESDVZERO::GetMRingV0A()
 {
-  cout << "AliESDVZERO::GetMRingV0C() not supported any more" << endl;
-  cout << "use Int_t AliESDVZERO::GetMRingV0C(Int_t ring)" << endl;
-  return 0x0;
+  // returns multiplicity in a
+  // given cell of V0
+  if (OutOfRange(i, "AliESDVZERO::GetMultiplicity:",64)) return -1;
+  return fMultiplicity[i];
 }
 
-Int_t* AliESDVZERO::GetMRingV0C()
+//__________________________________________________________________________
+Float_t AliESDVZERO::GetMultiplicityV0A(Int_t i) const
+
 {
-  cout << "AliESDVZERO::GetMRingV0C() not supported any more" << endl;
-  cout << "use Int_t AliESDVZERO::GetMRingV0C(Int_t ring)" << endl;
-  return 0x0;
+  // returns multiplicity in a
+  // given cell of V0A
+  if (OutOfRange(i, "AliESDVZERO::GetMultiplicityV0A:",32)) return -1;
+  return fMultiplicity[32+i];
 }
 
-Int_t AliESDVZERO::GetMRingV0A(Int_t ring)
-{ 
-  if (OutOfRange(ring, "AliESDVZERO:::GetMRingV0A",4)) return -1;
-  Int_t n=0;
+//__________________________________________________________________________
+Float_t AliESDVZERO::GetMultiplicityV0C(Int_t i) const
 
-  if (ring == 0) for(Int_t i=32;i<40;i++) n += (Int_t) fMultiplicity[i];
-  if (ring == 1) for(Int_t i=40;i<48;i++) n += (Int_t) fMultiplicity[i];
-  if (ring == 2) for(Int_t i=48;i<56;i++) n += (Int_t) fMultiplicity[i];
-  if (ring == 3) for(Int_t i=56;i<64;i++) n += (Int_t) fMultiplicity[i];
-  return ;
+{
+  // returns multiplicity in a
+  // given cell of V0C
+  if (OutOfRange(i, "AliESDVZERO::GetMultiplicityV0C:",32)) return -1;
+  return fMultiplicity[i];
 }
 
-Int_t AliESDVZERO::GetMRingV0C(Int_t ring)
-{ 
-  if (OutOfRange(ring, "AliESDVZERO:::GetMRingV0C",4)) return -1;
-  Int_t n=0;
+//__________________________________________________________________________
+Float_t AliESDVZERO::GetAdc(Int_t i) const
 
-  if (ring == 0) for(Int_t i=0;i<8;i++) n += (Int_t) fMultiplicity[i];
-  if (ring == 1) for(Int_t i=8;i<16;i++) n += (Int_t) fMultiplicity[i];
-  if (ring == 2) for(Int_t i=16;i<24;i++) n += (Int_t) fMultiplicity[i];
-  if (ring == 3) for(Int_t i=24;i<32;i++) n += (Int_t) fMultiplicity[i];
-  return ;
+{
+  // returns ADC charge in a
+  // given cell of V0
+  if (OutOfRange(i, "AliESDVZERO::GetAdc:",64)) return -1;
+  return fAdc[i];
 }
 
-Int_t AliESDVZERO::GetMultiplicity(Int_t i)
+//__________________________________________________________________________
+Float_t AliESDVZERO::GetAdcV0A(Int_t i) const
 
 {
-  if (OutOfRange(i, "AliESDVZERO::GetMultiplicity:",64)) return -1;
-  return fMultiplicity[i];
+  // returns ADC charge in a
+  // given cell of V0A
+  if (OutOfRange(i, "AliESDVZERO::GetAdcV0A:",32)) return -1;
+  return fAdc[32+i];
+}
+
+//__________________________________________________________________________
+Float_t AliESDVZERO::GetAdcV0C(Int_t i) const
+
+{
+  // returns ADC charge in a
+  // given cell of V0C
+  if (OutOfRange(i, "AliESDVZERO::GetAdcV0C:",32)) return -1;
+  return fAdc[i];
+}
+
+//__________________________________________________________________________
+Float_t AliESDVZERO::GetTime(Int_t i) const
+
+{
+  // returns leading time measured by TDC
+  // in a given cell of V0
+  if (OutOfRange(i, "AliESDVZERO::GetTime:",64)) return -1;
+  return fTime[i];
+}
+
+//__________________________________________________________________________
+Float_t AliESDVZERO::GetTimeV0A(Int_t i) const
+
+{
+  // returns leading time measured by TDC
+  // in a given cell of V0A
+  if (OutOfRange(i, "AliESDVZERO::GetTimeV0A:",32)) return -1;
+  return fTime[32+i];
+}
+
+//__________________________________________________________________________
+Float_t AliESDVZERO::GetTimeV0C(Int_t i) const
+
+{
+  // returns leading time measured by TDC
+  // in a given cell of V0C
+  if (OutOfRange(i, "AliESDVZERO::GetTimeV0C:",32)) return -1;
+  return fTime[i];
 }
 
-Bool_t AliESDVZERO::BBTriggerV0A(Int_t i)
+//__________________________________________________________________________
+Float_t AliESDVZERO::GetWidth(Int_t i) const
+
 {
+  // returns time signal width
+  // in a given cell of V0
+  if (OutOfRange(i, "AliESDVZERO::GetWidth:",64)) return -1;
+  return fWidth[i];
+}
+
+//__________________________________________________________________________
+Float_t AliESDVZERO::GetWidthV0A(Int_t i) const
+
+{
+  // returns time signal width
+  // in a given cell of V0A
+  if (OutOfRange(i, "AliESDVZERO::GetWidthV0A:",32)) return -1;
+  return fWidth[32+i];
+}
+
+//__________________________________________________________________________
+Float_t AliESDVZERO::GetWidthV0C(Int_t i) const
+
+{
+  // returns time signal width
+  // in a given cell of V0C
+  if (OutOfRange(i, "AliESDVZERO::GetWidthV0C:",32)) return -1;
+  return fWidth[i];
+}
+
+//__________________________________________________________________________
+Bool_t AliESDVZERO::BBTriggerV0A(Int_t i) const
+{
+  // returns offline beam-beam flags in V0A
+  // one bit per cell
   if (OutOfRange(i, "AliESDVZERO:::BBTriggerV0A",32)) return kFALSE;
   UInt_t test = 1;
   return ( fBBtriggerV0A & (test << i) ? kTRUE : kFALSE );
 }
 
-Bool_t AliESDVZERO::BGTriggerV0A(Int_t i)
+//__________________________________________________________________________
+Bool_t AliESDVZERO::BGTriggerV0A(Int_t i) const
 {
+  // returns offline beam-gas flags in V0A
+  // one bit per cell
   if (OutOfRange(i, "AliESDVZERO:::BGTriggerV0A",32)) return kFALSE;
   UInt_t test = 1;
   return ( fBGtriggerV0A & (test << i) ? kTRUE : kFALSE );
 }
 
-Bool_t AliESDVZERO::BBTriggerV0C(Int_t i)
+//__________________________________________________________________________
+Bool_t AliESDVZERO::BBTriggerV0C(Int_t i) const
 {
+  // returns offline beam-beam flags in V0C
+  // one bit per cell
   if (OutOfRange(i, "AliESDVZERO:::BBTriggerV0C",32)) return kFALSE;
   UInt_t test = 1;
   return ( fBBtriggerV0C & (test << i) ? kTRUE : kFALSE );
 }
 
-Bool_t AliESDVZERO::BGTriggerV0C(Int_t i)
+//__________________________________________________________________________
+Bool_t AliESDVZERO::BGTriggerV0C(Int_t i) const
 {
+  // returns offline beam-gasflags in V0C
+  // one bit per cell
   if (OutOfRange(i, "AliESDVZERO:::BGTriggerV0C",32)) return kFALSE;
   UInt_t test = 1;
   return ( fBGtriggerV0C & (test << i) ? kTRUE : kFALSE );
 }
 
-Bool_t AliESDVZERO::OutOfRange(Int_t i, const char *s, Int_t upper) const
+//__________________________________________________________________________
+Bool_t AliESDVZERO::GetBBFlag(Int_t i) const
+
 {
-  // checks if i is a valid index. s = name of calling method
-  if (i > upper || i < 0) {
-    cout << s << " Index " << i << " out of range" << endl;
-    return kTRUE;
-  }
-  return kFALSE;
+  // returns online beam-beam flag in V0
+  // one boolean per cell
+  if (OutOfRange(i, "AliESDVZERO::GetBBFlag:",64)) return kFALSE;
+  return fBBFlag[i];
 }
 
+//__________________________________________________________________________
+Bool_t AliESDVZERO::GetBGFlag(Int_t i) const
+
+{
+  // returns online beam-gas flag in V0
+  // one boolean per cell
+  if (OutOfRange(i, "AliESDVZERO::GetBGFlag:",64)) return kFALSE;
+  return fBGFlag[i];
+}