def METHOD_NAME(self, hist_type, index_range, run):
    """
    Method looping over entries for specified histogram type and 
    writing to FullName path to output ROOT File
    """
    print("Working on: %s indexes: %s..%s" % (hist_type ,index_range[0],
        index_range[1]))
    t_tree = self._root_file.Get(hist_type)
    __run_dir = "Run %s" % (run)
    ###we set Branch for the needed type
    if hist_type == "TProfiles":
        if not self.already_defined["TProfiles"]:
            R.gROOT.ProcessLine("TProfile* _tprof;")
            self.already_defined["TProfiles"] = True
        t_tree.SetBranchAddress("Value", R._tprof)
        t_tree.GetEntry(index_range[0])
    elif hist_type == "TProfile2Ds":
        if not self.already_defined["TProfile2Ds"]:
            R.gROOT.ProcessLine("TProfile2D* _tprof2d;")
            self.already_defined["TProfile2Ds"] = True
        t_tree.SetBranchAddress("Value", R._tprof2d)
        t_tree.GetEntry(index_range[0])
    elif hist_type == "TH2Fs":
        if not self.already_defined["TH2Fs"]:
            R.gROOT.ProcessLine("TH2F* _th2f;")
            self.already_defined["TH2Fs"] = True
        t_tree.SetBranchAddress("Value", R._th2f)
        t_tree.GetEntry(index_range[0])
    elif hist_type == "TH2Ds":
        if not self.already_defined["TH2Ds"]:
            R.gROOT.ProcessLine("TH2D* _th2d;")
            self.already_defined["TH2Ds"] = True
        t_tree.SetBranchAddress("Value", R._th2d)
        t_tree.GetEntry(index_range[0])
    for i in range(0,t_tree.GetEntries()+1): ##iterate on entries for specified type
        if i >= index_range[0] and i <= index_range[1]: ##if entries as in range:
            t_tree.GetEntry(i)
            name = str(t_tree.FullName)
           # print "  %s:  %s" % (i, name)
            file_path = name.split("/")[:-1]            ##  same run/lumi histograms
            __directory = "%s/%s" % (os.path.join("DQMData", __run_dir),
                "/".join(file_path))
            directory_ret = self.f.GetDirectory(__directory)
            if not directory_ret:
                self.f.mkdir(os.path.join(__directory))
            self.f.cd(os.path.join(__directory))
            if hist_type == "Strings":
                construct_str = '<%s>s=%s</%s>' % (name.split("/")[-1:][0],
                    t_tree.Value, name.split("/")[-1:][0])
                tmp_str = R.TObjString(construct_str)
                tmp_str.Write()
            elif hist_type == "Ints":
                construct_str = '<%s>i=%s</%s>' % (name.split("/")[-1:][0],
                    t_tree.Value, name.split("/")[-1:][0])
                tmp_str = R.TObjString(construct_str)
                tmp_str.Write()
            elif hist_type == "Floats":
                construct_str = '<%s>f=%s</%s>' % (name.split("/")[-1:][0],
                    t_tree.Value, name.split("/")[-1:][0])
                tmp_str = R.TObjString(construct_str)
                tmp_str.Write()
            else:
                if hist_type in ["TProfiles", "TProfile2Ds", "TH2Fs", "TH2Ds"]: 
                    if hist_type == "TProfiles": #if type is specific we write it.
                        R._tprof.Write()
                    elif hist_type == "TProfile2Ds":
                        R._tprof2d.Write()
                    elif hist_type == "TH2Fs":
                        R._th2f.Write()
                    elif hist_type == "TH2Ds":
                        R._th2d.Write()
                else: #else we wirte Leafs Value which is a histogram
                    t_tree.Value.Write()