code: def proxy_global(name, no_expand_macro=False, fname='func', args=()):
      
      if no_expand_macro:  # pragma: no cover
          # handle older ROOT versions without _ExpandMacroFunction wrapping
          @property
          def gSomething_no_func(self):
              glob = self(getattr(ROOT, name))
              # create a fake func() that just returns self
              def func():
                  return glob
              glob.func = func
              return glob
          return gSomething_no_func
  
      @property
      def gSomething(self):
          obj_func = getattr(getattr(ROOT, name), fname)
          try:
              obj = obj_func(*args)
          except ReferenceError:  # null pointer
              return None
          # asrootpy
          return self(obj)
  
      return gSomething
docs: Used to automatically asrootpy ROOT's thread local variables