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
kalSimpTuple_cfg.py
Go to the documentation of this file.
1import HpstrConf
2import sys
3
4import baseConfig as base
5from baseConfig import bfield
6
7base.parser.add_argument("-w", "--tracking", type=str, dest="tracking",
8 help="Which tracking to use to make plots",
9 metavar="tracking", default="KF")
10base.parser.add_argument("-TS", "--targetTracks", type=int, dest="targetTracks",
11 help="Include Target Tracks as separate collection", metavar="targetTracks", default=0)
12base.parser.add_argument("-s", "--truthHits", type=int, dest="svtHits",
13 help="Get svt hits: 1=yes", metavar="svtHits", default=0)
14base.parser.add_argument("-r", "--rawHits", type=int, dest="rawHits",
15 help="Keep raw svt hits: 1=yes", metavar="rawHits", default=0)
16
17options = base.parser.parse_args()
18
19# Use the input file to set the output file name
20lcio_file = options.inFilename
21root_file = options.outFilename
22
23print('LCIO file: %s' % lcio_file)
24print('Root file: %s' % root_file)
25
27
28# p.max_events = 1000
29p.run_mode = 0
30p.skip_events = options.skip_events
31p.max_events = options.nevents
32
33# Library containing processors
34p.add_library("libprocessors")
35
36
39header = HpstrConf.Processor('header', 'EventProcessor')
40track = HpstrConf.Processor('track', 'TrackingProcessor')
41targtrack = HpstrConf.Processor('targtrack', 'TrackingProcessor')
42trackgbl = HpstrConf.Processor('trackgbl', 'TrackingProcessor')
43trackrefitgbl = HpstrConf.Processor('trackrefitgbl', 'TrackingProcessor')
44svthits = HpstrConf.Processor('svthitskf', 'Tracker2DHitProcessor')
45svthitsgbl = HpstrConf.Processor('svthitsgbl', 'Tracker3DHitProcessor')
46rawsvt = HpstrConf.Processor('rawsvt', 'SvtRawDataProcessor')
47ecal = HpstrConf.Processor('ecal', 'ECalDataProcessor')
48vtx = HpstrConf.Processor('vtx', 'VertexProcessor')
49cvtx = HpstrConf.Processor('cvtx', 'VertexProcessor')
50vtxgbl = HpstrConf.Processor('vtxgbl', 'VertexProcessor')
51cvtxgbl = HpstrConf.Processor('cvtxgbl', 'VertexProcessor')
52mcpart = HpstrConf.Processor('mcpart', 'MCParticleProcessor')
53
54
58header.parameters["debug"] = 0
59header.parameters["headCollRoot"] = "EventHeader"
60header.parameters["trigCollLcio"] = "TriggerBank"
61header.parameters["rfCollLcio"] = "RFHits"
62header.parameters["vtpCollLcio"] = "VTPBank"
63header.parameters["vtpCollRoot"] = "VTPBank"
64header.parameters["tsCollLcio"] = "TSBank"
65header.parameters["tsCollRoot"] = "TSBank"
66
67# SvtRawData
68rawsvt.parameters["debug"] = 0
69rawsvt.parameters["hitCollLcio"] = 'SVTRawTrackerHits'
70rawsvt.parameters["hitfitCollLcio"] = 'SVTFittedRawTrackerHits'
71rawsvt.parameters["hitCollRoot"] = 'SVTRawTrackerHits'
72
73# Tracker2DHits
74svthits.parameters["debug"] = 0
75svthits.parameters["hitCollLcio"] = 'StripClusterer_SiTrackerHitStrip1D'
76svthits.parameters["hitCollRoot"] = 'SiClusters'
77svthits.parameters["mcPartRelLcio"] = 'SVTTrueHitRelations'
78svthits.parameters["hitFitCollLcio"] = 'SVTFittedRawTrackerHits'
79
80# Tracker3DHits
81svthitsgbl.parameters["debug"] = 0
82svthitsgbl.parameters["hitCollLcio"] = 'RotatedHelicalTrackHits'
83svthitsgbl.parameters["hitCollRoot"] = 'RotatedHelicalTrackHits'
84svthitsgbl.parameters["mcPartRelLcio"] = 'RotatedHelicalTrackMCRelations'
85
86# Tracking
87track.parameters["debug"] = 0
88track.parameters["trkCollLcio"] = 'KalmanFullTracks'
89track.parameters["trkCollRoot"] = 'KalmanFullTracks'
90track.parameters["trackStateLocation"] = ''
91track.parameters["kinkRelCollLcio"] = ''
92track.parameters["trkRelCollLcio"] = 'KFTrackDataRelations'
93track.parameters["trkhitCollRoot"] = 'SiClustersOnTrack'
94track.parameters["hitFitsCollLcio"] = 'SVTFittedRawTrackerHits'
95track.parameters["bfield"] = bfield[str(options.year)]
96track.parameters["rawhitCollRoot"] = 'SVTRawHitsOnTrack_KF'
97
98# Target Tracks
99targtrack.parameters["debug"] = 0
100targtrack.parameters["trkCollLcio"] = 'KalmanFullTracks'
101targtrack.parameters["trkCollRoot"] = 'KalmanFullTracksAtTarget'
102targtrack.parameters["trackStateLocation"] = 'AtTarget'
103targtrack.parameters["kinkRelCollLcio"] = ''
104targtrack.parameters["trkRelCollLcio"] = 'KFTrackDataRelations'
105targtrack.parameters["trkhitCollRoot"] = 'SiClustersOnTrackAtTarget'
106targtrack.parameters["hitFitsCollLcio"] = 'SVTFittedRawTrackerHits'
107targtrack.parameters["rawhitCollRoot"] = 'SVTRawHitsOnTrack_KF_AtTarget'
108
109# LT uncommented
110# if (not options.isData):
111# track.parameters["truthTrackCollLcio"] = 'KalmanFullTracksToTruthTrackRelations'
112# track.parameters["truthTrackCollRoot"] = 'Truth_KFTracks'
113
114# LT check if we need the b field or not -- version of HPS java
115# for Jess's files need to give it b-field
116
117trackgbl.parameters["debug"] = 0
118trackgbl.parameters["trkCollLcio"] = 'GBLTracks'
119trackgbl.parameters["trkCollRoot"] = 'GBLTracks'
120trackgbl.parameters["kinkRelCollLcio"] = 'GBLKinkDataRelations'
121trackgbl.parameters["trkRelCollLcio"] = 'TrackDataRelations'
122trackgbl.parameters["trkhitCollRoot"] = 'RotatedHelicalOnTrackHits'
123trackgbl.parameters["hitFitsCollLcio"] = 'SVTFittedRawTrackerHits'
124
125# Only for detail studies
126# LT uncomment
127trackgbl.parameters["rawhitCollRoot"] = 'SVTRawHitsOnTrack'
128
129# LT uncommented
130# if (not options.isData):
131# trackgbl.parameters["truthTrackCollLcio"] = 'GBLTracksToTruthTrackRelations'
132# trackgbl.parameters["truthTrackCollRoot"] = 'Truth_GBLTracks'
133
134# LT check if we need the b field or not -- version of HPS java
135trackgbl.parameters["bfield"] = bfield[str(options.year)]
136
137# ECalData
138ecal.parameters["debug"] = 0
139ecal.parameters["hitCollLcio"] = 'EcalCalHits'
140ecal.parameters["hitCollRoot"] = 'RecoEcalHits'
141ecal.parameters["clusCollLcio"] = "EcalClustersCorr"
142ecal.parameters["clusCollRoot"] = "RecoEcalClusters"
143
144# Vertex
145vtx.parameters["debug"] = 0
146vtx.parameters["vtxCollLcio"] = 'UnconstrainedV0Vertices_KF'
147vtx.parameters["vtxCollRoot"] = 'UnconstrainedV0Vertices_KF'
148vtx.parameters["partCollRoot"] = 'ParticlesOnUVertices_KF'
149vtx.parameters["kinkRelCollLcio"] = ''
150vtx.parameters["trkRelCollLcio"] = 'KFTrackDataRelations'
151vtx.parameters["trackStateLocation"] = ''
152
153cvtx.parameters["debug"] = 0
154cvtx.parameters["vtxCollLcio"] = 'TargetConstrainedV0Vertices_KF'
155cvtx.parameters["vtxCollRoot"] = 'TargetConstrainedV0Vertices_KF'
156cvtx.parameters["partCollRoot"] = 'ParticlesOnCVertices_KF'
157cvtx.parameters["kinkRelCollLcio"] = ''
158cvtx.parameters["trkRelCollLcio"] = 'KFTrackDataRelations'
159vtx.parameters["trackStateLocation"] = ''
160
161vtxgbl.parameters["debug"] = 0
162vtxgbl.parameters["vtxCollLcio"] = 'UnconstrainedV0Vertices'
163vtxgbl.parameters["vtxCollRoot"] = 'UnconstrainedV0Vertices'
164vtxgbl.parameters["partCollRoot"] = 'ParticlesOnUVertices'
165vtxgbl.parameters["kinkRelCollLcio"] = 'GBLKinkDataRelations'
166vtxgbl.parameters["trkRelCollLcio"] = 'TrackDataRelations'
167
168cvtxgbl.parameters["debug"] = 0
169cvtxgbl.parameters["vtxCollLcio"] = 'TargetConstrainedV0Vertices'
170cvtxgbl.parameters["vtxCollRoot"] = 'TargetConstrainedV0Vertices'
171cvtxgbl.parameters["partCollRoot"] = 'ParticlesOnCVertices'
172cvtxgbl.parameters["kinkRelCollLcio"] = 'GBLKinkDataRelations'
173cvtxgbl.parameters["trkRelCollLcio"] = 'TrackDataRelations'
174
175# MCParticle
176mcpart.parameters["debug"] = 0
177mcpart.parameters["mcPartCollLcio"] = 'MCParticle'
178mcpart.parameters["mcPartCollRoot"] = 'MCParticle'
179
180if (options.tracking == "KF"):
181 sequence = [header, vtx, ecal, track]
182 #Add target tracks coll
183 if options.targetTracks > 0:
184 sequence.append(targtrack)
185 # Get KF svt truth hits
186 if (options.svtHits > 0):
187 sequence.append(svthits)
188elif (options.tracking == "GBL"):
189 sequence = [header, vtxgbl, ecal, trackgbl]
190 # Get GBL svt truth hits
191 if (options.truthHits > 0):
192 sequence.append(svthitsgbl)
193elif (options.tracking == "BOTH"):
194 sequence = [header, vtxgbl, trackgbl, vtx, ecal, track]
195 # Get KF and GBL svt truth hits
196 if (options.svtHits > 0):
197 sequence.append(svthits)
198 sequence.append(svthitsgbl)
199else:
200 print("ERROR::Need to specify which tracks KF, GBL, or BOTH")
201
202# Keep svt raw hits
203if (options.rawHits > 0):
204 sequence.append(rawsvt)
205# If MC, get MCParticles
206if (not options.isData):
207 sequence.append(mcpart)
208
209p.sequence = sequence
210
211p.input_files = lcio_file
212p.output_files = [root_file]
213
214p.printProcess()
Process python class.
Definition HpstrConf.py:20
Processor python class.
Definition HpstrConf.py:4