ROOT logo
#ifndef ALIMUONTRIGGERCRATESTORE_H
#define ALIMUONTRIGGERCRATESTORE_H

/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice                               */

// $Id$

/// \ingroup trigger
/// \class AliMUONTriggerCrateStore
/// \brief A container for AliMUONTriggerCrate objects.
/// 
//  Author Laurent Aphecetche

#ifndef ROOT_TObject
#  include "TObject.h"
#endif

#include "TString.h"

class AliMUONLocalTriggerBoard;
class AliMUONTriggerCrate;
class AliMpExMap;
class TIterator;
class AliMUONCalibrationData;

class AliMUONTriggerCrateStore : public TObject
{
public:
  AliMUONTriggerCrateStore();
  virtual ~AliMUONTriggerCrateStore();
  
  Int_t NumberOfCrates() const;

  AliMUONTriggerCrate* Crate(const char* crateName) const;
  AliMUONTriggerCrate* Crate(Int_t ddl, Int_t reg) const;

  Int_t NumberOfLocalBoards() const;

  AliMUONLocalTriggerBoard* LocalBoard(Int_t boardNumber) const;
  
  void ReadFromFile(AliMUONCalibrationData* calibData);
  TIterator* CreateCrateIterator() const;
  
  TIterator* CreateLocalBoardIterator() const;

protected:
  /// Not implemented
  AliMUONTriggerCrateStore(const AliMUONTriggerCrateStore& rhs);
  /// Not implemented
  AliMUONTriggerCrateStore& operator = (const AliMUONTriggerCrateStore& rhs);

private:
  void AddCrate(const char* crateName); 
  
private:
  AliMpExMap* fCrates; ///< list of crates
  AliMpExMap* fLocalBoards; ///< local boards (indexed by their number)

  TString GetCrateName(Int_t ddl, Int_t reg) const;

  ClassDef(AliMUONTriggerCrateStore,2) // Reader for CRATE.TXT file
};

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