ROOT logo
#ifndef ALIMUONRAWSTREAMTRIGGERHP_H
#define ALIMUONRAWSTREAMTRIGGERHP_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 AliMUONRawStreamTriggerHP
/// \brief Higher performance decoder stream class for reading MUON raw trigger data.
///
//  This provides a streamer interface to the high performance decoder which
//  is required for AliRoot.
//
//  Author Artur Szostak <artursz@iafrica.com>

#include "AliMUONVRawStreamTrigger.h"
#include "AliMUONTriggerDDLDecoder.h"
#include "TArrayS.h"

class AliMUONDDLTrigger;


class AliMUONRawStreamTriggerHP : public AliMUONVRawStreamTrigger
{
public:
	class AliLocalStruct;

	AliMUONRawStreamTriggerHP();
	AliMUONRawStreamTriggerHP(AliRawReader* rawReader);
	virtual ~AliMUONRawStreamTriggerHP();
	
	/// Initialize iterator
	virtual void First();
	
	/// DDL iterator 
	virtual Bool_t NextDDL();
	
	/// Whether the iteration is finished or not
	virtual Bool_t IsDone() const;
	
	/// Nothing is actually done in the AddErrorMessage method because we log
	/// the error messages as we find them in AliDecoderEventHandler::OnError().
	virtual void AddErrorMessage() { };
	
	/// 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);
	
	/// Construct and return a pointer to the DDL payload object.
	virtual AliMUONDDLTrigger* GetDDLTrigger() const;
	
	/// Returns the next local trigger structure.
	const AliLocalStruct* Next();
	
	/// Return maximum number of DDLs.
	virtual Int_t GetMaxDDL() const { return fgkMaxDDL; }
	
	/// Return maximum number of regional cards in the DDL.
	virtual Int_t GetMaxReg() const { return (Int_t) fDecoder.MaxRegionals(); }
	
	/// Set the maximum number of regional cards in the DDL.
	virtual void SetMaxReg(Int_t reg);
	
	/// Return maximum number of local cards in the DDL.
	virtual Int_t GetMaxLoc() const { return (Int_t) fDecoder.MaxLocals(); }
	
	/// Sets the maximum number of local cards in the DDL.
	virtual void SetMaxLoc(Int_t loc);
	
	/// Return number of the current DDL being handled in the range [0..1] and -1 if no DDL set.
	virtual Int_t GetDDL() const { return fDDL - 1; }
	
	/// check error/Warning presence
	virtual Bool_t IsErrorMessage() const { return fHadError; }
	
	/// Set warnings flag to disable warnings on data errors.
	virtual void DisableWarnings() { fDecoder.GetHandler().Warnings(kFALSE); }
	/// Set warnings flag to enable warnings on data errors.
	virtual void EnableWarnings() { fDecoder.GetHandler().Warnings(kTRUE); }
	
	/// Get number of end of DARC word errors in the DDL last decoded.
	UInt_t GetDarcEoWErrors() const {return fDecoder.GetHandler().GetDarcEoWErrors();}
	
	/// Get number of end of Global word errors in the DDL last decoded.
	UInt_t GetGlobalEoWErrors() const {return fDecoder.GetHandler().GetGlobalEoWErrors();}
	
	/// Get number of end of regional word errors in the DDL last decoded.
	UInt_t GetRegEoWErrors() const {return fDecoder.GetHandler().GetRegEoWErrors();}
	
	/// Get number of end of local word errors in the DDL last decoded.
	UInt_t GetLocalEoWErrors() const {return fDecoder.GetHandler().GetLocalEoWErrors();}
	
	/// Number of end of DARC word errors since First() was called.
	UInt_t NumberOfDarcEoWErrors() const { return fTotalNumberOfDarcEoWErrors; }
	
	/// Number of end of global word errors since First() was called.
	UInt_t NumberOfGlobalEoWErrors() const { return fTotalNumberOfGlobalEoWErrors; }
	
	/// Number of end of regional word errors since First() was called.
	UInt_t NumberOfRegEoWErrors() const { return fTotalNumberOfRegEoWErrors; }
	
	/// Number of end of local word errors since First() was called.
	UInt_t NumberOfLocalEoWErrors() const { return fTotalNumberOfLocalEoWErrors; }
	
	/// Whether we got any end of DARC word errors or not since calling First().
	Bool_t HasDarcEoWError() const { return NumberOfDarcEoWErrors() > 0; }
	
	/// Whether we got any end of global word errors or not since calling First().
	Bool_t HasGlobalEoWError() const { return NumberOfGlobalEoWErrors() > 0; }
	
	/// Whether we got any end of regional word errors or not since calling First().
	Bool_t HasRegEoWError() const { return NumberOfRegEoWErrors() > 0; }
	
	/// Whether we got any end of local word errors or not since calling First().
	Bool_t HasLocalEoWError() const { return NumberOfLocalEoWErrors() > 0; }
	
	/// Returns the "try to recover from errors" flag.
	Bool_t TryRecover() const { return Bool_t(fDecoder.TryRecover()); }
	
	/// Sets the "try to recover from errors" flag.
	/// i.e. should the decoder try to recover from errors found in the
	/// payload headers.
	void TryRecover(Bool_t value) { fDecoder.TryRecover(bool(value)); }
	
	/// Light weight interface class to the DARC and global header data.
	class AliHeader
	{
	public:
		/// Default constructor.
		AliHeader(
				UInt_t darcHeader = 0,
				const AliMUONDarcScalarsStruct* darcScalars = NULL,
				const AliMUONGlobalHeaderStruct* globalHeader = NULL,
				const AliMUONGlobalScalarsStruct* globalScalars = NULL
			) :
			fDarcHeader(darcHeader), fDarcScalars(darcScalars),
			fGlobalHeader(globalHeader), fGlobalScalars(globalScalars)
		{
		}
		
		/// Implement shallow copying in the copy constructor.
		AliHeader(const AliHeader& o) :
			fDarcHeader(o.fDarcHeader), fDarcScalars(o.fDarcScalars),
			fGlobalHeader(o.fGlobalHeader), fGlobalScalars(o.fGlobalScalars)
		{
		}
		
		/// Implement shallow copying in the assignment operator.
		AliHeader& operator = (const AliHeader& object)
		{
			memcpy(this, &object, sizeof(AliHeader));
			return *this;
		}
	
		/// Default destructor.
		~AliHeader() {};
		
		/// Return first word
		UInt_t   GetWord()               const {return GetDarcHeader();}
		/// Return global input
		UInt_t   GetGlobalInput(Int_t n) const {return fGlobalHeader->fInput[n];}
		/// Return global output
		UChar_t  GetGlobalOutput() const {return AliMUONTriggerDDLDecoderEventHandler::GetGlobalOutput(fGlobalHeader);}
		/// Return global config
		UShort_t GetGlobalConfig() const {return AliMUONTriggerDDLDecoderEventHandler::GetGlobalConfig(fGlobalHeader);}

		/// Return event type
		UChar_t GetEventType()  const {return AliMUONTriggerDDLDecoderEventHandler::GetDarcEventType(GetDarcHeader());}
		/// Returns true if this was a physics event.
		Bool_t IsPhysicsEvent() const {return GetEventType() == 0x1;}
		/// Return Darc type
		UChar_t GetDarcType()   const {return AliMUONTriggerDDLDecoderEventHandler::GetDarcType(GetDarcHeader());}
		/// Return serial number
		UChar_t GetSerialNb()   const {return AliMUONTriggerDDLDecoderEventHandler::GetDarcSerialNb(GetDarcHeader());}
		/// Return version
		UChar_t GetVersion()    const {return AliMUONTriggerDDLDecoderEventHandler::GetDarcVersion(GetDarcHeader());}
		/// Return VME trig
		Bool_t  GetVMETrig()    const {return AliMUONTriggerDDLDecoderEventHandler::GetDarcVMETrig(GetDarcHeader());}
		/// Return global flag
		Bool_t  GetGlobalFlag() const {return AliMUONTriggerDDLDecoderEventHandler::GetDarcGlobalFlag(GetDarcHeader());}
		/// Return CPT trigger
		Bool_t  GetCTPTrig()    const {return AliMUONTriggerDDLDecoderEventHandler::GetDarcCTPTrig(GetDarcHeader());}
		/// Return DAQ flag
		Bool_t  GetDAQFlag()    const {return AliMUONTriggerDDLDecoderEventHandler::GetDarcDAQFlag(GetDarcHeader());}
		/// Return reg pattern
		UChar_t GetRegPattern() const {return AliMUONTriggerDDLDecoderEventHandler::GetDarcRegPattern(GetDarcHeader());}
	
		// DARC get methods
		/// Return DARC L0 received and used
		UInt_t  GetDarcL0R()   const {return (fDarcScalars != NULL) ? fDarcScalars->fL0R : 0;}
		/// Return DARC L1 physics
		UInt_t  GetDarcL1P()   const {return (fDarcScalars != NULL) ? fDarcScalars->fL1P : 0;}
		/// Return DARC L1 software
		UInt_t  GetDarcL1S()   const {return (fDarcScalars != NULL) ? fDarcScalars->fL1S : 0;}
		/// Return DARC L2 accept
		UInt_t  GetDarcL2A()   const {return (fDarcScalars != NULL) ? fDarcScalars->fL2A : 0;}
		/// Return DARC L2 reject
		UInt_t  GetDarcL2R()   const {return (fDarcScalars != NULL) ? fDarcScalars->fL2R : 0;}
		/// Return DARC clock
		UInt_t  GetDarcClock() const {return (fDarcScalars != NULL) ? fDarcScalars->fClk : 0;}
		/// Return DARC hold (dead time)
		UInt_t  GetDarcHold()  const {return (fDarcScalars != NULL) ? fDarcScalars->fHold : 0;}
		
		// global get methods
		/// Return global L0
		UInt_t  GetGlobalL0()    const {return (fGlobalScalars != NULL) ? fGlobalScalars->fL0 : 0;}
		/// Return global clock
		UInt_t  GetGlobalClock() const {return (fGlobalScalars != NULL) ? fGlobalScalars->fClk : 0;}
		/// Return global scalars or NULL if none exist.
		const UInt_t* GetGlobalScaler()  const {return (fGlobalScalars != NULL) ? &fGlobalScalars->fScaler[0] : NULL;}
		/// Return global hold (dead time)
		UInt_t  GetGlobalHold()  const {return (fGlobalScalars != NULL) ? fGlobalScalars->fHold : 0;}
		/// Return global spare
		UInt_t  GetGlobalSpare() const {return (fGlobalScalars != NULL) ? fGlobalScalars->fSpare : 0;}
		
		/// Return true if type for DARC is default.
		Bool_t DarcIsDefaultType() const {return GetDarcType() == AliMUONTriggerDDLDecoder<AliMUONTriggerDDLDecoderEventHandler>::DarcDefaultType();}
		/// Return true if type for DARC is Vadorh.
		Bool_t DarcIsVadohrType()  const {return GetDarcType() == AliMUONTriggerDDLDecoder<AliMUONTriggerDDLDecoderEventHandler>::DarcVadorhType();}
		
		/// Return the DARC header's raw data.
		UInt_t GetDarcHeader() const {return fDarcHeader;}
		
		/// Return the DARC scalars raw data or NULL if none exist.
		const AliMUONDarcScalarsStruct* GetDarcScalars() const {return fDarcScalars;}
		
		/// Return the global header's raw data.
		const AliMUONGlobalHeaderStruct* GetGlobalHeader() const {return fGlobalHeader;}
		
		/// Return the global scalars raw data or NULL if none exist.
		const AliMUONGlobalScalarsStruct* GetGlobalScalars() const {return fGlobalScalars;}
		
		/// Print the contents of the headers to screen.
		void Print() const;
	
	private:
	
		UInt_t fDarcHeader;  ///< Pointer to DARC header in DDL payload.
		const AliMUONDarcScalarsStruct* fDarcScalars;  ///< Pointer to DARC scalars in DDL payload.
		const AliMUONGlobalHeaderStruct* fGlobalHeader;  ///< Pointer to global header in DDL payload.
		const AliMUONGlobalScalarsStruct* fGlobalScalars;  ///< Pointer to global scalars in DDL payload.
	};
	
	/// Light weight interface class to the regional card header data.
	class AliRegionalHeader
	{
	public:
		/// Default constructor.
		AliRegionalHeader(
				const AliLocalStruct* localsArray = NULL,
				const AliMUONRegionalHeaderStruct* header = NULL,
				const AliMUONRegionalScalarsStruct* scalars = NULL
			) :
			fNext(NULL), fLocalsCount(0), fFirstLocal(localsArray),
			fHeader(header), fScalars(scalars)
		{
		}
		
		/// Implement shallow copying in the copy constructor.
		AliRegionalHeader(const AliRegionalHeader& o) :
			fNext(o.fNext), fLocalsCount(o.fLocalsCount),
			fFirstLocal(o.fFirstLocal), fHeader(o.fHeader),
			fScalars(o.fScalars)
		{
		}
		
		/// Implement shallow copying in the assignment operator.
		AliRegionalHeader& operator = (const AliRegionalHeader& object)
		{
			memcpy(this, &object, sizeof(AliRegionalHeader));
			return *this;
		}
		
		/// Default destructor.
		~AliRegionalHeader() {};
		
		/// Return darc word
		UInt_t   GetDarcWord()     const {return fHeader->fDarcWord;}
		/// Return first reg word
		UInt_t   GetWord()         const {return fHeader->fWord;}
		/// Return regional input
		UInt_t   GetInput(Int_t n) const {assert(n < 2); return fHeader->fInput[n];}
		/// Return L0
		UShort_t GetL0()           const {return AliMUONTriggerDDLDecoderEventHandler::GetRegionalL0(fHeader);}
		/// Return mask
		UShort_t GetMask()         const {return AliMUONTriggerDDLDecoderEventHandler::GetRegionalMask(fHeader);}
		
		//word: phys type:1, reset: 6, serialNb:5, Id:4, version: 8, regional output:8
		//true for phys, false for soft
		/// Return RegPhysFlag
		Bool_t    GetRegPhysFlag() const {return AliMUONTriggerDDLDecoderEventHandler::GetRegionalPhysFlag(fHeader);}
		/// Return ResetNb
		UChar_t   GetResetNb()     const {return AliMUONTriggerDDLDecoderEventHandler::GetRegionalResetNb(fHeader);}
		/// Return SerialNb
		UChar_t   GetSerialNb()    const {return AliMUONTriggerDDLDecoderEventHandler::GetRegionalSerialNb(fHeader);}
		/// Return Id
		UChar_t   GetId()          const {return AliMUONTriggerDDLDecoderEventHandler::GetRegionalId(fHeader);}
		/// Return Version
		UChar_t   GetVersion()     const {return AliMUONTriggerDDLDecoderEventHandler::GetRegionalVersion(fHeader);}
		/// Return Output
		UChar_t   GetOutput()      const {return AliMUONTriggerDDLDecoderEventHandler::GetRegionalOutput(fHeader);}
		
		//Darc Status: error:10, #fpag:3, MBZ:3, phys type:1, present:1, not_full:1
		// not_empty:1, L2Rej:1, L2Acc:1, L1:1, L0:1, #evt:4, busy:4
		/// Return ErrorBits
		UShort_t GetErrorBits()       const {return AliMUONTriggerDDLDecoderEventHandler::GetRegionalErrorBits(fHeader);}
		/// Return FPGANumber
		UChar_t  GetFPGANumber()      const {return AliMUONTriggerDDLDecoderEventHandler::GetRegionalFPGANumber(fHeader);}
		/// Return DarcPhysFlag
		Bool_t   GetDarcPhysFlag()    const {return AliMUONTriggerDDLDecoderEventHandler::GetRegionalDarcPhysFlag(fHeader);}
		/// Return PresentFlag
		Bool_t   GetPresentFlag()     const {return AliMUONTriggerDDLDecoderEventHandler::GetRegionalPresentFlag(fHeader);}
		/// Return RamNotFullFlag
		Bool_t   GetRamNotFullFlag()  const {return AliMUONTriggerDDLDecoderEventHandler::GetRegionalRamNotFullFlag(fHeader);}
		/// Return RamNotEmptyFlag
		Bool_t   GetRamNotEmptyFlag() const {return AliMUONTriggerDDLDecoderEventHandler::GetRegionalRamNotEmptyFlag(fHeader);}
		/// Return L2RejStatus
		Bool_t   GetL2RejStatus()     const {return AliMUONTriggerDDLDecoderEventHandler::GetRegionalL2RejStatus(fHeader);}
		/// Return L2AccStatus
		Bool_t   GetL2AccStatus()     const {return AliMUONTriggerDDLDecoderEventHandler::GetRegionalL2AccStatus(fHeader);}
		/// Return L1Status
		Bool_t   GetL1Status()        const {return AliMUONTriggerDDLDecoderEventHandler::GetRegionalL1Status(fHeader);}
		/// Return L0Status
		Bool_t   GetL0Status()        const {return AliMUONTriggerDDLDecoderEventHandler::GetRegionalL0Status(fHeader);}
		/// Return EventInRam
		UChar_t  GetEventInRam()      const {return AliMUONTriggerDDLDecoderEventHandler::GetRegionalEventInRam(fHeader);}
		/// Return Busy
		UChar_t  GetBusy()            const {return AliMUONTriggerDDLDecoderEventHandler::GetRegionalBusy(fHeader);}
		
		// scalar methods
		/// Return regional clock
		UInt_t  GetClock()        const {return (fScalars != NULL) ? fScalars->fClk : 0;}
		/// Return regional ouput
		const UInt_t* GetScaler() const {return (fScalars != NULL) ? &fScalars->fScaler[0] : NULL;}
		/// Return regional hold (dead time)
		UInt_t  GetHold()         const {return (fScalars != NULL) ? fScalars->fHold : 0;}
		
		/// Return raw data of regional header.
		const AliMUONRegionalHeaderStruct* GetHeader() const { return fHeader; }
		
		/// Return the raw data of the regional scalars or NULL if none exist.
		const AliMUONRegionalScalarsStruct* GetScalars() const { return fScalars; }
		
		/// Return the next regional structure header.
		const AliRegionalHeader* Next() const { return fNext; }
		
		/// Returns the first AliLocalStruct class in this regional structure.
		const AliLocalStruct* GetFirstLocalStruct() const { return fFirstLocal; }
		
		/// Returns the number of local trigger structures within this regional structure.
		UInt_t GetLocalStructCount() const { return fLocalsCount; }
	
		/// Return the i'th local trigger structure in this regional structure.
		const AliLocalStruct* GetLocalStruct(UInt_t i) const
		{
			return i < fLocalsCount ? GetFirstLocalStruct() + i : NULL;
		}
	
		/// Sets the next regional structure header.
		void SetNext(const AliRegionalHeader* next) { fNext = next; }

		/// Increments the local trigger structure count.
		void IncLocalStructCount() { fLocalsCount++; };
		
		/// Print the contents of the regional header and scalars to screen.
		void Print() const;
	
	private:
	
		const AliRegionalHeader* fNext;  ///< Pointer to next regional header.
		UInt_t fLocalsCount;  ///< The number of AliLocalStruct objects found in the array pointed to by fFirstLocal.
		const AliLocalStruct* fFirstLocal;  ///< The first local trigger structure of this regional structure.
		const AliMUONRegionalHeaderStruct* fHeader;  ///< Pointer to the regional header in the DDL payload.
		const AliMUONRegionalScalarsStruct* fScalars;  ///< Pointer to the regional scalars in the DDL payload.
	};
	
	/// Light weight interface class to the local trigger card data.
	class AliLocalStruct
	{
	public:
		/// Default constructor.
		AliLocalStruct(
				const AliRegionalHeader* regionalHeader = NULL,
				const AliMUONLocalInfoStruct* localStruct = NULL,
				const AliMUONLocalScalarsStruct* scalars = NULL
			) :
			fRegional(regionalHeader), fNext(NULL),
			fLocalStruct(localStruct), fScalars(scalars),
			fCalculatedId(0)
		{
		}
		
		/// Implement shallow copying in the copy constructor.
		AliLocalStruct(const AliLocalStruct& o) :
			fRegional(o.fRegional), fNext(o.fNext),
			fLocalStruct(o.fLocalStruct), fScalars(o.fScalars),
			fCalculatedId(o.fCalculatedId)
		{
		}
		
		/// Implement shallow copying in the assignment operator.
		AliLocalStruct& operator = (const AliLocalStruct& object)
		{
			memcpy(this, &object, sizeof(AliLocalStruct));
			return *this;
		}
	
		/// Default destructor.
		~AliLocalStruct() {};
		
		/// Return local data
		UInt_t GetData(Int_t n) const
		{
			assert(n < 5);
			return (reinterpret_cast<const UInt_t*>(fLocalStruct))[n];
		}
	
		/// Return X2
		UShort_t GetX2() const {return AliMUONTriggerDDLDecoderEventHandler::GetLocalX2(fLocalStruct);}
		/// Return X1
		UShort_t GetX1() const {return AliMUONTriggerDDLDecoderEventHandler::GetLocalX1(fLocalStruct);}
		/// Return X4
		UShort_t GetX4() const {return AliMUONTriggerDDLDecoderEventHandler::GetLocalX4(fLocalStruct);}
		/// Return X3
		UShort_t GetX3() const {return AliMUONTriggerDDLDecoderEventHandler::GetLocalX3(fLocalStruct);}
	
		/// Return Y2
		UShort_t GetY2() const {return AliMUONTriggerDDLDecoderEventHandler::GetLocalY2(fLocalStruct);}
		/// Return Y1
		UShort_t GetY1() const {return AliMUONTriggerDDLDecoderEventHandler::GetLocalY1(fLocalStruct);}
		/// Return Y4
		UShort_t GetY4() const {return AliMUONTriggerDDLDecoderEventHandler::GetLocalY4(fLocalStruct);}
		/// Return Y3
		UShort_t GetY3() const {return AliMUONTriggerDDLDecoderEventHandler::GetLocalY3(fLocalStruct);}
		
		/// return X pattern array
		void GetXPattern(TArrayS& array) const
		{
			Short_t vec[4] = {static_cast<Short_t>(GetX1()), static_cast<Short_t>(GetX2()), static_cast<Short_t>(GetX3()), static_cast<Short_t>(GetX4())};
			array.Set(4, vec);
		}
	
		/// return Y pattern array
		void GetYPattern(TArrayS& array) const
		{
			Short_t vec[4] = {static_cast<Short_t>(GetY1()), static_cast<Short_t>(GetY2()), static_cast<Short_t>(GetY3()), static_cast<Short_t>(GetY4())};
			array.Set(4, vec);
		}
	
		/// Return Id
		UChar_t GetId() const {return fgOverrideId ? fCalculatedId : AliMUONTriggerDDLDecoderEventHandler::GetLocalId(fLocalStruct);}
		/// Return Dec
		UChar_t GetDec() const {return AliMUONTriggerDDLDecoderEventHandler::GetLocalDec(fLocalStruct);}
		/// Return TrigY
		Bool_t GetTrigY() const {return AliMUONTriggerDDLDecoderEventHandler::GetLocalTrigY(fLocalStruct);}
		/// Return TriggerY
		Bool_t GetTriggerY() const {return AliMUONTriggerDDLDecoderEventHandler::GetLocalTriggerY(fLocalStruct);}
		/// Return Upos
		UChar_t GetYPos() const {return AliMUONTriggerDDLDecoderEventHandler::GetLocalYPos(fLocalStruct);}
		/// Get Sign of X deviation 
		Bool_t GetSXDev() const {return AliMUONTriggerDDLDecoderEventHandler::GetLocalSXDev(fLocalStruct);}
		/// Get X deviation 
		UChar_t GetXDev() const {return AliMUONTriggerDDLDecoderEventHandler::GetLocalXDev(fLocalStruct);}
		/// Return TriggerX
		Bool_t GetTriggerX() const {return AliMUONTriggerDDLDecoderEventHandler::GetLocalTriggerX(fLocalStruct);}
		/// Return Xpos
		UChar_t GetXPos() const {return AliMUONTriggerDDLDecoderEventHandler::GetLocalXPos(fLocalStruct);}
		/// Return LPT
		UChar_t GetLpt() const {return AliMUONTriggerDDLDecoderEventHandler::GetLocalLpt(fLocalStruct);}
		/// Return HPT
		UChar_t GetHpt() const {return AliMUONTriggerDDLDecoderEventHandler::GetLocalHpt(fLocalStruct);}
		
		// Scaler methods
		/// Return local L0
		UInt_t  GetL0()      const {return (fScalars != NULL) ? fScalars->fL0 : 0;}
		/// Return local hold (dead time)
		UInt_t  GetHold()    const {return (fScalars != NULL) ? fScalars->fHold : 0;}
		/// Return local clock
		UInt_t  GetClock()   const {return (fScalars != NULL) ? fScalars->fClk : 0;}
		
		/// Return switch
		UShort_t GetSwitch() const
		{
			return (fScalars != NULL) ?
				AliMUONTriggerDDLDecoderEventHandler::GetLocalSwitch(fScalars) : 0;
		}
		
		/// Return ComptXY
		UChar_t GetComptXY() const
		{
			return (fScalars != NULL) ?
				AliMUONTriggerDDLDecoderEventHandler::GetLocalComptXY(fScalars) : 0;
		}
	
		/// Return XY1
		UShort_t GetXY1(Int_t n) const
		{
			return (fScalars != NULL) ?
				AliMUONTriggerDDLDecoderEventHandler::GetLocalXY1(fScalars, n) : 0;
		}
	
		/// Return XY2
		UShort_t GetXY2(Int_t n) const
		{
			return (fScalars != NULL) ?
				AliMUONTriggerDDLDecoderEventHandler::GetLocalXY2(fScalars, n) : 0;
		}
	
		/// Return XY3
		UShort_t GetXY3(Int_t n) const
		{
			return (fScalars != NULL) ?
				AliMUONTriggerDDLDecoderEventHandler::GetLocalXY3(fScalars, n) : 0;
		}
	
		/// Return XY4
		UShort_t GetXY4(Int_t n) const
		{
			return (fScalars != NULL) ?
				AliMUONTriggerDDLDecoderEventHandler::GetLocalXY4(fScalars, n) : 0;
		}

		/// Return raw data of the local trigger structure.
		const AliMUONLocalInfoStruct* GetData() const {return fLocalStruct;}
		
		/// Return raw data of the local trigger scalars.
		/// Could be NULL if no scalars present.
		const AliMUONLocalScalarsStruct* GetScalars() const {return fScalars;}
		
		/// Return the parent regional header.
		const AliRegionalHeader* GetRegionalHeader() const { return fRegional; }
		
		/// Return the next local trigger structure.
		const AliLocalStruct* Next() const { return fNext; }
		
		/// Sets the next local trigger structure.
		void SetNext(const AliLocalStruct* next) { fNext = next; }
	
		/// Sets the calculated ID value to be returned by GetId if fgOverrideId is true.
		void SetCalculatedId(UChar_t id) { fCalculatedId = id; }
		
		/// Print the contents of the local trigger structure and contents to screen.
		void Print() const;
		
		/// Returns the override flag indicating if the GetId method should return the calculated Id value or not.
		static bool GetOverrideIdFlag() { return fgOverrideId; }
		
		/// Sets the override flag to control what value the GetId method returns.
		static void SetOverrideIdFlag(bool value) { fgOverrideId = value; }
	
	private:
	
		const AliRegionalHeader* fRegional;  ///< The regional structure this local trigger structure belongs to.
		const AliLocalStruct* fNext;  ///< Next local structure object in the regional structure.
		const AliMUONLocalInfoStruct* fLocalStruct;  ///< Pointer to the local trigger structure data in the DDL payload.
		const AliMUONLocalScalarsStruct* fScalars;  ///< Pointer to the local trigger scalars data in the DDL payload.
		UChar_t fCalculatedId;  ///< Calculated ID value returned by GetId() if fgOverrideId == true.
		static bool fgOverrideId; //!< Flag indicating if we should return a calculated number in the GetId method.
	};
	
	/// Returns the DARC and global headers plus scalars if they exist.
	const AliHeader* GetHeaders() const { return fDecoder.GetHandler().GetHeaders(); }
	
	/// Return the number of regional structures in the DDL payload.
	UInt_t GetRegionalHeaderCount() const
	{
		return fDecoder.GetHandler().RegionalHeaderCount();
	}
	
	/// Return the first regional structure header.
	const AliRegionalHeader* GetFirstRegionalHeader() const
	{
		return fDecoder.GetHandler().RegionalHeader(0);
	}
	
	/// Return the i'th regional header or NULL if not found.
	const AliRegionalHeader* GetRegionalHeader(UInt_t i) const
	{
		return fDecoder.GetHandler().RegionalHeader(i);
	}
	
	/// Returns the number of local trigger structures for the given
	/// regional structure number.
	UInt_t GetLocalStructCount(UInt_t reg) const
	{
		const AliRegionalHeader* r = GetRegionalHeader(reg);
		return r != NULL ? r->GetLocalStructCount() : 0;
	}
	
	/// Returns the i'th local trigger structure for the given regional
	/// structure number or NULL if not found.
	const AliLocalStruct* GetLocalStruct(UInt_t reg, UInt_t i) const
	{
		const AliRegionalHeader* r = GetRegionalHeader(reg);
		return r != NULL ? r->GetLocalStruct(i) : NULL;
	}

	/// Returns the current local struct being decoded or NULL if none found.
	const AliLocalStruct* CurrentLocalStruct() const
	{
		return (fkCurrentLocalStruct != fDecoder.GetHandler().EndOfLocalStructs()) ?
			fkCurrentLocalStruct : NULL;
	}

	/// Returns the current regional structure being decoded
	/// or NULL if none found.
	const AliRegionalHeader* CurrentRegionalHeader() const
	{
		const AliLocalStruct* local = CurrentLocalStruct();
		return (local != NULL) ? local->GetRegionalHeader() : NULL;
	}
	
private:
	/// Not implemented
	AliMUONRawStreamTriggerHP(const AliMUONRawStreamTriggerHP& stream);
	/// Not implemented
	AliMUONRawStreamTriggerHP& operator = (const AliMUONRawStreamTriggerHP& stream);
	
	
	/// This is the custom event handler (callback interface) class which
	/// unpacks raw data words and fills an internal buffer with decoded digits
	/// as they are decoded by the high performance decoder.
	/// Any errors are logged to the parent AliMUONVRawStreamTrigger, so one
	/// must set this pointer appropriately before decoding and DDL payload.
	class AliDecoderEventHandler : public AliMUONTriggerDDLDecoderEventHandler
	{
	public:
	
		/// Default constructor.
		AliDecoderEventHandler();
		/// Default destructor.
		virtual ~AliDecoderEventHandler();
		
		/// Sets the internal arrays based on the maximum number of structures allowed.
		void SetMaxStructs(UInt_t maxRegionals, UInt_t maxLocals);
		
		/// Sets the raw stream object which should be the parent of this class.
		void SetRawStream(AliMUONVRawStreamTrigger* rawStream) { fRawStream = rawStream; }
		
		/// Returns the decoded DARC and global headers (and scalars if they exist).
		const AliHeader* GetHeaders() const { return &fHeaders; }
		
		/// Returns the number of regional headers.
		UInt_t RegionalHeaderCount() const { return fRegionalsCount; }
		
		/// Return the i'th regional structure header.
		const AliRegionalHeader* RegionalHeader(UInt_t i) const
		{
			return i < fRegionalsCount ? &fRegionals[i] : NULL;
		}
		
		/// Return the first local structure decoded.
		const AliLocalStruct* FirstLocalStruct() const { return fLocals; }
		
		/// Returns the marker to the end of local structures.
		/// i.e. one position past the last local structure in fLocals.
		const AliLocalStruct* EndOfLocalStructs() const { return fEndOfLocals; }
		
		/// Get number of end of DARC word errors.
		UInt_t GetDarcEoWErrors() const {return fDarcEoWErrors;}
		
		/// Get number of end of Global word errors.
		UInt_t GetGlobalEoWErrors() const {return fGlobalEoWErrors;}
		
		/// Get number of end of regional word errors.
		UInt_t GetRegEoWErrors() const {return fRegEoWErrors;}
		
		/// Get number of end of local word errors.
		UInt_t GetLocalEoWErrors() const {return fLocalEoWErrors;}

		/// Returns the warnings flag.
		Bool_t Warnings() const { return fWarnings; }
		/// Sets the warnings flag.
		void Warnings(Bool_t value) { fWarnings = value; }
		
		// The following methods are inherited from AliMUONTriggerDDLDecoderEventHandler:
		
		/// New buffer handler.
		void OnNewBuffer(const void* buffer, UInt_t bufferSize);

		/// End of buffer handler marks the end of local trigger structures.
		void OnEndOfBuffer(const void* /*buffer*/, UInt_t /*bufferSize*/)
		{
			fEndOfLocals = fCurrentLocal+1;
		}
		
		/// Handler for the DARC header which just remembers the pointers for later.
		void OnDarcHeader(UInt_t header,
		                  const AliMUONDarcScalarsStruct* scalars,
		                  const void* /*data*/)
		{
			fDarcHeader = header;
			fDarcScalars = scalars;
		}
		
		/// Handler for the global header which stores the pointer to the headers.
		void OnGlobalHeader(const AliMUONGlobalHeaderStruct* header,
		                    const AliMUONGlobalScalarsStruct* scalars,
		                    const void* /*data*/)
		{
			fHeaders = AliHeader(fDarcHeader, fDarcScalars, header, scalars);
		}
		
		/// Handler for new regional card structures.
		void OnNewRegionalStructV2(UInt_t iReg,
		                           const AliMUONRegionalHeaderStruct* header,
		                           const AliMUONRegionalScalarsStruct* scalars,
		                           const void* data);
		
		/// Handler for new local card structures.
		void OnLocalStructV2(UInt_t iLoc,
		                     const AliMUONLocalInfoStruct* localStruct,
		                     const AliMUONLocalScalarsStruct* scalars);
		
		/// Error handler.
		void OnError(ErrorCode error, const void* location);
	
	private:
	
		// Do not allow copying of this class.
                /// Not implemented
		AliDecoderEventHandler(const AliDecoderEventHandler& /*obj*/);
                /// Not implemented
		AliDecoderEventHandler& operator = (const AliDecoderEventHandler& /*obj*/);

		AliMUONVRawStreamTrigger* fRawStream; //!< Pointer to the parent raw stream object.
		const void* fBufferStart;   //!< Pointer to the start of the current DDL payload buffer.
		UInt_t fDarcHeader; //!< Currently decoded DARC header.
		const AliMUONDarcScalarsStruct* fDarcScalars; //!< Currently decoded DARC scalars.
		AliHeader fHeaders;  //!< Headers of the DDL payload.
		UInt_t fRegionalsCount; //!< Number of regional headers filled in fRegionals.
		AliRegionalHeader* fRegionals;  //!< Array of regional headers. [0..fMaxRegionals-1]
		AliLocalStruct* fLocals; //!< Array of decoded local structured. [0..fMaxRegionals*fMaxLocals-1]
		AliLocalStruct* fEndOfLocals; //!< Marker indicating the position just passed the last filled element in fLocals.
		AliRegionalHeader* fCurrentRegional; //!< Current regional header position.
		AliLocalStruct* fCurrentLocal; //!< Current local trigger structure.
		UInt_t fDarcEoWErrors;    //!< Number of end of DARC word errors.
		UInt_t fGlobalEoWErrors;  //!< Number of end of global word errors.
		UInt_t fRegEoWErrors;     //!< Number of end of regional word errors.
		UInt_t fLocalEoWErrors;   //!< Number of end of local word errors.
		Bool_t fWarnings;       //!< Flag indicating if we should generate a warning for errors.
		
		static const AliMUONRegionalHeaderStruct fgkEmptyHeader;  //!< Empty header for skipped regional structures.
	};
	
	AliMUONTriggerDDLDecoder<AliDecoderEventHandler> fDecoder;  //!< The decoder for the DDL payload.
	Int_t fDDL;         //!< The current DDL number being handled.
	Int_t fBufferSize;  //!< This is the buffer size in bytes of fBuffer.
	UChar_t* fBuffer;   //!< This is the buffer in which we store the DDL payload read from AliRawReader.
	const AliLocalStruct* fkCurrentLocalStruct;  //!< The current local trigger structure being handled by Next().
	Bool_t fHadError;   //!< Flag indicating if there was a decoding error or not.
	Bool_t fDone;       //!< Flag indicating if the iteration is done or not.
	mutable AliMUONDDLTrigger* fDDLObject; //!< Temporary DDL object used by GetDDLTrigger() for caching.
	UInt_t fTotalNumberOfDarcEoWErrors; //!< The total number of end of DARC word errors since the last call to First().
	UInt_t fTotalNumberOfGlobalEoWErrors; //!< The total number of end of global word errors since the last call to First().
	UInt_t fTotalNumberOfRegEoWErrors; //!< The total number of end of regional word errors since the last call to First().
	UInt_t fTotalNumberOfLocalEoWErrors; //!< The total number of end of local word errors since the last call to First().
	
	static const Int_t  fgkMaxDDL;     //!< Maximum number of DDLs
	
	ClassDef(AliMUONRawStreamTriggerHP, 0)  // Higher performance decoder class for MUON trigger rawdata.
};

////////////////////////////////////////////////////////////////////////////////

inline const AliMUONRawStreamTriggerHP::AliLocalStruct* AliMUONRawStreamTriggerHP::Next()
{
	/// Iterates through all the local trigger structures for the event.
	/// When no more local triggers are found then NULL is returned.

	do {
		if (fkCurrentLocalStruct != fDecoder.GetHandler().EndOfLocalStructs())
			return fkCurrentLocalStruct++;
	} while (NextDDL());
	return NULL;
}


inline void AliMUONRawStreamTriggerHP::AliDecoderEventHandler::OnNewRegionalStructV2(
		UInt_t iReg,
		const AliMUONRegionalHeaderStruct* header,
		const AliMUONRegionalScalarsStruct* scalars,
		const void* /*data*/
	)
{
	/// New regional structure handler is called by the decoder whenever a
	/// new regional header is found. We just mark the header and increment
	/// the appropriate counters.
	
	assert( header != NULL );
	assert( iReg < fRegionalsCount );
	
	fCurrentRegional = fRegionals+iReg;
	*fCurrentRegional = AliRegionalHeader(fCurrentLocal+1, header, scalars);
	
	// Link to the next regional structure unless this is the last one.
	if (iReg+1 < fRegionalsCount)
	{
		fCurrentRegional->SetNext(fCurrentRegional+1);
	}
}


inline void AliMUONRawStreamTriggerHP::AliDecoderEventHandler::OnLocalStructV2(
		UInt_t iLoc,
		const AliMUONLocalInfoStruct* localStruct,
		const AliMUONLocalScalarsStruct* scalars
	)
{
	/// New local trigger structure handler.
	/// This is called by the high performance decoder when a new local trigger
	/// structure is found within the DDL payload.
	/// We mark the location of the structure in the DDL paytload and increment
	/// appropriate counters.

	assert( localStruct != NULL );
	assert( fCurrentLocal != NULL );
	assert( fCurrentRegional != NULL );
	assert( fCurrentRegional->GetLocalStructCount() < (UInt_t)fRawStream->GetMaxLoc() );
	
	// Link the previous local structure unless it is the first one. 
	if (fCurrentRegional->GetLocalStructCount() > 0)
	{
		fCurrentLocal->SetNext(fCurrentLocal+1);
	}
	
	fCurrentLocal++;
	*fCurrentLocal = AliLocalStruct(fCurrentRegional, localStruct, scalars);
	fCurrentLocal->SetCalculatedId(iLoc);
	fCurrentRegional->IncLocalStructCount();
}

#endif // ALIMUONRAWSTREAMTRIGGERHP_H
 AliMUONRawStreamTriggerHP.h:1
 AliMUONRawStreamTriggerHP.h:2
 AliMUONRawStreamTriggerHP.h:3
 AliMUONRawStreamTriggerHP.h:4
 AliMUONRawStreamTriggerHP.h:5
 AliMUONRawStreamTriggerHP.h:6
 AliMUONRawStreamTriggerHP.h:7
 AliMUONRawStreamTriggerHP.h:8
 AliMUONRawStreamTriggerHP.h:9
 AliMUONRawStreamTriggerHP.h:10
 AliMUONRawStreamTriggerHP.h:11
 AliMUONRawStreamTriggerHP.h:12
 AliMUONRawStreamTriggerHP.h:13
 AliMUONRawStreamTriggerHP.h:14
 AliMUONRawStreamTriggerHP.h:15
 AliMUONRawStreamTriggerHP.h:16
 AliMUONRawStreamTriggerHP.h:17
 AliMUONRawStreamTriggerHP.h:18
 AliMUONRawStreamTriggerHP.h:19
 AliMUONRawStreamTriggerHP.h:20
 AliMUONRawStreamTriggerHP.h:21
 AliMUONRawStreamTriggerHP.h:22
 AliMUONRawStreamTriggerHP.h:23
 AliMUONRawStreamTriggerHP.h:24
 AliMUONRawStreamTriggerHP.h:25
 AliMUONRawStreamTriggerHP.h:26
 AliMUONRawStreamTriggerHP.h:27
 AliMUONRawStreamTriggerHP.h:28
 AliMUONRawStreamTriggerHP.h:29
 AliMUONRawStreamTriggerHP.h:30
 AliMUONRawStreamTriggerHP.h:31
 AliMUONRawStreamTriggerHP.h:32
 AliMUONRawStreamTriggerHP.h:33
 AliMUONRawStreamTriggerHP.h:34
 AliMUONRawStreamTriggerHP.h:35
 AliMUONRawStreamTriggerHP.h:36
 AliMUONRawStreamTriggerHP.h:37
 AliMUONRawStreamTriggerHP.h:38
 AliMUONRawStreamTriggerHP.h:39
 AliMUONRawStreamTriggerHP.h:40
 AliMUONRawStreamTriggerHP.h:41
 AliMUONRawStreamTriggerHP.h:42
 AliMUONRawStreamTriggerHP.h:43
 AliMUONRawStreamTriggerHP.h:44
 AliMUONRawStreamTriggerHP.h:45
 AliMUONRawStreamTriggerHP.h:46
 AliMUONRawStreamTriggerHP.h:47
 AliMUONRawStreamTriggerHP.h:48
 AliMUONRawStreamTriggerHP.h:49
 AliMUONRawStreamTriggerHP.h:50
 AliMUONRawStreamTriggerHP.h:51
 AliMUONRawStreamTriggerHP.h:52
 AliMUONRawStreamTriggerHP.h:53
 AliMUONRawStreamTriggerHP.h:54
 AliMUONRawStreamTriggerHP.h:55
 AliMUONRawStreamTriggerHP.h:56
 AliMUONRawStreamTriggerHP.h:57
 AliMUONRawStreamTriggerHP.h:58
 AliMUONRawStreamTriggerHP.h:59
 AliMUONRawStreamTriggerHP.h:60
 AliMUONRawStreamTriggerHP.h:61
 AliMUONRawStreamTriggerHP.h:62
 AliMUONRawStreamTriggerHP.h:63
 AliMUONRawStreamTriggerHP.h:64
 AliMUONRawStreamTriggerHP.h:65
 AliMUONRawStreamTriggerHP.h:66
 AliMUONRawStreamTriggerHP.h:67
 AliMUONRawStreamTriggerHP.h:68
 AliMUONRawStreamTriggerHP.h:69
 AliMUONRawStreamTriggerHP.h:70
 AliMUONRawStreamTriggerHP.h:71
 AliMUONRawStreamTriggerHP.h:72
 AliMUONRawStreamTriggerHP.h:73
 AliMUONRawStreamTriggerHP.h:74
 AliMUONRawStreamTriggerHP.h:75
 AliMUONRawStreamTriggerHP.h:76
 AliMUONRawStreamTriggerHP.h:77
 AliMUONRawStreamTriggerHP.h:78
 AliMUONRawStreamTriggerHP.h:79
 AliMUONRawStreamTriggerHP.h:80
 AliMUONRawStreamTriggerHP.h:81
 AliMUONRawStreamTriggerHP.h:82
 AliMUONRawStreamTriggerHP.h:83
 AliMUONRawStreamTriggerHP.h:84
 AliMUONRawStreamTriggerHP.h:85
 AliMUONRawStreamTriggerHP.h:86
 AliMUONRawStreamTriggerHP.h:87
 AliMUONRawStreamTriggerHP.h:88
 AliMUONRawStreamTriggerHP.h:89
 AliMUONRawStreamTriggerHP.h:90
 AliMUONRawStreamTriggerHP.h:91
 AliMUONRawStreamTriggerHP.h:92
 AliMUONRawStreamTriggerHP.h:93
 AliMUONRawStreamTriggerHP.h:94
 AliMUONRawStreamTriggerHP.h:95
 AliMUONRawStreamTriggerHP.h:96
 AliMUONRawStreamTriggerHP.h:97
 AliMUONRawStreamTriggerHP.h:98
 AliMUONRawStreamTriggerHP.h:99
 AliMUONRawStreamTriggerHP.h:100
 AliMUONRawStreamTriggerHP.h:101
 AliMUONRawStreamTriggerHP.h:102
 AliMUONRawStreamTriggerHP.h:103
 AliMUONRawStreamTriggerHP.h:104
 AliMUONRawStreamTriggerHP.h:105
 AliMUONRawStreamTriggerHP.h:106
 AliMUONRawStreamTriggerHP.h:107
 AliMUONRawStreamTriggerHP.h:108
 AliMUONRawStreamTriggerHP.h:109
 AliMUONRawStreamTriggerHP.h:110
 AliMUONRawStreamTriggerHP.h:111
 AliMUONRawStreamTriggerHP.h:112
 AliMUONRawStreamTriggerHP.h:113
 AliMUONRawStreamTriggerHP.h:114
 AliMUONRawStreamTriggerHP.h:115
 AliMUONRawStreamTriggerHP.h:116
 AliMUONRawStreamTriggerHP.h:117
 AliMUONRawStreamTriggerHP.h:118
 AliMUONRawStreamTriggerHP.h:119
 AliMUONRawStreamTriggerHP.h:120
 AliMUONRawStreamTriggerHP.h:121
 AliMUONRawStreamTriggerHP.h:122
 AliMUONRawStreamTriggerHP.h:123
 AliMUONRawStreamTriggerHP.h:124
 AliMUONRawStreamTriggerHP.h:125
 AliMUONRawStreamTriggerHP.h:126
 AliMUONRawStreamTriggerHP.h:127
 AliMUONRawStreamTriggerHP.h:128
 AliMUONRawStreamTriggerHP.h:129
 AliMUONRawStreamTriggerHP.h:130
 AliMUONRawStreamTriggerHP.h:131
 AliMUONRawStreamTriggerHP.h:132
 AliMUONRawStreamTriggerHP.h:133
 AliMUONRawStreamTriggerHP.h:134
 AliMUONRawStreamTriggerHP.h:135
 AliMUONRawStreamTriggerHP.h:136
 AliMUONRawStreamTriggerHP.h:137
 AliMUONRawStreamTriggerHP.h:138
 AliMUONRawStreamTriggerHP.h:139
 AliMUONRawStreamTriggerHP.h:140
 AliMUONRawStreamTriggerHP.h:141
 AliMUONRawStreamTriggerHP.h:142
 AliMUONRawStreamTriggerHP.h:143
 AliMUONRawStreamTriggerHP.h:144
 AliMUONRawStreamTriggerHP.h:145
 AliMUONRawStreamTriggerHP.h:146
 AliMUONRawStreamTriggerHP.h:147
 AliMUONRawStreamTriggerHP.h:148
 AliMUONRawStreamTriggerHP.h:149
 AliMUONRawStreamTriggerHP.h:150
 AliMUONRawStreamTriggerHP.h:151
 AliMUONRawStreamTriggerHP.h:152
 AliMUONRawStreamTriggerHP.h:153
 AliMUONRawStreamTriggerHP.h:154
 AliMUONRawStreamTriggerHP.h:155
 AliMUONRawStreamTriggerHP.h:156
 AliMUONRawStreamTriggerHP.h:157
 AliMUONRawStreamTriggerHP.h:158
 AliMUONRawStreamTriggerHP.h:159
 AliMUONRawStreamTriggerHP.h:160
 AliMUONRawStreamTriggerHP.h:161
 AliMUONRawStreamTriggerHP.h:162
 AliMUONRawStreamTriggerHP.h:163
 AliMUONRawStreamTriggerHP.h:164
 AliMUONRawStreamTriggerHP.h:165
 AliMUONRawStreamTriggerHP.h:166
 AliMUONRawStreamTriggerHP.h:167
 AliMUONRawStreamTriggerHP.h:168
 AliMUONRawStreamTriggerHP.h:169
 AliMUONRawStreamTriggerHP.h:170
 AliMUONRawStreamTriggerHP.h:171
 AliMUONRawStreamTriggerHP.h:172
 AliMUONRawStreamTriggerHP.h:173
 AliMUONRawStreamTriggerHP.h:174
 AliMUONRawStreamTriggerHP.h:175
 AliMUONRawStreamTriggerHP.h:176
 AliMUONRawStreamTriggerHP.h:177
 AliMUONRawStreamTriggerHP.h:178
 AliMUONRawStreamTriggerHP.h:179
 AliMUONRawStreamTriggerHP.h:180
 AliMUONRawStreamTriggerHP.h:181
 AliMUONRawStreamTriggerHP.h:182
 AliMUONRawStreamTriggerHP.h:183
 AliMUONRawStreamTriggerHP.h:184
 AliMUONRawStreamTriggerHP.h:185
 AliMUONRawStreamTriggerHP.h:186
 AliMUONRawStreamTriggerHP.h:187
 AliMUONRawStreamTriggerHP.h:188
 AliMUONRawStreamTriggerHP.h:189
 AliMUONRawStreamTriggerHP.h:190
 AliMUONRawStreamTriggerHP.h:191
 AliMUONRawStreamTriggerHP.h:192
 AliMUONRawStreamTriggerHP.h:193
 AliMUONRawStreamTriggerHP.h:194
 AliMUONRawStreamTriggerHP.h:195
 AliMUONRawStreamTriggerHP.h:196
 AliMUONRawStreamTriggerHP.h:197
 AliMUONRawStreamTriggerHP.h:198
 AliMUONRawStreamTriggerHP.h:199
 AliMUONRawStreamTriggerHP.h:200
 AliMUONRawStreamTriggerHP.h:201
 AliMUONRawStreamTriggerHP.h:202
 AliMUONRawStreamTriggerHP.h:203
 AliMUONRawStreamTriggerHP.h:204
 AliMUONRawStreamTriggerHP.h:205
 AliMUONRawStreamTriggerHP.h:206
 AliMUONRawStreamTriggerHP.h:207
 AliMUONRawStreamTriggerHP.h:208
 AliMUONRawStreamTriggerHP.h:209
 AliMUONRawStreamTriggerHP.h:210
 AliMUONRawStreamTriggerHP.h:211
 AliMUONRawStreamTriggerHP.h:212
 AliMUONRawStreamTriggerHP.h:213
 AliMUONRawStreamTriggerHP.h:214
 AliMUONRawStreamTriggerHP.h:215
 AliMUONRawStreamTriggerHP.h:216
 AliMUONRawStreamTriggerHP.h:217
 AliMUONRawStreamTriggerHP.h:218
 AliMUONRawStreamTriggerHP.h:219
 AliMUONRawStreamTriggerHP.h:220
 AliMUONRawStreamTriggerHP.h:221
 AliMUONRawStreamTriggerHP.h:222
 AliMUONRawStreamTriggerHP.h:223
 AliMUONRawStreamTriggerHP.h:224
 AliMUONRawStreamTriggerHP.h:225
 AliMUONRawStreamTriggerHP.h:226
 AliMUONRawStreamTriggerHP.h:227
 AliMUONRawStreamTriggerHP.h:228
 AliMUONRawStreamTriggerHP.h:229
 AliMUONRawStreamTriggerHP.h:230
 AliMUONRawStreamTriggerHP.h:231
 AliMUONRawStreamTriggerHP.h:232
 AliMUONRawStreamTriggerHP.h:233
 AliMUONRawStreamTriggerHP.h:234
 AliMUONRawStreamTriggerHP.h:235
 AliMUONRawStreamTriggerHP.h:236
 AliMUONRawStreamTriggerHP.h:237
 AliMUONRawStreamTriggerHP.h:238
 AliMUONRawStreamTriggerHP.h:239
 AliMUONRawStreamTriggerHP.h:240
 AliMUONRawStreamTriggerHP.h:241
 AliMUONRawStreamTriggerHP.h:242
 AliMUONRawStreamTriggerHP.h:243
 AliMUONRawStreamTriggerHP.h:244
 AliMUONRawStreamTriggerHP.h:245
 AliMUONRawStreamTriggerHP.h:246
 AliMUONRawStreamTriggerHP.h:247
 AliMUONRawStreamTriggerHP.h:248
 AliMUONRawStreamTriggerHP.h:249
 AliMUONRawStreamTriggerHP.h:250
 AliMUONRawStreamTriggerHP.h:251
 AliMUONRawStreamTriggerHP.h:252
 AliMUONRawStreamTriggerHP.h:253
 AliMUONRawStreamTriggerHP.h:254
 AliMUONRawStreamTriggerHP.h:255
 AliMUONRawStreamTriggerHP.h:256
 AliMUONRawStreamTriggerHP.h:257
 AliMUONRawStreamTriggerHP.h:258
 AliMUONRawStreamTriggerHP.h:259
 AliMUONRawStreamTriggerHP.h:260
 AliMUONRawStreamTriggerHP.h:261
 AliMUONRawStreamTriggerHP.h:262
 AliMUONRawStreamTriggerHP.h:263
 AliMUONRawStreamTriggerHP.h:264
 AliMUONRawStreamTriggerHP.h:265
 AliMUONRawStreamTriggerHP.h:266
 AliMUONRawStreamTriggerHP.h:267
 AliMUONRawStreamTriggerHP.h:268
 AliMUONRawStreamTriggerHP.h:269
 AliMUONRawStreamTriggerHP.h:270
 AliMUONRawStreamTriggerHP.h:271
 AliMUONRawStreamTriggerHP.h:272
 AliMUONRawStreamTriggerHP.h:273
 AliMUONRawStreamTriggerHP.h:274
 AliMUONRawStreamTriggerHP.h:275
 AliMUONRawStreamTriggerHP.h:276
 AliMUONRawStreamTriggerHP.h:277
 AliMUONRawStreamTriggerHP.h:278
 AliMUONRawStreamTriggerHP.h:279
 AliMUONRawStreamTriggerHP.h:280
 AliMUONRawStreamTriggerHP.h:281
 AliMUONRawStreamTriggerHP.h:282
 AliMUONRawStreamTriggerHP.h:283
 AliMUONRawStreamTriggerHP.h:284
 AliMUONRawStreamTriggerHP.h:285
 AliMUONRawStreamTriggerHP.h:286
 AliMUONRawStreamTriggerHP.h:287
 AliMUONRawStreamTriggerHP.h:288
 AliMUONRawStreamTriggerHP.h:289
 AliMUONRawStreamTriggerHP.h:290
 AliMUONRawStreamTriggerHP.h:291
 AliMUONRawStreamTriggerHP.h:292
 AliMUONRawStreamTriggerHP.h:293
 AliMUONRawStreamTriggerHP.h:294
 AliMUONRawStreamTriggerHP.h:295
 AliMUONRawStreamTriggerHP.h:296
 AliMUONRawStreamTriggerHP.h:297
 AliMUONRawStreamTriggerHP.h:298
 AliMUONRawStreamTriggerHP.h:299
 AliMUONRawStreamTriggerHP.h:300
 AliMUONRawStreamTriggerHP.h:301
 AliMUONRawStreamTriggerHP.h:302
 AliMUONRawStreamTriggerHP.h:303
 AliMUONRawStreamTriggerHP.h:304
 AliMUONRawStreamTriggerHP.h:305
 AliMUONRawStreamTriggerHP.h:306
 AliMUONRawStreamTriggerHP.h:307
 AliMUONRawStreamTriggerHP.h:308
 AliMUONRawStreamTriggerHP.h:309
 AliMUONRawStreamTriggerHP.h:310
 AliMUONRawStreamTriggerHP.h:311
 AliMUONRawStreamTriggerHP.h:312
 AliMUONRawStreamTriggerHP.h:313
 AliMUONRawStreamTriggerHP.h:314
 AliMUONRawStreamTriggerHP.h:315
 AliMUONRawStreamTriggerHP.h:316
 AliMUONRawStreamTriggerHP.h:317
 AliMUONRawStreamTriggerHP.h:318
 AliMUONRawStreamTriggerHP.h:319
 AliMUONRawStreamTriggerHP.h:320
 AliMUONRawStreamTriggerHP.h:321
 AliMUONRawStreamTriggerHP.h:322
 AliMUONRawStreamTriggerHP.h:323
 AliMUONRawStreamTriggerHP.h:324
 AliMUONRawStreamTriggerHP.h:325
 AliMUONRawStreamTriggerHP.h:326
 AliMUONRawStreamTriggerHP.h:327
 AliMUONRawStreamTriggerHP.h:328
 AliMUONRawStreamTriggerHP.h:329
 AliMUONRawStreamTriggerHP.h:330
 AliMUONRawStreamTriggerHP.h:331
 AliMUONRawStreamTriggerHP.h:332
 AliMUONRawStreamTriggerHP.h:333
 AliMUONRawStreamTriggerHP.h:334
 AliMUONRawStreamTriggerHP.h:335
 AliMUONRawStreamTriggerHP.h:336
 AliMUONRawStreamTriggerHP.h:337
 AliMUONRawStreamTriggerHP.h:338
 AliMUONRawStreamTriggerHP.h:339
 AliMUONRawStreamTriggerHP.h:340
 AliMUONRawStreamTriggerHP.h:341
 AliMUONRawStreamTriggerHP.h:342
 AliMUONRawStreamTriggerHP.h:343
 AliMUONRawStreamTriggerHP.h:344
 AliMUONRawStreamTriggerHP.h:345
 AliMUONRawStreamTriggerHP.h:346
 AliMUONRawStreamTriggerHP.h:347
 AliMUONRawStreamTriggerHP.h:348
 AliMUONRawStreamTriggerHP.h:349
 AliMUONRawStreamTriggerHP.h:350
 AliMUONRawStreamTriggerHP.h:351
 AliMUONRawStreamTriggerHP.h:352
 AliMUONRawStreamTriggerHP.h:353
 AliMUONRawStreamTriggerHP.h:354
 AliMUONRawStreamTriggerHP.h:355
 AliMUONRawStreamTriggerHP.h:356
 AliMUONRawStreamTriggerHP.h:357
 AliMUONRawStreamTriggerHP.h:358
 AliMUONRawStreamTriggerHP.h:359
 AliMUONRawStreamTriggerHP.h:360
 AliMUONRawStreamTriggerHP.h:361
 AliMUONRawStreamTriggerHP.h:362
 AliMUONRawStreamTriggerHP.h:363
 AliMUONRawStreamTriggerHP.h:364
 AliMUONRawStreamTriggerHP.h:365
 AliMUONRawStreamTriggerHP.h:366
 AliMUONRawStreamTriggerHP.h:367
 AliMUONRawStreamTriggerHP.h:368
 AliMUONRawStreamTriggerHP.h:369
 AliMUONRawStreamTriggerHP.h:370
 AliMUONRawStreamTriggerHP.h:371
 AliMUONRawStreamTriggerHP.h:372
 AliMUONRawStreamTriggerHP.h:373
 AliMUONRawStreamTriggerHP.h:374
 AliMUONRawStreamTriggerHP.h:375
 AliMUONRawStreamTriggerHP.h:376
 AliMUONRawStreamTriggerHP.h:377
 AliMUONRawStreamTriggerHP.h:378
 AliMUONRawStreamTriggerHP.h:379
 AliMUONRawStreamTriggerHP.h:380
 AliMUONRawStreamTriggerHP.h:381
 AliMUONRawStreamTriggerHP.h:382
 AliMUONRawStreamTriggerHP.h:383
 AliMUONRawStreamTriggerHP.h:384
 AliMUONRawStreamTriggerHP.h:385
 AliMUONRawStreamTriggerHP.h:386
 AliMUONRawStreamTriggerHP.h:387
 AliMUONRawStreamTriggerHP.h:388
 AliMUONRawStreamTriggerHP.h:389
 AliMUONRawStreamTriggerHP.h:390
 AliMUONRawStreamTriggerHP.h:391
 AliMUONRawStreamTriggerHP.h:392
 AliMUONRawStreamTriggerHP.h:393
 AliMUONRawStreamTriggerHP.h:394
 AliMUONRawStreamTriggerHP.h:395
 AliMUONRawStreamTriggerHP.h:396
 AliMUONRawStreamTriggerHP.h:397
 AliMUONRawStreamTriggerHP.h:398
 AliMUONRawStreamTriggerHP.h:399
 AliMUONRawStreamTriggerHP.h:400
 AliMUONRawStreamTriggerHP.h:401
 AliMUONRawStreamTriggerHP.h:402
 AliMUONRawStreamTriggerHP.h:403
 AliMUONRawStreamTriggerHP.h:404
 AliMUONRawStreamTriggerHP.h:405
 AliMUONRawStreamTriggerHP.h:406
 AliMUONRawStreamTriggerHP.h:407
 AliMUONRawStreamTriggerHP.h:408
 AliMUONRawStreamTriggerHP.h:409
 AliMUONRawStreamTriggerHP.h:410
 AliMUONRawStreamTriggerHP.h:411
 AliMUONRawStreamTriggerHP.h:412
 AliMUONRawStreamTriggerHP.h:413
 AliMUONRawStreamTriggerHP.h:414
 AliMUONRawStreamTriggerHP.h:415
 AliMUONRawStreamTriggerHP.h:416
 AliMUONRawStreamTriggerHP.h:417
 AliMUONRawStreamTriggerHP.h:418
 AliMUONRawStreamTriggerHP.h:419
 AliMUONRawStreamTriggerHP.h:420
 AliMUONRawStreamTriggerHP.h:421
 AliMUONRawStreamTriggerHP.h:422
 AliMUONRawStreamTriggerHP.h:423
 AliMUONRawStreamTriggerHP.h:424
 AliMUONRawStreamTriggerHP.h:425
 AliMUONRawStreamTriggerHP.h:426
 AliMUONRawStreamTriggerHP.h:427
 AliMUONRawStreamTriggerHP.h:428
 AliMUONRawStreamTriggerHP.h:429
 AliMUONRawStreamTriggerHP.h:430
 AliMUONRawStreamTriggerHP.h:431
 AliMUONRawStreamTriggerHP.h:432
 AliMUONRawStreamTriggerHP.h:433
 AliMUONRawStreamTriggerHP.h:434
 AliMUONRawStreamTriggerHP.h:435
 AliMUONRawStreamTriggerHP.h:436
 AliMUONRawStreamTriggerHP.h:437
 AliMUONRawStreamTriggerHP.h:438
 AliMUONRawStreamTriggerHP.h:439
 AliMUONRawStreamTriggerHP.h:440
 AliMUONRawStreamTriggerHP.h:441
 AliMUONRawStreamTriggerHP.h:442
 AliMUONRawStreamTriggerHP.h:443
 AliMUONRawStreamTriggerHP.h:444
 AliMUONRawStreamTriggerHP.h:445
 AliMUONRawStreamTriggerHP.h:446
 AliMUONRawStreamTriggerHP.h:447
 AliMUONRawStreamTriggerHP.h:448
 AliMUONRawStreamTriggerHP.h:449
 AliMUONRawStreamTriggerHP.h:450
 AliMUONRawStreamTriggerHP.h:451
 AliMUONRawStreamTriggerHP.h:452
 AliMUONRawStreamTriggerHP.h:453
 AliMUONRawStreamTriggerHP.h:454
 AliMUONRawStreamTriggerHP.h:455
 AliMUONRawStreamTriggerHP.h:456
 AliMUONRawStreamTriggerHP.h:457
 AliMUONRawStreamTriggerHP.h:458
 AliMUONRawStreamTriggerHP.h:459
 AliMUONRawStreamTriggerHP.h:460
 AliMUONRawStreamTriggerHP.h:461
 AliMUONRawStreamTriggerHP.h:462
 AliMUONRawStreamTriggerHP.h:463
 AliMUONRawStreamTriggerHP.h:464
 AliMUONRawStreamTriggerHP.h:465
 AliMUONRawStreamTriggerHP.h:466
 AliMUONRawStreamTriggerHP.h:467
 AliMUONRawStreamTriggerHP.h:468
 AliMUONRawStreamTriggerHP.h:469
 AliMUONRawStreamTriggerHP.h:470
 AliMUONRawStreamTriggerHP.h:471
 AliMUONRawStreamTriggerHP.h:472
 AliMUONRawStreamTriggerHP.h:473
 AliMUONRawStreamTriggerHP.h:474
 AliMUONRawStreamTriggerHP.h:475
 AliMUONRawStreamTriggerHP.h:476
 AliMUONRawStreamTriggerHP.h:477
 AliMUONRawStreamTriggerHP.h:478
 AliMUONRawStreamTriggerHP.h:479
 AliMUONRawStreamTriggerHP.h:480
 AliMUONRawStreamTriggerHP.h:481
 AliMUONRawStreamTriggerHP.h:482
 AliMUONRawStreamTriggerHP.h:483
 AliMUONRawStreamTriggerHP.h:484
 AliMUONRawStreamTriggerHP.h:485
 AliMUONRawStreamTriggerHP.h:486
 AliMUONRawStreamTriggerHP.h:487
 AliMUONRawStreamTriggerHP.h:488
 AliMUONRawStreamTriggerHP.h:489
 AliMUONRawStreamTriggerHP.h:490
 AliMUONRawStreamTriggerHP.h:491
 AliMUONRawStreamTriggerHP.h:492
 AliMUONRawStreamTriggerHP.h:493
 AliMUONRawStreamTriggerHP.h:494
 AliMUONRawStreamTriggerHP.h:495
 AliMUONRawStreamTriggerHP.h:496
 AliMUONRawStreamTriggerHP.h:497
 AliMUONRawStreamTriggerHP.h:498
 AliMUONRawStreamTriggerHP.h:499
 AliMUONRawStreamTriggerHP.h:500
 AliMUONRawStreamTriggerHP.h:501
 AliMUONRawStreamTriggerHP.h:502
 AliMUONRawStreamTriggerHP.h:503
 AliMUONRawStreamTriggerHP.h:504
 AliMUONRawStreamTriggerHP.h:505
 AliMUONRawStreamTriggerHP.h:506
 AliMUONRawStreamTriggerHP.h:507
 AliMUONRawStreamTriggerHP.h:508
 AliMUONRawStreamTriggerHP.h:509
 AliMUONRawStreamTriggerHP.h:510
 AliMUONRawStreamTriggerHP.h:511
 AliMUONRawStreamTriggerHP.h:512
 AliMUONRawStreamTriggerHP.h:513
 AliMUONRawStreamTriggerHP.h:514
 AliMUONRawStreamTriggerHP.h:515
 AliMUONRawStreamTriggerHP.h:516
 AliMUONRawStreamTriggerHP.h:517
 AliMUONRawStreamTriggerHP.h:518
 AliMUONRawStreamTriggerHP.h:519
 AliMUONRawStreamTriggerHP.h:520
 AliMUONRawStreamTriggerHP.h:521
 AliMUONRawStreamTriggerHP.h:522
 AliMUONRawStreamTriggerHP.h:523
 AliMUONRawStreamTriggerHP.h:524
 AliMUONRawStreamTriggerHP.h:525
 AliMUONRawStreamTriggerHP.h:526
 AliMUONRawStreamTriggerHP.h:527
 AliMUONRawStreamTriggerHP.h:528
 AliMUONRawStreamTriggerHP.h:529
 AliMUONRawStreamTriggerHP.h:530
 AliMUONRawStreamTriggerHP.h:531
 AliMUONRawStreamTriggerHP.h:532
 AliMUONRawStreamTriggerHP.h:533
 AliMUONRawStreamTriggerHP.h:534
 AliMUONRawStreamTriggerHP.h:535
 AliMUONRawStreamTriggerHP.h:536
 AliMUONRawStreamTriggerHP.h:537
 AliMUONRawStreamTriggerHP.h:538
 AliMUONRawStreamTriggerHP.h:539
 AliMUONRawStreamTriggerHP.h:540
 AliMUONRawStreamTriggerHP.h:541
 AliMUONRawStreamTriggerHP.h:542
 AliMUONRawStreamTriggerHP.h:543
 AliMUONRawStreamTriggerHP.h:544
 AliMUONRawStreamTriggerHP.h:545
 AliMUONRawStreamTriggerHP.h:546
 AliMUONRawStreamTriggerHP.h:547
 AliMUONRawStreamTriggerHP.h:548
 AliMUONRawStreamTriggerHP.h:549
 AliMUONRawStreamTriggerHP.h:550
 AliMUONRawStreamTriggerHP.h:551
 AliMUONRawStreamTriggerHP.h:552
 AliMUONRawStreamTriggerHP.h:553
 AliMUONRawStreamTriggerHP.h:554
 AliMUONRawStreamTriggerHP.h:555
 AliMUONRawStreamTriggerHP.h:556
 AliMUONRawStreamTriggerHP.h:557
 AliMUONRawStreamTriggerHP.h:558
 AliMUONRawStreamTriggerHP.h:559
 AliMUONRawStreamTriggerHP.h:560
 AliMUONRawStreamTriggerHP.h:561
 AliMUONRawStreamTriggerHP.h:562
 AliMUONRawStreamTriggerHP.h:563
 AliMUONRawStreamTriggerHP.h:564
 AliMUONRawStreamTriggerHP.h:565
 AliMUONRawStreamTriggerHP.h:566
 AliMUONRawStreamTriggerHP.h:567
 AliMUONRawStreamTriggerHP.h:568
 AliMUONRawStreamTriggerHP.h:569
 AliMUONRawStreamTriggerHP.h:570
 AliMUONRawStreamTriggerHP.h:571
 AliMUONRawStreamTriggerHP.h:572
 AliMUONRawStreamTriggerHP.h:573
 AliMUONRawStreamTriggerHP.h:574
 AliMUONRawStreamTriggerHP.h:575
 AliMUONRawStreamTriggerHP.h:576
 AliMUONRawStreamTriggerHP.h:577
 AliMUONRawStreamTriggerHP.h:578
 AliMUONRawStreamTriggerHP.h:579
 AliMUONRawStreamTriggerHP.h:580
 AliMUONRawStreamTriggerHP.h:581
 AliMUONRawStreamTriggerHP.h:582
 AliMUONRawStreamTriggerHP.h:583
 AliMUONRawStreamTriggerHP.h:584
 AliMUONRawStreamTriggerHP.h:585
 AliMUONRawStreamTriggerHP.h:586
 AliMUONRawStreamTriggerHP.h:587
 AliMUONRawStreamTriggerHP.h:588
 AliMUONRawStreamTriggerHP.h:589
 AliMUONRawStreamTriggerHP.h:590
 AliMUONRawStreamTriggerHP.h:591
 AliMUONRawStreamTriggerHP.h:592
 AliMUONRawStreamTriggerHP.h:593
 AliMUONRawStreamTriggerHP.h:594
 AliMUONRawStreamTriggerHP.h:595
 AliMUONRawStreamTriggerHP.h:596
 AliMUONRawStreamTriggerHP.h:597
 AliMUONRawStreamTriggerHP.h:598
 AliMUONRawStreamTriggerHP.h:599
 AliMUONRawStreamTriggerHP.h:600
 AliMUONRawStreamTriggerHP.h:601
 AliMUONRawStreamTriggerHP.h:602
 AliMUONRawStreamTriggerHP.h:603
 AliMUONRawStreamTriggerHP.h:604
 AliMUONRawStreamTriggerHP.h:605
 AliMUONRawStreamTriggerHP.h:606
 AliMUONRawStreamTriggerHP.h:607
 AliMUONRawStreamTriggerHP.h:608
 AliMUONRawStreamTriggerHP.h:609
 AliMUONRawStreamTriggerHP.h:610
 AliMUONRawStreamTriggerHP.h:611
 AliMUONRawStreamTriggerHP.h:612
 AliMUONRawStreamTriggerHP.h:613
 AliMUONRawStreamTriggerHP.h:614
 AliMUONRawStreamTriggerHP.h:615
 AliMUONRawStreamTriggerHP.h:616
 AliMUONRawStreamTriggerHP.h:617
 AliMUONRawStreamTriggerHP.h:618
 AliMUONRawStreamTriggerHP.h:619
 AliMUONRawStreamTriggerHP.h:620
 AliMUONRawStreamTriggerHP.h:621
 AliMUONRawStreamTriggerHP.h:622
 AliMUONRawStreamTriggerHP.h:623
 AliMUONRawStreamTriggerHP.h:624
 AliMUONRawStreamTriggerHP.h:625
 AliMUONRawStreamTriggerHP.h:626
 AliMUONRawStreamTriggerHP.h:627
 AliMUONRawStreamTriggerHP.h:628
 AliMUONRawStreamTriggerHP.h:629
 AliMUONRawStreamTriggerHP.h:630
 AliMUONRawStreamTriggerHP.h:631
 AliMUONRawStreamTriggerHP.h:632
 AliMUONRawStreamTriggerHP.h:633
 AliMUONRawStreamTriggerHP.h:634
 AliMUONRawStreamTriggerHP.h:635
 AliMUONRawStreamTriggerHP.h:636
 AliMUONRawStreamTriggerHP.h:637
 AliMUONRawStreamTriggerHP.h:638
 AliMUONRawStreamTriggerHP.h:639
 AliMUONRawStreamTriggerHP.h:640
 AliMUONRawStreamTriggerHP.h:641
 AliMUONRawStreamTriggerHP.h:642
 AliMUONRawStreamTriggerHP.h:643
 AliMUONRawStreamTriggerHP.h:644
 AliMUONRawStreamTriggerHP.h:645
 AliMUONRawStreamTriggerHP.h:646
 AliMUONRawStreamTriggerHP.h:647
 AliMUONRawStreamTriggerHP.h:648
 AliMUONRawStreamTriggerHP.h:649
 AliMUONRawStreamTriggerHP.h:650
 AliMUONRawStreamTriggerHP.h:651
 AliMUONRawStreamTriggerHP.h:652
 AliMUONRawStreamTriggerHP.h:653
 AliMUONRawStreamTriggerHP.h:654
 AliMUONRawStreamTriggerHP.h:655
 AliMUONRawStreamTriggerHP.h:656
 AliMUONRawStreamTriggerHP.h:657
 AliMUONRawStreamTriggerHP.h:658
 AliMUONRawStreamTriggerHP.h:659
 AliMUONRawStreamTriggerHP.h:660
 AliMUONRawStreamTriggerHP.h:661
 AliMUONRawStreamTriggerHP.h:662
 AliMUONRawStreamTriggerHP.h:663
 AliMUONRawStreamTriggerHP.h:664
 AliMUONRawStreamTriggerHP.h:665
 AliMUONRawStreamTriggerHP.h:666
 AliMUONRawStreamTriggerHP.h:667
 AliMUONRawStreamTriggerHP.h:668
 AliMUONRawStreamTriggerHP.h:669
 AliMUONRawStreamTriggerHP.h:670
 AliMUONRawStreamTriggerHP.h:671
 AliMUONRawStreamTriggerHP.h:672
 AliMUONRawStreamTriggerHP.h:673
 AliMUONRawStreamTriggerHP.h:674
 AliMUONRawStreamTriggerHP.h:675
 AliMUONRawStreamTriggerHP.h:676
 AliMUONRawStreamTriggerHP.h:677
 AliMUONRawStreamTriggerHP.h:678
 AliMUONRawStreamTriggerHP.h:679
 AliMUONRawStreamTriggerHP.h:680
 AliMUONRawStreamTriggerHP.h:681
 AliMUONRawStreamTriggerHP.h:682
 AliMUONRawStreamTriggerHP.h:683
 AliMUONRawStreamTriggerHP.h:684
 AliMUONRawStreamTriggerHP.h:685
 AliMUONRawStreamTriggerHP.h:686
 AliMUONRawStreamTriggerHP.h:687
 AliMUONRawStreamTriggerHP.h:688
 AliMUONRawStreamTriggerHP.h:689
 AliMUONRawStreamTriggerHP.h:690
 AliMUONRawStreamTriggerHP.h:691
 AliMUONRawStreamTriggerHP.h:692
 AliMUONRawStreamTriggerHP.h:693
 AliMUONRawStreamTriggerHP.h:694
 AliMUONRawStreamTriggerHP.h:695
 AliMUONRawStreamTriggerHP.h:696
 AliMUONRawStreamTriggerHP.h:697
 AliMUONRawStreamTriggerHP.h:698
 AliMUONRawStreamTriggerHP.h:699
 AliMUONRawStreamTriggerHP.h:700
 AliMUONRawStreamTriggerHP.h:701
 AliMUONRawStreamTriggerHP.h:702
 AliMUONRawStreamTriggerHP.h:703
 AliMUONRawStreamTriggerHP.h:704
 AliMUONRawStreamTriggerHP.h:705
 AliMUONRawStreamTriggerHP.h:706
 AliMUONRawStreamTriggerHP.h:707
 AliMUONRawStreamTriggerHP.h:708
 AliMUONRawStreamTriggerHP.h:709
 AliMUONRawStreamTriggerHP.h:710
 AliMUONRawStreamTriggerHP.h:711
 AliMUONRawStreamTriggerHP.h:712
 AliMUONRawStreamTriggerHP.h:713
 AliMUONRawStreamTriggerHP.h:714
 AliMUONRawStreamTriggerHP.h:715
 AliMUONRawStreamTriggerHP.h:716
 AliMUONRawStreamTriggerHP.h:717
 AliMUONRawStreamTriggerHP.h:718
 AliMUONRawStreamTriggerHP.h:719
 AliMUONRawStreamTriggerHP.h:720
 AliMUONRawStreamTriggerHP.h:721
 AliMUONRawStreamTriggerHP.h:722
 AliMUONRawStreamTriggerHP.h:723
 AliMUONRawStreamTriggerHP.h:724
 AliMUONRawStreamTriggerHP.h:725
 AliMUONRawStreamTriggerHP.h:726
 AliMUONRawStreamTriggerHP.h:727
 AliMUONRawStreamTriggerHP.h:728
 AliMUONRawStreamTriggerHP.h:729
 AliMUONRawStreamTriggerHP.h:730
 AliMUONRawStreamTriggerHP.h:731
 AliMUONRawStreamTriggerHP.h:732
 AliMUONRawStreamTriggerHP.h:733
 AliMUONRawStreamTriggerHP.h:734
 AliMUONRawStreamTriggerHP.h:735
 AliMUONRawStreamTriggerHP.h:736
 AliMUONRawStreamTriggerHP.h:737
 AliMUONRawStreamTriggerHP.h:738
 AliMUONRawStreamTriggerHP.h:739
 AliMUONRawStreamTriggerHP.h:740
 AliMUONRawStreamTriggerHP.h:741
 AliMUONRawStreamTriggerHP.h:742
 AliMUONRawStreamTriggerHP.h:743
 AliMUONRawStreamTriggerHP.h:744
 AliMUONRawStreamTriggerHP.h:745
 AliMUONRawStreamTriggerHP.h:746
 AliMUONRawStreamTriggerHP.h:747
 AliMUONRawStreamTriggerHP.h:748
 AliMUONRawStreamTriggerHP.h:749
 AliMUONRawStreamTriggerHP.h:750
 AliMUONRawStreamTriggerHP.h:751
 AliMUONRawStreamTriggerHP.h:752
 AliMUONRawStreamTriggerHP.h:753
 AliMUONRawStreamTriggerHP.h:754
 AliMUONRawStreamTriggerHP.h:755
 AliMUONRawStreamTriggerHP.h:756
 AliMUONRawStreamTriggerHP.h:757
 AliMUONRawStreamTriggerHP.h:758
 AliMUONRawStreamTriggerHP.h:759
 AliMUONRawStreamTriggerHP.h:760
 AliMUONRawStreamTriggerHP.h:761
 AliMUONRawStreamTriggerHP.h:762
 AliMUONRawStreamTriggerHP.h:763
 AliMUONRawStreamTriggerHP.h:764
 AliMUONRawStreamTriggerHP.h:765
 AliMUONRawStreamTriggerHP.h:766
 AliMUONRawStreamTriggerHP.h:767
 AliMUONRawStreamTriggerHP.h:768
 AliMUONRawStreamTriggerHP.h:769
 AliMUONRawStreamTriggerHP.h:770
 AliMUONRawStreamTriggerHP.h:771
 AliMUONRawStreamTriggerHP.h:772
 AliMUONRawStreamTriggerHP.h:773
 AliMUONRawStreamTriggerHP.h:774
 AliMUONRawStreamTriggerHP.h:775
 AliMUONRawStreamTriggerHP.h:776
 AliMUONRawStreamTriggerHP.h:777
 AliMUONRawStreamTriggerHP.h:778
 AliMUONRawStreamTriggerHP.h:779
 AliMUONRawStreamTriggerHP.h:780
 AliMUONRawStreamTriggerHP.h:781
 AliMUONRawStreamTriggerHP.h:782
 AliMUONRawStreamTriggerHP.h:783
 AliMUONRawStreamTriggerHP.h:784
 AliMUONRawStreamTriggerHP.h:785
 AliMUONRawStreamTriggerHP.h:786
 AliMUONRawStreamTriggerHP.h:787
 AliMUONRawStreamTriggerHP.h:788
 AliMUONRawStreamTriggerHP.h:789
 AliMUONRawStreamTriggerHP.h:790
 AliMUONRawStreamTriggerHP.h:791
 AliMUONRawStreamTriggerHP.h:792
 AliMUONRawStreamTriggerHP.h:793
 AliMUONRawStreamTriggerHP.h:794
 AliMUONRawStreamTriggerHP.h:795
 AliMUONRawStreamTriggerHP.h:796
 AliMUONRawStreamTriggerHP.h:797
 AliMUONRawStreamTriggerHP.h:798
 AliMUONRawStreamTriggerHP.h:799
 AliMUONRawStreamTriggerHP.h:800
 AliMUONRawStreamTriggerHP.h:801
 AliMUONRawStreamTriggerHP.h:802
 AliMUONRawStreamTriggerHP.h:803
 AliMUONRawStreamTriggerHP.h:804
 AliMUONRawStreamTriggerHP.h:805
 AliMUONRawStreamTriggerHP.h:806
 AliMUONRawStreamTriggerHP.h:807
 AliMUONRawStreamTriggerHP.h:808
 AliMUONRawStreamTriggerHP.h:809
 AliMUONRawStreamTriggerHP.h:810
 AliMUONRawStreamTriggerHP.h:811
 AliMUONRawStreamTriggerHP.h:812
 AliMUONRawStreamTriggerHP.h:813
 AliMUONRawStreamTriggerHP.h:814
 AliMUONRawStreamTriggerHP.h:815
 AliMUONRawStreamTriggerHP.h:816
 AliMUONRawStreamTriggerHP.h:817
 AliMUONRawStreamTriggerHP.h:818
 AliMUONRawStreamTriggerHP.h:819
 AliMUONRawStreamTriggerHP.h:820
 AliMUONRawStreamTriggerHP.h:821
 AliMUONRawStreamTriggerHP.h:822
 AliMUONRawStreamTriggerHP.h:823
 AliMUONRawStreamTriggerHP.h:824
 AliMUONRawStreamTriggerHP.h:825
 AliMUONRawStreamTriggerHP.h:826
 AliMUONRawStreamTriggerHP.h:827
 AliMUONRawStreamTriggerHP.h:828
 AliMUONRawStreamTriggerHP.h:829
 AliMUONRawStreamTriggerHP.h:830
 AliMUONRawStreamTriggerHP.h:831
 AliMUONRawStreamTriggerHP.h:832
 AliMUONRawStreamTriggerHP.h:833
 AliMUONRawStreamTriggerHP.h:834
 AliMUONRawStreamTriggerHP.h:835
 AliMUONRawStreamTriggerHP.h:836
 AliMUONRawStreamTriggerHP.h:837