Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:25:10

0001 
0002 from PhysicsTools.SelectorUtils.centralIDRegistry import central_id_registry
0003 
0004 # Common functions and classes for ID definition are imported here:
0005 from RecoEgamma.PhotonIdentification.Identification.cutBasedPhotonID_tools import *
0006 
0007 #
0008 # This is the first version of Spring15  cuts, optimized on Spring15 50ns samples. 
0009 #
0010 # The ID cuts below are optimized IDs for Spring 50ns Scenario
0011 # The cut values are taken from the twiki:
0012 #       https://twiki.cern.ch/twiki/bin/viewauth/CMS/CutBasedPhotonIdentificationRun2
0013 #       (where they may not stay, if a newer version of cuts becomes available for these
0014 #        conditions)
0015 # See also the presentation explaining these working points (this will not change):
0016 #       https://indico.cern.ch/event/369239/contribution/2/attachments/1134693/1623149/spring15_pcb.pdf
0017 
0018 #
0019 # First, define cut values
0020 #
0021 
0022 # Loose working point Barrel and Endcap
0023 idName = "cutBasedPhotonID-Spring15-50ns-V1-standalone-loose"
0024 WP_Loose_EB = WorkingPoint_V2(
0025     idName    ,  # idName
0026     0.05      ,  # hOverECut
0027     0.0103    ,  # full5x5_SigmaIEtaIEtaCut
0028 # Isolation cuts are generally absIso < C1 + pt*C2, except for NeuHad is < C1 + exp(pt*C2+C3)
0029     2.44      ,  # absPFChaHadIsoWithEACut_C1
0030     0         ,  # absPFChaHadIsoWithEACut_C2
0031     2.57      ,  # absPFNeuHadIsoWithEACut_C1
0032     0.0044    ,  # absPFNeuHadIsoWithEACut_C2
0033     0.5809    ,  # absPFNeuHadIsoWithEACut_C3
0034     1.92      ,  # absPFPhoIsoWithEACut_C1
0035     0.0043       # absPFPhoIsoWithEACut_C2
0036     )
0037 WP_Loose_EE = WorkingPoint_V2(
0038     idName    ,  #idName
0039     0.05      ,  # hOverECut
0040     0.0277    ,  # full5x5_SigmaIEtaIEtaCut
0041 # Isolation cuts are generally absIso < C1 + pt*C2, except for NeuHad is < C1 + exp(pt*C2+C3)
0042     1.84      ,  # absPFChaHadIsoWithEACut_C1
0043     0.00      ,  # absPFChaHadIsoWithEACut_C2
0044     4.00      ,  # absPFNeuHadIsoWithEACut_C1
0045     0.0040    ,  # absPFNeuHadIsoWithEACut_C2
0046     0.9402    ,  # absPFNeuHadIsoWithEACut_C3
0047     2.15      ,  # absPFPhoIsoWithEACut_C1
0048     0.0041       # absPFPhoIsoWithEACut_C2
0049     )
0050 
0051 # Medium working point Barrel and Endcap
0052 idName = "cutBasedPhotonID-Spring15-50ns-V1-standalone-medium"
0053 WP_Medium_EB = WorkingPoint_V2(
0054     idName    ,  # idName
0055     0.05      ,  # hOverECut
0056     0.0100    ,  # full5x5_SigmaIEtaIEtaCut
0057 # Isolation cuts are generally absIso < C1 + pt*C2, except for NeuHad is < C1 + exp(pt*C2+C3)
0058     1.31      ,  # absPFChaHadIsoWithEACut_C1
0059     0.00      ,  # absPFChaHadIsoWithEACut_C2
0060     0.60      ,  # absPFNeuHadIsoWithEACut_C1
0061     0.0044    ,  # absPFNeuHadIsoWithEACut_C2
0062     0.5809    ,  # absPFNeuHadIsowithEACut_C3 
0063     1.33      ,  # absPFPhoIsoWithEACut_C1
0064     0.0043       # absPFPhoIsoWithEACut_C2
0065     )
0066 
0067 WP_Medium_EE = WorkingPoint_V2(
0068     idName    ,  #idName
0069     0.05      ,  # hOverECut
0070     0.0267    ,  # full5x5_SigmaIEtaIEtaCut
0071 # Isolation cuts are generally absIso < C1 + pt*C2, except for NeuHad is < C1 + exp(pt*C2+C3)
0072     1.25      ,  # absPFChaHadIsoWithEACut_C1
0073     0.00      ,  # absPFChaHadIsoWithEACut_C2
0074     1.65      ,  # absPFNeuHadIsoWithEACut_C1
0075     0.0040    ,  # absPFNeuHadIsoWithEACut_C2
0076     0.9402    ,  # absPFNeuHadIsowithEACut_C3 
0077     1.02      ,  # absPFPhoIsoWithEACut_C1
0078     0.0041       # absPFPhoIsoWithEACut_C2
0079     )
0080 
0081 # Tight working point Barrel and Endcap
0082 idName = "cutBasedPhotonID-Spring15-50ns-V1-standalone-tight"
0083 WP_Tight_EB = WorkingPoint_V2(
0084     idName    ,  # idName
0085     0.05      ,  # hOverECut
0086     0.0100    ,  # full5x5_SigmaIEtaIEtaCut
0087 # Isolation cuts are generally absIso < C1 + pt*C2, except for NeuHad is < C1 + exp(pt*C2+C3)
0088     0.91      ,  # absPFChaHadIsoWithEACut_C1
0089     0.00      ,  # absPFChaHadIsoWithEACut_C2
0090     0.33      ,  # absPFNeuHadIsoWithEACut_C1
0091     0.0044    ,  # absPFNeuHadIsoWithEACut_C2
0092     0.5809    ,  # absPFNeuHadIsowithEACut_C3
0093     0.61      ,  # absPFPhoIsoWithEACut_C1
0094     0.0043        # absPFPhoIsoWithEACut_C2
0095     )
0096 
0097 WP_Tight_EE = WorkingPoint_V2(
0098     idName    ,  #idName
0099     0.05      ,  # hOverECut
0100     0.0267    ,  # full5x5_SigmaIEtaIEtaCut
0101 # Isolation cuts are generally absIso < C1 + pt*C2, except for NeuHad is < C1 + exp(pt*C2+C3)
0102     0.65      ,  # absPFChaHadIsoWithEACut_C1
0103     0.00      ,  # absPFChaHadIsoWithEACut_C2
0104     0.93      ,  # absPFNeuHadIsoWithEACut_C1
0105     0.0040    ,  # absPFNeuHadIsoWithEACut_C2
0106     0.9402    ,  # absPFNeuHadIsowithEACut_C3    
0107     0.54      ,  # absPFPhoIsoWithEACut_C1
0108     0.0041       # absPFPhoIsoWithEACut_C2
0109     )
0110 
0111 
0112 # Second, define where to find the precomputed isolations and what effective
0113 # areas to use for pile-up correction
0114 isoInputs = IsolationCutInputs(
0115     # chHadIsolationMapName  
0116     'photonIDValueMapProducer:phoChargedIsolation' ,
0117     # chHadIsolationEffAreas 
0118     "RecoEgamma/PhotonIdentification/data/Spring15/effAreaPhotons_cone03_pfChargedHadrons_50ns.txt" ,
0119     # neuHadIsolationMapName
0120     'photonIDValueMapProducer:phoNeutralHadronIsolation' ,
0121     # neuHadIsolationEffAreas
0122     "RecoEgamma/PhotonIdentification/data/Spring15/effAreaPhotons_cone03_pfNeutralHadrons_50ns.txt" ,
0123     # phoIsolationMapName  
0124     "photonIDValueMapProducer:phoPhotonIsolation" ,
0125     # phoIsolationEffAreas
0126     "RecoEgamma/PhotonIdentification/data/Spring15/effAreaPhotons_cone03_pfPhotons_50ns.txt"
0127 )
0128 
0129 #
0130 # Finally, set up VID configuration for all cuts
0131 #
0132 cutBasedPhotonID_Spring15_50ns_V1_standalone_loose  = configureVIDCutBasedPhoID_V4 ( WP_Loose_EB, WP_Loose_EE, isoInputs)
0133 cutBasedPhotonID_Spring15_50ns_V1_standalone_medium = configureVIDCutBasedPhoID_V4 ( WP_Medium_EB, WP_Medium_EE, isoInputs)
0134 cutBasedPhotonID_Spring15_50ns_V1_standalone_tight  = configureVIDCutBasedPhoID_V4 ( WP_Tight_EB, WP_Tight_EE, isoInputs)
0135 
0136 ## The MD5 sum numbers below reflect the exact set of cut variables
0137 # and values above. If anything changes, one has to 
0138 # 1) comment out the lines below about the registry, 
0139 # 2) run "calculateMD5 <this file name> <one of the VID config names just above>
0140 # 3) update the MD5 sum strings below and uncomment the lines again.
0141 #
0142 
0143 central_id_registry.register(cutBasedPhotonID_Spring15_50ns_V1_standalone_loose.idName,
0144                              '0ecdbf2d9e48f89051f6dd7f9e6547e8')
0145 central_id_registry.register(cutBasedPhotonID_Spring15_50ns_V1_standalone_medium.idName,
0146                              '9efd6037fab2ff3bb65b7592fac5efde')
0147 central_id_registry.register(cutBasedPhotonID_Spring15_50ns_V1_standalone_tight.idName,
0148                              'e6a9a77984738862cda3a2fd966fc05e')
0149 
0150 cutBasedPhotonID_Spring15_50ns_V1_standalone_loose.isPOGApproved = cms.untracked.bool(True)
0151 cutBasedPhotonID_Spring15_50ns_V1_standalone_medium.isPOGApproved = cms.untracked.bool(True)
0152 cutBasedPhotonID_Spring15_50ns_V1_standalone_tight.isPOGApproved = cms.untracked.bool(True)