Preventing a crash with root 5.30
authorlaphecet <laphecet@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 19 Aug 2011 14:06:48 +0000 (14:06 +0000)
committerlaphecet <laphecet@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 19 Aug 2011 14:06:48 +0000 (14:06 +0000)
MUON/AliMUONTreeManager.cxx
MUON/AliMUONTreeManager.h

index 2e0f4cb..a0d227b 100644 (file)
@@ -221,7 +221,7 @@ AliMUONTreeManager::UpdateBranchStatuses(TTree& tree, const char* pattern) const
 }
 
 //_____________________________________________________________________________
-const char* 
+TString
 AliMUONTreeManager::GetClassName(const TTree& tree, const char* pattern,
                                  Bool_t makeDefault) const
 {
@@ -231,6 +231,8 @@ AliMUONTreeManager::GetClassName(const TTree& tree, const char* pattern,
   /// we return DefaultClassName(pattern)
   ///
   
+  AliInfo(Form("pattern=%s makeDefault=%d",pattern,makeDefault));
+  
   TTree& vtree = const_cast<TTree&>(tree); // not pretty, but the GetUserInfo is not const...
   
   TIter next(vtree.GetUserInfo());
@@ -240,11 +242,13 @@ AliMUONTreeManager::GetClassName(const TTree& tree, const char* pattern,
   while ( ( object = next() ) )
   {
     AliMUONObjectPair* pair = static_cast<AliMUONObjectPair*>(object);
+    StdoutToAliInfo(pair->Print());
     TString key = (static_cast<TObjString*>(pair->First()))->String();
     TString value = (static_cast<TObjString*>(pair->Second()))->String();
     if ( key.Contains(pattern,TString::kIgnoreCase) ) 
     {
-      return value.Data();
+      AliInfo(Form("Will return %s",value.Data()));
+      return value;
     }
   }
   
@@ -254,7 +258,7 @@ AliMUONTreeManager::GetClassName(const TTree& tree, const char* pattern,
 }
 
 //_____________________________________________________________________________
-const char* 
+TString
 AliMUONTreeManager::DefaultClassName(const char* treeName, const char* pattern) const
 {
   /// For backward compatibility only. Decides, based on the tree name and a 
index e7d60c5..d2d701d 100644 (file)
@@ -41,9 +41,6 @@ public:
   
   void UpdateBranchStatuses(TTree& tree, const char* pattern) const;
   
-  const char* GetClassName(const TTree& tree, const char* pattern,
-                           Bool_t makeDefault) const;
-  
   /** Debug method to get an event, but checking beforehand that all selected
     branches do have a non-zero address set (otherwise we leak memory). 
     */
@@ -54,7 +51,10 @@ public:
 
 private:
 
-  const char* DefaultClassName(const char* treename, const char* pattern) const;
+  TString GetClassName(const TTree& tree, const char* pattern,
+                       Bool_t makeDefault) const;
+    
+  TString DefaultClassName(const char* treename, const char* pattern) const;
   
   ClassDef(AliMUONTreeManager,0) // Helper class to handle MUON TTrees
 };