3 from AnalysisAlgorithmsConfig.ConfigBlock
import ConfigBlock
7 """ConfigBlock for particle-level truth photons"""
10 super(ParticleLevelPhotonsBlock, self).
__init__()
11 self.addOption(
'containerName',
'TruthPhotons', type=str,
12 info=
'the name of the input truth photons container')
13 self.addOption(
'selectionName',
'', type=str,
14 info=
'the name of the selection to create. The default is "",'
15 ' which applies the selection to all truth photons.')
16 self.addOption(
'isolated',
True, type=bool,
17 info=
'select only truth photons that are isolated.')
18 self.addOption(
'isolationVariable',
'', type=str,
19 info=
'variable to use in isolation cuts of the form "var/pT < cut".')
20 self.addOption(
'isolationCut', -1, type=float,
21 info=
'threshold to use in isolation cuts of the form "var/pT < cut".')
22 self.addOption(
'saveUID',
False, type=bool,
23 info=
'save unique ID in output')
25 self.setOptionValue(
'skipOnData',
True)
28 """Return the instance name for this block"""
29 name = self.containerName
30 if self.selectionName: name = name +
'_' + self.selectionName
34 config.setSourceName (self.containerName, self.containerName)
37 alg = config.createAlgorithm(
'CP::ParticleLevelPtEtaPhiDecoratorAlg',
38 'ParticleLevelPtEtaPhiDecoratorPhotons',
40 alg.particles = self.containerName
43 alg = config.createAlgorithm(
'CP::ParticleLevelIsolationAlg',
44 'ParticleLevelIsolationPhotons',
46 alg.particles = self.containerName
47 alg.isolation =
'isIsolated' + self.selectionName
if self.isolated
else 'isIsolatedButNotRequired' + self.selectionName
48 alg.notTauOrigin =
'notFromTauButNotRequired' + self.selectionName
49 alg.checkType =
'IsoPhoton'
50 if self.isolationVariable !=
'':
51 alg.isoVar = self.isolationVariable
52 alg.isoCut = self.isolationCut
55 config.addSelection (self.containerName, self.selectionName, alg.isolation+
',as_char')
58 if ParticleLevelPhotonsBlock.get_instance_count() == 1
or 'pt' not in config.getOutputVars(self.containerName):
64 [
'classifierParticleType',
'type'],
65 [
'classifierParticleOrigin',
'origin'],
68 outputVars += [[
'uid',
'uid']]
69 for decoration, branch
in outputVars:
70 config.addOutputVar (self.containerName, decoration, branch, noSys=
True)