CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes | Static Private Attributes
runJetUncertainties.RunJetUncertainties Class Reference
Inheritance diagram for runJetUncertainties.RunJetUncertainties:

Public Member Functions

def __call__ (self, process, electronCollection=None, photonCollection=None, muonCollection=None, tauCollection=None, jetCollection=None, dRjetCleaning=None, jetCorrLabel=None, doSmearJets=None, jetSmearFileName=None, jetSmearHistogram=None, jetCorrPayloadName=None, jetCorrLabelUpToL3=None, jetCorrLabelUpToL3Res=None, jecUncertaintyFile=None, jecUncertaintyTag=None, varyByNsigmas=None, addToPatDefaultSequence=None, outputModule=None, postfix=None)
 
def __init__ (self)
 
def toolCode (self, process)
 

Private Attributes

 _comment
 
 _parameters
 

Static Private Attributes

 _defaultParameters
 
 _label
 

Detailed Description

Produce collection of pat::Jets with jet energy and resolution shifted up/down,
    in order to estimate effect of systematic uncertainties

Definition at line 13 of file runJetUncertainties.py.

Constructor & Destructor Documentation

◆ __init__()

def runJetUncertainties.RunJetUncertainties.__init__ (   self)

Definition at line 20 of file runJetUncertainties.py.

References heavyIonTools.ConfigureHeavyIons._defaultParameters, metTools.AddMETCollection._defaultParameters, trackTools.MakeAODTrackCandidates._defaultParameters, coreTools.RunOnData._defaultParameters, runJetUncertainties.RunJetUncertainties._defaultParameters, heavyIonTools.ProductionDefaults._defaultParameters, cmsswVersionTools.PickRelValInputFiles._defaultParameters, coreTools.RemoveMCMatching._defaultParameters, trackTools.MakePATTrackCandidates._defaultParameters, trigTools.SwitchOnTrigger._defaultParameters, heavyIonTools.SelectionDefaults._defaultParameters, heavyIonTools.DisbaleMonteCarloDeps._defaultParameters, trigTools.SwitchOnTriggerStandAlone._defaultParameters, tauTools.AddTauCollection._defaultParameters, trackTools.MakeTrackCandidates._defaultParameters, trigTools.SwitchOnTriggerMatching._defaultParameters, trigTools.SwitchOnTriggerMatchingStandAlone._defaultParameters, trigTools.SwitchOnTriggerMatchEmbedding._defaultParameters, jetTools.AddJetCollection._defaultParameters, jetTools.SwitchJetCollection._defaultParameters, jetTools.UpdateJetCollection._defaultParameters, jetTools.AddJetID._defaultParameters, jetTools.SetTagInfos._defaultParameters, root::helper::RootFunctionAdapter< F, args >.addParameter(), root::helper::RootFunctionHelper< F, args, Tag >.addParameter(), ParameterMgr.addParameter(), fit::RootMinuit< Function >.addParameter(), DropBoxMetadata::Parameters.addParameter(), Python11ParameterSet.addParameter(), l1t::TriggerSystem.addParameter(), LutXml.addParameter(), ConfigToolBase.ConfigToolBase.addParameter(), and edm::ParameterSet.addParameter().

20  def __init__(self):
21  JetMEtUncertaintyTools.__init__(self)
22  self.addParameter(self._defaultParameters, 'dRjetCleaning', 0.5,
23  "Eta-phi distance for extra jet cleaning", Type=float)
24  self._parameters = copy.deepcopy(self._defaultParameters)
25  self._comment = ""
26 
def __init__(self, dataset, job_number, job_id, job_name, isDA, isMC, applyBOWS, applyEXTRACOND, extraconditions, runboundary, lumilist, intlumi, maxevents, gt, allFromGT, alignmentDB, alignmentTAG, apeDB, apeTAG, bowDB, bowTAG, vertextype, tracktype, refittertype, ttrhtype, applyruncontrol, ptcut, CMSSW_dir, the_dir)

Member Function Documentation

◆ __call__()

def runJetUncertainties.RunJetUncertainties.__call__ (   self,
  process,
  electronCollection = None,
  photonCollection = None,
  muonCollection = None,
  tauCollection = None,
  jetCollection = None,
  dRjetCleaning = None,
  jetCorrLabel = None,
  doSmearJets = None,
  jetSmearFileName = None,
  jetSmearHistogram = None,
  jetCorrPayloadName = None,
  jetCorrLabelUpToL3 = None,
  jetCorrLabelUpToL3Res = None,
  jecUncertaintyFile = None,
  jecUncertaintyTag = None,
  varyByNsigmas = None,
  addToPatDefaultSequence = None,
  outputModule = None,
  postfix = None 
)

Definition at line 46 of file runJetUncertainties.py.

References heavyIonTools.ConfigureHeavyIons._defaultParameters, metTools.AddMETCollection._defaultParameters, trackTools.MakeAODTrackCandidates._defaultParameters, coreTools.RunOnData._defaultParameters, runJetUncertainties.RunJetUncertainties._defaultParameters, heavyIonTools.ProductionDefaults._defaultParameters, cmsswVersionTools.PickRelValInputFiles._defaultParameters, coreTools.RemoveMCMatching._defaultParameters, trackTools.MakePATTrackCandidates._defaultParameters, trigTools.SwitchOnTrigger._defaultParameters, heavyIonTools.SelectionDefaults._defaultParameters, heavyIonTools.DisbaleMonteCarloDeps._defaultParameters, trigTools.SwitchOnTriggerStandAlone._defaultParameters, tauTools.AddTauCollection._defaultParameters, trackTools.MakeTrackCandidates._defaultParameters, trigTools.SwitchOnTriggerMatching._defaultParameters, trigTools.SwitchOnTriggerMatchingStandAlone._defaultParameters, trigTools.SwitchOnTriggerMatchEmbedding._defaultParameters, jetTools.AddJetCollection._defaultParameters, jetTools.SwitchJetCollection._defaultParameters, jetTools.UpdateJetCollection._defaultParameters, jetTools.AddJetID._defaultParameters, jetTools.SetTagInfos._defaultParameters, SignedImpactParameter3D.apply(), SignedDecayLength3D.apply(), SignedTransverseImpactParameter.apply(), ProcessAcceleratorCUDA.ProcessAcceleratorCUDA.apply(), ProcessAcceleratorROCm.ProcessAcceleratorROCm.apply(), gen::PhotosInterfaceBase.apply(), SurveyParameters.apply(), DummyOOTPileupCorrection.apply(), MatrixReader.MatrixReader.apply, gen::PhotosppInterface.apply(), FWPSetCellEditor.apply(), BeamSpotAlignmentParameters.apply(), RigidBodyAlignmentParameters.apply(), DeviationsFromFileSensor2D.apply(), FWGUIEventFilter.apply(), AlignmentParameters.apply(), ConfigToolBase.ConfigToolBase.apply(), BowedSurfaceAlignmentParameters.apply(), OOTPileupCorrData.apply(), ProcessAcceleratorAlpaka.ProcessAcceleratorAlpaka.apply(), AbsOOTPileupCorrection.apply(), TwoBowedSurfacesAlignmentParameters.apply(), reco::modules::TrackerTrackHitFilter::Rule.apply(), cmsswVersionTools.PickRelValInputFiles.apply(), models.RegExp.apply(), ArrayND< Accumulator >.apply(), npstat::ArrayND< Numeric >.apply(), ArrayND< Num2, Len2, Dim2 >.apply(), ArrayND< Num1, Len1, Dim1 >.apply(), npstat::ArrayND< Numeric, StackLen, StackDim >.apply(), ArrayND< Numeric, Len, Dim >.apply(), ArrayND< Numeric, Len2, Dim2 >.apply(), Config.ProcessModifier.apply(), Config.ProcessAccelerator.apply(), Config.ProcessAcceleratorTest.apply(), Config.ProcessAcceleratorTest2.apply(), HGCalCassette.setParameter(), PedeReader.setParameter(), QIE8Simulator.setParameter(), AbsElectronicODERHS.setParameter(), SiStripLorentzAngleCalibration.setParameter(), SiPixelLorentzAngleCalibration.setParameter(), IntegratedCalibrationBase.setParameter(), SiStripBackplaneCalibration.setParameter(), fit::RootMinuit< Function >.setParameter(), and ConfigToolBase.ConfigToolBase.setParameter().

46  postfix = None):
47  JetMEtUncertaintyTools.__call__(
48  self, process,
49  electronCollection = electronCollection,
50  photonCollection = photonCollection,
51  muonCollection = muonCollection,
52  tauCollection = tauCollection,
53  jetCollection = jetCollection,
54  jetCorrLabel = jetCorrLabel,
55  doSmearJets = doSmearJets,
56  jetSmearFileName = jetSmearFileName,
57  jetSmearHistogram = jetSmearHistogram,
58  jetCorrPayloadName = jetCorrPayloadName,
59  jetCorrLabelUpToL3 = jetCorrLabelUpToL3,
60  jetCorrLabelUpToL3Res = jetCorrLabelUpToL3Res,
61  jecUncertaintyFile = jecUncertaintyFile,
62  jecUncertaintyTag = jecUncertaintyTag,
63  varyByNsigmas = varyByNsigmas,
64  addToPatDefaultSequence = addToPatDefaultSequence,
65  outputModule = outputModule,
66  postfix = postfix)
67  if dRjetCleaning is None:
68  dRjetCleaning = self._defaultParameters['dRjetCleaning'].value
69 
70  self.setParameter('dRjetCleaning', dRjetCleaning)
71 
72  self.apply(process)
73 

◆ toolCode()

def runJetUncertainties.RunJetUncertainties.toolCode (   self,
  process 
)

Definition at line 74 of file runJetUncertainties.py.

References trigTools._addEventContent(), heavyIonTools.ConfigureHeavyIons._parameters, trackTools.MakeAODTrackCandidates._parameters, coreTools.RunOnData._parameters, metTools.AddMETCollection._parameters, runJetUncertainties.RunJetUncertainties._parameters, heavyIonTools.ProductionDefaults._parameters, ConfigToolBase.ConfigToolBase._parameters, TAbsFitConstraint._parameters, TAbsFitParticle._parameters, cmsswVersionTools.PickRelValInputFiles._parameters, coreTools.RemoveMCMatching._parameters, trackTools.MakePATTrackCandidates._parameters, trigTools.SwitchOnTrigger._parameters, heavyIonTools.SelectionDefaults._parameters, heavyIonTools.DisbaleMonteCarloDeps._parameters, trigTools.SwitchOnTriggerStandAlone._parameters, tauTools.AddTauCollection._parameters, trackTools.MakeTrackCandidates._parameters, trigTools.SwitchOnTriggerMatching._parameters, trigTools.SwitchOnTriggerMatchingStandAlone._parameters, trigTools.SwitchOnTriggerMatchEmbedding._parameters, jetTools.AddJetCollection._parameters, jetTools.SwitchJetCollection._parameters, jetTools.UpdateJetCollection._parameters, jetTools.AddJetID._parameters, and jetTools.SetTagInfos._parameters.

74  def toolCode(self, process):
75  electronCollection = self._parameters['electronCollection'].value
76  photonCollection = self._parameters['photonCollection'].value
77  muonCollection = self._parameters['muonCollection'].value
78  tauCollection = self._parameters['tauCollection'].value
79  jetCollection = self._parameters['jetCollection'].value
80  jetCorrLabel = self._parameters['jetCorrLabel'].value
81  dRjetCleaning = self._parameters['dRjetCleaning'].value
82  doSmearJets = self._parameters['doSmearJets'].value
83  jetSmearFileName = self._parameters['jetSmearFileName'].value
84  jetSmearHistogram = self._parameters['jetSmearHistogram'].value
85  jetCorrPayloadName = self._parameters['jetCorrPayloadName'].value
86  jetCorrLabelUpToL3 = self._parameters['jetCorrLabelUpToL3'].value
87  jetCorrLabelUpToL3Res = self._parameters['jetCorrLabelUpToL3Res'].value
88  jecUncertaintyFile = self._parameters['jecUncertaintyFile'].value
89  jecUncertaintyTag = self._parameters['jecUncertaintyTag'].value
90  varyByNsigmas = self._parameters['varyByNsigmas'].value
91  addToPatDefaultSequence = self._parameters['addToPatDefaultSequence'].value
92  outputModule = self._parameters['outputModule'].value
93  postfix = self._parameters['postfix'].value
94 
95  if not hasattr(process, "jetUncertaintySequence" + postfix):
96  jetUncertaintySequence = cms.Sequence()
97  setattr(process, "jetUncertaintySequence" + postfix, jetUncertaintySequence)
98  jetUncertaintySequence = getattr(process, "jetUncertaintySequence" + postfix)
99 
100  collectionsToKeep = []
101 
102  # produce collection of jets not overlapping with reconstructed
103  # electrons/photons, muons and tau-jet candidates
104  lastJetCollection, cleanedJetCollection = \
105  self._addCleanedJets(process, jetCollection,
106  electronCollection, photonCollection, muonCollection, tauCollection,
107  jetUncertaintySequence, postfix)
108 
109  # smear jet energies to account for difference in jet resolutions between MC and Data
110  # (cf. JME-10-014 PAS)
111  jetCollectionResUp = None
112  jetCollectionResDown = None
113  if doSmearJets:
114  lastJetCollection = \
115  self._addSmearedJets(process, cleanedJetCollection, [ "smeared", jetCollection.value() ],
116  jetSmearFileName, jetSmearHistogram, varyByNsigmas,
117  uncertaintySequence = jetUncertaintySequence, postfix = postfix)
118  jetCollectionResUp = \
119  self._addSmearedJets(process, cleanedJetCollection, [ "smeared", jetCollection.value(), "ResUp" ],
120  jetSmearFileName, jetSmearHistogram, varyByNsigmas, -1.,
121  uncertaintySequence = jetUncertaintySequence, postfix = postfix)
122  collectionsToKeep.append(jetCollectionResUp)
123  jetCollectionResDown = \
124  self._addSmearedJets(process, cleanedJetCollection, [ "smeared", jetCollection.value(), "ResDown" ],
125  jetSmearFileName, jetSmearHistogram, varyByNsigmas, +1.,
126  uncertaintySequence = jetUncertaintySequence, postfix = postfix)
127  collectionsToKeep.append(jetCollectionResDown)
128 
129  collectionsToKeep.append(lastJetCollection)
130 
131  #--------------------------------------------------------------------------------------------
132  # produce collection of electrons/photons, muons, tau-jet candidates and jets
133  # shifted up/down in energy by their respective energy uncertainties
134  #--------------------------------------------------------------------------------------------
135 
136  shiftedParticleSequence, shiftedParticleCollections, addCollectionsToKeep = \
137  self._addShiftedParticleCollections(process,
138  None,
139  None,
140  None,
141  None,
142  jetCollection, cleanedJetCollection, lastJetCollection,
143  jetCollectionResUp, jetCollectionResDown,
144  jetCorrLabelUpToL3, jetCorrLabelUpToL3Res,
145  jecUncertaintyFile, jecUncertaintyTag,
146  varyByNsigmas,
147  postfix)
148  setattr(process, "shiftedParticlesForJetUncertainties" + postfix, shiftedParticleSequence)
149  jetUncertaintySequence += getattr(process, "shiftedParticlesForJetUncertainties" + postfix)
150  collectionsToKeep.extend(addCollectionsToKeep)
151 
152  # insert metUncertaintySequence into patDefaultSequence
153  if addToPatDefaultSequence:
154  if not hasattr(process, "patDefaultSequence"):
155  raise ValueError("PAT default sequence is not defined !!")
156  process.patDefaultSequence += jetUncertaintySequence
157 
158  # add shifted + unshifted collections pf pat::Electrons/Photons,
159  # Muons, Taus, Jets and MET to PAT-tuple event content
160  if outputModule is not None and hasattr(process, outputModule):
161  getattr(process, outputModule).outputCommands = _addEventContent(
162  getattr(process, outputModule).outputCommands,
163  [ 'keep *_%s_*_%s' % (collectionToKeep, process.name_()) for collectionToKeep in collectionsToKeep ])
164 
def _addEventContent(outputCommands, eventContent)
Definition: trigTools.py:31

Member Data Documentation

◆ _comment

runJetUncertainties.RunJetUncertainties._comment
private

Definition at line 25 of file runJetUncertainties.py.

◆ _defaultParameters

runJetUncertainties.RunJetUncertainties._defaultParameters
staticprivate

◆ _label

runJetUncertainties.RunJetUncertainties._label
staticprivate

◆ _parameters

runJetUncertainties.RunJetUncertainties._parameters
private