CMS 3D CMS Logo

Classes | Functions | Variables
lumiregperbunch Namespace Reference

Classes

class  bsmeas
 

Functions

def readroot ()
 
def timeof (run, lumisection)
 

Variables

 allmeas
 
 bxmeas
 
 file
 
 filename
 
 FILL
 
 line
 
 lines
 
 lumimax
 
 lumimid
 
 lumimin
 
 lumirange
 
 meastime
 
 OUTDIR
 
 rfbucket
 
 runlstime
 
 runno
 
 sortedtimes
 
 thismeas
 
 WORKDIR
 

Function Documentation

def lumiregperbunch.readroot ( )

Definition at line 107 of file lumiregperbunch.py.

107 def readroot():
108  rls=[]
109  bxlist=[]
110  allmeas={}
111 
112  DIRES=['X0','Y0','Z0','width_X0','Width_Y0','Sigma_Z0','dxdz','dydz']
113  # DIRES=['X0']
114  rootfile="BxAnalysis_Fill_"+FILL+".root"
115  filein=TFile(rootfile)
116  for dire in DIRES:
117  filein.cd(dire)
118  # get list of histograms
119  histolist=gDirectory.GetListOfKeys()
120  iter = histolist.MakeIterator()
121  key = iter.Next()
122  while key:
123  if key.GetClassName() == 'TH1F':
124  td = key.ReadObj()
125  histoname = td.GetName()
126  if "bx" in histoname:
127 # print histoname
128  bx=histoname.split('_')[-1]
129  if bx not in bxlist:
130 # this is to be removed
131 # if len(bxlist)>=2:
132 # key = iter.Next()
133 # continue
134 # end to be removed
135  bxlist.append(bx)
136  allmeas[bx]={}
137 # print bx,histoname
138  histo=gDirectory.Get(histoname)
139  nbin=histo.GetNbinsX()
140 
141  thisbx=allmeas[bx]
142 
143  for bin in range(1,nbin+1):
144  label=histo.GetXaxis().GetBinLabel(bin)
145  label=label.strip()
146  if ":" not in label:
147  # not a valid label of type run:lumi-lumi, skip it
148  continue
149 
150  cont=histo.GetBinContent(bin)
151  if cont!=cont:
152  # it's a nan
153  cont=-999.0
154  err=histo.GetBinError(bin)
155  if err!=err:
156  err=-999.0
157  # if len(bxlist)==1:
158  # rls.append(label)
159  # print label
160  # else:
161  if label not in rls:
162  print "New range:",label," found in ",histoname
163  rls.append(label)
164 
165  if label in thisbx.keys():
166  thismeas=thisbx[label]
167  else:
168  thisbx[label]=bsmeas()
169  thismeas=thisbx[label]
170  # now filling up
171  if dire=='X0':
172  thismeas.x=cont
173  thismeas.ex=err
174  if dire=='Y0':
175  thismeas.y=cont
176  thismeas.ey=cont
177  if dire=='Z0':
178  thismeas.z=cont
179  thismeas.ez=err
180  if dire=='width_X0':
181  thismeas.wx=cont
182  thismeas.ewx=err
183  if dire=='Width_Y0':
184  thismeas.wy=cont
185  thismeas.ewy=err
186  if dire=='Sigma_Z0':
187  thismeas.wz=cont
188  thismeas.ewz=err
189  if dire=='dxdz':
190  thismeas.dxdz=cont
191  thismeas.edxdz=err
192  if dire=='dydz':
193  thismeas.dydz=cont
194  thismeas.edydz=err
195 
196 
197  key = iter.Next()
198 
199 
200  # for name in pippo:
201  # print name
202 
203  filein.Close()
204 
205  # let's try to show it
206 # for bx in allmeas.keys():
207 # print "bx=",bx
208 # bxmeas=allmeas[bx]
209 # for meas in bxmeas.keys():
210 # print "meas time=",meas
211 # thismeas=bxmeas[meas]
212 # print thismeas.x,thismeas.ex,thismeas.y,thismeas.ey,thismeas.z,thismeas.ez
213 # print thismeas.wx,thismeas.ewx,thismeas.wy,thismeas.ewy,thismeas.wz,thismeas.ewz
214 # print thismeas.dxdz,thismeas.edxdz,thismeas.dydz,thismeas.edydz
215  return allmeas
216 
def lumiregperbunch.timeof (   run,
  lumisection 
)

Definition at line 39 of file lumiregperbunch.py.

References funct.abs(), and str.

39 def timeof(run,lumisection):
40  # first check if this run is already in the list, otherwise read it
41  if run not in runlstime.keys():
42  print "Reading lumi time from lumireg localcopy files"
43  filename="localcopy/BeamFitResults_Run"+run+".txt"
44  if not os.path.exists(filename):
45  print "WARNING: file ",filename," does not exist. Returning null."
46  return -1
47 
48  # reading file
49  lstime={}
50  in_file = open(filename)
51  pieces = paragraphs(in_file,start_of_new_beamspot_measurement,True)
52  for piece in pieces:
53  if len(piece) < 1:
54  continue
55  try:
56  tmp = BeamspotMeasurement(piece)
57  except Exception as err:
58  print >> sys.stderr, \
59  " ERROR Found corrupt " \
60  "beamspot measurement entry!"
61  print >> sys.stderr, \
62  " !!! %s !!!" % str(err)
63  continue
64  # Argh!
65  runfromfile=tmp.run_number
66  (lumimin,lumimax)=tmp.lumi_range
67  time_begin=tmp.time_begin
68  time_end=tmp.time_end
69  time_begin=calendar.timegm(time_begin.timetuple())
70  time_end=calendar.timegm(time_end.timetuple())-23 # assume end of lumisection
71  lstime[lumimin]=time_begin
72  lstime[lumimax]=time_end
73 
74  # order lumisections and make a list
75  lslist=sorted(lstime.keys())
76  lstimesorted=[]
77  for ls in lslist:
78  lstimesorted.append((ls,lstime[ls]))
79  runlstime[run]=lstimesorted
80 
81  # print runfromfile
82  # print lumirange
83  # print time_begin, calendar.timegm(time_begin.timetuple())
84  # print time_end, calendar.timegm(time_end.timetuple())
85 
86  in_file.close()
87  # now give a time
88  dcloselumi=999999
89  closelumi=-1
90  closetime=-1
91  lstimesorted=runlstime[run]
92 
93  for pair in lstimesorted:
94  (lumi,time)=pair
95  if abs(lumisection-lumi)<dcloselumi:
96  dcloselumi=abs(lumisection-lumi)
97  closelumi=lumi
98  closetime=time
99  if closelumi!=-1:
100  finaltime=closetime+(lumisection-closelumi)*23
101  else:
102  finaltime=-1
103 
104  return finaltime
105 
106 
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
def timeof(run, lumisection)
#define str(s)

Variable Documentation

lumiregperbunch.allmeas

Definition at line 223 of file lumiregperbunch.py.

lumiregperbunch.bxmeas

Definition at line 228 of file lumiregperbunch.py.

lumiregperbunch.file

Definition at line 270 of file lumiregperbunch.py.

lumiregperbunch.filename

Definition at line 269 of file lumiregperbunch.py.

lumiregperbunch.FILL

Definition at line 9 of file lumiregperbunch.py.

lumiregperbunch.line

Definition at line 247 of file lumiregperbunch.py.

lumiregperbunch.lines

Definition at line 229 of file lumiregperbunch.py.

lumiregperbunch.lumimax

Definition at line 237 of file lumiregperbunch.py.

lumiregperbunch.lumimid

Definition at line 239 of file lumiregperbunch.py.

lumiregperbunch.lumimin

Definition at line 235 of file lumiregperbunch.py.

lumiregperbunch.lumirange

Definition at line 234 of file lumiregperbunch.py.

lumiregperbunch.meastime

Definition at line 240 of file lumiregperbunch.py.

lumiregperbunch.OUTDIR

Definition at line 10 of file lumiregperbunch.py.

lumiregperbunch.rfbucket

Definition at line 268 of file lumiregperbunch.py.

lumiregperbunch.runlstime

Definition at line 12 of file lumiregperbunch.py.

lumiregperbunch.runno
lumiregperbunch.sortedtimes

Definition at line 271 of file lumiregperbunch.py.

lumiregperbunch.thismeas

Definition at line 243 of file lumiregperbunch.py.

lumiregperbunch.WORKDIR

Definition at line 266 of file lumiregperbunch.py.