Adding functions for iterating over motif positions
authorivana <ivana@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 7 Feb 2007 09:50:04 +0000 (09:50 +0000)
committerivana <ivana@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 7 Feb 2007 09:50:04 +0000 (09:50 +0000)
MUON/mapping/AliMpMotifMap.cxx
MUON/mapping/AliMpMotifMap.h

index 1cdce35f2195876769231750463f57fe402880a7..4267649d240e0de661bc21ba374f0343d3cf7448 100755 (executable)
@@ -258,6 +258,41 @@ AliMpMotifMap::GetAllMotifPositionsIDs(TArrayI& ecn) const
 #endif  
 }
 
 #endif  
 }
 
+//_____________________________________________________________________________
+UInt_t  AliMpMotifMap::GetNofMotifPositions() const
+{
+/// Return the number of all motif positions IDs (electronic card numbers)
+
+#ifdef WITH_STL
+  return fMotifPositions.size();  
+#endif
+  
+#ifdef WITH_ROOT  
+  return fMotifPositions.GetSize();
+#endif 
+} 
+
+//_____________________________________________________________________________
+AliMpMotifPosition* AliMpMotifMap::GetMotifPosition(UInt_t index) const
+{
+/// Return the motif position which is in the map on the index-th position
+
+  if ( index >= GetNofMotifPositions() ) {
+    AliErrorStream() << "Index " << index << " outside limits." << endl;
+    return 0;
+  }   
+
+#ifdef WITH_STL
+  MotifPositionMapIterator it = fMotifPositions.begin();
+  std::advance(it, index);
+  return it->second;
+#endif
+  
+#ifdef WITH_ROOT  
+  return (AliMpMotifPosition*)fMotifPositions.GetObject(index);
+#endif 
+}
+
 //_____________________________________________________________________________
 Int_t AliMpMotifMap::CalculateNofPads() const 
 {
 //_____________________________________________________________________________
 Int_t AliMpMotifMap::CalculateNofPads() const 
 {
index 7b58c603e4e950c6c027864ff3cbbb88338f9911..0a0402d6fab7f78d13dee8232427b3c29521620f 100755 (executable)
@@ -33,6 +33,7 @@
 
 #ifdef WITH_STL
 #include <map>
 
 #ifdef WITH_STL
 #include <map>
+#include <iterator>
 #endif
 
 class AliMpVMotif;
 #endif
 
 class AliMpVMotif;
@@ -86,7 +87,9 @@ class AliMpMotifMap : public TObject
     AliMpMotifPosition*  FindMotifPosition(Int_t motifPositionID) const;
 
     /// Find all motifPositionsIDs (=electronicCardNumbers) handled by this map
     AliMpMotifPosition*  FindMotifPosition(Int_t motifPositionID) const;
 
     /// Find all motifPositionsIDs (=electronicCardNumbers) handled by this map
-    void  GetAllMotifPositionsIDs(TArrayI& enc) const;
+    void    GetAllMotifPositionsIDs(TArrayI& enc) const;
+    UInt_t  GetNofMotifPositions() const;
+    AliMpMotifPosition* GetMotifPosition(UInt_t index) const;
 
     /// Calculate total number of pads defined in the map
     Int_t CalculateNofPads() const;
 
     /// Calculate total number of pads defined in the map
     Int_t CalculateNofPads() const;