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

// $MpId: $ 

/// \ingroup mptrigger
/// \class AliMpRegionalTrigger
/// \brief The class defines the properties of regional trigger crate
///
/// \author Ch. Finck, Subatech Nantes; I. Hrivnacova, IPN Orsay

#ifndef ALI_MP_REGIONAL_TRIGGER_H
#define ALI_MP_REGIONAL_TRIGGER_H

#include <TObject.h>

#include "AliMpExMap.h"

#include <TObjArray.h>

class AliMpTriggerCrate;
class AliMpLocalBoard;
class AliMpDataStreams;
class TIterator;

using std::istream;

class AliMpRegionalTrigger : public  TObject{

  public:
    AliMpRegionalTrigger();
    AliMpRegionalTrigger(const AliMpRegionalTrigger& rhs);
    AliMpRegionalTrigger(TRootIOCtor* ioCtor);
    virtual ~AliMpRegionalTrigger();
    
    // operators
    AliMpRegionalTrigger& operator=(const AliMpRegionalTrigger& rhs);

    // methods
    Bool_t ReadData(const TString& fileName);
    Bool_t ReadData(const AliMpDataStreams& dataStreams);
    
    AliMpTriggerCrate* FindTriggerCrate(TString crateName, Bool_t warn = true) const;
    AliMpLocalBoard*   FindLocalBoard(Int_t localBoardId, Bool_t warn = true) const;

    // method for looping

    TIterator* CreateCrateIterator() const;
    
    TIterator* CreateLocalBoardIterator() const;
    
    Int_t LocalBoardId(Int_t index) const;
    
    Int_t GetNofTriggerCrates() const;

    Int_t GetNofLocalBoards() const;
    
    // ownership
    void SetTriggerCratesOwner(Bool_t owner);

  private:
    Bool_t ReadData(istream& in);

    // data members  
    AliMpExMap  fTriggerCrates; ///< map for trigger crates
    AliMpExMap  fLocalBoardMap; ///< map of local boards (owner of boards)
    TObjArray   fLocalBoardArray; ///< array of local boards (not owner of boards, the map is the owner)
 
  ClassDef(AliMpRegionalTrigger,2) // Regional trigger crate
};


#endif //ALI_MP_REGIONAL__CRATE_H














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