Added method GetAllMotifPositionsIDs(TArrayI& enc)
authorivana <ivana@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 2 Mar 2006 17:00:13 +0000 (17:00 +0000)
committerivana <ivana@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 2 Mar 2006 17:00:13 +0000 (17:00 +0000)
(Laurent)

MUON/mapping/AliMpMotifMap.cxx
MUON/mapping/AliMpMotifMap.h

index 746541f..92ec553 100755 (executable)
@@ -14,7 +14,7 @@
  **************************************************************************/
 
 // $Id$
-// $MpId: AliMpMotifMap.cxx,v 1.9 2005/09/26 16:11:20 ivana Exp $
+// $MpId: AliMpMotifMap.cxx,v 1.10 2006/03/02 16:32:38 ivana Exp $
 // Category: motif
 //
 // Class AliMpMotifMap
@@ -33,6 +33,7 @@
 #include "AliMpMotifSpecial.h"
 #include "AliMpMotifType.h"
 #include "AliMpMotifPosition.h"
+#include "TArrayI.h"
 
 ClassImp(AliMpMotifMap)
 
@@ -118,10 +119,10 @@ void  AliMpMotifMap::PrintMotifPosition(
 {
 /// Print the motif position.
 
-  cout << motifPosition->GetID() << "  "
-       << motifPosition->GetMotif()->GetID() << "  " 
-       << motifPosition->Position().X() << "  "
-       << motifPosition->Position().Y() << "    ";
+  cout << " ID " << motifPosition->GetID() << "  "
+       << " Motif ID " << motifPosition->GetMotif()->GetID() << "  " 
+       << " Pos (X,Y) = (" << motifPosition->Position().X() << ","
+       << motifPosition->Position().Y() << ")";
 }
 
 //_____________________________________________________________________________
@@ -222,6 +223,36 @@ void  AliMpMotifMap::PrintMotifTypes() const
 }
 
 //_____________________________________________________________________________
+void 
+AliMpMotifMap::GetAllMotifPositionsIDs(TArrayI& ecn) const
+{
+#ifdef WITH_STL
+  ecn.Set(fMotifPositions.size());  
+  Int_t i(0);
+  MotifPositionMapIterator it;
+  for (it=fMotifPositions.begin(); it != fMotifPositions.end(); it++) {
+    AliMpMotifPosition* motifPosition = (*it).second;
+    ecn[i++] = motifPosition->GetID();
+  }
+#endif
+  
+#ifdef WITH_ROOT  
+  ecn.Set(fMotifPositions.GetSize());
+  TExMapIter it = fMotifPositions.GetIterator();
+  Long_t key, value;
+  Int_t i(0);
+  
+  while ( it.Next(key, value) ) 
+  {
+    AliMpMotifPosition* motifPosition = reinterpret_cast<AliMpMotifPosition*>(value);
+    ecn[i] = motifPosition->GetID();
+    ++i;
+  }
+  
+#endif  
+}
+
+//_____________________________________________________________________________
 void  AliMpMotifMap::PrintMotifPositions() const
 {
 /// Print all the the motifs positions.
@@ -427,14 +458,18 @@ void AliMpMotifMap::FillMotifPositionMap2()
 }
 
 //_____________________________________________________________________________
-void  AliMpMotifMap::Print(const char* /*option*/) const
+void  AliMpMotifMap::Print(const char* opt) const
 {
 /// Print the motifs and motif types maps.
 
-  PrintMotifs();
-  PrintMotifTypes();
-  PrintMotifPositions();
-  PrintMotifPositions2();
+  TString sopt(opt);
+  
+  sopt.ToUpper();
+  
+  if ( sopt.Contains("MOTIFS") || sopt == "ALL" ) PrintMotifs();
+  if ( sopt.Contains("MOTIFTYPES") || sopt == "ALL" ) PrintMotifTypes();
+  if ( sopt.Contains("MOTIFPOSITIONS") || sopt == "ALL" ) PrintMotifPositions();
+  if ( sopt.Contains("MOTIFPOSITIONS2") || sopt == "ALL" ) PrintMotifPositions2();
 }
 
 //_____________________________________________________________________________
index dddbbe0..51cc2f1 100755 (executable)
@@ -2,7 +2,7 @@
  * See cxx source for full Copyright notice                               */
 
 // $Id$
-// $MpId: AliMpMotifMap.h,v 1.9 2005/09/26 16:10:46 ivana Exp $
+// $MpId: AliMpMotifMap.h,v 1.10 2006/03/02 16:32:16 ivana Exp $
 
 /// \ingroup motif
 /// \class AliMpMotifMap
@@ -32,6 +32,7 @@
 
 #include <TObject.h>
 
+class TArrayI;
 class TString;
 class TVector2;
 
@@ -70,7 +71,7 @@ class AliMpMotifMap : public TObject
     Bool_t  AddMotifType(AliMpMotifType* motifType, Bool_t warn = true);
     Bool_t  AddMotifPosition(AliMpMotifPosition* motifType, Bool_t warn = true);
     void   FillMotifPositionMap2();
-    virtual void Print(const char* /*option*/ = "") const;
+    virtual void Print(const char* option = "ALL") const;
     void   PrintGlobalIndices(const char* fileName) const;
     void   UpdateGlobalIndices(const char* fileName);
    
@@ -80,8 +81,10 @@ class AliMpMotifMap : public TObject
                             const TVector2& padDimensions) const;
     AliMpMotifType*      FindMotifType(const TString& motifTypeID) const;
     AliMpMotifPosition*  FindMotifPosition(Int_t motifPositionID) const;
-    // AliMpMotifPosition*  FindMotifPosition(const AliMpIntPair& indices) const;
 
+    /// Find all motifPositionsIDs (=electronicCardNumbers) handled by this map
+    void GetAllMotifPositionsIDs(TArrayI& enc) const;
+     
   private:
     // methods
     void  PrintMotif(const AliMpVMotif* motif) const;