ROOT logo
#ifndef ALIMUONVRAWSTREAMTRIGGER_H
#define ALIMUONVRAWSTREAMTRIGGER_H
/* This file is property of and copyright by the ALICE HLT Project        *
 * ALICE Experiment at CERN, All rights reserved.                         *
 * See cxx source for full Copyright notice                               */

/* $Id$ */

/// \ingroup raw
/// \class AliMUONVRawStreamTrigger
/// \brief Base class for reading MUON raw trigger data.
///
//  MUON trigger decoders must derive from this base class.
//
//  Author Artur Szostak <artursz@iafrica.com>

#include <TObject.h>
#include "AliMUONRawStream.h"

class TArrayS;
class AliRawReader;
class AliMUONDDLTrigger;

class AliMUONVRawStreamTrigger : public AliMUONRawStream
{
public:
	AliMUONVRawStreamTrigger();
	AliMUONVRawStreamTrigger(AliRawReader* rawReader);
	virtual ~AliMUONVRawStreamTrigger();
	
	/// Advance one step in the iteration. Returns false if finished.
	virtual Bool_t Next(UChar_t& id,   UChar_t& dec,     Bool_t& trigY,
	                    UChar_t& yPos, UChar_t& sXDev,   UChar_t& xDev,
	                    UChar_t& xPos, Bool_t& triggerY, Bool_t& triggerX,
	                    TArrayS& xPattern, TArrayS& yPattern) = 0;
	
	/// Return pointer to DDL payload object.
	virtual AliMUONDDLTrigger* GetDDLTrigger() const = 0;
	
	/// Return maximum number of DDLs
	virtual Int_t GetMaxDDL() const = 0;
	/// Return maximum number of regional cards in DATE file
	virtual Int_t GetMaxReg() const = 0;
	/// Return maximum number of local cards in DATE file
	virtual Int_t GetMaxLoc() const = 0;
	
	/// Should set the maximum number of local cards expected in the DDL stream.
	virtual void SetMaxLoc(Int_t loc) = 0;
	
	/// Return number of DDL
	virtual Int_t GetDDL() const = 0;
	
	/// Disable Warnings
	virtual void DisableWarnings() = 0;
	
	/// error numbers
	enum rawStreamTriggerError
	{
		kDarcEoWErr   = 6, ///< end of Darc word error 
		kGlobalEoWErr = 7, ///< end of Global word error
		kRegEoWErr    = 8, ///< end of Regional word error 
		kLocalEoWErr  = 9  ///< end of local word error
	};

private:
	/// Not implemented
	AliMUONVRawStreamTrigger(const AliMUONVRawStreamTrigger& stream);
	/// Not implemented
	AliMUONVRawStreamTrigger& operator = (const AliMUONVRawStreamTrigger& stream);
	
	ClassDef(AliMUONVRawStreamTrigger, 0)  // Base class for MUON trigger rawdata decoders.
};

#endif // ALIMUONVRAWSTREAMTRIGGER_H
 AliMUONVRawStreamTrigger.h:1
 AliMUONVRawStreamTrigger.h:2
 AliMUONVRawStreamTrigger.h:3
 AliMUONVRawStreamTrigger.h:4
 AliMUONVRawStreamTrigger.h:5
 AliMUONVRawStreamTrigger.h:6
 AliMUONVRawStreamTrigger.h:7
 AliMUONVRawStreamTrigger.h:8
 AliMUONVRawStreamTrigger.h:9
 AliMUONVRawStreamTrigger.h:10
 AliMUONVRawStreamTrigger.h:11
 AliMUONVRawStreamTrigger.h:12
 AliMUONVRawStreamTrigger.h:13
 AliMUONVRawStreamTrigger.h:14
 AliMUONVRawStreamTrigger.h:15
 AliMUONVRawStreamTrigger.h:16
 AliMUONVRawStreamTrigger.h:17
 AliMUONVRawStreamTrigger.h:18
 AliMUONVRawStreamTrigger.h:19
 AliMUONVRawStreamTrigger.h:20
 AliMUONVRawStreamTrigger.h:21
 AliMUONVRawStreamTrigger.h:22
 AliMUONVRawStreamTrigger.h:23
 AliMUONVRawStreamTrigger.h:24
 AliMUONVRawStreamTrigger.h:25
 AliMUONVRawStreamTrigger.h:26
 AliMUONVRawStreamTrigger.h:27
 AliMUONVRawStreamTrigger.h:28
 AliMUONVRawStreamTrigger.h:29
 AliMUONVRawStreamTrigger.h:30
 AliMUONVRawStreamTrigger.h:31
 AliMUONVRawStreamTrigger.h:32
 AliMUONVRawStreamTrigger.h:33
 AliMUONVRawStreamTrigger.h:34
 AliMUONVRawStreamTrigger.h:35
 AliMUONVRawStreamTrigger.h:36
 AliMUONVRawStreamTrigger.h:37
 AliMUONVRawStreamTrigger.h:38
 AliMUONVRawStreamTrigger.h:39
 AliMUONVRawStreamTrigger.h:40
 AliMUONVRawStreamTrigger.h:41
 AliMUONVRawStreamTrigger.h:42
 AliMUONVRawStreamTrigger.h:43
 AliMUONVRawStreamTrigger.h:44
 AliMUONVRawStreamTrigger.h:45
 AliMUONVRawStreamTrigger.h:46
 AliMUONVRawStreamTrigger.h:47
 AliMUONVRawStreamTrigger.h:48
 AliMUONVRawStreamTrigger.h:49
 AliMUONVRawStreamTrigger.h:50
 AliMUONVRawStreamTrigger.h:51
 AliMUONVRawStreamTrigger.h:52
 AliMUONVRawStreamTrigger.h:53
 AliMUONVRawStreamTrigger.h:54
 AliMUONVRawStreamTrigger.h:55
 AliMUONVRawStreamTrigger.h:56
 AliMUONVRawStreamTrigger.h:57
 AliMUONVRawStreamTrigger.h:58
 AliMUONVRawStreamTrigger.h:59
 AliMUONVRawStreamTrigger.h:60
 AliMUONVRawStreamTrigger.h:61
 AliMUONVRawStreamTrigger.h:62
 AliMUONVRawStreamTrigger.h:63
 AliMUONVRawStreamTrigger.h:64
 AliMUONVRawStreamTrigger.h:65
 AliMUONVRawStreamTrigger.h:66
 AliMUONVRawStreamTrigger.h:67
 AliMUONVRawStreamTrigger.h:68
 AliMUONVRawStreamTrigger.h:69
 AliMUONVRawStreamTrigger.h:70
 AliMUONVRawStreamTrigger.h:71
 AliMUONVRawStreamTrigger.h:72
 AliMUONVRawStreamTrigger.h:73
 AliMUONVRawStreamTrigger.h:74