6 from subprocess
import call
10 from VXDTF.setup_modules
import (setup_gfTCtoSPTCConverters,
14 setup_qualityEstimators,
15 setup_trackSetEvaluators)
31 rootInputFileName =
"seed12345nEv1000pGun1_20T.root"
32 rootInputFileName =
"MyRootFile.root"
38 setFilterType =
'hopfield'
44 useOldTFinstead =
False
45 oldTFNoSubsetSelection =
True
49 activateSegNetAnalizer =
False
52 doNewSubsetSelection =
True
53 doVirtualIPRemovalb4Fit =
True
55 switchFiltersOff =
False
60 segNetAnaRFN =
'SegNetAnalyzer_SM_train.root'
61 fbdtSamplesFN =
'FBDTClassifier_samples_train_10k.dat'
62 fbdtFN =
'FBDTClassifier_1000_3.dat'
78 set_log_level(LogLevel.ERROR)
79 set_random_seed(initialValue)
81 trainerVXDTFLogLevel = LogLevel.INFO
82 trainerVXDTFDebugLevel = 10
84 TFlogLevel = LogLevel.INFO
87 CAlogLevel = LogLevel.DEBUG
90 AnalizerlogLevel = LogLevel.INFO
91 AnalizerDebugLevel = 1
94 if (initialValue == 2):
95 print(
"chosen initialvalue 2! " + rootInputFileName)
96 acceptedRawSecMapFiles = [
'lowTestRedesign_1373026662.root']
97 elif (initialValue == 0):
98 print(
"chosen initialvalue 0! " + rootInputFileName)
99 acceptedRawSecMapFiles = [
'lowTestRedesign.root']
100 elif (initialValue == 3):
101 print(
"chosen initialvalue 3! " + rootInputFileName)
102 acceptedRawSecMapFiles = [
'lowTestRedesign_202608818.root']
103 elif (initialValue == 4):
104 print(
"chosen initialvalue 4!! " + rootInputFileName)
105 acceptedRawSecMapFiles = [
'lowTestRedesign_293660864.root']
109 elif (initialValue == 5):
110 print(
"chosen initialvalue 5! " + rootInputFileName)
111 acceptedRawSecMapFiles = [
'lowTestRedesign_1120112796.root']
112 elif (initialValue == 6):
113 print(
"chosen initialvalue 6! " + rootInputFileName)
114 acceptedRawSecMapFiles = [
'lowTestRedesign_1120112796.root']
116 elif (initialValue == 7):
117 print(
"chosen initialvalue 7! (skipCluster-setting=True) " + rootInputFileName)
118 acceptedRawSecMapFiles = [
'lowTestRedesign_1332084337.root']
119 elif (initialValue == 8):
120 print(
"chosen initialvalue 8! (skipCluster-setting=True): 200k evtGen events " + rootInputFileName)
121 acceptedRawSecMapFiles = [
'lowTestRedesign_1332084337.root']
122 elif (initialValue == 11):
123 print(
"chosen initialvalue 11! (skipCluster-setting=True): 100 pGun events " + rootInputFileName)
124 acceptedRawSecMapFiles = [
'lowTestRedesign_1017144726.root']
125 elif (initialValue == 12):
126 print(
"chosen initialvalue 12! (skipCluster-setting=True): 200 pGun events " + rootInputFileName)
127 acceptedRawSecMapFiles = [
'lowTestRedesign_1196763558.root']
128 elif (initialValue == 13):
129 print(
"chosen initialvalue 13! (skipCluster-setting=True): 100k pGun events " + rootInputFileName)
130 acceptedRawSecMapFiles = [
'lowTestRedesign_1874442389.root']
134 elif (initialValue == 57):
135 print(
"chosen initialvalue 57! setup remark: train: 10k events, 10 tracks per event, theta 60-85°, phi 0-360°, pT 100-145MeV.")
136 acceptedRawSecMapFiles = [
'lowTestRedesign_779994078.root']
137 elif (initialValue == 12345):
138 print(
"chosen initialvalue 12345! some dummy setup!")
139 acceptedRawSecMapFiles = [
'lowTestRedesign_349397772.root']
141 print(
"ERROR! no valid initialvalue chosen!")
142 acceptedRawSecMapFiles = [
""]
149 rootInputM = register_module(
'RootInput')
150 rootInputM.param(
'inputFileName', rootInputFileName)
154 eventinfoprinter = register_module(
'EventInfoPrinter')
157 gearbox = register_module(
'Gearbox')
159 secMapBootStrap = register_module(
'SectorMapBootstrap')
160 secMapBootStrap.param(
'ReadSectorMap',
False)
161 secMapBootStrap.param(
'WriteSectorMap',
True)
165 newSecMapTrainerBase = register_module(
'SecMapTrainerBase')
166 newSecMapTrainerBase.logging.log_level = trainerVXDTFLogLevel
167 newSecMapTrainerBase.logging.debug_level = trainerVXDTFDebugLevel
168 newSecMapTrainerBase.param(
'spTCarrayName',
'checkedSPTCs')
169 newSecMapTrainerBase.param(
'allowTraining',
True)
173 merger = register_module(
'RawSecMapMerger')
174 merger.logging.log_level = trainerVXDTFLogLevel
175 merger.logging.debug_level = trainerVXDTFDebugLevel
176 merger.param(
'rootFileNames', acceptedRawSecMapFiles)
182 geometry = register_module(
'Geometry')
183 geometry.param(
'components', [
'BeamPipe',
'MagneticFieldConstant4LimitedRSVD',
187 eventCounter = register_module(
'EventCounter')
188 eventCounter.logging.log_level = LogLevel.INFO
189 eventCounter.param(
'stepSize', evtStepSize)
194 'shiftedL3IssueTestSVDStd-moreThan400MeV_SVD',
195 'shiftedL3IssueTestSVDStd-100to400MeV_SVD',
196 'shiftedL3IssueTestSVDStd-25to100MeV_SVD']
199 [
'shiftedL3IssueTestVXDStd-moreThan400MeV_PXDSVD',
200 'shiftedL3IssueTestVXDStd-100to400MeV_PXDSVD',
201 'shiftedL3IssueTestVXDStd-25to100MeV_PXDSVD'
204 vxdtf = register_module(
'VXDTF')
205 vxdtf.logging.log_level = LogLevel.DEBUG
206 vxdtf.logging.debug_level = 1
207 vxdtf.param(
'sectorSetup', secSetup)
208 vxdtf.param(
'GFTrackCandidatesColName',
'caTracks')
209 vxdtf.param(
'tuneCutoffs', tuneValue)
210 vxdtf.param(
'displayCollector', 2)
211 if oldTFNoSubsetSelection:
212 vxdtf.param(
'filterOverlappingTCs',
'none')
215 oldAnalyzer = register_module(
'TFAnalizer')
216 oldAnalyzer.logging.log_level = LogLevel.INFO
217 oldAnalyzer.param(
'printExtentialAnalysisData',
False)
218 oldAnalyzer.param(
'caTCname',
'caTracks')
219 oldAnalyzer.param(
'acceptedTCname',
'VXDTFoldAcceptedTCS')
220 oldAnalyzer.param(
'lostTCname',
'VXDTFoldLostTCS')
223 trackCandConverter = register_module(
'GFTC2SPTCConverter')
224 trackCandConverter.logging.log_level = LogLevel.WARNING
225 trackCandConverter.param(
'genfitTCName',
'caTracks')
226 trackCandConverter.param(
'SpacePointTCName',
'caSPTCs')
227 trackCandConverter.param(
'NoSingleClusterSVDSP',
'nosingleSP')
228 trackCandConverter.param(
'PXDClusterSP',
'pxdOnly')
229 trackCandConverter.param(
'checkNoSingleSVDSP',
True)
230 trackCandConverter.param(
'checkTrueHits',
False)
231 trackCandConverter.param(
'useSingleClusterSP',
False)
232 trackCandConverter.param(
'skipCluster',
True)
234 segNetProducer = register_module(
'SegmentNetworkProducer')
235 segNetProducer.param(
'CreateNeworks', cNetworks)
236 segNetProducer.param(
'NetworkOutputName',
'test2Hits')
237 segNetProducer.param(
'printNetworks', printNetworks)
238 segNetProducer.param(
'allFiltersOff', switchFiltersOff)
240 segNetProducer.param(
'SpacePointsArrayNames', [
'nosingleSP_relTH'])
241 segNetProducer.logging.log_level = TFlogLevel
242 segNetProducer.logging.debug_level = TFDebugLevel
244 if activateSegNetAnalizer:
245 segNetAnalyzer = register_module(
'SegmentNetworkAnalyzer')
246 segNetAnalyzer.param(
'networkInputName',
'test2Hits')
247 segNetAnalyzer.param(
'rootFileName', segNetAnaRFN)
248 segNetAnalyzer.logging.log_level = LogLevel.INFO
249 segNetAnalyzer.logging.debug_level = 100
252 cellOmat = register_module(
'TrackFinderVXDBasicPathFinder')
254 cellOmat = register_module(
'TrackFinderVXDCellOMat')
255 cellOmat.param(
'printNetworks', printNetworks)
256 cellOmat.param(
'SpacePointTrackCandArrayName',
'caSPTCs')
257 cellOmat.param(
'NetworkName',
'test2Hits')
258 cellOmat.param(
'removeVirtualIP',
False)
259 cellOmat.param(
'strictSeeding', doStrictSeeds)
260 cellOmat.logging.log_level = CAlogLevel
261 cellOmat.logging.debug_level = CADebugLevel
266 vxdAnal = register_module(
'TrackFinderVXDAnalizer')
267 vxdAnal.param(
'referenceTCname',
'SPTracks')
268 vxdAnal.param(
'testTCname',
'caSPTCs')
269 vxdAnal.param(
'purityThreshold', 0.7)
270 vxdAnal.param(
'ignoreDeadTCs', ignoreDeadTCs)
271 vxdAnal.param(
'doEventSummary', doEventSummary)
272 vxdAnal.logging.log_level = AnalizerlogLevel
273 vxdAnal.logging.debug_level = AnalizerDebugLevel
277 log_to_file(
'testRedesign' + str(initialValue) +
'.log', append=
False)
279 log_to_file(
'testsegNetExecute' + str(initialValue) +
'.log', append=
False)
284 main.add_module(rootInputM)
285 main.add_module(eventinfoprinter)
286 main.add_module(gearbox)
287 main.add_module(geometry)
288 main.add_module(eventCounter)
289 main.add_module(secMapBootStrap)
291 setup_spCreatorSVD(path=main, nameOutput=
'nosingleSP', createSingleClusterSPs=
False, logLevel=LogLevel.INFO)
292 setup_spCreatorPXD(path=main, nameOutput=
'pxdOnly', logLevel=LogLevel.INFO)
293 setup_gfTCtoSPTCConverters(
297 gfTCinput=
'mcTracks',
298 sptcOutput=
'checkedSPTCs',
300 logLevel=LogLevel.WARNING)
302 vIPRemover = register_module(
'SPTCvirtualIPRemover')
303 vIPRemover.param(
'maxTCLengthForVIPKeeping', 0)
304 vIPRemover.param(
'tcArrayName',
'caSPTCs')
309 setup_sp2thConnector(main,
'pxdOnly',
'nosingleSP',
'_relTH',
True, LogLevel.ERROR, 1)
311 main.add_module(newSecMapTrainerBase)
314 main.add_module(register_module(
'SetupGenfitExtrapolation'))
315 main.add_module(vxdtf)
316 main.add_module(oldAnalyzer)
317 main.add_module(trackCandConverter)
319 main.add_module(merger)
320 main.add_module(segNetProducer)
322 add_fbdtclassifier_training(main,
'test2Hits',
'FBDTClassifier.dat',
False,
True,
323 False, fbdtSamplesFN, 100, 3, 0.15, 0.5, LogLevel.DEBUG, 10)
325 add_ml_threehitfilters(main,
'test2Hits', fbdtFN, 0.989351,
True)
326 if activateSegNetAnalizer:
327 main.add_module(segNetAnalyzer)
328 main.add_module(cellOmat)
330 if doVirtualIPRemovalb4Fit:
331 main.add_module(vIPRemover)
333 setup_qualityEstimators(main, fitType,
'caSPTCs', LogLevel.INFO, 1)
336 if doVirtualIPRemovalb4Fit
is False:
337 main.add_module(vIPRemover)
339 if doNewSubsetSelection:
341 tcNetworkProducer = register_module(
'SPTCNetworkProducer')
342 tcNetworkProducer.param(
'tcArrayName',
'caSPTCs')
343 tcNetworkProducer.param(
'tcNetworkName',
'tcNetwork')
344 main.add_module(tcNetworkProducer)
346 tsEvaluator = register_module(
'TrackSetEvaluatorHopfieldNN')
347 tsEvaluator.logging.log_level = LogLevel.DEBUG
348 tsEvaluator.logging.debug_level = 3
349 tsEvaluator.param(
'tcArrayName',
'caSPTCs')
350 tsEvaluator.param(
'tcNetworkName',
'tcNetwork')
351 main.add_module(tsEvaluator)
353 svdOverlapResolver = register_module(
'SVDOverlapResolver')
354 svdOverlapResolver.param(
'NameSpacePointTrackCands',
'caSPTCs')
355 svdOverlapResolver.param(
'resolveMethod',
'greedy')
357 svdOverlapResolver.logging.log_level = LogLevel.DEBUG
359 main.add_module(vxdAnal)
362 display = register_module(
'Display')
363 display.param(
'showAllPrimaries',
True)
364 main.add_module(display)