#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
{
#ifdef WITH_STL
#include <map>
+#include <iterator>
#endif
class AliMpVMotif;
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;