ROOT logo
//-*- Mode: C++ -*-
// $Id$
#ifndef ALIHLTREADOUTLIST_H
#define ALIHLTREADOUTLIST_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                               */

/// @file   AliHLTReadoutList.h
/// @author Artur Szostak <artursz@iafrica.com>
/// @date   19 Nov 2008
/// @brief  Declaration of the AliHLTReadoutList class used to handle AliHLTEventDDL structures.

#include "TNamed.h"
#include "AliHLTDataTypes.h"

/**
 * \class AliHLTReadoutList
 * This class is used as an interface or wrapper to the AliHLTEventDDL structure.
 * It makes it easy to manipulate the bits in this structure, which define what DDLs
 * should be readout by DAQ.
 * Several operators are also overloaded which are meant to be used in the trigger
 * menu specification for the AliHLTGlobalTrigger. It allows one to construct
 * expressions for the readout lists, which is necessary to be able to evaluate
 * or compose the final readout list, given multiple input readout lists received
 * from individual components that derive from AliHLTTrigger.
 * The operators implemented are:
 *  |  applies a bitwise or on the DDL bits.
 *  &  applies a bitwise and on the DDL bits.
 *  ^  applies a bitwise xor on the DDL bits.
 *  ~  applies a bitwise not on the DDL bits.
 *  -  unsets the bits in readout list A that are set in readout list B.
 *      This effectively applies A & (A ^ B).
 */
class AliHLTReadoutList : public TNamed
{
 public:
  
  /**
   * Identifiers for different detectors used by methods in AliHLTReadoutList.
   */
  enum EDetectorId
  {
    kNoDetector = 0,       /// No detector value
    kITSSPD = 0x1 << 0,    /// ID for SPD detector
    kITSSDD = 0x1 << 1,    /// ID for SDD detector
    kITSSSD = 0x1 << 2,    /// ID for SSD detector
    kTPC = 0x1 << 3,       /// ID for TPC detector
    kTRD = 0x1 << 4,       /// ID for TRD detector
    kTOF = 0x1 << 5,       /// ID for TOF detector
    kHMPID = 0x1 << 6,     /// ID for HMPID detector
    kPHOS = 0x1 << 7,      /// ID for PHOS detector
    kCPV = 0x1 << 8,       /// ID for CPV detector
    kPMD = 0x1 << 9,       /// ID for PMD detector
    kMUONTRK = 0x1 << 10,  /// ID for MUON tracking chambers
    kMUONTRG = 0x1 << 11,  /// ID for MUON trigger detector
    kFMD = 0x1 << 12,      /// ID for FMD detector
    kT0 = 0x1 << 13,       /// ID for T0 detector
    kV0 = 0x1 << 14,       /// ID for V0 detector
    kZDC = 0x1 << 15,      /// ID for ZDC detector
    kACORDE = 0x1 << 16,   /// ID for ACORDE detector
    kTRG = 0x1 << 17,      /// ID for TRG detector
    kEMCAL = 0x1 << 18,    /// ID for EMCAL detector
    kDAQTEST = 0x1 << 19,  /// ID for DAQ_TEST detector
    kHLT = 0x1 << 30,      /// ID for HLT detector
    // kALLDET sets readout for all detectors except DAQ_TEST
    kALLDET = (kITSSPD | kITSSDD | kITSSSD | kTPC | kTRD | kTOF | kHMPID | kPHOS
               | kCPV | kPMD | kMUONTRK | kMUONTRG | kFMD | kT0 | kV0 | kZDC
               | kACORDE | kTRG | kEMCAL | kHLT)
  };
  
  /// Converts a detector ID to a user readable string.
  static const char* DetectorIdToString(EDetectorId id);
  
  /**
   * Default constructor.
   */
  AliHLTReadoutList();
  
  /**
   *  Constructor to select which detectors to enable for readout.
   * \param enabledDetectors  Detector bit field. Can be any values for
   *     EDetectorId or'ed together.
   */
  AliHLTReadoutList(Int_t enabledDetectors);
  
  /**
   * Constructor to select which detectors and DDLs to enable for readout.
   * \param enabledList The string format is a space separated list where
   *     each item is either a detector acronym name or DDL number.
   * Invalid sub-strings are simply ignored. The special ALL string is
   * equivalent to kALLDET for AliHLTReadoutList(Int_t enabledDetectors).
   */
  AliHLTReadoutList(const char* enabledList);
  
  /**
   * Constructor to create readout list from AliHLTEventDDL structure.
   * \param list  The AliHLTEventDDL structure from which to create this object.
   */
  AliHLTReadoutList(const AliHLTEventDDL& list);
  
  /**
   * The copy constructor performs a deep copy.
   * \param list  The readout list to copy from.
   */
  AliHLTReadoutList(const AliHLTReadoutList& list);
  
  /**
   * Default destructor.
   */
  virtual ~AliHLTReadoutList();
  
  /**
   * Checks if the readout list is empty, i.e. all DDLs are disabled.
   * \returns true if the readout list is empty and false otherwise.
   */
  bool Empty() const;
  
  /**
   * Disables all bits in the readout list.
   * \param  option  This parameter is ignored.
   * The method is inherited from TObject.
   */
  virtual void Clear(Option_t* option = "");
  
  /**
   * Enables a specific DDL bit in the readout list.
   * \param ddlId  The ID number of the DDL to enable.
   */
  void EnableDDLBit(Int_t ddlId)
  {
    SetDDLBit(ddlId, kTRUE);
  }
  
  /**
   * Disables a specific DDL bit in the readout list.
   * \param ddlId  The ID number of the DDL to disable.
   */
  void DisableDDLBit(Int_t ddlId)
  {
    SetDDLBit(ddlId, kFALSE);
  }
  
  /**
   * Fetches the bit value for a particular DDL in the readout list.
   * \param ddlId  The ID number of the DDL to fetch.
   * \return the bit value for the specified DDL.
   */
  Bool_t GetDDLBit(Int_t ddlId) const;
  
  /**
   * Sets the bit value for a particular DDL in the readout list.
   * \param ddlId  The ID number of the DDL to set.
   * \param state  The value to set the bit to.
   */
  void SetDDLBit(Int_t ddlId, Bool_t state);
  
  /**
   * Checks if a particular DDL is enabled for readout.
   * \param ddlId  The ID number of the DDL to check.
   * \return the if the DDL is enabled for readout.
   */
  bool IsDDLEnabled(Int_t ddlId) const
  {
    return GetDDLBit(ddlId) == kTRUE;
  }
  
  /**
   * Checks if a particular DDL is disabled for readout.
   * \param ddlId  The ID number of the DDL to check.
   * \return the if the DDL is disabled for readout.
   */
  bool IsDDLDisabled(Int_t ddlId) const
  {
    return GetDDLBit(ddlId) == kFALSE;
  }
  
  /**
   * Enables all DDLs for a particular detector or detectors.
   * \param detector  A bitmap of detectors to enable. Should be any values from
   *    EDetectorId that can be or'ed together for multiple detector selection.
   */
  void Enable(Int_t detector);
  
  /**
   * Disables all DDLs for a particular detector or detectors.
   * \param detector  A bitmap of detectors to disable. Should be any values from
   *    EDetectorId that can be or'ed together for multiple detector selection.
   */
  void Disable(Int_t detector);
  
  /**
   * Checks if a particular detector's DDLs are all enabled for readout.
   * \param detector  A bitmap of detectors to check. Should be any values from
   *    EDetectorId that can be or'ed together for multiple detector selection.
   * \return true if all DDLs for the specified detectors are enabled for readout.
   */
  bool DetectorEnabled(Int_t detector) const;
  
  /**
   * Checks if a particular detector's DDLs are all disabled for readout.
   * \param detector  A bitmap of detectors to check. Should be any values from
   *    EDetectorId that can be or'ed together for multiple detector selection.
   * \return true if all DDLs for the specified detectors are disabled for readout.
   * \note If both DetectorEnabled(x) and DetectorDisabled(x) return false then
   *    it means that only part of the detectors DDLs are enabled.
   */
  bool DetectorDisabled(Int_t detector) const;
  
  /**
   * Returns the first word of DDL bits for a given detector in the internal structure.
   * \param detector  The detector code for which to return the starting word.
   * \returns the first word of DDL bits for the detector or -1 if an invalid code is given.
   */
  static Int_t GetFirstWord(EDetectorId detector);
  
  /**
   * Returns the first word of DDL bits for a given detector in the internal structure.
   * \param detector  The detector code for which to return the starting word.
   * \returns the first word of DDL bits for the detector or -1 if an invalid code is given.
   */
  static Int_t GetWordCount(EDetectorId detector);
  
  /**
   * Returns the corresponding detector ID code for the given word index into the
   * internal data structure.
   * \param  wordindex   The position of the word from the start of the DDL readout bit list.
   * \returns the code of the corresponding detector or kNoDetector if invalid.
   */
  static EDetectorId GetDetectorFromWord(Int_t wordindex);
  
  /**
   * Returns the first detector with non-zero DDL bits.
   * \param  startAfter  The detector code after which to start looking from.
   *     If kTOF is used for example then only detectors after kTOF will be checked,
   *     not including kTOF, in the order of precedence indicated by EDetectorId.
   * \returns the code of the first used detector.
   */
  EDetectorId GetFirstUsedDetector(EDetectorId startAfter = kNoDetector) const;
  
  /**
   * Inherited from TObject. Prints the DDLs that will be readout according to
   * this readout list.
   * \param option  This is not used by this method.
   */
  virtual void Print(Option_t* option = "") const;
  
  /**
   * This typecast operator converts the readout list to the AliHLTEventDDL
   * structure format.
   * \return  Constant reference to the AliHLTEventDDL raw structure.
   */
  operator const AliHLTEventDDL& () const { return fReadoutList; }
  
  /**
   * This typecast operator converts the readout list to the AliHLTEventDDL
   * structure format.
   * \return  Reference to the AliHLTEventDDL raw structure.
   */
  operator AliHLTEventDDL& () { return fReadoutList; }

  /**
   * Access method to the binary buffer.
   * \return pointer to the binary buffer.
   */
  AliHLTEventDDL* Buffer() { return &fReadoutList; }

  /**
   * Access method to the binary buffer.
   * \return const pointer to the binary buffer.
   */
  const AliHLTEventDDL* Buffer() const { return &fReadoutList; }

  /**
   * Access to the size of the binary buffer.
   * \return size of the binary buffer
   */
  unsigned BufferSize() const { return sizeof(fReadoutList); }
  
  /**
   * Assignment operator performs a deep copy.
   * \param list  The readout list to copy from.
   * \return  A reference to this object.
   */
  AliHLTReadoutList& operator = (const AliHLTReadoutList& list);
  
  /**
   * This operator performs a bitwise inclusive or operation on all DDL bits
   * between this readout and <i>list</i>.
   * \param list  The right hand side readout list to operate on.
   * \return  A reference to this object.
   */
  AliHLTReadoutList& operator |= (const AliHLTReadoutList& list);

  /// same as operator |=
  AliHLTReadoutList& OrEq(const AliHLTReadoutList& list);
  
  /**
   * This operator performs a bitwise exclusive or (xor) operation on all DDL
   * bits between this readout and <i>list</i>.
   * \param list  The right hand side readout list to operate on.
   * \return  A reference to this object.
   */
  AliHLTReadoutList& operator ^= (const AliHLTReadoutList& list);

  /// same as operator ^=
  AliHLTReadoutList& XorEq(const AliHLTReadoutList& list);
  
  /**
   * This operator performs a bitwise and operation on all DDL bits between
   * this readout and <i>list</i>.
   * \param list  The right hand side readout list to operate on.
   * \return  A reference to this object.
   */
  AliHLTReadoutList& operator &= (const AliHLTReadoutList& list);

  /// same as operator &=
  AliHLTReadoutList& AndEq(const AliHLTReadoutList& list);
  
  /**
   * This operator performs the effective operation of "this and (this xor list)".
   * It removes all the DDLs specified in list from this readout list.
   * \param list  The right hand side readout list to operate on.
   * \return  A reference to this object.
   */
  AliHLTReadoutList& operator -= (const AliHLTReadoutList& list);
  
  /**
   * This operator performs a bitwise ones compliment on all DDL bits of this
   * readout list.
   * \return  The result of the unary operator.
   */
  AliHLTReadoutList operator ~ () const;
  
  /**
   * This operator performs a bitwise inclusive or operation on all DDL bits
   * between this readout and <i>list</i>.
   * \param list  The right hand side readout list to operate on.
   * \return  The result of the binary operator.
   */
  AliHLTReadoutList operator | (const AliHLTReadoutList& list) const
  {
    AliHLTReadoutList result = *this;
    return result.operator |= (list);
  }
  
  /**
   * This operator performs a bitwise exclusive or (xor) operation on all DDL
   * bits between this readout and <i>list</i>.
   * \param list  The right hand side readout list to operate on.
   * \return  The result of the binary operator.
   */
  AliHLTReadoutList operator ^ (const AliHLTReadoutList& list) const
  {
    AliHLTReadoutList result = *this;
    return result.operator ^= (list);
  }
  
  /**
   * This operator performs a bitwise and operation on all DDL bits between
   * this readout and <i>list</i>.
   * \param list  The right hand side readout list to operate on.
   * \return  The result of the binary operator.
   */
  AliHLTReadoutList operator & (const AliHLTReadoutList& list) const
  {
    AliHLTReadoutList result = *this;
    return result.operator &= (list);
  }
  
  /**
   * This operator performs the effective operation of "this and (this xor list)".
   * i.e. the set difference.
   * It removes all the DDLs specified in list from this readout list.
   * \param list  The right hand side readout list to operate on.
   * \return  The result of the binary operator.
   */
  AliHLTReadoutList operator - (const AliHLTReadoutList& list) const
  {
    AliHLTReadoutList result = *this;
    return result.operator -= (list);
  }
  
  /**
   * Decodes the word index and bit index within that word for the readout list structure.
   * \param [in] ddlId   The ID number of the DDL to decode.
   * \param [out] wordIndex  the word index of the word to modify or check within fReadoutList.fList
   * \param [out] bitIndex   the bit index of the bit to modify or check
   *    within the word pointed to by <i>wordIndex</i>.
   * \return  true if the ddlId was decoded and false if it was invalid.
   * \note We do not check extensively if the ddlId is invalid. Just simple checks
   *    are performed to see that we do not overflow the buffer fReadoutList.fList.
   */
  static bool DecodeDDLID(Int_t ddlId, Int_t& wordIndex, Int_t& bitIndex);
  
 private:
  
  /**
   * This method fills the internal bit field structure taking care of converting
   * from the old format to the new one.
   * \param list  The raw DDL readout list bits.
   */
  void FillStruct(const AliHLTEventDDL& list);
  
  AliHLTEventDDL fReadoutList; /// The DDL readout list structure.
  
  ClassDef(AliHLTReadoutList, 3) // Readout list object used for manipulating and storing an AliHLTEventDDL structure.

};

#endif // ALIHLTREADOUTLIST_H

 AliHLTReadoutList.h:1
 AliHLTReadoutList.h:2
 AliHLTReadoutList.h:3
 AliHLTReadoutList.h:4
 AliHLTReadoutList.h:5
 AliHLTReadoutList.h:6
 AliHLTReadoutList.h:7
 AliHLTReadoutList.h:8
 AliHLTReadoutList.h:9
 AliHLTReadoutList.h:10
 AliHLTReadoutList.h:11
 AliHLTReadoutList.h:12
 AliHLTReadoutList.h:13
 AliHLTReadoutList.h:14
 AliHLTReadoutList.h:15
 AliHLTReadoutList.h:16
 AliHLTReadoutList.h:17
 AliHLTReadoutList.h:18
 AliHLTReadoutList.h:19
 AliHLTReadoutList.h:20
 AliHLTReadoutList.h:21
 AliHLTReadoutList.h:22
 AliHLTReadoutList.h:23
 AliHLTReadoutList.h:24
 AliHLTReadoutList.h:25
 AliHLTReadoutList.h:26
 AliHLTReadoutList.h:27
 AliHLTReadoutList.h:28
 AliHLTReadoutList.h:29
 AliHLTReadoutList.h:30
 AliHLTReadoutList.h:31
 AliHLTReadoutList.h:32
 AliHLTReadoutList.h:33
 AliHLTReadoutList.h:34
 AliHLTReadoutList.h:35
 AliHLTReadoutList.h:36
 AliHLTReadoutList.h:37
 AliHLTReadoutList.h:38
 AliHLTReadoutList.h:39
 AliHLTReadoutList.h:40
 AliHLTReadoutList.h:41
 AliHLTReadoutList.h:42
 AliHLTReadoutList.h:43
 AliHLTReadoutList.h:44
 AliHLTReadoutList.h:45
 AliHLTReadoutList.h:46
 AliHLTReadoutList.h:47
 AliHLTReadoutList.h:48
 AliHLTReadoutList.h:49
 AliHLTReadoutList.h:50
 AliHLTReadoutList.h:51
 AliHLTReadoutList.h:52
 AliHLTReadoutList.h:53
 AliHLTReadoutList.h:54
 AliHLTReadoutList.h:55
 AliHLTReadoutList.h:56
 AliHLTReadoutList.h:57
 AliHLTReadoutList.h:58
 AliHLTReadoutList.h:59
 AliHLTReadoutList.h:60
 AliHLTReadoutList.h:61
 AliHLTReadoutList.h:62
 AliHLTReadoutList.h:63
 AliHLTReadoutList.h:64
 AliHLTReadoutList.h:65
 AliHLTReadoutList.h:66
 AliHLTReadoutList.h:67
 AliHLTReadoutList.h:68
 AliHLTReadoutList.h:69
 AliHLTReadoutList.h:70
 AliHLTReadoutList.h:71
 AliHLTReadoutList.h:72
 AliHLTReadoutList.h:73
 AliHLTReadoutList.h:74
 AliHLTReadoutList.h:75
 AliHLTReadoutList.h:76
 AliHLTReadoutList.h:77
 AliHLTReadoutList.h:78
 AliHLTReadoutList.h:79
 AliHLTReadoutList.h:80
 AliHLTReadoutList.h:81
 AliHLTReadoutList.h:82
 AliHLTReadoutList.h:83
 AliHLTReadoutList.h:84
 AliHLTReadoutList.h:85
 AliHLTReadoutList.h:86
 AliHLTReadoutList.h:87
 AliHLTReadoutList.h:88
 AliHLTReadoutList.h:89
 AliHLTReadoutList.h:90
 AliHLTReadoutList.h:91
 AliHLTReadoutList.h:92
 AliHLTReadoutList.h:93
 AliHLTReadoutList.h:94
 AliHLTReadoutList.h:95
 AliHLTReadoutList.h:96
 AliHLTReadoutList.h:97
 AliHLTReadoutList.h:98
 AliHLTReadoutList.h:99
 AliHLTReadoutList.h:100
 AliHLTReadoutList.h:101
 AliHLTReadoutList.h:102
 AliHLTReadoutList.h:103
 AliHLTReadoutList.h:104
 AliHLTReadoutList.h:105
 AliHLTReadoutList.h:106
 AliHLTReadoutList.h:107
 AliHLTReadoutList.h:108
 AliHLTReadoutList.h:109
 AliHLTReadoutList.h:110
 AliHLTReadoutList.h:111
 AliHLTReadoutList.h:112
 AliHLTReadoutList.h:113
 AliHLTReadoutList.h:114
 AliHLTReadoutList.h:115
 AliHLTReadoutList.h:116
 AliHLTReadoutList.h:117
 AliHLTReadoutList.h:118
 AliHLTReadoutList.h:119
 AliHLTReadoutList.h:120
 AliHLTReadoutList.h:121
 AliHLTReadoutList.h:122
 AliHLTReadoutList.h:123
 AliHLTReadoutList.h:124
 AliHLTReadoutList.h:125
 AliHLTReadoutList.h:126
 AliHLTReadoutList.h:127
 AliHLTReadoutList.h:128
 AliHLTReadoutList.h:129
 AliHLTReadoutList.h:130
 AliHLTReadoutList.h:131
 AliHLTReadoutList.h:132
 AliHLTReadoutList.h:133
 AliHLTReadoutList.h:134
 AliHLTReadoutList.h:135
 AliHLTReadoutList.h:136
 AliHLTReadoutList.h:137
 AliHLTReadoutList.h:138
 AliHLTReadoutList.h:139
 AliHLTReadoutList.h:140
 AliHLTReadoutList.h:141
 AliHLTReadoutList.h:142
 AliHLTReadoutList.h:143
 AliHLTReadoutList.h:144
 AliHLTReadoutList.h:145
 AliHLTReadoutList.h:146
 AliHLTReadoutList.h:147
 AliHLTReadoutList.h:148
 AliHLTReadoutList.h:149
 AliHLTReadoutList.h:150
 AliHLTReadoutList.h:151
 AliHLTReadoutList.h:152
 AliHLTReadoutList.h:153
 AliHLTReadoutList.h:154
 AliHLTReadoutList.h:155
 AliHLTReadoutList.h:156
 AliHLTReadoutList.h:157
 AliHLTReadoutList.h:158
 AliHLTReadoutList.h:159
 AliHLTReadoutList.h:160
 AliHLTReadoutList.h:161
 AliHLTReadoutList.h:162
 AliHLTReadoutList.h:163
 AliHLTReadoutList.h:164
 AliHLTReadoutList.h:165
 AliHLTReadoutList.h:166
 AliHLTReadoutList.h:167
 AliHLTReadoutList.h:168
 AliHLTReadoutList.h:169
 AliHLTReadoutList.h:170
 AliHLTReadoutList.h:171
 AliHLTReadoutList.h:172
 AliHLTReadoutList.h:173
 AliHLTReadoutList.h:174
 AliHLTReadoutList.h:175
 AliHLTReadoutList.h:176
 AliHLTReadoutList.h:177
 AliHLTReadoutList.h:178
 AliHLTReadoutList.h:179
 AliHLTReadoutList.h:180
 AliHLTReadoutList.h:181
 AliHLTReadoutList.h:182
 AliHLTReadoutList.h:183
 AliHLTReadoutList.h:184
 AliHLTReadoutList.h:185
 AliHLTReadoutList.h:186
 AliHLTReadoutList.h:187
 AliHLTReadoutList.h:188
 AliHLTReadoutList.h:189
 AliHLTReadoutList.h:190
 AliHLTReadoutList.h:191
 AliHLTReadoutList.h:192
 AliHLTReadoutList.h:193
 AliHLTReadoutList.h:194
 AliHLTReadoutList.h:195
 AliHLTReadoutList.h:196
 AliHLTReadoutList.h:197
 AliHLTReadoutList.h:198
 AliHLTReadoutList.h:199
 AliHLTReadoutList.h:200
 AliHLTReadoutList.h:201
 AliHLTReadoutList.h:202
 AliHLTReadoutList.h:203
 AliHLTReadoutList.h:204
 AliHLTReadoutList.h:205
 AliHLTReadoutList.h:206
 AliHLTReadoutList.h:207
 AliHLTReadoutList.h:208
 AliHLTReadoutList.h:209
 AliHLTReadoutList.h:210
 AliHLTReadoutList.h:211
 AliHLTReadoutList.h:212
 AliHLTReadoutList.h:213
 AliHLTReadoutList.h:214
 AliHLTReadoutList.h:215
 AliHLTReadoutList.h:216
 AliHLTReadoutList.h:217
 AliHLTReadoutList.h:218
 AliHLTReadoutList.h:219
 AliHLTReadoutList.h:220
 AliHLTReadoutList.h:221
 AliHLTReadoutList.h:222
 AliHLTReadoutList.h:223
 AliHLTReadoutList.h:224
 AliHLTReadoutList.h:225
 AliHLTReadoutList.h:226
 AliHLTReadoutList.h:227
 AliHLTReadoutList.h:228
 AliHLTReadoutList.h:229
 AliHLTReadoutList.h:230
 AliHLTReadoutList.h:231
 AliHLTReadoutList.h:232
 AliHLTReadoutList.h:233
 AliHLTReadoutList.h:234
 AliHLTReadoutList.h:235
 AliHLTReadoutList.h:236
 AliHLTReadoutList.h:237
 AliHLTReadoutList.h:238
 AliHLTReadoutList.h:239
 AliHLTReadoutList.h:240
 AliHLTReadoutList.h:241
 AliHLTReadoutList.h:242
 AliHLTReadoutList.h:243
 AliHLTReadoutList.h:244
 AliHLTReadoutList.h:245
 AliHLTReadoutList.h:246
 AliHLTReadoutList.h:247
 AliHLTReadoutList.h:248
 AliHLTReadoutList.h:249
 AliHLTReadoutList.h:250
 AliHLTReadoutList.h:251
 AliHLTReadoutList.h:252
 AliHLTReadoutList.h:253
 AliHLTReadoutList.h:254
 AliHLTReadoutList.h:255
 AliHLTReadoutList.h:256
 AliHLTReadoutList.h:257
 AliHLTReadoutList.h:258
 AliHLTReadoutList.h:259
 AliHLTReadoutList.h:260
 AliHLTReadoutList.h:261
 AliHLTReadoutList.h:262
 AliHLTReadoutList.h:263
 AliHLTReadoutList.h:264
 AliHLTReadoutList.h:265
 AliHLTReadoutList.h:266
 AliHLTReadoutList.h:267
 AliHLTReadoutList.h:268
 AliHLTReadoutList.h:269
 AliHLTReadoutList.h:270
 AliHLTReadoutList.h:271
 AliHLTReadoutList.h:272
 AliHLTReadoutList.h:273
 AliHLTReadoutList.h:274
 AliHLTReadoutList.h:275
 AliHLTReadoutList.h:276
 AliHLTReadoutList.h:277
 AliHLTReadoutList.h:278
 AliHLTReadoutList.h:279
 AliHLTReadoutList.h:280
 AliHLTReadoutList.h:281
 AliHLTReadoutList.h:282
 AliHLTReadoutList.h:283
 AliHLTReadoutList.h:284
 AliHLTReadoutList.h:285
 AliHLTReadoutList.h:286
 AliHLTReadoutList.h:287
 AliHLTReadoutList.h:288
 AliHLTReadoutList.h:289
 AliHLTReadoutList.h:290
 AliHLTReadoutList.h:291
 AliHLTReadoutList.h:292
 AliHLTReadoutList.h:293
 AliHLTReadoutList.h:294
 AliHLTReadoutList.h:295
 AliHLTReadoutList.h:296
 AliHLTReadoutList.h:297
 AliHLTReadoutList.h:298
 AliHLTReadoutList.h:299
 AliHLTReadoutList.h:300
 AliHLTReadoutList.h:301
 AliHLTReadoutList.h:302
 AliHLTReadoutList.h:303
 AliHLTReadoutList.h:304
 AliHLTReadoutList.h:305
 AliHLTReadoutList.h:306
 AliHLTReadoutList.h:307
 AliHLTReadoutList.h:308
 AliHLTReadoutList.h:309
 AliHLTReadoutList.h:310
 AliHLTReadoutList.h:311
 AliHLTReadoutList.h:312
 AliHLTReadoutList.h:313
 AliHLTReadoutList.h:314
 AliHLTReadoutList.h:315
 AliHLTReadoutList.h:316
 AliHLTReadoutList.h:317
 AliHLTReadoutList.h:318
 AliHLTReadoutList.h:319
 AliHLTReadoutList.h:320
 AliHLTReadoutList.h:321
 AliHLTReadoutList.h:322
 AliHLTReadoutList.h:323
 AliHLTReadoutList.h:324
 AliHLTReadoutList.h:325
 AliHLTReadoutList.h:326
 AliHLTReadoutList.h:327
 AliHLTReadoutList.h:328
 AliHLTReadoutList.h:329
 AliHLTReadoutList.h:330
 AliHLTReadoutList.h:331
 AliHLTReadoutList.h:332
 AliHLTReadoutList.h:333
 AliHLTReadoutList.h:334
 AliHLTReadoutList.h:335
 AliHLTReadoutList.h:336
 AliHLTReadoutList.h:337
 AliHLTReadoutList.h:338
 AliHLTReadoutList.h:339
 AliHLTReadoutList.h:340
 AliHLTReadoutList.h:341
 AliHLTReadoutList.h:342
 AliHLTReadoutList.h:343
 AliHLTReadoutList.h:344
 AliHLTReadoutList.h:345
 AliHLTReadoutList.h:346
 AliHLTReadoutList.h:347
 AliHLTReadoutList.h:348
 AliHLTReadoutList.h:349
 AliHLTReadoutList.h:350
 AliHLTReadoutList.h:351
 AliHLTReadoutList.h:352
 AliHLTReadoutList.h:353
 AliHLTReadoutList.h:354
 AliHLTReadoutList.h:355
 AliHLTReadoutList.h:356
 AliHLTReadoutList.h:357
 AliHLTReadoutList.h:358
 AliHLTReadoutList.h:359
 AliHLTReadoutList.h:360
 AliHLTReadoutList.h:361
 AliHLTReadoutList.h:362
 AliHLTReadoutList.h:363
 AliHLTReadoutList.h:364
 AliHLTReadoutList.h:365
 AliHLTReadoutList.h:366
 AliHLTReadoutList.h:367
 AliHLTReadoutList.h:368
 AliHLTReadoutList.h:369
 AliHLTReadoutList.h:370
 AliHLTReadoutList.h:371
 AliHLTReadoutList.h:372
 AliHLTReadoutList.h:373
 AliHLTReadoutList.h:374
 AliHLTReadoutList.h:375
 AliHLTReadoutList.h:376
 AliHLTReadoutList.h:377
 AliHLTReadoutList.h:378
 AliHLTReadoutList.h:379
 AliHLTReadoutList.h:380
 AliHLTReadoutList.h:381
 AliHLTReadoutList.h:382
 AliHLTReadoutList.h:383
 AliHLTReadoutList.h:384
 AliHLTReadoutList.h:385
 AliHLTReadoutList.h:386
 AliHLTReadoutList.h:387
 AliHLTReadoutList.h:388
 AliHLTReadoutList.h:389
 AliHLTReadoutList.h:390
 AliHLTReadoutList.h:391
 AliHLTReadoutList.h:392
 AliHLTReadoutList.h:393
 AliHLTReadoutList.h:394
 AliHLTReadoutList.h:395
 AliHLTReadoutList.h:396
 AliHLTReadoutList.h:397
 AliHLTReadoutList.h:398
 AliHLTReadoutList.h:399
 AliHLTReadoutList.h:400
 AliHLTReadoutList.h:401
 AliHLTReadoutList.h:402
 AliHLTReadoutList.h:403
 AliHLTReadoutList.h:404
 AliHLTReadoutList.h:405
 AliHLTReadoutList.h:406
 AliHLTReadoutList.h:407
 AliHLTReadoutList.h:408
 AliHLTReadoutList.h:409
 AliHLTReadoutList.h:410
 AliHLTReadoutList.h:411
 AliHLTReadoutList.h:412