Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-10-25 10:02:07

0001 import FWCore.ParameterSet.Config as cms
0002 
0003 '''
0004 
0005 Plugins for ranking PFTau candidates
0006 
0007 '''
0008 
0009 tolerance_default = cms.double(0)
0010 
0011 matchingConeCut = cms.PSet(
0012     name = cms.string("MatchingCone"),
0013     plugin = cms.string("RecoTauStringCleanerPlugin"),
0014     # Prefer taus that are within DR<0.1 of the jet axis
0015     selection = cms.string("deltaR(eta, phi, jetRef().eta, jetRef().phi) < 0.1"),
0016     selectionPassFunction = cms.string("0"),
0017     selectionFailValue = cms.double(1e3),
0018     tolerance = tolerance_default,
0019 )
0020 
0021 # Prefer taus with charge == 1 (no three prongs with charge = 3)
0022 unitCharge = cms.PSet(
0023     name = cms.string("UnitCharge"),
0024     plugin = cms.string("RecoTauStringCleanerPlugin"),
0025     # Only effects three prongs
0026     selection = cms.string("signalChargedHadrCands().size() = 3"),
0027     # As 1 is lower than 3, this will always prefer those with unit charge
0028     selectionPassFunction = cms.string("abs(charge())-1"),
0029     # If it is a one prong, consider it just as good as a
0030     # three prong with unit charge
0031     selectionFailValue = cms.double(0),
0032     tolerance = tolerance_default,
0033 )
0034 
0035 # similar to unitCharge but handles also cases where tau is made up of
0036 # a combination of tracks and pf charged hadrons
0037 charge = cms.PSet(
0038     name = cms.string("Charge"),
0039     plugin = cms.string("RecoTauChargeCleanerPlugin"),
0040     # cleaner is applied to decay modes with the number of prongs given here
0041     nprongs = cms.vuint32(1,3),
0042     # taus with charge != 1 are rejected
0043     passForCharge = cms.int32(1),
0044     selectionFailValue = cms.double(0),
0045     tolerance = tolerance_default,
0046 )
0047 
0048 # Prefer taus with pt greater 15
0049 ptGt15 = cms.PSet(
0050     name = cms.string("PtGt15"),
0051     plugin = cms.string("RecoTauStringCleanerPlugin"),
0052     selection = cms.string("pt > 15."),
0053     selectionPassFunction = cms.string("0"),
0054     selectionFailValue = cms.double(1e3),
0055     tolerance = tolerance_default,
0056 )
0057 
0058 leadPionFinding = cms.PSet(
0059     name = cms.string("LeadPion"),
0060     plugin = cms.string("RecoTauDiscriminantCleanerPlugin"),
0061     src = cms.InputTag("DISCRIMINATOR_SRC"),
0062     tolerance = tolerance_default,
0063 )
0064 
0065 pt = cms.PSet(
0066     name = cms.string("Pt"),
0067     plugin = cms.string("RecoTauStringCleanerPlugin"),
0068     # Require that cones were built by ensuring the a leadCand exits
0069     selection = cms.string("leadCand().isNonnull()"),
0070     selectionPassFunction = cms.string("-pt()"), # CV: negative sign means that we prefer candidates of high pT
0071     selectionFailValue = cms.double(1e3),
0072     tolerance = cms.double(1.e-2) # CV: consider candidates with almost equal pT to be of the same rank (to avoid sensitivity to rounding errors)
0073 )
0074 
0075 chargedHadronMultiplicity = cms.PSet(
0076     name = cms.string("ChargedHadronMultiplicity"),
0077     plugin = cms.string("RecoTauChargedHadronMultiplicityCleanerPlugin"),
0078     tolerance = tolerance_default,
0079 )
0080 
0081 stripMultiplicity = cms.PSet(
0082     name = cms.string("StripMultiplicity"),
0083     plugin = cms.string("RecoTauStringCleanerPlugin"),
0084     # Require that cones were built by ensuring the a leadCand exits
0085     selection = cms.string("leadCand().isNonnull()"),
0086     selectionPassFunction = cms.string("-signalPiZeroCandidates().size()"),
0087     selectionFailValue = cms.double(1e3),
0088     tolerance = tolerance_default,
0089 )
0090 
0091 combinedIsolation = cms.PSet(
0092     name = cms.string("CombinedIsolation"),
0093     plugin = cms.string("RecoTauStringCleanerPlugin"),
0094     # Require that cones were built by ensuring the a leadCand exits
0095     selection = cms.string("leadCand().isNonnull()"),
0096     selectionPassFunction = cms.string("isolationPFChargedHadrCandsPtSum() + isolationPFGammaCandsEtSum()"),
0097     selectionFailValue = cms.double(1e3),
0098     tolerance = tolerance_default,
0099 )
0100 
0101 chargeIsolation = cms.PSet(
0102     name = cms.string("ChargeIsolation"),
0103     plugin = cms.string("RecoTauStringCleanerPlugin"),
0104     # Require that cones were built by ensuring the a leadCand exits
0105     selection = cms.string("leadCand().isNonnull()"),
0106     # Prefer lower isolation activity
0107     selectionPassFunction = cms.string("isolationPFChargedHadrCandsPtSum()"),
0108     selectionFailValue = cms.double(1e3),
0109     tolerance = tolerance_default,
0110 )
0111 
0112 ecalIsolation = cms.PSet(
0113     name = cms.string("GammaIsolation"),
0114     plugin = cms.string("RecoTauStringCleanerPlugin"),
0115     # Require that cones were built by ensuring the a leadCand exits
0116     selection = cms.string("leadCand().isNonnull()"),
0117     # Prefer lower isolation activity
0118     selectionPassFunction = cms.string("isolationPFGammaCandsEtSum()"),
0119     selectionFailValue = cms.double(1e3),
0120     tolerance = tolerance_default,
0121 )
0122 
0123 # CV: Reject 2-prong candidates in which one of the tracks has low pT,
0124 #     in order to reduce rate of 1-prong taus migrating to 2-prong decay modecanddates
0125 killSoftTwoProngTaus = cms.PSet(
0126     name = cms.string("killSoftTwoProngTaus"),
0127     plugin = cms.string("RecoTauSoftTwoProngTausCleanerPlugin"),
0128     minTrackPt = cms.double(5.),
0129     tolerance = tolerance_default,
0130 )