5 import os, sys, ROOT, argparse
7 if __name__ ==
"__main__":
8 parser = argparse.ArgumentParser(prog=
'createDCubeDigiHistograms', formatter_class=argparse.ArgumentDefaultsHelpFormatter)
9 parser.add_argument(
'-i',
'--inputFile', help=
'choose input ROOT file', default=
'NSWPRDValAlg.digi.ntuple.root', type=str)
10 parser.add_argument(
'-o',
'--outputFile', help=
'choose output ROOT file', default=
'NSWPRDValAlg.digi.dcube.root', type=str)
11 parser.add_argument(
'--doRPC', help=
'turn off BIS78 RPC if using Run2 input ROOT file', default=
True, action=
'store_true')
12 parser.add_argument(
'--doMDT', help=
'turn off sMDT if using Run2 input ROOT file', default=
True, action=
'store_true')
14 Options = parser.parse_args()
16 ROOT.gROOT.SetBatch(
True)
18 if not os.path.exists(Options.inputFile):
19 print (
'ERROR: File %s does not exist'%Options.inputFile)
22 inputFile = ROOT.TFile(Options.inputFile,
"READ")
24 print (
'ERROR: Failed to open file %s'%Options.inputFile)
26 inputTree = inputFile.Get(
"HitValidTree")
28 print (
'ERROR: HitValidTree does not exist in file %s'%Options.inputFile)
31 nEntries = inputTree.GetEntries()
33 print (
'ERROR: HitValidTree of file %s has 0 entries'%Options.inputFile)
36 outputFile = ROOT.TFile(Options.outputFile,
"RECREATE")
38 print (
'ERROR: Failed to open file %s'%Options.outputFile)
42 outputFile.mkdir(
"digitisation/")
43 ODir = outputFile.GetDirectory(
"digitisation/")
48 truthPt = ROOT.TH1F(
"truthPt",
"truthPt;p_{T} [MeV]",100,0,1000)
49 truthEta = ROOT.TH1F(
"truthEta",
"truthEta;#eta",20,-10,10)
50 truthPhi = ROOT.TH1F(
"truthPhi",
"truthPhi;#phi",20,-10,10)
53 rpclocalX = ROOT.TH1F(
"rpclocalX",
"rpclocalX;Digits_RPC_localPosX [mm]",100,-1200,1200)
54 rpclocalY = ROOT.TH1F(
"rpclocalY",
"rpclocalY;Digits_RPC_localPosY [mm]",100,-1200,1200)
55 rpcStationEta = ROOT.TH1F(
"rpcStationEta",
"rpcStationEta;Digits_RPC_stationEta",20,-10,10)
56 rpcStationPhi = ROOT.TH1F(
"rpcStationPhi",
"rpcStationPhi;Digits_RPC_stationPhi",10,0,10)
57 rpcglobalX = ROOT.TH1F(
"rpcglobalX",
"rpcglobalX;Digits_RPC_globalPosX [mm]",100,-13000,12000)
58 rpcglobalY = ROOT.TH1F(
"rpcglobalY",
"rpcglobalY;Digits_RPC_globalPosY [mm]",100,-15000,14000)
59 rpcglobalZ = ROOT.TH1F(
"rpcglobalZ",
"rpcglobalZ;Digits_RPC_globalPosZ [mm]",100,-15000,15000)
60 rpcGasGap = ROOT.TH1F(
"rpcGasGap",
"rpcGasGap;Digits_RPC_GasGap",5,0,5)
61 rpcdoubletR = ROOT.TH1F(
"rpcdoubletR",
"rpcdoubletR;Digits_RPC_doubletR",4,0,4)
62 rpcdoubletZ = ROOT.TH1F(
"rpcdoubletZ",
"rpcdoubletZ;Digits_RPC_doubletZ",4,0,4)
63 rpcdoubletPhi = ROOT.TH1F(
"rpcdoubletPhi",
"rpcdoubletPhi;Digits_RPC_doubletPhi",4,0,4)
64 rpcTime = ROOT.TH1F(
"rpcTime",
"rpcTime;Digits_RPC_time",100,0,100)
65 rpcStrip = ROOT.TH1F(
"rpcStrip",
"rpcStrip;Digits_RPC_strip",10,0,80)
66 rpcStripNumber = ROOT.TH1F(
"rpcStripNumber",
"rpcStripNumber;Digits_RPC_stripNumber",10,0,80)
67 rpcMeasuresPhi = ROOT.TH1F(
"rpcMeasuresPhi",
"rpcMeasuresPhi;Digits_RPC_measuresPhi",2,0,2)
68 rpcChannel = ROOT.TH1F(
"rpcChannel",
"rpcChannel;Digits_RPC_channel",10,0,10)
69 rpcglobalXY = ROOT.TH2F(
"rpcglobalXY",
"rpcglobalXY;Digits_rpc_globalPosX [mm];Digits_rpc_globalPosY [mm]",100,-15000,15000,100,-15000,15000)
70 rpcglobalZY = ROOT.TH2F(
"rpcglobalZY",
"rpcglobalZY;Digits_rpc_globalPosZ [mm];Digits_rpc_globalPosY [mm]",100,-15000,15000,100,-15000,15000)
71 rpcglobalZX = ROOT.TH2F(
"rpcglobalZX",
"rpcglobalZX;Digits_rpc_globalPosZ [mm];Digits_rpc_globalPosX [mm]",100,-15000,15000,100,-15000,15000)
74 bis_rpclocalX = ROOT.TH1F(
"bis_rpclocalX",
"bis_rpclocalX;Digits_bis_rpc_localPosX [mm]",100,-1000,1000)
75 bis_rpclocalY = ROOT.TH1F(
"bis_rpclocalY",
"bis_rpclocalY;Digits_bis_rpc_localPosY [mm]",100,-1000,1000)
76 bis7_rpclocalX = ROOT.TH1F(
"bis7_rpclocalX",
"bis7_rpclocalX;Digits_bis7_rpc_localPosX [mm]",100,-1000,1000)
77 bis7_rpclocalY = ROOT.TH1F(
"bis7_rpclocalY",
"bis7_rpclocalY;Digits_bis7_rpc_localPosY [mm]",100,-1000,1000)
78 bis8_rpclocalX = ROOT.TH1F(
"bis8_rpclocalX",
"bis8_rpclocalX;Digits_bis8_rpc_localPosX [mm]",100,-1000,1000)
79 bis8_rpclocalY = ROOT.TH1F(
"bis8_rpclocalY",
"bis8_rpclocalY;Digits_bis8_rpc_localPosY [mm]",100,-1000,1000)
80 bis_rpcStationEta = ROOT.TH1F(
"bis_rpcStationEta",
"bis_rpcStationEta;Digits_bis_rpc_stationEta",20,-10,10)
81 bis_rpcStationPhi = ROOT.TH1F(
"bis_rpcStationPhi",
"bis_rpcStationPhi;Digits_bis_rpc_stationPhi",10,0,10)
82 bis_rpcglobalX = ROOT.TH1F(
"bis_rpcglobalX",
"bis_rpcglobalX;Digits_bis_rpc_globalPosX [mm]",100,-5000,5000)
83 bis_rpcglobalY = ROOT.TH1F(
"bis_rpcglobalY",
"bis_rpcglobalY;Digits_bis_rpc_globalPosY [mm]",100,-5000,5000)
84 bis_rpcglobalZ = ROOT.TH1F(
"bis_rpcglobalZ",
"bis_rpcglobalZ;Digits_bis_rpc_globalPosZ [mm]",100,-10000,10000)
85 bis_rpcGasGap = ROOT.TH1F(
"bis_rpcGasGap",
"bis_rpcGasGap;Digits_bis_rpc_GasGap",5,0,5)
86 bis_rpcdoubletR = ROOT.TH1F(
"bis_rpcdoubletR",
"bis_rpcdoubletR;Digits_bis_rpc_doubletR",4,0,4)
87 bis_rpcdoubletZ = ROOT.TH1F(
"bis_rpcdoubletZ",
"bis_rpcdoubletZ;Digits_bis_rpc_doubletZ",4,0,4)
88 bis_rpcdoubletPhi = ROOT.TH1F(
"bis_rpcdoubletPhi",
"bis_rpcdoubletPhi;Digits_bis_rpc_doubletPhi",4,0,4)
89 bis_rpcTime = ROOT.TH1F(
"bis_rpcTime",
"bis_rpcTime;Digits_bis_rpc_time [ns]",80,0,40)
90 bis7_rpcTime = ROOT.TH1F(
"bis7_rpcTime",
"bis7_rpcTime;Digits_bis7_rpc_time [ns]",80,0,40)
91 bis8_rpcTime = ROOT.TH1F(
"bis8_rpcTime",
"bis8_rpcTime;Digits_bis8_rpc_time [ns]",80,0,40)
92 bis_rpcStrip = ROOT.TH1F(
"bis_rpcStrip",
"bis_rpcStrip;Digits_bis_rpc_strip",10,0,10)
93 bis_rpcStripNumber = ROOT.TH1F(
"bis_rpcStripNumber",
"bis_rpcStripNumber;Digits_bis_rpc_stripNumber",10,0,80)
94 bis_rpcMeasuresPhi = ROOT.TH1F(
"bis_rpcMeasuresPhi",
"bis_rpcMeasuresPhi;Digits_bis_rpc_measuresPhi",2,0,2)
95 bis_rpcChannel = ROOT.TH1F(
"bis_rpcChannel",
"bis_rpcChannel;Digits_bis_rpc_channel",10,0,10)
96 bis_rpcglobalXY = ROOT.TH2F(
"bis_rpcglobalXY",
"bis_rpcglobalXY;Digits_bis_rpc_globalPosX [mm];Digits_bis_rpc_globalPosY [mm]",100,-5000,5000,100,-5000,5000)
97 bis_rpcglobalZY = ROOT.TH2F(
"bis_rpcglobalZY",
"bis_rpcglobalZY;Digits_bis_rpc_globalPosZ [mm];Digits_bis_rpc_globalPosY [mm]",100,-15000,15000,100,-5000,5000)
98 bis_rpcglobalZX = ROOT.TH2F(
"bis_rpcglobalZX",
"bis_rpcglobalZX;Digits_bis_rpc_globalPosZ [mm];Digits_bis_rpc_globalPosX [mm]",100,-15000,15000,100,-5000,5000)
102 mdtlocalX = ROOT.TH1F(
"mdtlocalX",
"mdtlocalX;Digits_MDT_localPosX [mm]",100,-1500,1500)
103 mdtlocalY = ROOT.TH1F(
"mdtlocalY",
"mdtlocalY;Digits_MDT_localPosY [mm]",100,-1500,1500)
104 mdtStationEta = ROOT.TH1F(
"mdtStationEta",
"mdtStationEta;Digits_MDT_stationEta",20,-10,10)
105 mdtStationPhi = ROOT.TH1F(
"mdtStationPhi",
"mdtStationPhi;Digits_MDT_stationPhi",10,0,10)
106 mdtglobalX = ROOT.TH1F(
"mdtglobalX",
"mdtglobalX;Digits_MDT_globalPosX [mm]",100,-13000,12000)
107 mdtglobalY = ROOT.TH1F(
"mdtglobalY",
"mdtglobalY;Digits_MDT_globalPosY [mm]",100,-15000,14000)
108 mdtglobalZ = ROOT.TH1F(
"mdtglobalZ",
"mdtglobalZ;Digits_MDT_globalPosZ [mm]",100,-26000,26000)
109 mdtNumberOfMultilayers = ROOT.TH1F(
"mdtNumberOfMultilayers",
"mdtNumberOfMultilayers;Digits_MDT_numberOfMultilayers",4,0,4)
110 mdtTube = ROOT.TH1F(
"mdtTube",
"mdtTube;Digits_MDT_tube",100,0,100)
111 mdtTubeLayer = ROOT.TH1F(
"mdtTubeLayer",
"mdtTubeLayer;Digits_MDT_tubeLayer",6,0,6)
112 mdtMultilayer = ROOT.TH1F(
"mdtMultilayer",
"mdtMultilayer;Digits_MDT_Multilayer",4,0,4)
113 mdtTime = ROOT.TH1F(
"mdtTime",
"mdtTime;Digits_MDT_time [ns]",100,0,2000)
114 mdtCharge = ROOT.TH1F(
"mdtCharge",
"mdtCharge;Digits_MDT_charge [e]",100,0,600)
115 mdtChannel = ROOT.TH1F(
"mdtChannel",
"mdtChannel;Digits_MDT_channel",10,0,10)
116 mdtglobalXY = ROOT.TH2F(
"mdtglobalXY",
"mdtglobalXY;Digits_mdt_globalPosX [mm];Digits_mdt_globalPosY [mm]",100,-15000,15000,100,-15000,15000)
117 mdtglobalZY = ROOT.TH2F(
"mdtglobalZY",
"mdtglobalZY;Digits_mdt_globalPosZ [mm];Digits_mdt_globalPosY [mm]",100,-15000,15000,100,-15000,15000)
118 mdtglobalZX = ROOT.TH2F(
"mdtglobalZX",
"mdtglobalZX;Digits_mdt_globalPosZ [mm];Digits_mdt_globalPosX [mm]",100,-15000,15000,100,-15000,15000)
119 mdtlocalTubePosX = ROOT.TH1F(
"mdtlocalTubePosX",
"mdtlocalTubePosX;Digits_MDT_localTubePosX [mm]",100,-100,100)
120 mdtlocalTubePosY = ROOT.TH1F(
"mdtlocalTubePosY",
"mdtlocalTubePosY;Digits_MDT_localTubePosY [mm]",100,-100,100)
121 mdtlocalTubePosZ = ROOT.TH1F(
"mdtlocalTubePosZ",
"mdtlocalTubePosZ;Digits_MDT_localTubePosZ [mm]",100,-100,100)
124 bis_mdtlocalX = ROOT.TH1F(
"bis_mdtlocalX",
"bis_mdtlocalX;Digits_bis_mdt_localPosX [mm]",100,-1500,1500)
125 bis_mdtlocalY = ROOT.TH1F(
"bis_mdtlocalY",
"bis_mdtlocalY;Digits_bis_mdt_localPosY [mm]",100,-1500,1500)
126 bis_mdtlocalZ = ROOT.TH1F(
"bis_mdtlocalZ",
"bis_mdtlocalZ;Digits_bis_mdt_localPosZ [mm]",960,-900,900)
127 bis_mdtStationEta = ROOT.TH1F(
"bis_mdtStationEta",
"bis_mdtStationEta;Digits_bis_mdt_stationEta",20,-10,10)
128 bis_mdtStationPhi = ROOT.TH1F(
"bis_mdtStationPhi",
"bis_mdtStationPhi;Digits_bis_mdt_stationPhi",10,0,10)
129 bis_mdtglobalX = ROOT.TH1F(
"bis_mdtglobalX",
"bis_mdtglobalX;Digits_bis_mdt_globalPosX [mm]",100,-5000,5000)
130 bis_mdtglobalY = ROOT.TH1F(
"bis_mdtglobalY",
"bis_mdtglobalY;Digits_bis_mdt_globalPosY [mm]",100,-5000,5000)
131 bis_mdtglobalZ = ROOT.TH1F(
"bis_mdtglobalZ",
"bis_mdtglobalZ;Digits_bis_mdt_globalPosZ [mm]",100,-10000,10000)
132 bis_mdtNumberOfMultilayers = ROOT.TH1F(
"bis_mdtNumberOfMultilayers",
"bis_mdtNumberOfMultilayers;Digits_bis_mdt_numberOfMultilayers",4,0,4)
133 bis_mdtTube = ROOT.TH1F(
"bis_mdtTube",
"bis_mdtTube;Digits_bis_mdt_tube",100,0,100)
134 bis_mdtTubeLayer = ROOT.TH1F(
"bis_mdtTubeLayer",
"bis_mdtTubeLayer;Digits_bis_mdt_tubeLayer",6,0,6)
135 bis_mdtMultilayer = ROOT.TH1F(
"bis_mdtMultilayer",
"bis_mdtMultilayer;Digits_bis_mdt_Multilayer",4,0,4)
136 bis_mdtTime = ROOT.TH1F(
"bis_mdtTime",
"bis_mdtTime;Digits_bis_mdt_time [ns]",100,0,2000)
137 bis_mdtCharge = ROOT.TH1F(
"bis_mdtCharge",
"bis_mdtCharge;Digits_bis_mdt_charge [e]",100,0,600)
138 bis_mdtChannel = ROOT.TH1F(
"bis_mdtChannel",
"bis_mdtChannel;Digits_bis_mdt_channel",10,0,10)
139 bis_mdtglobalXY = ROOT.TH2F(
"bis_mdtglobalXY",
"bis_mdtglobalXY;Digits_bis_mdt_globalPosX [mm];Digits_bis_mdt_globalPosY [mm]",100,-5000,5000,100,-5000,5000)
140 bis_mdtglobalZY = ROOT.TH2F(
"bis_mdtglobalZY",
"bis_mdtglobalZY;Digits_bis_mdt_globalPosZ [mm];Digits_bis_mdt_globalPosY [mm]",100,-15000,15000,100,-5000,5000)
141 bis_mdtglobalZX = ROOT.TH2F(
"bis_mdtglobalZX",
"bis_mdtglobalZX;Digits_bis_mdt_globalPosZ [mm];Digits_bis_mdt_globalPosX [mm]",100,-15000,15000,100,-5000,5000)
142 bis_mdtlocalTubePosX = ROOT.TH1F(
"bis_mdtlocalTubePosX",
"bis_mdtlocalTubePosX;Digits_MDT_localTubePosX [mm]",120,-60,60)
143 bis_mdtlocalTubePosY = ROOT.TH1F(
"bis_mdtlocalTubePosY",
"bis_mdtlocalTubePosY;Digits_MDT_localTubePosY [mm]",960,-900,900)
144 bis_mdtlocalTubePosZ = ROOT.TH1F(
"bis_mdtlocalTubePosZ",
"bis_mdtlocalTubePosZ;Digits_MDT_localTubePosZ [mm]",960,-900,900)
146 bis_mdtlocalTubePosXY = ROOT.TH2F(
"bis_mdtlocalTubePosXY",
"bis_mdtlocalTubePosXY;Digits_MDT_localTubePosX [mm];Digits_MDT_localTubePosY [mm]",60,-30,30,100,-100,100)
147 bis_mdtlocalTubePosZY = ROOT.TH2F(
"bis_mdtlocalTubePosZY",
"bis_mdtlocalTubePosZY;Digits_MDT_localTubePosZ [mm];Digits_MDT_localTubePosY [mm]",100,-1200,1200,100,-100,100)
148 bis_mdtlocalTubePosZX = ROOT.TH2F(
"bis_mdtlocalTubePosZX",
"bis_mdtlocalTubePosZX;Digits_MDT_localTubePosZ [mm];Digits_MDT_localTubePosX [mm]",48,1,180,60,-30,30)
150 for i
in range(nEntries):
151 inputTree.GetEntry(i)
154 for ntruth
in range(0,len(inputTree.MuEntry_ParticlePt)):
155 truthPt.Fill(inputTree.MuEntry_ParticlePt[ntruth])
156 truthEta.Fill(inputTree.MuEntry_ParticleEta[ntruth])
157 truthPhi.Fill(inputTree.MuEntry_ParticlePhi[ntruth])
159 if Options.doRPC ==
True:
160 for nrpcHit
in range(0,inputTree.Digits_RPC):
161 rpclocalX.Fill(inputTree.Digits_RPC_localPosX[nrpcHit])
162 rpclocalY.Fill(inputTree.Digits_RPC_localPosY[nrpcHit])
163 rpcStationEta.Fill(inputTree.Digits_RPC_stationEta[nrpcHit])
164 rpcStationPhi.Fill(inputTree.Digits_RPC_stationPhi[nrpcHit])
165 rpcglobalX.Fill(inputTree.Digits_RPC_globalPosX[nrpcHit])
166 rpcglobalY.Fill(inputTree.Digits_RPC_globalPosY[nrpcHit])
167 rpcglobalZ.Fill(inputTree.Digits_RPC_globalPosZ[nrpcHit])
168 rpcGasGap.Fill(inputTree.Digits_RPC_GasGap[nrpcHit])
169 rpcdoubletR.Fill(inputTree.Digits_RPC_doubletR[nrpcHit])
170 rpcdoubletZ.Fill(inputTree.Digits_RPC_doubletZ[nrpcHit])
171 rpcdoubletPhi.Fill(inputTree.Digits_RPC_doubletPhi[nrpcHit])
172 rpcMeasuresPhi.Fill(inputTree.Digits_RPC_measuresPhi[nrpcHit])
173 rpcTime.Fill(inputTree.Digits_RPC_time[nrpcHit])
174 rpcStrip.Fill(inputTree.Digits_RPC_strip[nrpcHit])
175 rpcStripNumber.Fill(inputTree.Digits_RPC_stripNumber[nrpcHit])
176 rpcglobalXY.Fill(inputTree.Digits_RPC_globalPosX[nrpcHit],inputTree.Digits_RPC_globalPosY[nrpcHit])
177 rpcglobalZY.Fill(inputTree.Digits_RPC_globalPosZ[nrpcHit],inputTree.Digits_RPC_globalPosY[nrpcHit])
178 rpcglobalZX.Fill(inputTree.Digits_RPC_globalPosZ[nrpcHit],inputTree.Digits_RPC_globalPosX[nrpcHit])
181 if inputTree.Digits_RPC_stationName[nrpcHit]==
"BIS" and inputTree.Digits_RPC_stationEta[nrpcHit]>6:
183 if inputTree.Digits_RPC_measuresPhi[nrpcHit]==0:
184 bis_rpclocalY.Fill(inputTree.Digits_RPC_localPosX[nrpcHit])
186 elif inputTree.Digits_RPC_measuresPhi[nrpcHit]==1:
187 bis_rpclocalX.Fill(inputTree.Digits_RPC_localPosX[nrpcHit])
190 if inputTree.Digits_RPC_globalPosZ[nrpcHit]<6700:
191 bis7_rpcTime.Fill(inputTree.Digits_RPC_time[nrpcHit])
192 if inputTree.Digits_RPC_measuresPhi[nrpcHit]==0:
193 bis7_rpclocalY.Fill(inputTree.Digits_RPC_localPosX[nrpcHit])
194 elif inputTree.Digits_RPC_measuresPhi[nrpcHit]==1:
195 bis7_rpclocalX.Fill(inputTree.Digits_RPC_localPosX[nrpcHit])
198 bis8_rpcTime.Fill(inputTree.Digits_RPC_time[nrpcHit])
199 if inputTree.Digits_RPC_measuresPhi[nrpcHit]==0:
200 bis8_rpclocalY.Fill(inputTree.Digits_RPC_localPosX[nrpcHit])
201 elif inputTree.Digits_RPC_measuresPhi[nrpcHit]==1:
202 bis8_rpclocalX.Fill(inputTree.Digits_RPC_localPosX[nrpcHit])
204 bis_rpcStationEta.Fill(inputTree.Digits_RPC_stationEta[nrpcHit])
205 bis_rpcStationPhi.Fill(inputTree.Digits_RPC_stationPhi[nrpcHit])
206 bis_rpcglobalX.Fill(inputTree.Digits_RPC_globalPosX[nrpcHit])
207 bis_rpcglobalY.Fill(inputTree.Digits_RPC_globalPosY[nrpcHit])
208 bis_rpcglobalZ.Fill(inputTree.Digits_RPC_globalPosZ[nrpcHit])
209 bis_rpcGasGap.Fill(inputTree.Digits_RPC_GasGap[nrpcHit])
210 bis_rpcdoubletR.Fill(inputTree.Digits_RPC_doubletR[nrpcHit])
211 bis_rpcdoubletZ.Fill(inputTree.Digits_RPC_doubletZ[nrpcHit])
212 bis_rpcdoubletPhi.Fill(inputTree.Digits_RPC_doubletPhi[nrpcHit])
213 bis_rpcMeasuresPhi.Fill(inputTree.Digits_RPC_measuresPhi[nrpcHit])
214 bis_rpcTime.Fill(inputTree.Digits_RPC_time[nrpcHit])
215 bis_rpcStrip.Fill(inputTree.Digits_RPC_strip[nrpcHit])
216 bis_rpcStripNumber.Fill(inputTree.Digits_RPC_stripNumber[nrpcHit])
217 bis_rpcglobalXY.Fill(inputTree.Digits_RPC_globalPosX[nrpcHit],inputTree.Digits_RPC_globalPosY[nrpcHit])
218 bis_rpcglobalZY.Fill(inputTree.Digits_RPC_globalPosZ[nrpcHit],inputTree.Digits_RPC_globalPosY[nrpcHit])
219 bis_rpcglobalZX.Fill(inputTree.Digits_RPC_globalPosZ[nrpcHit],inputTree.Digits_RPC_globalPosX[nrpcHit])
223 if Options.doMDT ==
True:
224 for nmdtHit
in range(0,inputTree.Digits_MDT):
225 mdtlocalTubePosX.Fill(inputTree.Digits_MDT_localTubePosX[nmdtHit])
226 mdtlocalTubePosY.Fill(inputTree.Digits_MDT_localTubePosY[nmdtHit])
227 mdtlocalTubePosZ.Fill(inputTree.Digits_MDT_localTubePosZ[nmdtHit])
228 mdtStationEta.Fill(inputTree.Digits_MDT_stationEta[nmdtHit])
229 mdtStationPhi.Fill(inputTree.Digits_MDT_stationPhi[nmdtHit])
230 mdtglobalX.Fill(inputTree.Digits_MDT_globalPosX[nmdtHit])
231 mdtglobalY.Fill(inputTree.Digits_MDT_globalPosY[nmdtHit])
232 mdtglobalZ.Fill(inputTree.Digits_MDT_globalPosZ[nmdtHit])
233 mdtNumberOfMultilayers.Fill(inputTree.Digits_MDT_numberOfMultilayers[nmdtHit])
234 mdtTube.Fill(inputTree.Digits_MDT_tube[nmdtHit])
235 mdtTubeLayer.Fill(inputTree.Digits_MDT_tubeLayer[nmdtHit])
236 mdtMultilayer.Fill(inputTree.Digits_MDT_multilayer[nmdtHit])
237 mdtTime.Fill(inputTree.Digits_MDT_time[nmdtHit])
238 mdtCharge.Fill(inputTree.Digits_MDT_charge[nmdtHit])
239 mdtglobalXY.Fill(inputTree.Digits_MDT_globalPosX[nmdtHit],inputTree.Digits_MDT_globalPosY[nmdtHit])
240 mdtglobalZY.Fill(inputTree.Digits_MDT_globalPosZ[nmdtHit],inputTree.Digits_MDT_globalPosY[nmdtHit])
241 mdtglobalZX.Fill(inputTree.Digits_MDT_globalPosZ[nmdtHit],inputTree.Digits_MDT_globalPosX[nmdtHit])
244 if inputTree.Digits_MDT_stationName[nmdtHit]==
"BIS" and inputTree.Digits_MDT_stationEta[nmdtHit]>6:
245 bis_mdtlocalTubePosX.Fill(inputTree.Digits_MDT_localTubePosX[nmdtHit])
246 bis_mdtlocalTubePosY.Fill(inputTree.Digits_MDT_localTubePosY[nmdtHit])
247 bis_mdtlocalTubePosZ.Fill(inputTree.Digits_MDT_localTubePosZ[nmdtHit])
248 bis_mdtStationEta.Fill(inputTree.Digits_MDT_stationEta[nmdtHit])
249 bis_mdtStationPhi.Fill(inputTree.Digits_MDT_stationPhi[nmdtHit])
250 bis_mdtglobalX.Fill(inputTree.Digits_MDT_globalPosX[nmdtHit])
251 bis_mdtglobalY.Fill(inputTree.Digits_MDT_globalPosY[nmdtHit])
252 bis_mdtglobalZ.Fill(inputTree.Digits_MDT_globalPosZ[nmdtHit])
253 bis_mdtNumberOfMultilayers.Fill(inputTree.Digits_MDT_numberOfMultilayers[nmdtHit])
254 bis_mdtTube.Fill(inputTree.Digits_MDT_tube[nmdtHit])
255 bis_mdtTubeLayer.Fill(inputTree.Digits_MDT_tubeLayer[nmdtHit])
256 bis_mdtMultilayer.Fill(inputTree.Digits_MDT_multilayer[nmdtHit])
257 bis_mdtTime.Fill(inputTree.Digits_MDT_time[nmdtHit])
258 bis_mdtCharge.Fill(inputTree.Digits_MDT_charge[nmdtHit])
259 bis_mdtglobalXY.Fill(inputTree.Digits_MDT_globalPosX[nmdtHit],inputTree.Digits_MDT_globalPosY[nmdtHit])
260 bis_mdtglobalZY.Fill(inputTree.Digits_MDT_globalPosZ[nmdtHit],inputTree.Digits_MDT_globalPosY[nmdtHit])
261 bis_mdtglobalZX.Fill(inputTree.Digits_MDT_globalPosZ[nmdtHit],inputTree.Digits_MDT_globalPosX[nmdtHit])
262 bis_mdtlocalTubePosXY.Fill(inputTree.Digits_MDT_localTubePosX[nmdtHit],inputTree.Digits_MDT_localTubePosY[nmdtHit])
263 bis_mdtlocalTubePosZY.Fill(inputTree.Digits_MDT_localTubePosZ[nmdtHit],inputTree.Digits_MDT_localTubePosY[nmdtHit])
264 bis_mdtlocalTubePosZX.Fill(inputTree.Digits_MDT_localTubePosZ[nmdtHit],inputTree.Digits_MDT_localTubePosX[nmdtHit])
270 ODir.WriteTObject(truthPt, truthPt.GetName())
271 ODir.WriteTObject(truthEta, truthEta.GetName())
272 ODir.WriteTObject(truthPhi, truthPhi.GetName())
274 ODir.WriteTObject(rpclocalX, rpclocalX.GetName())
275 ODir.WriteTObject(rpclocalY, rpclocalY.GetName())
276 ODir.WriteTObject(rpcStationEta, rpcStationEta.GetName())
277 ODir.WriteTObject(rpcStationPhi, rpcStationPhi.GetName())
278 ODir.WriteTObject(rpcglobalX, rpcglobalX.GetName())
279 ODir.WriteTObject(rpcglobalY, rpcglobalY.GetName())
280 ODir.WriteTObject(rpcglobalZ, rpcglobalZ.GetName())
281 ODir.WriteTObject(rpcGasGap, rpcGasGap.GetName())
282 ODir.WriteTObject(rpcStrip, rpcStrip.GetName())
283 ODir.WriteTObject(rpcStripNumber, rpcStripNumber.GetName())
284 ODir.WriteTObject(rpcMeasuresPhi, rpcMeasuresPhi.GetName())
285 ODir.WriteTObject(rpcChannel, rpcChannel.GetName())
286 ODir.WriteTObject(rpcTime, rpcTime.GetName())
287 ODir.WriteTObject(rpcdoubletR, rpcdoubletR.GetName())
288 ODir.WriteTObject(rpcdoubletZ, rpcdoubletZ.GetName())
289 ODir.WriteTObject(rpcdoubletPhi, rpcdoubletPhi.GetName())
290 ODir.WriteTObject(rpcglobalXY, rpcglobalXY.GetName())
291 ODir.WriteTObject(rpcglobalZY, rpcglobalZY.GetName())
292 ODir.WriteTObject(rpcglobalZX, rpcglobalZX.GetName())
294 ODir.WriteTObject(bis_rpclocalX, bis_rpclocalX.GetName())
295 ODir.WriteTObject(bis_rpclocalY, bis_rpclocalY.GetName())
296 ODir.WriteTObject(bis_rpcStationEta, bis_rpcStationEta.GetName())
297 ODir.WriteTObject(bis_rpcStationPhi, bis_rpcStationPhi.GetName())
298 ODir.WriteTObject(bis_rpcglobalX, bis_rpcglobalX.GetName())
299 ODir.WriteTObject(bis_rpcglobalY, bis_rpcglobalY.GetName())
300 ODir.WriteTObject(bis_rpcglobalZ, bis_rpcglobalZ.GetName())
301 ODir.WriteTObject(bis_rpcGasGap, bis_rpcGasGap.GetName())
302 ODir.WriteTObject(bis_rpcStrip, bis_rpcStrip.GetName())
303 ODir.WriteTObject(bis_rpcStripNumber, bis_rpcStripNumber.GetName())
304 ODir.WriteTObject(bis_rpcMeasuresPhi, bis_rpcMeasuresPhi.GetName())
305 ODir.WriteTObject(bis_rpcChannel, bis_rpcChannel.GetName())
306 ODir.WriteTObject(bis_rpcTime, bis_rpcTime.GetName())
307 ODir.WriteTObject(bis7_rpcTime, bis7_rpcTime.GetName())
308 ODir.WriteTObject(bis8_rpcTime, bis8_rpcTime.GetName())
309 ODir.WriteTObject(bis_rpcdoubletR, bis_rpcdoubletR.GetName())
310 ODir.WriteTObject(bis_rpcdoubletZ, bis_rpcdoubletZ.GetName())
311 ODir.WriteTObject(bis_rpcdoubletPhi, bis_rpcdoubletPhi.GetName())
312 ODir.WriteTObject(bis_rpcglobalXY, bis_rpcglobalXY.GetName())
313 ODir.WriteTObject(bis_rpcglobalZY, bis_rpcglobalZY.GetName())
314 ODir.WriteTObject(bis_rpcglobalZX, bis_rpcglobalZX.GetName())
316 ODir.WriteTObject(mdtlocalTubePosX, mdtlocalTubePosX.GetName())
317 ODir.WriteTObject(mdtlocalTubePosY, mdtlocalTubePosY.GetName())
318 ODir.WriteTObject(mdtlocalTubePosZ, mdtlocalTubePosZ.GetName())
319 ODir.WriteTObject(mdtStationEta, mdtStationEta.GetName())
320 ODir.WriteTObject(mdtStationPhi, mdtStationPhi.GetName())
321 ODir.WriteTObject(mdtglobalX, mdtglobalX.GetName())
322 ODir.WriteTObject(mdtglobalY, mdtglobalY.GetName())
323 ODir.WriteTObject(mdtglobalZ, mdtglobalZ.GetName())
324 ODir.WriteTObject(mdtNumberOfMultilayers, mdtNumberOfMultilayers.GetName())
325 ODir.WriteTObject(mdtTube, mdtTube.GetName())
326 ODir.WriteTObject(mdtTubeLayer, mdtTubeLayer.GetName())
327 ODir.WriteTObject(mdtMultilayer, mdtMultilayer.GetName())
328 ODir.WriteTObject(mdtTime, mdtTime.GetName())
329 ODir.WriteTObject(mdtCharge, mdtCharge.GetName())
330 ODir.WriteTObject(mdtChannel, mdtChannel.GetName())
331 ODir.WriteTObject(mdtglobalXY, mdtglobalXY.GetName())
332 ODir.WriteTObject(mdtglobalZY, mdtglobalZY.GetName())
333 ODir.WriteTObject(mdtglobalZX, mdtglobalZX.GetName())
335 ODir.WriteTObject(bis_mdtlocalTubePosX, bis_mdtlocalTubePosX.GetName())
336 ODir.WriteTObject(bis_mdtlocalTubePosY, bis_mdtlocalTubePosY.GetName())
337 ODir.WriteTObject(bis_mdtlocalTubePosZ, bis_mdtlocalTubePosZ.GetName())
338 ODir.WriteTObject(bis_mdtStationEta, bis_mdtStationEta.GetName())
339 ODir.WriteTObject(bis_mdtStationPhi, bis_mdtStationPhi.GetName())
340 ODir.WriteTObject(bis_mdtglobalX, bis_mdtglobalX.GetName())
341 ODir.WriteTObject(bis_mdtglobalY, bis_mdtglobalY.GetName())
342 ODir.WriteTObject(bis_mdtglobalZ, bis_mdtglobalZ.GetName())
343 ODir.WriteTObject(bis_mdtNumberOfMultilayers, bis_mdtNumberOfMultilayers.GetName())
344 ODir.WriteTObject(bis_mdtTube, bis_mdtTube.GetName())
345 ODir.WriteTObject(bis_mdtTubeLayer, bis_mdtTubeLayer.GetName())
346 ODir.WriteTObject(bis_mdtMultilayer, bis_mdtMultilayer.GetName())
347 ODir.WriteTObject(bis_mdtTime, bis_mdtTime.GetName())
348 ODir.WriteTObject(bis_mdtCharge, bis_mdtCharge.GetName())
349 ODir.WriteTObject(bis_mdtChannel, bis_mdtChannel.GetName())
350 ODir.WriteTObject(bis_mdtglobalXY, bis_mdtglobalXY.GetName())
351 ODir.WriteTObject(bis_mdtglobalZY, bis_mdtglobalZY.GetName())
352 ODir.WriteTObject(bis_mdtglobalZX, bis_mdtglobalZX.GetName())
353 ODir.WriteTObject(bis_mdtlocalTubePosXY, bis_mdtlocalTubePosXY.GetName())
354 ODir.WriteTObject(bis_mdtlocalTubePosZY, bis_mdtlocalTubePosZY.GetName())
355 ODir.WriteTObject(bis_mdtlocalTubePosZX, bis_mdtlocalTubePosZX.GetName())
357 print (
'INFO: Written histograms to file %s'%(Options.outputFile))