ROOT logo
#ifndef ALIMUONVTRIGGERSTORE_H
#define ALIMUONVTRIGGERSTORE_H

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

// $Id$

/// \ingroup base
/// \class AliMUONVTriggerStore
/// \brief Base class of a trigger information store
/// 
// Author Laurent Aphecetche, Subatech

#ifndef ALIMUONVSTORE_H
#  include "AliMUONVStore.h"
#endif

class AliMUONLocalTrigger;
class AliMUONGlobalTrigger;
class AliMUONRegionalTrigger;

class AliMUONVTriggerStore : public AliMUONVStore
{
public:
  AliMUONVTriggerStore();
  virtual ~AliMUONVTriggerStore();

  /// Add an object, if of the right type
  virtual Bool_t Add(TObject* object);
  
  /// Add local trigger
  virtual void Add(const AliMUONLocalTrigger& localTrigger) = 0;
  /// Set global trigger
  virtual void SetGlobal(const AliMUONGlobalTrigger& globalTrigger) = 0;
  /// Add regional trigger
  virtual void Add(const AliMUONRegionalTrigger& regionalTrigger) = 0;
  
  using AliMUONVStore::Create;
  
  /// Create a store from the tree (if possible).
  static AliMUONVTriggerStore* Create(TTree& tree);
  
  /// Create iterator (on local card)
  virtual TIterator* CreateIterator() const;
  
  /// Create iterator on local trigger
  virtual TIterator* CreateLocalIterator() const = 0;
  /// Create iterator on regional trigger
  virtual TIterator* CreateRegionalIterator() const = 0;
  
  /// Return global trigger
  virtual AliMUONGlobalTrigger* Global() const = 0;
  
  /// Find a local trigger by the board number (not an index, it is a number really)
  virtual AliMUONLocalTrigger* FindLocal(Int_t boardNumber) const = 0;
  
  /// Find a regional trigger by the board number (not an index, it is a number really)
  virtual AliMUONRegionalTrigger* FindRegional(Int_t boardNumber) const = 0;
  
  using AliMUONVStore::Print;
  
  virtual void Print(Option_t* wildcard="") const { return Print(wildcard,""); }

  ClassDef(AliMUONVTriggerStore,1) // Base class of a trigger store
};

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