Adding Print method (Laurent)
authorivana <ivana@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 29 Mar 2007 11:14:43 +0000 (11:14 +0000)
committerivana <ivana@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 29 Mar 2007 11:14:43 +0000 (11:14 +0000)
MUON/AliMUONV1DStore.cxx
MUON/AliMUONV1DStore.h

index bc5ccad..377c933 100644 (file)
 
 #include "AliMUONV1DStore.h"
 
+#include "AliMUONVDataIterator.h"
+#include "AliMUONObjectPair.h"
+#include "AliMpIntPair.h"
+#include "AliMpHelper.h"
+#include <TMap.h>
+#include <TString.h>
+#include <Riostream.h>
+
 /// \class AliMUONV1DStore
 /// Defines an interface equivalent to a list of TObject, indexed
 /// by integer (somehow a vector, except that indices are not necessarily
@@ -43,5 +51,44 @@ AliMUONV1DStore::~AliMUONV1DStore()
 /// Destructor
 }
 
+void
+AliMUONV1DStore::Print(Option_t* opt) const
+{
+  /// Printout
+  /// opt is used to filter which i you want to see
+  /// e.g opt="I=12;opt=Full" to see complete values, but only for i=12
+  /// Warning : decoding of opt format is not really bullet-proof (yet?)
+  
+  AliMUONVDataIterator* it = this->Iterator();
+  
+  AliMUONObjectPair* pair;
+  
+  TMap* m = AliMpHelper::Decode(opt);
+  
+  TString si;  
+  Bool_t selectI = AliMpHelper::Decode(*m,"i",si);
+  TString sopt;
+  AliMpHelper::Decode(*m,"opt",sopt);
+  
+  m->DeleteAll();
+  delete m;
+  
+  while ( ( pair = static_cast<AliMUONObjectPair*>(it->Next() ) ) )
+  {
+    AliMpIntPair* ip = static_cast<AliMpIntPair*>(pair->First());
+    Int_t i = ip->GetFirst();
+    if ( selectI && i != si.Atoi() ) continue;
+    cout << Form("[%d]",i) << endl;
+    TObject* o = pair->Second();
+    if (o) 
+    {
+      o->Print(sopt.Data());
+    }
+  }
+  
+  delete it;
+}
+
+
 
 
index 17fab3f..60b1052 100644 (file)
@@ -16,6 +16,8 @@
 #  include "TObject.h"
 #endif
 
+class AliMUONVDataIterator;
+
 class AliMUONV1DStore : public TObject
 {
 public:
@@ -25,6 +27,9 @@ public:
   /// Return the object stored at i.
   virtual TObject* Get(Int_t i) const = 0;
   
+  /// Return iterator
+  virtual AliMUONVDataIterator* Iterator() const { return 0x0; }
+  
   /** Set the object stored at i.
     if replace=false and there's already an object there, returns kFALSE
     */
@@ -33,6 +38,9 @@ public:
   /// Whether or not this container is the owner of its contents.
   virtual Bool_t IsOwner() const = 0;
   
+  virtual void Print(Option_t* opt="") const;
+
+  
 private:  
   ClassDef(AliMUONV1DStore,0) // Generic container indexed by a single integer
 };