File indexing completed on 2024-11-27 03:18:08
0001
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()