699 def printDistributionStat(self, lastOnly=False):
700 """
701 Print mean values from histograms
702
703 """
704
705 if "ALL_LVPS_AI" in self.varExp:
706 self.varExp = self.varExp.
replace(
"ALL_LVPS_AI",
",".join(sorted(self.info.vars_LVPS_AI.keys())))
707 if "ALL_LVPS_STATES" in self.varExp:
708 self.varExp = self.varExp.
replace(
"ALL_LVPS_STATES",
",".join(sorted(self.info.vars_LVPS_STATES.keys())))
709 if "ALL_HV-ALL_SETHV" in self.varExp or "ALL_HV-ALL_HVSET" in self.varExp:
710 vlist = []
711 for var in list(self.info.vars_HVSET.keys()):
712 if not ("Set.vFix" in var or "Set.hvIn" in var or "Set.volt" in var or "Set.temp" in var):
713 vlist += [var.replace("Set.","")+"-"+var]
714 self.varExp = self.varExp.
replace(
"ALL_HV-ALL_SETHV",
",".join(sorted(vlist)))
715 self.varExp = self.varExp.
replace(
"ALL_HV-ALL_HVSET",
",".join(sorted(vlist)))
716 if "ALL_HVSET" in self.varExp or "ALL_SETHV" in self.varExp:
717 vlist = list(self.info.vars_HVSET.keys())
718 if self.useCool:
719 for i in range(2):
720 if "Set.vFix1%d" % (i+1) in vlist:
721 vlist.remove("Set.vFix1%d" % (i+1))
722 for i in range(4):
723 vlist.remove("Set.hvIn%d" % (i+1))
724 for i in range(7):
725 vlist.remove("Set.volt%d" % (i+1))
726 for i in range(7):
727 vlist.remove("Set.temp%d" % (i+1))
728 self.varExp = self.varExp.
replace(
"ALL_HVSET",
",".join(sorted(vlist)))
729 self.varExp = self.varExp.
replace(
"ALL_SETHV",
",".join(sorted(vlist)))
730 if "ALL_HV" in self.varExp and "ALL_HVSET" not in self.varExp:
731 vlist = list(self.info.vars_HV.keys())
732 if self.useCool:
733 for i in range(4):
734 vlist.remove("hvIn%d" % (i+1))
735 for i in range(7):
736 vlist.remove("volt%d" % (i+1))
737 for i in range(7):
738 vlist.remove("temp%d" % (i+1))
739 self.varExp = self.varExp.
replace(
"ALL_HV",
",".join(sorted(vlist)))
740 varlist=self.parseVarExpression(self.varExp)
741 print ("var list is",varlist)
742
743 reslist=[]
744 cutlist = self.parseVarExpression(self.cutExp)
745 print ("cut list is",cutlist)
746 fulllist=sorted(list(
set(varlist+cutlist)))
747 print ("full list is",fulllist)
748 t = None
749 drlistprev=[]
750 varlistprev=[]
751 for drawer
in self.drawer.
split(
","):
752 drlist=[drawer]
753 for v
in self.varExp.
split(
","):
754 varlist=self.parseVarExpression(v)
755 varlist += cutlist
756 varlist=sorted(list(
set(varlist)))
757
758
759 if not (t and drlist==drlistprev and varlist==varlistprev):
760 t = self.dataGrabber.getDCSTree(self.iovBeg, self.iovEnd, drlist, varlist, lastOnly)
761 drlistprev=drlist
762 varlistprev=varlist
763 if t and t.GetEntries()>0:
764 var = v
765 cut = self.cutReplace(self.cutExp,var)
766 for va in varlist:
767 var = var.replace(va,drawer+"."+va)
768 cut = cut.replace(va,drawer+"."+va)
769 var = var.replace(drawer+"."+drawer,drawer)
770 cut = cut.replace(drawer+"."+drawer,drawer)
771 var = var.replace("Set."+drawer,"Set")
772 cut = cut.replace("Set."+drawer,"Set")
773 print ("var is",var)
774 print ("cut is",cut)
775 t.Draw(var,cut,"goff")
776 h = ROOT.gDirectory.Get("htemp")
777 if h:
778 if cut!="":
779 reslist.append((var+" CUT "+cut,self.rangeStr,h.GetEntries(),h.GetMean(),h.GetRMS()))
780 else:
781 reslist.append((var,self.rangeStr,h.GetEntries(),h.GetMean(),h.GetRMS()))
782 else:
783 reslist.append((var,self.rangeStr,-1,0.0,0.0))
784
785 if lastOnly:
786 for res in reslist:
787 print ("%-25s %s Last %-9.3f" % (res[0],res[1],res[3]))
788 else:
789 for res in reslist:
790 print ("%-25s %s Nentries %-7d Mean %-9.3f RMS %-9.4f" % res)
791 return 0
792
793
794
795
796
797