6 """ Create selected tracks and a candidate hypothesis on AOD:
8 _label=
'makeAODTrackCandidates'
9 _defaultParameters=dicttypes.SortedKeysDict()
12 ConfigToolBase.__init__(self)
13 self.addParameter(self.
_defaultParameters,
'label',
'TrackCands',
"output collection will be <'patAOD'+label>")
14 self.addParameter(self.
_defaultParameters,
'tracks',cms.InputTag(
'generalTracks'),
'input tracks')
15 self.addParameter(self.
_defaultParameters,
'particleType',
'pi+',
'particle type (for mass)')
16 self.addParameter(self.
_defaultParameters,
'candSelection',
'pt > 10',
'preselection cut on the candidates')
28 candSelection =
None) :
33 if particleType
is None:
35 if candSelection
is None:
37 self.setParameter(
'label',label)
38 self.setParameter(
'tracks',tracks)
39 self.setParameter(
'particleType',particleType)
40 self.setParameter(
'candSelection',candSelection)
47 candSelection=self.
_parameters[
'candSelection'].value
49 process.load(
"SimGeneral.HepPDTESSource.pythiapdt_cfi");
51 setattr(process,
'patAOD' + label +
'Unfiltered', cms.EDProducer(
"ConcreteChargedCandidateProducer",
53 particleType = cms.string(particleType)
57 setattr(process,
'patAOD' + label, cms.EDFilter(
"CandViewSelector",
58 src = cms.InputTag(
'patAOD' + label +
'Unfiltered'),
59 cut = cms.string(candSelection)
63 process.patDefaultSequence.replace(process.patCandidates, getattr(process,
'patAOD' + label +
'Unfiltered') * getattr(process,
'patAOD' + label) * process.patCandidates)
70 """ Create pat track candidates from AOD track collections:
72 _label=
'makePATTrackCandidates'
73 _defaultParameters=dicttypes.SortedKeysDict()
76 ConfigToolBase.__init__(self)
77 self.addParameter(self.
_defaultParameters,
'label',
'TrackCands',
"output will be 'all/selectedLayer1'+label")
78 self.addParameter(self.
_defaultParameters,
'input',cms.InputTag(
'patAODTrackCands'),
'name of the input collection')
79 self.addParameter(self.
_defaultParameters,
'selection',
'pt > 10',
'selection on PAT Layer 1 objects')
80 self.addParameter(self.
_defaultParameters,
'isolation',{
'tracker':0.3,
'ecalTowers':0.3,
'hcalTowers':0.3},
"solation to use (as 'source': value of dR)\ntracker : as muon iso from tracks\necalTowers : as muon iso from calo tower\nhcalTowers : as muon iso from calo towers",allowedValues=[
'tracker',
'ecalTowers',
'hcalTowers'])
81 self.addParameter(self.
_defaultParameters,
'isoDeposits',[
'tracker',
'ecalTowers',
'hcalTowers'],
'iso deposits')
82 self.addParameter(self.
_defaultParameters,
'mcAs',
None,
"eplicate mc match as the one used by PAT on this AOD collection (None=no mc match); choose 'photon', 'electron', 'muon', 'tau','jet', 'met' as input string",Type=str, allowedValues=[
'photon',
'electron',
'muon',
'tau',
'jet',
'met',
None], acceptNoneValue =
True)
101 if selection
is None:
103 if isolation
is None:
105 if isoDeposits
is None:
109 self.setParameter(
'label',label)
110 self.setParameter(
'input',input)
111 self.setParameter(
'selection',selection)
112 self.setParameter(
'isolation',isolation)
113 self.setParameter(
'isoDeposits',isoDeposits)
114 self.setParameter(
'mcAs',mcAs,
True)
126 from PhysicsTools.PatAlgos.producersLayer1.genericParticleProducer_cfi
import patGenericParticles
127 setattr(process,
'pat' + label, patGenericParticles.clone(src = input))
129 setattr(process,
'selectedPat' + label, cms.EDFilter(
"PATGenericParticleSelector",
130 src = cms.InputTag(
"pat"+label),
131 cut = cms.string(selection)
135 from PhysicsTools.PatAlgos.cleaningLayer1.genericTrackCleaner_cfi
import cleanPatTracks
136 setattr(process,
'cleanPat' + label, cleanPatTracks.clone(src = cms.InputTag(
'selectedPat' + label)))
139 l1cands = getattr(process,
'pat' + label)
140 selectedL1cands = getattr(process,
'selectedPat' + label)
141 cleanL1cands = getattr(process,
'cleanPat' + label)
144 process.patCandidates.replace(process.patElectrons, l1cands + process.patElectrons)
145 process.selectedPatCandidates.replace(process.selectedPatElectrons, process.selectedPatElectrons + selectedL1cands)
146 process.cleanPatCandidates.replace(process.cleanPatElectrons, process.cleanPatElectrons + cleanL1cands)
149 process.patCandidateSummary.candidates += [ cms.InputTag(
"allPat"+label) ]
150 process.selectedPatCandidateSummary.candidates += [ cms.InputTag(
"selectedPat"+label) ]
151 process.cleanPatCandidateSummary.candidates += [ cms.InputTag(
"cleanPat"+label) ]
154 if(isolation
or isoDeposits):
155 process.load(
"TrackPropagation.SteppingHelixPropagator.SteppingHelixPropagatorAlong_cfi")
156 process.load(
"TrackPropagation.SteppingHelixPropagator.SteppingHelixPropagatorOpposite_cfi")
157 process.load(
"TrackPropagation.SteppingHelixPropagator.SteppingHelixPropagatorAny_cfi")
159 runIsoDeps = {
'tracker':
False,
'caloTowers':
False}
161 for source,deltaR
in isolation.items():
163 if(source ==
'tracker'):
164 runIsoDeps[
'tracker'] =
True
165 l1cands.userIsolation.tracker = cms.PSet(
166 src = cms.InputTag(
'pat'+label+
'IsoDepositTracks'),
167 deltaR = cms.double(deltaR),
169 elif(source ==
'ecalTowers'):
170 runIsoDeps[
'caloTowers'] =
True
171 l1cands.userIsolation.ecal = cms.PSet(
172 src = cms.InputTag(
'pat'+label+
'IsoDepositCaloTowers',
'ecal'),
173 deltaR = cms.double(deltaR),
175 elif(source ==
'hcalTowers'):
176 runIsoDeps[
'caloTowers'] =
True
177 l1cands.userIsolation.hcal = cms.PSet(
178 src = cms.InputTag(
'pat'+label+
'IsoDepositCaloTowers',
'hcal'),
179 deltaR = cms.double(deltaR),
182 for source
in isoDeposits:
184 if(source ==
'tracker'):
185 runIsoDeps[
'tracker'] =
True
186 l1cands.isoDeposits.tracker = cms.InputTag(
'pat'+label+
'IsoDepositTracks')
187 elif(source ==
'ecalTowers'):
188 runIsoDeps[
'caloTowers'] =
True
189 l1cands.isoDeposits.ecal = cms.InputTag(
'pat'+label+
'IsoDepositCaloTowers',
'ecal')
190 elif(source ==
'hcalTowers'):
191 runIsoDeps[
'caloTowers'] =
True
192 l1cands.isoDeposits.hcal = cms.InputTag(
'pat'+label+
'IsoDepositCaloTowers',
'hcal')
194 for dep
in [ dep
for dep,runme
in runIsoDeps.items()
if runme ==
True ]:
195 if(dep ==
'tracker'):
197 setattr(process,
'pat'+label+
'IsoDepositTracks',
198 cms.EDProducer(
"CandIsoDepositProducer",
200 trackType = cms.string(
'best'),
201 MultipleDepositsFlag = cms.bool(
False),
202 ExtractorPSet = cms.PSet( MIsoTrackExtractorCtfBlock )
205 isoModules.append( getattr(process,
'pat'+label+
'IsoDepositTracks') )
206 elif(dep ==
'caloTowers'):
208 setattr(process,
'pat'+label+
'IsoDepositCaloTowers',
209 cms.EDProducer(
"CandIsoDepositProducer",
211 trackType = cms.string(
'best'),
212 MultipleDepositsFlag = cms.bool(
True),
213 ExtractorPSet = cms.PSet( MIsoCaloExtractorByAssociatorTowersBlock )
216 isoModules.append( getattr(process,
'pat'+label+
'IsoDepositCaloTowers') )
218 process.patDefaultSequence.replace(l1cands, m * l1cands)
220 process.load(
'TrackingTools.TrackAssociator.DetIdAssociatorESProducer_cff' )
223 if(type(mcAs) != type(
None)):
225 findMatch.append(getattr(process, mcAs+
'Match'))
228 setattr(process,
'pat'+label+
'MCMatch', findMatch[0].
clone(src = input))
229 process.patDefaultSequence.replace( l1cands, getattr(process,
'pat'+label+
'MCMatch') * l1cands)
230 l1cands.addGenMatch =
True
231 l1cands.genParticleMatch = cms.InputTag(
'pat'+label+
'MCMatch')
238 """ Create selected tracks and a candidate hypothesis on AOD:
240 _label=
'makeTrackCandidates'
241 _defaultParameters=dicttypes.SortedKeysDict()
244 ConfigToolBase.__init__(self)
245 self.addParameter(self.
_defaultParameters,
'label',
'TrackCands',
"output collection will be <'patAOD'+label>")
246 self.addParameter(self.
_defaultParameters,
'tracks',cms.InputTag(
'generalTracks'),
'input tracks')
247 self.addParameter(self.
_defaultParameters,
'particleType',
'pi+',
'particle type (for mass)')
248 self.addParameter(self.
_defaultParameters,
'preselection',
'pt > 10',
'preselection cut on the AOD candidates')
249 self.addParameter(self.
_defaultParameters,
'selection',
'pt > 10',
'selection cut on the PAT candidates (for the selectedLayer1Candidate collection)')
250 self.addParameter(self.
_defaultParameters,
'isolation',{
'tracker':0.3,
'ecalTowers':0.3,
'hcalTowers':0.3},
"isolation to use (as 'source': value of dR)\ntracker : as muon iso from tracks\necalTowers : as muon iso from calo tower\nhcalTowers : as muon iso from calo towers",allowedValues=[
'tracker',
'ecalTowers',
'hcalTowers'])
251 self.addParameter(self.
_defaultParameters,
'isoDeposits',[
'tracker',
'ecalTowers',
'hcalTowers'],
'iso deposits')
252 self.addParameter(self.
_defaultParameters,
'mcAs',
None,
"eplicate mc match as the one used by PAT on this AOD collection (None=no mc match); choose 'photon', 'electron', 'muon', 'tau','jet', 'met' as input string",Type=str,allowedValues=[
'photon',
'electron',
'muon',
'tau',
'jet',
'met',
None], acceptNoneValue =
True)
273 if particleType
is None:
275 if preselection
is None:
277 if selection
is None:
279 if isolation
is None:
281 if isoDeposits
is None:
285 self.setParameter(
'label',label)
286 self.setParameter(
'tracks',tracks)
287 self.setParameter(
'particleType',particleType)
288 self.setParameter(
'preselection',preselection)
289 self.setParameter(
'selection',selection)
290 self.setParameter(
'isolation',isolation)
291 self.setParameter(
'isoDeposits',isoDeposits)
292 self.setParameter(
'mcAs',mcAs,
True)
298 particleType=self.
_parameters[
'particleType'].value
299 preselection=self.
_parameters[
'preselection'].value
305 makeAODTrackCandidates(process,
307 particleType = particleType,
308 candSelection = preselection,
311 makePATTrackCandidates(process,
313 input = cms.InputTag(
'patAOD' + label),
314 isolation = isolation,
315 isoDeposits = isoDeposits,
317 selection = selection
TEveGeoShape * clone(const TEveElement *element, TEveElement *parent)
perl if(1 lt scalar(@::datatypes))