Adding Generate method to build a store with identical values (Laurent)
authorivana <ivana@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 9 Mar 2007 17:16:42 +0000 (17:16 +0000)
committerivana <ivana@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 9 Mar 2007 17:16:42 +0000 (17:16 +0000)
MUON/AliMUON2DMap.cxx
MUON/AliMUON2DMap.h

index e695b05..b541f1d 100644 (file)
@@ -25,6 +25,7 @@
 #include "AliMpManuList.h"
 #include "AliMpDEManager.h"
 #include "AliMUONConstants.h"
+#include <TList.h>
 
 /// \class AliMUON2DMap
 /// \brief Basic implementation of AliMUONV2DStore container using
@@ -134,6 +135,34 @@ AliMUON2DMap::Iterator() const
 }
 
 //_____________________________________________________________________________
+AliMUONV2DStore* 
+AliMUON2DMap::Generate(const TObject& object)
+{
+  /// Build a complete (i.e. all detElemId,manuId couple will be there) store
+  /// but with identical values, given by object 
+  /// The returned store will be obviously optimized for DEManu.
+
+  AliMUONV2DStore* store = new AliMUON2DMap(true);
+  
+  TList* list = AliMpManuList::ManuList();
+  
+  AliMpIntPair* pair;
+  
+  TIter next(list);
+  
+  while ( ( pair = static_cast<AliMpIntPair*>(next()) ) ) 
+  {
+    Int_t detElemId = pair->GetFirst();
+    Int_t manuId = pair->GetSecond();
+    store->Set(detElemId,manuId,object.Clone(),kFALSE);
+  }
+  
+  delete list;
+  
+  return store;
+}
+
+//_____________________________________________________________________________
 Bool_t 
 AliMUON2DMap::Set(Int_t i, Int_t j, TObject* object, Bool_t replace)
 {
index d847a4a..6dda9ee 100644 (file)
@@ -36,6 +36,11 @@ public:
   AliMUON2DMap(const AliMUON2DMap& other);
   AliMUON2DMap&  operator = (const AliMUON2DMap& other);
 
+  /// Build a complete (i.e. all detElemId,manuId couple will be there) store
+  /// but with identical values, given by object 
+  /// The returned store will be obviously optimized for DEManu.
+  static AliMUONV2DStore* Generate(const TObject& object);
+    
 private:
   void CopyTo(AliMUON2DMap& destination) const;