Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-10-25 09:59:26

0001 from PhysicsTools.SelectorUtils.centralIDRegistry import central_id_registry
0002 
0003 # Common functions and classes for ID definition are imported here:
0004 from RecoEgamma.ElectronIdentification.Identification.cutBasedElectronID_tools import *
0005 
0006 #
0007 # This is the first round of Spring15 50ns cuts, optimized on  Spring15 50ns samples. 
0008 #
0009 # The ID cuts below are optimized IDs for Spring15 Scenario with 50ns bunch spacing
0010 # The cut values are taken from the twiki:
0011 #       https://twiki.cern.ch/twiki/bin/view/CMS/CutBasedElectronIdentificationRun2
0012 #       (where they may not stay, if a newer version of cuts becomes available for these
0013 #        conditions)
0014 # See also the presentation explaining these working points (this will not change):
0015 #        https://indico.cern.ch/event/369245/contribution/2/attachments/1153005/1655984/Rami_eleCB_ID_50ns_V2.pdf
0016 # NOTE: this V2 version is different from the V1 version for these conditions only
0017 # by the cuts of the WP Tight for the barrel. All other WP and endcap are the same as V1.
0018 # The changes was needed to make the WP Tight EB tighter than the HLT. For reference, the full V1 talk is here:
0019 #        https://indico.cern.ch/event/369239/contribution/6/attachments/1134836/1623383/Rami_eleCB_ID_50ns.pdf
0020 #
0021 # First, define cut values
0022 #
0023 
0024 # Veto working point Barrel and Endcap
0025 idName = "cutBasedElectronID-Spring15-50ns-V2-standalone-veto"
0026 WP_Veto_EB = EleWorkingPoint_V2(
0027     idName   , # idName
0028     0.0126   , # dEtaInCut
0029     0.107    , # dPhiInCut
0030     0.012    , # full5x5_sigmaIEtaIEtaCut
0031     0.186    , # hOverECut
0032     0.0621   , # dxyCut
0033     0.613    , # dzCut
0034     0.239    , # absEInverseMinusPInverseCut
0035     0.161    , # relCombIsolationWithEALowPtCut
0036     0.161 , # relCombIsolationWithEAHighPtCut
0037     # conversion veto cut needs no parameters, so not mentioned
0038     2          # missingHitsCut
0039     )
0040 
0041 WP_Veto_EE = EleWorkingPoint_V2(
0042     idName   , # idName
0043     0.0109   , # dEtaInCut
0044     0.219    , # dPhiInCut
0045     0.0339   , # full5x5_sigmaIEtaIEtaCut
0046     0.0962   , # hOverECut
0047     0.279    , # dxyCut
0048     0.947    , # dzCut
0049     0.141    , # absEInverseMinusPInverseCut
0050     0.193    , # relCombIsolationWithEALowPtCut
0051     0.193    , # relCombIsolationWithEAHighPtCut
0052     # conversion veto cut needs no parameters, so not mentioned
0053     3          # missingHitsCut
0054     )
0055 
0056 # Loose working point Barrel and Endcap
0057 idName = "cutBasedElectronID-Spring15-50ns-V2-standalone-loose"
0058 WP_Loose_EB = EleWorkingPoint_V2(
0059     idName   , # idName
0060     0.0098   , # dEtaInCut
0061     0.0929   , # dPhiInCut
0062     0.0105   , # full5x5_sigmaIEtaIEtaCut
0063     0.0765   , # hOverECut
0064     0.0227   , # dxyCut
0065     0.379    , # dzCut
0066     0.184    , # absEInverseMinusPInverseCut
0067     0.118    , # relCombIsolationWithEALowPtCut
0068     0.118    , # relCombIsolationWithEAHighPtCut
0069     # conversion veto cut needs no parameters, so not mentioned
0070     2          # missingHitsCut
0071     )
0072 
0073 WP_Loose_EE = EleWorkingPoint_V2(
0074     idName   , # idName
0075     0.00950  , # dEtaInCut
0076     0.181    , # dPhiInCut
0077     0.0318   , # full5x5_sigmaIEtaIEtaCut
0078     0.0824   , # hOverECut
0079     0.242    , # dxyCut
0080     0.921    , # dzCut
0081     0.125    , # absEInverseMinusPInverseCut
0082     0.118    , # relCombIsolationWithEALowPtCut
0083     0.118    , # relCombIsolationWithEAHighPtCut
0084     # conversion veto cut needs no parameters, so not mentioned
0085     1          # missingHitsCut
0086     )
0087 
0088 # Medium working point Barrel and Endcap
0089 idName = "cutBasedElectronID-Spring15-50ns-V2-standalone-medium"
0090 WP_Medium_EB = EleWorkingPoint_V2(
0091     idName   , # idName
0092     0.00945  , # dEtaInCut
0093     0.0296   , # dPhiInCut
0094     0.0101   , # full5x5_sigmaIEtaIEtaCut
0095     0.0372   , # hOverECut
0096     0.0151   , # dxyCut
0097     0.238    , # dzCut
0098     0.118    , # absEInverseMinusPInverseCut
0099     0.0987   , # relCombIsolationWithEALowPtCut
0100     0.0987   , # relCombIsolationWithEAHighPtCut
0101     # conversion veto cut needs no parameters, so not mentioned
0102     2          # missingHitsCut
0103     )
0104 
0105 WP_Medium_EE = EleWorkingPoint_V2(
0106     idName   , # idName
0107     0.00773  , # dEtaInCut
0108     0.148    , # dPhiInCut
0109     0.0287   , # full5x5_sigmaIEtaIEtaCut
0110     0.0546   , # hOverECut
0111     0.0535   , # dxyCut
0112     0.572    , # dzCut
0113     0.104    , # absEInverseMinusPInverseCut
0114     0.0902   , # relCombIsolationWithEALowPtCut
0115     0.0902   , # relCombIsolationWithEAHighPtCut
0116     # conversion veto cut needs no parameters, so not mentioned
0117     1          # missingHitsCut
0118     )
0119 
0120 # Tight working point Barrel and Endcap
0121 idName = "cutBasedElectronID-Spring15-50ns-V2-standalone-tight"
0122 WP_Tight_EB = EleWorkingPoint_V2(
0123     idName   , # idName
0124     0.00864  , # dEtaInCut
0125     0.0286   , # dPhiInCut
0126     0.0101   , # full5x5_sigmaIEtaIEtaCut
0127     0.0342   , # hOverECut
0128     0.0103   , # dxyCut
0129     0.170    , # dzCut
0130     0.0116   , # absEInverseMinusPInverseCut
0131     0.0591   , # relCombIsolationWithEALowPtCut
0132     0.0591   , # relCombIsolationWithEAHighPtCut
0133     # conversion veto cut needs no parameters, so not mentioned
0134     2          # missingHitsCut
0135     )
0136 
0137 WP_Tight_EE = EleWorkingPoint_V2(
0138     idName   , # idName
0139     0.00762  , # dEtaInCut
0140     0.0439   , # dPhiInCut
0141     0.0287   , # full5x5_sigmaIEtaIEtaCut
0142     0.0544   , # hOverECut
0143     0.0377   , # dxyCut
0144     0.571    , # dzCut
0145     0.0100   , # absEInverseMinusPInverseCut
0146     0.0759   , # relCombIsolationWithEALowPtCut
0147     0.0759   , # relCombIsolationWithEAHighPtCut
0148     # conversion veto cut needs no parameters, so not mentioned
0149     1          # missingHitsCut
0150     )
0151 
0152 # Second, define what effective areas to use for pile-up correction
0153 isoEffAreas = "RecoEgamma/ElectronIdentification/data/Spring15/effAreaElectrons_cone03_pfNeuHadronsAndPhotons_50ns.txt"
0154 
0155 
0156 #
0157 # Set up VID configuration for all cuts and working points
0158 #
0159 
0160 cutBasedElectronID_Spring15_50ns_V2_standalone_veto = configureVIDCutBasedEleID_V2(WP_Veto_EB, WP_Veto_EE, isoEffAreas)
0161 cutBasedElectronID_Spring15_50ns_V2_standalone_loose = configureVIDCutBasedEleID_V2(WP_Loose_EB, WP_Loose_EE, isoEffAreas)
0162 cutBasedElectronID_Spring15_50ns_V2_standalone_medium = configureVIDCutBasedEleID_V2(WP_Medium_EB, WP_Medium_EE, isoEffAreas)
0163 cutBasedElectronID_Spring15_50ns_V2_standalone_tight = configureVIDCutBasedEleID_V2(WP_Tight_EB, WP_Tight_EE, isoEffAreas)
0164 
0165 # The MD5 sum numbers below reflect the exact set of cut variables
0166 # and values above. If anything changes, one has to 
0167 # 1) comment out the lines below about the registry, 
0168 # 2) run "calculateMD5 <this file name> <one of the VID config names just above>
0169 # 3) update the MD5 sum strings below and uncomment the lines again.
0170 #
0171 
0172 central_id_registry.register(cutBasedElectronID_Spring15_50ns_V2_standalone_veto.idName,
0173                              '3edb92d2aee3dcf1e366a927a5660155')
0174 central_id_registry.register(cutBasedElectronID_Spring15_50ns_V2_standalone_loose.idName,
0175                              '527c1b1ddcf9061dc4093dc95590e2bb')
0176 central_id_registry.register(cutBasedElectronID_Spring15_50ns_V2_standalone_medium.idName,
0177                              '6837f1ac82974f19d2a15041a2e52ebb')
0178 central_id_registry.register(cutBasedElectronID_Spring15_50ns_V2_standalone_tight.idName,
0179                              'ab050ff2bd30d832881bfac03c9d3a8a')
0180 
0181 
0182 # for now until we have a database...
0183 cutBasedElectronID_Spring15_50ns_V2_standalone_veto.isPOGApproved = cms.untracked.bool(True)
0184 cutBasedElectronID_Spring15_50ns_V2_standalone_loose.isPOGApproved = cms.untracked.bool(True)
0185 cutBasedElectronID_Spring15_50ns_V2_standalone_medium.isPOGApproved = cms.untracked.bool(True)
0186 cutBasedElectronID_Spring15_50ns_V2_standalone_tight.isPOGApproved = cms.untracked.bool(True)