hpstr
The Heavy Photon Search Toolkit for Reconstruction (hpstr) provides an interface to physics data from the HPS experiment saved in the LCIO format and converts it into an ROOT based format.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
anaKalSimpTuple_Simps_cfg.py
Go to the documentation of this file.
1import HpstrConf
2import sys
3import os
4import baseConfig as base
5
6base.parser.add_argument("-w", "--tracking", type=str, dest="tracking",
7 help="Which tracking to use to make plots", metavar="tracking", default="KF")
8base.parser.add_argument("-f", "--makeFlatTuple", type=int, dest="makeFlatTuple",
9 help="Make True to make vertex ana flat tuple", metavar="makeFlatTuple", default=1)
10base.parser.add_argument("-r", "--isRadPDG", type=int, dest="isRadPDG",
11 help="Set radiative trident PDG ID", metavar="isRadPDG", default=625)
12base.parser.add_argument("-TS", "--trackstate", type=str, dest="trackstate",
13 help="Specify Track State | 'AtECal' or 'AtTarget'. Default is origin (AtIP)", metavar="trackstate", default="AtTarget")
14base.parser.add_argument("-bpc", "--beamPosCorr", type=str, dest="beamPosCorr",
15 help="Load beam position corrections from json", metavar="beamPosCorr", default="")
16options = base.parser.parse_args()
17
18# Use the input file to set the output file name
19infile = options.inFilename
20outfile = options.outFilename
21
22outfile = outfile.split(".root")[0]+"_"+options.tracking+".root"
23
24print('Input file: %s' % infile)
25print('Output file: %s' % outfile)
26
28
29p.run_mode = 1
30#p.max_events = 1000
31
32# Library containing processors
33p.add_library("libprocessors")
34
35
38
39recoana_kf = HpstrConf.Processor('vtxana_kf', 'VertexAnaProcessor')
40recoana_gbl = HpstrConf.Processor('vtxana_gbl', 'VertexAnaProcessor')
41mcana = HpstrConf.Processor('mcpartana', 'MCAnaProcessor')
42
46recoana_kf.parameters["anaName"] = "vtxana_kf"
47recoana_kf.parameters["trkColl"] = "KalmanFullTracks%s"%(options.trackstate)
48recoana_kf.parameters["tsColl"] = "TSData"
49recoana_kf.parameters["vtxColl"] = "UnconstrainedV0Vertices_KF"
50recoana_kf.parameters["mcColl"] = "MCParticle"
51recoana_kf.parameters["hitColl"] = "SiClusters"
52recoana_kf.parameters["ecalColl"] = "RecoEcalClusters"
53recoana_kf.parameters["vtxSelectionjson"] = os.environ['HPSTR_BASE']+"/analysis/selections/simps/vertexSelection_2016_simp_preselection.json"
54recoana_kf.parameters["histoCfg"] = os.environ['HPSTR_BASE']+"/analysis/plotconfigs/tracking/simps/vtxAnalysis_2016_simp_reach.json"
55recoana_kf.parameters["mcHistoCfg"] = os.environ['HPSTR_BASE']+'/analysis/plotconfigs/mc/basicMC.json'
56
57recoana_kf.parameters["beamE"] = base.beamE[str(options.year)]
58recoana_kf.parameters["isData"] = options.isData
59recoana_kf.parameters["analysis"] = options.analysis
60recoana_kf.parameters["debug"] = 0
61recoana_kf.parameters["isRadPDG"] = options.isRadPDG
62recoana_kf.parameters["makeFlatTuple"] = options.makeFlatTuple
63#recoana_kf.parameters["beamPosCfg"] = options.beamPosCorr
64#recoana_kf.parameters["beamPosCfg"] = os.environ['HPSTR_BASE']+'/analysis/data/beamspot_positions_2016.json'
65if not options.isData:
66 recoana_kf.parameters["eleTrackTimeBias"] = -2.2 #MC
67 recoana_kf.parameters["posTrackTimeBias"] = -2.2 #MC
68else:
69 recoana_kf.parameters["eleTrackTimeBias"] = -1.5
70 recoana_kf.parameters["posTrackTimeBias"] = -1.5
71
72
73CalTimeOffset = -999
74
75if (options.isData == 1):
76 CalTimeOffset = 56.
77 print("Running on data file: Setting CalTimeOffset %d" % CalTimeOffset)
78
79elif (options.isData == 0):
80 CalTimeOffset = 43.
81 print("Running on MC file: Setting CalTimeOffset %d" % CalTimeOffset)
82else:
83 print("Specify which type of ntuple you are running on: -t 1 [for Data] / -t 0 [for MC]")
84
85recoana_kf.parameters["CalTimeOffset"] = CalTimeOffset
86#Region definitions
87RegionPath = os.environ['HPSTR_BASE']+"/analysis/selections/simps/"
88
89recoana_kf.parameters["regionDefinitions"] = [RegionPath+'Tight_2016_simp_reach_CR.json',
90 RegionPath+'Tight_2016_simp_reach_SR.json',
91 RegionPath+'radMatchTight_2016_simp_reach_CR.json',
92 RegionPath+'radMatchTight_2016_simp_reach_SR.json',
93 RegionPath+'Tight_nocuts.json',
94 RegionPath+'Tight_L1L1_nvtx1.json']
95
96#MCParticleAna
97mcana.parameters["debug"] = 0
98mcana.parameters["anaName"] = "mcAna"
99mcana.parameters["partColl"] = "MCParticle"
100mcana.parameters["trkrHitColl"] = "TrackerHits"
101mcana.parameters["ecalHitColl"] = "EcalHits"
102mcana.parameters["histCfg"] = os.environ['HPSTR_BASE']+'/analysis/plotconfigs/mc/basicMC.json'
103
104
105# Sequence which the processors will run.
106#p.sequence = [recoana_kf,recoana_gbl]
107if (options.tracking == "KF"):
108 print("Run KalmanFullTracks analysis")
109 p.sequence = [recoana_kf] # ,mcana]
110else:
111 print("ERROR::Need to specify which tracks KF or GBL")
112 exit(1)
113
114p.skip_events = options.skip_events
115p.max_events = options.nevents
116
117p.input_files = infile
118p.output_files = [outfile]
119
120p.printProcess()
Process python class.
Definition HpstrConf.py:20
Processor python class.
Definition HpstrConf.py:4