File indexing completed on 2024-11-26 02:34:40
0001
0002
0003
0004
0005
0006 import FWCore.ParameterSet.Config as cms
0007
0008 def customiseMTVForBPix123Holes(process):
0009 from Validation.RecoTrack.cutsRecoTracks_cfi import cutsRecoTracks as _cutsRecoTracks
0010 import math
0011 _minPhi = process.trackValidatorTrackingOnly.histoProducerAlgoBlock.minPhi.value()
0012 _maxPhi = process.trackValidatorTrackingOnly.histoProducerAlgoBlock.maxPhi.value()
0013 _nPhi = process.trackValidatorTrackingOnly.histoProducerAlgoBlock.nintPhi.value()
0014 _binPhi = (_maxPhi - _minPhi) / _nPhi
0015 process.generalTracksL1L2 = _cutsRecoTracks.clone(
0016 minLayer = 0,
0017 quality = [],
0018 minRapidity = -1.0,
0019 minPhi=_minPhi+_binPhi*14, maxPhi=_minPhi+_binPhi*19)
0020 process.generalTracksL2L3 = process.generalTracksL1L2.clone(
0021 minRapidity = -0.9, maxRapidity = 2,
0022 minPhi=_minPhi+_binPhi*33, maxPhi=_minPhi+_binPhi + 2*math.pi)
0023
0024 print("L1L2 %f %f" % (process.generalTracksL1L2.minPhi.value(), process.generalTracksL1L2.maxPhi.value()))
0025 print("L2L3 %f %f" % (process.generalTracksL2L3.minPhi.value(), process.generalTracksL2L3.maxPhi.value()))
0026
0027 from CommonTools.RecoAlgos.trackingParticleRefSelector_cfi import trackingParticleRefSelector as _trackingParticleRefSelector
0028 process.trackingParticlesL1L2 = _trackingParticleRefSelector.clone(
0029 signalOnly = False,
0030 chargedOnly = False,
0031 tip = 1e5,
0032 lip = 1e5,
0033 minRapidity = process.generalTracksL1L2.minRapidity.value(),
0034 maxRapidity = process.generalTracksL1L2.maxRapidity.value(),
0035 ptMin = 0,
0036 minPhi = process.generalTracksL1L2.minPhi.value(),
0037 maxPhi = process.generalTracksL1L2.maxPhi.value(),
0038 )
0039 process.trackingParticlesL2L3 = process.trackingParticlesL1L2.clone(
0040 minRapidity = process.generalTracksL2L3.minRapidity.value(),
0041 maxRapidity = process.generalTracksL2L3.maxRapidity.value(),
0042 minPhi = process.generalTracksL2L3.minPhi.value(),
0043 maxPhi = process.generalTracksL2L3.maxPhi.value(),
0044 )
0045 process.tracksPreValidationTrackingOnly += (
0046 process.trackingParticlesL1L2 +
0047 process.trackingParticlesL2L3 +
0048 process.generalTracksL1L2 +
0049 process.generalTracksL2L3
0050 )
0051
0052 process.trackValidatorTrackingOnlyL1L2 = process.trackValidatorTrackingOnly.clone(
0053 dirName = process.trackValidatorTrackingOnly.dirName.value().replace("Track/", "TrackL1L2/"),
0054 label_tp_effic = "trackingParticlesL1L2",
0055 label_tp_effic_refvector = True,
0056 label = ["generalTracksL1L2"],
0057 )
0058 process.trackValidatorTrackingOnlyL2L3 = process.trackValidatorTrackingOnlyL1L2.clone(
0059 dirName = process.trackValidatorTrackingOnlyL1L2.dirName.value().replace("L1L2", "L2L3"),
0060 label_tp_effic = "trackingParticlesL2L3",
0061 label = ["generalTracksL2L3"],
0062 )
0063 process.trackValidatorsTrackingOnly += (
0064 process.trackValidatorTrackingOnlyL1L2 +
0065 process.trackValidatorTrackingOnlyL2L3
0066 )
0067 for trkColl in process.trackValidatorTrackingOnly.label:
0068 if "ByAlgoMask" in trkColl: continue
0069 if "Pt09" in trkColl and not trkColl in ["generalTracksPt09", "cutsRecoTracksPt09Hp"]: continue
0070 if trkColl != "generalTracks":
0071 selL1L2 = getattr(process, trkColl).clone(src="generalTracksL1L2")
0072 selL2L3 = getattr(process, trkColl).clone(src="generalTracksL2L3")
0073 if "Pt09" in trkColl:
0074 selL1L2Name = trkColl.replace("Pt09", "Pt09L1L2")
0075 selL2L3Name = trkColl.replace("Pt09", "Pt09L2L3")
0076 else:
0077 selL1L2Name = trkColl.replace("cutsRecoTracks", "cutsRecoTracksL1L2")
0078 selL2L3Name = trkColl.replace("cutsRecoTracks", "cutsRecoTracksL2L3")
0079 setattr(process, selL1L2Name, selL1L2)
0080 setattr(process, selL2L3Name, selL2L3)
0081 process.tracksPreValidationTrackingOnly += (selL1L2+selL2L3)
0082 process.trackValidatorTrackingOnlyL1L2.label.append(selL1L2Name)
0083 process.trackValidatorTrackingOnlyL2L3.label.append(selL2L3Name)
0084
0085 for midfix in ["Building", "Seeding"]:
0086 label = "trackValidator%sTrackingOnly" % midfix
0087 mtv = getattr(process, label)
0088 mtvL1L2 = mtv.clone(
0089 dirName = mtv.dirName.value()[:-1] + "L1L2/",
0090 label_tp_effic = "trackingParticlesL1L2",
0091 label_tp_effic_refvector = True,
0092 label = [],
0093 mvaLabels = cms.PSet(),
0094 doMVAPlots = False,
0095 )
0096 mtvL2L3 = mtvL1L2.clone(
0097 dirName = mtvL1L2.dirName.value().replace("L1L2", "L2L3"),
0098 label_tp_effic = "trackingParticlesL2L3",
0099 )
0100 setattr(process, label+"L1L2", mtvL1L2)
0101 setattr(process, label+"L2L3", mtvL2L3)
0102 process.trackValidatorsTrackingOnly += (
0103 mtvL1L2 +
0104 mtvL2L3
0105 )
0106 for trkColl in mtv.label:
0107 selL1L2 = process.generalTracksL1L2.clone(src=trkColl)
0108 selL2L3 = process.generalTracksL2L3.clone(src=trkColl)
0109 selL1L2Name = trkColl+"L1L2"
0110 selL2L3Name = trkColl+"L2L3"
0111 setattr(process, selL1L2Name, selL1L2)
0112 setattr(process, selL2L3Name, selL2L3)
0113 process.tracksPreValidationTrackingOnly += (selL1L2+selL2L3)
0114
0115 mtvL1L2.label.append(selL1L2Name)
0116 mtvL2L3.label.append(selL2L3Name)
0117
0118 return process