]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/mapping/AliMpRegionalTrigger.h
Fix for the problem during PbPb run of Nov 2010 (Indra)
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpRegionalTrigger.h
index c9fe1bc02e76e100b63d83b67de3be1b36dd521d..b9fca6449c9d35b27db0b26a8c5fcc109391f016 100644 (file)
 
 class AliMpTriggerCrate;
 class AliMpLocalBoard;
+class AliMpDataStreams;
+class TIterator;
 
 class AliMpRegionalTrigger : public  TObject{
 
   public:
     AliMpRegionalTrigger();
     AliMpRegionalTrigger(const AliMpRegionalTrigger& rhs);
-    AliMpRegionalTrigger(TRootIOCtor* /*ioCtor*/);
+    AliMpRegionalTrigger(TRootIOCtor* ioCtor);
     virtual ~AliMpRegionalTrigger();
     
     // operators
     AliMpRegionalTrigger& operator=(const AliMpRegionalTrigger& rhs);
 
     // methods
-    Bool_t ReadData(const TString& fileName = "");
+    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;
-    AliMpTriggerCrate* GetTriggerCrate(Int_t index) const;
-    AliMpTriggerCrate* GetTriggerCrateFast(Int_t index) const;
-    TExMapIter GetTriggerCrateItr() const;
 
     Int_t GetNofLocalBoards() const;
-    AliMpLocalBoard* GetLocalBoard(Int_t index) const;
-    AliMpLocalBoard* GetLocalBoardFast(Int_t index) const;
-    TExMapIter GetLocalBoardItr() const;
+    
+    // ownership
+    void SetTriggerCratesOwner(Bool_t owner);
 
   private:
+    Bool_t ReadData(istream& in);
+
     // data members  
     AliMpExMap  fTriggerCrates; ///< map for trigger crates
-    AliMpExMap  fLocalBoards;   ///< map for local boards
+    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,1) // Regional trigger crate
+  ClassDef(AliMpRegionalTrigger,2) // Regional trigger crate
 };
 
-/// Return trigger crates iterator
-inline TExMapIter AliMpRegionalTrigger::GetTriggerCrateItr() const { 
-  return fTriggerCrates.GetIterator(); 
-}
-
-/// Return trigger local board iterator
-inline TExMapIter AliMpRegionalTrigger::GetLocalBoardItr() const { 
-  return fLocalBoards.GetIterator(); 
-}
 
 #endif //ALI_MP_REGIONAL__CRATE_H