14 <input>muon-KLMValidation.root</input>
15 <contact>Martina Laurenza (martina.laurenza@roma3.infn.it)</contact>
16 <description>Creation of EKLM muon validation plots.</description>
21 from ROOT
import TNamed
23 ROOT.gROOT.SetBatch(
True)
24 input_file = ROOT.TFile(
'../muon-KLMValidation.root')
25 tree = input_file.Get(
'tree')
26 output_file = ROOT.TFile(
'EKLMMuon.root',
'recreate')
27 contact =
'Martina Laurenza (martina.laurenza@roma3.infn.it)'
32 h2dtres = ROOT.TH1F(
'muon_h2dtres',
'EKLM muon 2d hits time resolution',
34 h2dtres.SetXTitle(
'ns')
35 h2dtres.SetYTitle(
'Events')
36 tree.Draw(
'EKLMHit2ds.m_Time-EKLMHit2ds.m_MCTime>>muon_h2dtres')
37 functions = h2dtres.GetListOfFunctions()
38 functions.Add(TNamed(
'Description',
'Time resolution'))
39 functions.Add(TNamed(
'Check',
'No bias.'))
40 functions.Add(TNamed(
'Contact', contact))
41 functions.Add(TNamed(
'MetaOptions',
'shifter'))
43 section = ROOT.TH1F(
'Forward',
'Section for EKLMHit2ds', 2, 0.5, 2.5)
44 section.GetXaxis().SetTitle(
'1=backward 2=forward')
45 section.GetYaxis().SetTitle(
'Events')
46 tree.Draw(
'EKLMHit2ds.getSection()>>Forward',
'')
47 functions = section.GetListOfFunctions()
48 functions.Add(TNamed(
'Description',
49 'Flag indicating if a muon hit is in backward(1) or forward(2) EKLM'))
50 functions.Add(TNamed(
'Check',
'More hits in backward.'))
51 functions.Add(TNamed(
'Contact', contact))
52 functions.Add(TNamed(
'MetaOptions',
'shifter'))
54 sector = ROOT.TH1F(
'Sector',
'Sector for EKLMHit2ds', 6, -0.5, 5.5)
55 sector.GetXaxis().SetTitle(
'Sector #')
56 sector.GetYaxis().SetTitle(
'Events')
57 tree.Draw(
'EKLMHit2ds.getSector()>>Sector',
'')
58 functions = sector.GetListOfFunctions()
59 functions.Add(TNamed(
'Description',
'Sector number of muon hit'))
60 functions.Add(TNamed(
'Check',
'More hits in sector 1, then mostly flat.'))
61 functions.Add(TNamed(
'Contact', contact))
62 functions.Add(TNamed(
'MetaOptions',
'shifter'))
64 layer = ROOT.TH1F(
'Layer',
'Layer for EKLMHit2ds', 16, -0.5, 15.5)
65 layer.GetXaxis().SetTitle(
'Layer #')
66 layer.GetYaxis().SetTitle(
'Events')
67 tree.Draw(
'EKLMHit2ds.getLayer()>>Layer',
'')
68 functions = layer.GetListOfFunctions()
69 functions.Add(TNamed(
'Description',
'Layer number of muon hit'))
70 functions.Add(TNamed(
'Check',
'Number of events decreases with number of layer.'))
71 functions.Add(TNamed(
'Contact', contact))
72 functions.Add(TNamed(
'MetaOptions',
'shifter'))
74 time = ROOT.TH1F(
'Time',
'Hit time for EKLMHit2ds', 150, 0.0, 30.0)
75 time.GetXaxis().SetTitle(
't (ns)')
76 time.GetYaxis().SetTitle(
'Events')
77 tree.Draw(
'EKLMHit2ds.getTime()>>Time',
'')
78 functions = time.GetListOfFunctions()
79 functions.Add(TNamed(
'Description',
'Time of muon hit in EKLM'))
80 functions.Add(TNamed(
'Check',
'Mean around 13 ns.'))
81 functions.Add(TNamed(
'Contact', contact))
82 functions.Add(TNamed(
'MetaOptions',
'shifter'))
86 nPE = ROOT.TH1F(
'nGenPE',
'Generated PE in EKLM', 100, 0.0, 200)
87 nPE.GetXaxis().SetTitle(
'# generated PE')
88 nPE.GetYaxis().SetTitle(
'Events')
89 tree.Draw(
'KLMDigits.getNGeneratedPhotoelectrons()>>nGenPE',
90 'KLMDigits.getSubdetector()==2')
91 functions = nPE.GetListOfFunctions()
92 functions.Add(TNamed(
'Description',
'Number of generated photoelectrons in EKLM.'))
93 functions.Add(TNamed(
'Check',
'Mean around 37.'))
94 functions.Add(TNamed(
'Contact', contact))
95 functions.Add(TNamed(
'MetaOptions',
'expert'))
97 edep = ROOT.TH1F(
'edep',
'Energy deposition for KLMDigits', 150, 0.0, 15)
98 edep.GetXaxis().SetTitle(
'E (MeV)')
99 edep.GetYaxis().SetTitle(
'Events')
100 tree.Draw(
'EKLMHit2ds.getEnergyDeposit()>>edep',
'')
101 functions = edep.GetListOfFunctions()
102 functions.Add(TNamed(
'Description',
'dE/dx energy deposition of muon hit'))
103 functions.Add(TNamed(
'Check',
'Peak around 3 MeV, with mean 3.7 MeV.'))
104 functions.Add(TNamed(
'Contact', contact))
105 functions.Add(TNamed(
'MetaOptions',
'expert'))