/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
-//_________________________________________________________________________
+//**********************************************************************
//
+// Class for ZDC digit
+// ADC Channels for each PM
+// 5 for hadronic ZDCs 1 for EM ZDCs
//
-// ZDC digit = ADC Channels for each PM
-//
-//_________________________________________________________________________
+//**********************************************************************
-#include "AliDigitNew.h"
+#include<TObject.h>
-class AliZDCDigit : public AliDigitNew {
+class AliZDCDigit : public TObject {
public:
AliZDCDigit() ;
- AliZDCDigit(Int_t Det, Int_t Quad, Float_t ADCValue);
+ AliZDCDigit(Int_t *Sector, Int_t *ADCValue);
AliZDCDigit(const AliZDCDigit & digit);
+ AliZDCDigit& operator= (const AliZDCDigit &digit);
+ virtual ~AliZDCDigit() {}
// Getters
- virtual Float_t GetDetector() {return fDetector;}
- virtual Float_t GetQuadrant() {return fQuadrant;}
- virtual Float_t GetADCValue() {return fADCValue;}
-
- virtual ~AliZDCDigit(){}
+ Int_t GetSector(Int_t i) {return fSector[i];}
+ Int_t GetADCValue(Int_t i) {return fADCValue[i];}
// Operators
- Int_t operator == (AliZDCDigit &digit) {
- // Two digits are equal if they refers to the detector
- // in the same sub-volume (same procedure as for hits)
- if (fDetector != digit.fDetector) return 0;
- if (fQuadrant != digit.fQuadrant) return 0;
+ // Two digits are equal if they refers to the detector
+ // in the same sub-volume (same procedure as for hits)
+ Int_t operator == (AliZDCDigit &digit){
+ Int_t i;
+ for(i=0; i<2; i++) if(fSector[i]!=digit.GetSector(i)) return 0;
return 1;
}
- virtual AliZDCDigit& operator + (AliZDCDigit &digit) {
- // Adds the amplitude of digits
-
- fADCValue += digit.fADCValue ;
- return *this ;
+ // Adds the amplitude of digits
+ virtual AliZDCDigit operator + (AliZDCDigit &digit){
+ for(Int_t i = 0; i < 2; i++) fADCValue[i] += digit.fADCValue[i];
+ return *this;
}
-
-// protected:
-
-// Int_t fNprimary; // Number of primaries
- Int_t fDetector; // Detector
- Int_t fQuadrant; // Quadrant
- Float_t fADCValue; // ADC channel value
// Print method
- virtual void Print(Option_t *) {
- printf(" -> DIGIT: Det = %d Quad = %d ADCCh = %f\n ",
- fDetector, fQuadrant, fADCValue);
+ virtual void Print(Option_t *) const {
+ printf("\t AliZDCDigit -> Detector %d Quadrant %d: ADC HighGain= %d ADC LowGain= %d\n ",
+ fSector[0], fSector[1], fADCValue[0], fADCValue[1]);
}
+
+ protected:
+
+ //Data members
+ Int_t fSector[2]; // Detector and tower in which light is produced
+ Int_t fADCValue[2]; // ADC channel value (0 = high gain, 1 = low gain)
- ClassDef(AliZDCDigit,1) // Digits in ZDC
+ ClassDef(AliZDCDigit,4) // Digits in ZDC
} ;
#endif // ALIZDCDIGIT_H
+