2import ROOT,os,sys,subprocess,atexit,time
4import vetoTimeCalibration
6from argparse
import ArgumentParser
7parser = ArgumentParser()
8parser.add_argument(
"-f",
"--inputFile", dest=
"fname", help=
"file name", type=str,default=
None,required=
False)
9parser.add_argument(
"--server", dest=
"server", help=
"xrootd server",default=os.environ[
"EOSSHIP"])
10parser.add_argument(
"-r",
"--runNumber", dest=
"runNumber", help=
"run number", type=int)
11parser.add_argument(
"-p",
"--path", dest=
"path", help=
"run number",required=
False,default=
"")
12parser.add_argument(
"-P",
"--partition", dest=
"partition", help=
"partition of data", type=int,required=
False,default=-1)
13parser.add_argument(
"-g",
"--geoFile", dest=
"geoFile", help=
"geofile", required=
True)
14parser.add_argument(
"-b",
"--heartBeat", dest=
"heartBeat", help=
"heart beat", default=10000,type=int)
15parser.add_argument(
"-c",
"--command", dest=
"command", help=
"Time calibration / Time walk", default=
"TC")
16parser.add_argument(
"-n",
"--nEvents", dest=
"nEvents", help=
"number of events", default=-1,type=int)
17parser.add_argument(
"-s",
"--nStart", dest=
"nStart", help=
"first event", default=0,type=int)
18parser.add_argument(
"-t",
"--trackType", dest=
"trackType", help=
"DS or Scifi", default=
"DS")
20options = parser.parse_args()
26 M.h[
'exBar'] = M.h[
'exBar_04'].Clone(
'exBar')
30 M.h[
'exBar'].Add(M.h[
'exBar_'+
str(l)+
str(bar)])
34 nbars = M.systemAndBars[s]
36 for side
in [
'L',
'R']:
37 M.h[
'dtBar_Veto'+side+tag] = M.h[
'dtBar_Veto4_4LX'].Clone(
'dtBar_Veto'+side+tag)
38 M.h[
'dtBar_Veto'+side+tag].Reset()
39 for bar
in range(nbars):
40 for bar1
in [bar-1,bar,bar+1]:
41 if bar1<0
or bar1>nbars-1:
continue
42 key = M.sdict[s]+
str(bar)+
'_'+
str(bar1)+side+tag
43 M.h[
'dtBar_Veto'+side+tag].Add(M.h[
'dtBar_'+key])
47if options.nEvents < 0 :
48 options.nEvents = M.eventTree.GetEntries()
52if options.command==
"TC":
58 for t
in [
'vetoTimechannelcalibration']:
60 options.xCheck =
False
61 Tasks[t].Init(options,M)
62 for n
in range(options.nStart,options.nStart+options.nEvents):
64 Tasks[t].ExecuteEvent(event)
65 event.Reco_MuonTracks.Delete()
69 for t
in [
'vetoTimechannelcalibrationX']:
72 Tasks[t].Init(options,M)
73 for n
in range(options.nStart,options.nStart+options.nEvents):
75 Tasks[t].ExecuteEvent(event)
76 event.Reco_MuonTracks.Delete()
79 for t
in [
'vetoTimeplanecalibration']:
81 options.xCheck =
False
82 Tasks[t].Init(options,M)
83 for n
in range(options.nStart,options.nStart+options.nEvents):
85 Tasks[t].ExecuteEvent(event)
86 event.Reco_MuonTracks.Delete()
90 print(
'start minimization')
92 print(
'end minimization')
94 for t
in [
'vetoTimeplanecalibrationX']:
97 Tasks[t].Init(options,M)
98 for n
in range(options.nStart,options.nStart+options.nEvents):
100 Tasks[t].ExecuteEvent(event)
101 event.Reco_MuonTracks.Delete()
108if options.command==
"TW":
111 Tasks[t].Init(options,M)
112 for n
in range(options.nStart,options.nStart+options.nEvents):
113 event = M.GetEvent(n)
114 Tasks[t].ExecuteEvent(event)
115 event.Reco_MuonTracks.Delete()