Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-11-27 03:18:08

0001 #! /usr/bin/env python
0002 
0003 import sys
0004 import material
0005 import ROOT
0006 
0007 def usage():
0008   print("Usage...")
0009 
0010 def plot():
0011   if (len(sys.argv) < 2) or (sys.argv[1] not in ("r", "z", "eta")):
0012     usage()
0013     sys.exit(1)
0014   dir_name  = sys.argv[1]
0015   direction = material.Element.directions[dir_name]
0016   dir_label = material.Element.dir_labels[dir_name]
0017   layers = sys.argv[2:]
0018 
0019   elements = []
0020   for layer in layers:
0021     elements += material.parse(file("layers/" + layer))
0022   if len(elements) == 0:
0023     sys.exit(1)
0024 
0025   positions = set()
0026   for element in elements:
0027     positions.add(element.position[direction])
0028   positions = sorted(positions)
0029 
0030   data   = ROOT.TFile("TrackerRecMaterial.root")
0031   canvas = ROOT.TCanvas("material", "", 800, 600)
0032   if dir_name == "r":
0033     modules = ROOT.TH1F("modules", "material along R",   1200,    0, 120)
0034   elif dir_name == "z":
0035     modules = ROOT.TH1F("modules", "material along Z",   6000, -300, 300)
0036   else:
0037     modules = ROOT.TH1F("modules", "material along Eta",   60,   -3,   3)
0038   for position in positions:
0039     modules.SetBinContent(modules.GetXaxis().FindBin(position), 1)
0040   modules.SetLineColor(ROOT.kBlack)
0041   modules.SetFillStyle(1001)
0042   modules.SetFillColor(ROOT.kBlack)
0043   modules.SetMaximum(1)
0044   modules.Draw()
0045   dedx   = dict( (layer, data.Get("%s_dedx_vs_%s"   % (layer, dir_name))) for layer in layers )
0046   radlen = dict( (layer, data.Get("%s_radlen_vs_%s" % (layer, dir_name))) for layer in layers )
0047   for layer in layers:
0048     dedx[layer].SetLineColor(ROOT.kRed)
0049     dedx[layer].Draw("same")
0050     radlen[layer].SetLineColor(ROOT.kGreen)
0051     radlen[layer].Draw("same")
0052 
0053   canvas.Update()
0054 
0055   while(canvas):
0056     pass
0057 
0058 
0059 if __name__ == "__main__":
0060   plot()