ATLAS Offline Software
Functions
show_digi_timing Namespace Reference

Functions

def readModule (part, mod, runnumber, datadir, outdir)
 
def cleanHisto (hist)
 
def SetupDraw ()
 
def main ()
 

Function Documentation

◆ cleanHisto()

def show_digi_timing.cleanHisto (   hist)

Definition at line 126 of file show_digi_timing.py.

126 def cleanHisto(hist):
127 
128  hist.GetXaxis().CenterTitle()
129  hist.GetXaxis().CenterLabels(ROOT.kTRUE)
130  hist.GetXaxis().SetTitleOffset(1.2)
131  hist.GetXaxis().SetTitle('t_{fit} [ns]')
132  #hist.GetXaxis().SetLabelOffset(0.021)
133  #hist.GetXaxis().SetLabelSize(0.06)
134  hist.GetYaxis().CenterTitle()
135  hist.GetYaxis().SetTitleOffset(1.3)
136  #hist.GetYaxis().SetLabelOffset(0.015)
137  #hist.GetYaxis().SetLabelSize(0.06)
138  hist.SetFillColor(ROOT.kGray)
139 
140  return hist
141 
142 

◆ main()

def show_digi_timing.main ( )

Definition at line 177 of file show_digi_timing.py.

177 def main():
178 
179 
180  datadir = '/location/of/ntuples/'
181  outdir = '/where/output/will/be/written/'
182 
183 
184  if len(sys.argv)<2:
185  print "Please pass a run number."
186  return True
187 
188  runnumber = int(sys.argv[1])
189 
190  datadir = datadir + str(runnumber) + '/'
191  outdir = outdir + str(runnumber) + '/'
192 
193  if not os.path.exists(outdir):
194  os.mkdir(outdir)
195 
196  print 'Using data from', datadir
197  print 'Ouput will be sent to', outdir
198 
199 
200 
201  if not os.path.exists(outdir):
202  os.mkdir(outdir)
203 
204  ROOT.gROOT.SetBatch()
205  parts = ['LBA', 'LBC', 'EBA', 'EBC']
206 
207  can = SetupDraw()
208  badcans = '%s%d_bad_digi.ps' % (outdir, runnumber)
209  can.Print('%s[' % badcans)
210 
211  for part in parts:
212  for module in range(1,65):
213  badlist = readModule(part, module, runnumber, datadir, outdir)
214 
215  can.Print('%s]' % badcans)
216 
217 

◆ readModule()

def show_digi_timing.readModule (   part,
  mod,
  runnumber,
  datadir,
  outdir 
)

Definition at line 10 of file show_digi_timing.py.

10 def readModule(part, mod, runnumber, datadir, outdir):
11 
12  ROOT.gROOT.SetBatch()
13 
14  print 'Checking', part, mod
15 
16  filename = '%stiletb_%d_MonoCis.%s%02d.0.aan.root' % (datadir, runnumber, part, mod)
17 
18  partnames = ['LBA', 'LBC', 'EBA', 'EBC']
19  partmap = {'LBA': 'A', 'LBC': 'C', 'EBA': 'D', 'EBC': 'E'}
20 
21 
22  digi_histos = [ROOT.TH1F('', 'Run %d: %s%02d MB%02d' % (runnumber, part, mod, (digi/2)+1), 200, -25., 25.) for digi in range(8)]
23 
24 
25  badlist = []
26 
27  for hist in digi_histos:
28  hist = cleanHisto(hist)
29 
30 
31  outfile = open('%s%d_bad_digi.txt' % (outdir, runnumber), 'a')
32 
33  if os.path.exists(filename):
34  print 'Using', filename
35  file = ROOT.TFile.Open(filename)
36  if file and not file.IsZombie():
37  tree = file.Get('h1000')
38  nevents = tree.GetEntries()
39  #nevents = 10000 # for testing
40 
41  for ev in range(1, nevents):
42 
43  tree.GetEntry(ev)
44 
45  pha = tree.m_cispar[5]
46  dac = tree.m_cispar[6]
47  cap = tree.m_cispar[7]
48  tfit = getattr(tree, 'tfit%s%02d' % (partmap[part], mod))
49 
50  if pha!=0 or dac!=120 or cap!=100:
51  continue
52  for pmt in range(48):
53  if checkPMTValid(partnames.index(part), pmt)=='noninst':
54  continue
55  pmt_tfit = tfit[pmt]
56 
57  if (pmt)/12 == 0:
58 
59  if (pmt)%12<6:
60  digi_histos[7].Fill(pmt_tfit, 1.0)
61  else:
62  digi_histos[6].Fill(pmt_tfit, 1.0)
63  elif (pmt)/12 == 1:
64 
65  if (pmt)%12<6:
66  digi_histos[5].Fill(pmt_tfit, 1.0)
67  else:
68  digi_histos[4].Fill(pmt_tfit, 1.0)
69  elif (pmt)/12 == 2:
70 
71  if (pmt)%12<6:
72  digi_histos[3].Fill(pmt_tfit, 1.0)
73  else:
74  digi_histos[2].Fill(pmt_tfit, 1.0)
75  elif (pmt)/12 == 3:
76 
77  if (pmt)%12<6:
78  digi_histos[1].Fill(pmt_tfit, 1.0)
79  else:
80  digi_histos[0].Fill(pmt_tfit, 1.0)
81 
82  file.Close()
83 
84  pack = outdir + 'digi_%d_%s%02d.ps' % (runnumber, part, mod)
85 
86 
87  badcans = '%s%d_bad_digi.ps' % (outdir, runnumber)
88 
89  can = SetupDraw()
90  can.Print('%s[' % pack)
91  can.cd()
92 
93  for digi in range(8):
94  if digi%2==0:
95  leg = ROOT.TLegend(0.8,0.8,0.95,1.0)
96  leg.SetFillColor(0)
97  leg.AddEntry(digi_histos[digi], 'Digi %02d' % (digi+1), 'f')
98  if digi_histos[digi].GetMaximum()<digi_histos[digi+1].GetMaximum():
99  digi_histos[digi].SetMaximum(digi_histos[digi+1].GetMaximum()+1000)
100  digi_histos[digi].Draw()
101  can.Modified()
102  can.Update()
103  elif digi%2==1:
104 
105 
106  digi_histos[digi].SetFillColor(ROOT.kRed)
107  leg.AddEntry(digi_histos[digi], 'Digi %02d' % (digi+1), 'f')
108  digi_histos[digi].Draw('same')
109  leg.Draw()
110  can.Modified()
111  can.Update()
112  can.Print(pack)
113  if abs(digi_histos[digi].GetMean()-digi_histos[digi-1].GetMean())>3:
114  outfile.write('%s %02d Digi %d-%d\n' % (part, mod, digi-1, digi))
115  can.Print('%s' % badcans)
116  leg.Clear()
117  can.Clear()
118 
119 
120  can.Print('%s]' % pack)
121 
122 
123  return badlist
124 
125 

◆ SetupDraw()

def show_digi_timing.SetupDraw ( )

Definition at line 143 of file show_digi_timing.py.

143 def SetupDraw():
144 
145  ROOT.gROOT.SetStyle("Plain")
146  ROOT.gStyle.SetCanvasBorderMode(0)
147  ROOT.gStyle.SetPadBorderMode(0)
148  ROOT.gStyle.SetTitleX(0.12)
149  #ROOT.gStyle.SetTitleY(1.0)
150  #ROOT.gStyle.SetTitleW(0.5)
151  #ROOT.gStyle.SetTitleH(0.2)
152  #ROOT.gStyle.SetStatX(0.64)
153  #ROOT.gStyle.SetStatY(0.64)
154  ROOT.gStyle.SetLabelFont(42,"XYZ")
155  ROOT.gStyle.SetTextFont(42)
156  ROOT.gStyle.SetOptStat(111110)
157  ROOT.gStyle.SetOptStat(0)
158  ROOT.gStyle.SetPalette(1)
159  ROOT.gStyle.SetTitleFont(42,"XYZ")
160  ROOT.gStyle.SetTitleBorderSize(0)
161  ROOT.gStyle.SetPadColor(0)
162  ROOT.gStyle.SetCanvasColor(0)
163  ROOT.gStyle.SetOptFit(0)
164 
165  c1 = ROOT.TCanvas()
166  c1.SetFrameBorderMode(0)
167  c1.SetBorderSize(0)
168  c1.SetBorderMode(0)
169  c1.SetFillColor(0)
170  c1.SetTickx()
171  c1.SetTicky()
172 
173  return c1
174 
175 
176 
show_digi_timing.cleanHisto
def cleanHisto(hist)
Definition: show_digi_timing.py:126
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
show_digi_timing.readModule
def readModule(part, mod, runnumber, datadir, outdir)
Definition: show_digi_timing.py:10
show_digi_timing.main
def main()
Definition: show_digi_timing.py:177
GetMean
TGraphErrors * GetMean(TH2F *histo)
Definition: TRTCalib_makeplots.cxx:3907
plotBeamSpotVxVal.range
range
Definition: plotBeamSpotVxVal.py:195
show_digi_timing.SetupDraw
def SetupDraw()
Definition: show_digi_timing.py:143
aux_functions.checkPMTValid
def checkPMTValid(ros, pmt)
Definition: aux_functions.py:2
Trk::open
@ open
Definition: BinningType.h:40
str
Definition: BTagTrackIpAccessor.cxx:11