ROOT logo
#ifndef ALIMUONTRIGGERSTOREV1_H
#define ALIMUONTRIGGERSTOREV1_H

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

// $Id$

/// \ingroup base
/// \class AliMUONTriggerStoreV1
/// \brief Implementation of AliMUONVTriggerStore
/// 
// Author Laurent Aphecetche

#ifndef ALIMUONVTRIGGERSTORE_H
#  include "AliMUONVTriggerStore.h"
#endif

class TClonesArray;

class AliMUONTriggerStoreV1 : public AliMUONVTriggerStore
{
public:
  AliMUONTriggerStoreV1();
  virtual ~AliMUONTriggerStoreV1();
  
  /// Whether the Connect(TTree&) method is implemented
  virtual AliMUONTriggerStoreV1* Create() const { return new AliMUONTriggerStoreV1; }
  
  virtual Bool_t CanConnect() const { return kTRUE; }
  
  using AliMUONVTriggerStore::Add;
  virtual void Add(const AliMUONLocalTrigger& localTrigger);
  virtual void Add(const AliMUONRegionalTrigger& regionalTrigger);
  
  virtual void SetGlobal(const AliMUONGlobalTrigger& globalTrigger);
  
  virtual TIterator* CreateLocalIterator() const;
  virtual TIterator* CreateRegionalIterator() const;
  
  virtual AliMUONGlobalTrigger* Global() const;

  virtual AliMUONLocalTrigger* FindLocal(Int_t boardNumber) const;
  virtual AliMUONRegionalTrigger* FindRegional(Int_t boardNumber) const;

  using AliMUONVTriggerStore::Print;
  
  virtual void Print(Option_t* wildcard, Option_t* opt) const;

  virtual Bool_t Connect(TTree& tree, Bool_t alone=kTRUE) const;
  
  virtual void Clear(Option_t* opt="");

  using AliMUONVStore::GetSize;
  
  virtual Int_t GetSize() const;
  
private:
  /// Return the address of the array of global trigger information
  TClonesArray** GlobalPtr() const { return const_cast<TClonesArray**>(&fGlobal); }
  /// Return the address of the array of local trigger information
  TClonesArray** LocalPtr() const { return const_cast<TClonesArray**>(&fLocal); }
  /// Return the address of the array of regional trigger information
  TClonesArray** RegionalPtr() const { return const_cast<TClonesArray**>(&fRegional); }
  
  /// Not implemented
  AliMUONTriggerStoreV1(const AliMUONTriggerStoreV1&);
  /// Not implemented
  AliMUONTriggerStoreV1& operator=(const AliMUONTriggerStoreV1&);
  
private:
  TClonesArray* fLocal; ///< internal array of local trigger information
  TClonesArray* fRegional; ///< internal array of regional trigger information
  TClonesArray* fGlobal; ///< internal array of global trigger information
  mutable TClonesArray* fEmptyLocal; //!< internal array of empty local trigger
  
  ClassDef(AliMUONTriggerStoreV1,1) // Implementation of AliMUONVTriggerStore
};

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