Skip to content

Commit

Permalink
Merge remote branch 'origin/CMSSW_7_0_X' into CMSSW_7_0_X
Browse files Browse the repository at this point in the history
  • Loading branch information
cmsbuild committed Feb 7, 2014
2 parents 3f4934f + e4a0c1a commit 901244d
Show file tree
Hide file tree
Showing 2 changed files with 170 additions and 0 deletions.
59 changes: 59 additions & 0 deletions RecoTauTag/RecoTau/python/HPSPFRecoTauProducer_cfi.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
import FWCore.ParameterSet.Config as cms
from RecoTauTag.RecoTau.PFRecoTauQualityCuts_cfi import PFTauQualityCuts

hpsPFRecoTauProducer = cms.EDProducer("PFRecoTauProducer",
#Standard Input
PFTauTagInfoProducer = cms.InputTag("pfRecoTauTagInfoProducer"),
JetPtMin = cms.double(0.0),
ElectronPreIDProducer = cms.InputTag("elecpreid"),
PVProducer = PFTauQualityCuts.primaryVertexSrc,
smearedPVsigmaY = cms.double(0.0015),
smearedPVsigmaX = cms.double(0.0015),
smearedPVsigmaZ = cms.double(0.005),

Algorithm = cms.string("HPS"),
#HPS Specific

#Setup the merger
emMergingAlgorithm = cms.string("StripBased"), #Strip Algorithm
stripCandidatesPdgIds = cms.vint32(22,11), #Clusterize photons and electrons
stripEtaAssociationDistance = cms.double(0.05), #Eta Association for the strips
stripPhiAssociationDistance = cms.double(0.2), #Phi Association for the strips
stripPtThreshold = cms.double(1.0), # Strip Pt Threshold

candOverlapCriterion = cms.string("Isolation"), #Overlap filter double decay modes by isolation
#Select Decay Modes
doOneProng = cms.bool(True),
doOneProngStrip = cms.bool(True),
doOneProngTwoStrips = cms.bool(True),
doThreeProng = cms.bool(True),

#Minimum Pt for the tau
tauPtThreshold = cms.double(15.),
#Leading Pion Threshold
leadPionThreshold = cms.double(1.0),


#isolation cone definitions
chargeHadrIsolationConeSize = cms.double(0.5),
gammaIsolationConeSize = cms.double(0.5),
neutrHadrIsolationConeSize = cms.double(0.5),

# If it is true the algorithm will calculate the signal cone
# and put in the isolation items that are outside it
#If it is False it will associate to the isolation
#any non signal constituent
useIsolationAnnulus = cms.bool(False),
#Mass Windows
oneProngStripMassWindow = cms.vdouble(0.3,1.3),
oneProngTwoStripsMassWindow = cms.vdouble(0.4,1.2),
oneProngTwoStripsPi0MassWindow = cms.vdouble(0.05,0.2),
threeProngMassWindow = cms.vdouble(0.8,1.5),
#Matching cone for the taus
matchingCone= cms.double(0.1),
#Add converted electrons to the Tau LV
coneMetric = cms.string("DR"),
coneSizeFormula = cms.string("2.8/ET"),
minimumSignalCone = cms.double(0.05),
maximumSignalCone = cms.double(0.1)
)
111 changes: 111 additions & 0 deletions RecoTauTag/RecoTau/python/PFRecoTauProducer_cfi.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
import FWCore.ParameterSet.Config as cms
from RecoTauTag.RecoTau.PFRecoTauQualityCuts_cfi import PFTauQualityCuts

pfRecoTauProducer = cms.EDProducer("PFRecoTauProducer",

Algorithm = cms.string("ConeBased"),
LeadPFCand_minPt = cms.double(5.0), #cut on lead object (can be track, or gamma)

#SignalCone parameters
TrackerSignalConeMetric = cms.string('DR'), ## *
TrackerSignalConeSizeFormula = cms.string('0.07'), ## **
TrackerSignalConeSize_min = cms.double(0.0),

#Important: the four-vector energy for the PFTau is defined as the candidates
# within the maximum tracker signal cone size (TrackerSignalConeSize_max_).
# For fixed cone taus, this should be set to the fixed cone size.
TrackerSignalConeSize_max = cms.double(0.07),

ECALSignalConeMetric = cms.string('DR'), ## *
ECALSignalConeSizeFormula = cms.string('0.15'), ## **
ECALSignalConeSize_min = cms.double(0.0),
ECALSignalConeSize_max = cms.double(0.6),

HCALSignalConeMetric = cms.string('DR'), ## *
HCALSignalConeSizeFormula = cms.string('0.10'), ## **
HCALSignalConeSize_min = cms.double(0.0),
HCALSignalConeSize_max = cms.double(0.6),

#IsolationCone parameters
TrackerIsolConeMetric = cms.string('DR'), ## *
TrackerIsolConeSizeFormula = cms.string('0.50'), ## **
TrackerIsolConeSize_min = cms.double(0.0),
TrackerIsolConeSize_max = cms.double(0.6),

ECALIsolConeMetric = cms.string('DR'), ## *
ECALIsolConeSizeFormula = cms.string('0.50'), ## **
ECALIsolConeSize_min = cms.double(0.0),
ECALIsolConeSize_max = cms.double(0.6),

HCALIsolConeMetric = cms.string('DR'), ## *
HCALIsolConeSizeFormula = cms.string('0.50'), ## **
HCALIsolConeSize_min = cms.double(0.0),
HCALIsolConeSize_max = cms.double(0.6),

# Cut on the number of tracker hits on isolation PF charged hadrons
#ChargedHadrCand_IsolAnnulus_minNhits = cms.uint32(8), # this cut is now applied in the PFTauDiscriminator
ChargedHadrCand_IsolAnnulus_minNhits = cms.uint32(0),

#Electron rejection parameters
ElectronPreIDProducer = cms.InputTag("elecpreid"),
EcalStripSumE_deltaPhiOverQ_minValue = cms.double(-0.1),
EcalStripSumE_deltaPhiOverQ_maxValue = cms.double(0.5),
EcalStripSumE_minClusEnergy = cms.double(0.1),
EcalStripSumE_deltaEta = cms.double(0.03),
ElecPreIDLeadTkMatch_maxDR = cms.double(0.01),
maximumForElectrionPreIDOutput = cms.double(-0.1),

#Lead track matching cone parameters
MatchingConeMetric = cms.string('DR'),
MatchingConeSizeFormula = cms.string('0.1'),
MatchingConeSize_min = cms.double(0.0), #min/max don't affect, as it is locked at 0.1
MatchingConeSize_max = cms.double(0.6), #just make sure they window 0.1!

# PFTaus are seeded by TauTagInfos (basically a jet wrapper/quality filter)
PFTauTagInfoProducer = cms.InputTag("pfRecoTauTagInfoProducer"),
JetPtMin = cms.double(0.0),
#Filter lead charged hadron cand. by DZ to vertex?
UseChargedHadrCandLeadChargedHadrCand_tksDZconstraint = cms.bool(True),
ChargedHadrCandLeadChargedHadrCand_tksmaxDZ = cms.double(1.0),

#Standard PV stuff
PVProducer = PFTauQualityCuts.primaryVertexSrc,
smearedPVsigmaY = cms.double(0.0015),
smearedPVsigmaX = cms.double(0.0015),
smearedPVsigmaZ = cms.double(0.005),

#FixedArea parameters
AreaMetric_recoElements_maxabsEta = cms.double(2.5),

DataType = cms.string("AOD"), # Computring tier (modifies how some values are retrieved..)

# The following parameters affect TRACKS ONLY.
# i.e., they use tracks, from the jet tracks associator, not PFChargedHadronCandidates
# Intended only as a cross check, don't use them unles syou need them!

# Track - PV filtering
LeadTrack_minPt = cms.double(0.0), # This should be cut on at the discriminator level,
# to make things consistent in the case where the tau
# has a leading PFGamma cand but no lead PFChargedCand
TrackLeadTrack_maxDZ = cms.double(1.0),
UseTrackLeadTrackDZconstraint = cms.bool(True),
Track_IsolAnnulus_minNhits = cms.uint32(3),
### parameters for gammas in ellipse ###
AddEllipseGammas = cms.bool(False),
Rphi = cms.double(2.0), ## factor*Reta; Reta is the standard ecal signal cone size
MaxEtInEllipse = cms.double(2.0), # max pt for gammas inside the ellipse
########################################

# If true, include signal cone neutral hadrons in the tau four vector.
# Note: alternatLorentzVector is always only charged + gamma
putNeutralHadronsInP4 = cms.bool(False),

)
# * possible metrics : "DR", "angle", "area";
# if the "area" metric is chosen, AreaMetric_recoElements_maxabsEta parameter is considered, the area of a cone is increased by increasing the angle of the cone;
# functionnality to use a "DR" signal cone and an "area" isolation outer cone is not available;
# ** may depend on E(energy) and/or PT(transverse momentum) of the initial PFJet, ex. : "3.0/E" or "3.0/ET"
# if XXXConeSizeFormula>XXXConeSize_max then XXXConeSize_max is the considered cone size ; if XXXConeSizeFormula<XXXConeSize_min then XXXConeSize_min is the considered cone size;
# *** a PV is needed for computing a leading (charged hadron PFCand) rec. tk signed transverse impact parameter.
# For electron rejection variable

0 comments on commit 901244d

Please sign in to comment.