//_____________________________________________________________________________
AliEMCALRawStream::AliEMCALRawStream(AliRawReader* rawReader) :
- AliAltroRawStream(rawReader)
+ AliAltroRawStream(rawReader),
+ fId(-1),
+ fPrevId(-1),
+ fModule(-1),
+ fPrevModule(-1)
{
// create an object to read EMCAL raw digits
- fRawReader->Select(8);
+ SelectRawData(8);
+
+ fNoAltroMapping = kTRUE;
+}
+
+//_____________________________________________________________________________
+AliEMCALRawStream::AliEMCALRawStream(const AliEMCALRawStream& stream) :
+ AliAltroRawStream(stream),
+ fId(-1),
+ fPrevId(-1),
+ fModule(-1),
+ fPrevModule(-1)
+{
+ Fatal("AliEMCALRawStream", "copy constructor not implemented");
+}
+
+//_____________________________________________________________________________
+AliEMCALRawStream& AliEMCALRawStream::operator = (const AliEMCALRawStream&
+ /* stream */)
+{
+ Fatal("operator =", "assignment operator not implemented");
+ return *this;
+}
+
+//_____________________________________________________________________________
+AliEMCALRawStream::~AliEMCALRawStream()
+{
+// destructor
+}
+
+//_____________________________________________________________________________
+void AliEMCALRawStream::Reset()
+{
+ // reset emcal raw stream params
+ AliAltroRawStream::Reset();
+ fId = fPrevId = fModule = fPrevModule = -1;
+}
+
+//_____________________________________________________________________________
+Bool_t AliEMCALRawStream::Next()
+{
+ // Read next EMCAL signal
+ // Apply the EMCAL altro mapping to get
+ // the module and id indeces
+ fPrevModule = fModule;
+ fPrevId = fId;
+ if (AliAltroRawStream::Next()) {
+ // if (IsNewHWAddress())
+ ApplyAltroMapping();
+ return kTRUE;
+ }
+ else
+ return kFALSE;
+}
+
+//_____________________________________________________________________________
+void AliEMCALRawStream::ApplyAltroMapping()
+{
+ // Take the DDL index, load
+ // the corresponding altro mapping
+ // object and fill the module and id indeces
+ fModule = fSegmentation[0];
+ fId = fSegmentation[2];
}
public :
AliEMCALRawStream(AliRawReader* rawReader);
+ virtual ~AliEMCALRawStream();
- Int_t GetId() const {return fPad;};
- Int_t GetModule() const {return fSector;}
- Int_t GetPrevId() const {return fPrevPad;};
- Int_t GetSignal() const {return fSignal;};
- Int_t GetTime() const {return fTime;};
- Bool_t IsNewId() const {return (GetId() != GetPrevId());};
+ virtual void Reset();
+ virtual Bool_t Next();
+
+ Int_t GetId() const {return fId;};
+ Int_t GetPrevId() const {return fPrevId;};
+ Int_t GetModule() const {return fModule;}
+ Int_t GetPrevModule() const {return fPrevModule;}
+ Bool_t IsNewId() const {return (fId != fPrevId);};
+ Bool_t IsNewModule() const {return (fModule != fPrevModule) || (fId != fPrevId);};
+protected:
+ AliEMCALRawStream(const AliEMCALRawStream& stream);
+ AliEMCALRawStream& operator = (const AliEMCALRawStream& stream);
+
+ virtual void ApplyAltroMapping();
+
+ Int_t fId;
+ Int_t fPrevId;
+ Int_t fModule;
+ Int_t fPrevModule;
+
ClassDef(AliEMCALRawStream, 0) // class for reading EMCAL raw digits
};