3 from AnalysisAlgorithmsConfig.ConfigBlock
import ConfigBlock
7 """ConfigBlock for particle-level truth electrons"""
10 super(ParticleLevelElectronsBlock, self).
__init__()
11 self.addOption(
'containerName',
'TruthElectrons', type=str,
12 info=
'the name of the input truth electrons 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 electrons.')
16 self.addOption(
'isolated',
True, type=bool,
17 info=
'select only truth electrons that are isolated.')
18 self.addOption(
'notFromTau',
True, type=bool,
19 info=
'select only truth electrons that did not orginate '
21 self.addOption(
'saveUID',
False, type=bool,
22 info=
'save unique ID in output')
24 self.setOptionValue(
'skipOnData',
True)
27 """Return the instance name for this block"""
28 name = self.containerName
29 if self.selectionName: name = name +
'_' + self.selectionName
33 config.setSourceName (self.containerName, self.containerName)
36 alg = config.createAlgorithm(
'CP::ParticleLevelChargeDecoratorAlg',
37 'ParticleLevelChargeDecoratorElectrons',
39 alg.particles = self.containerName
42 alg = config.createAlgorithm(
'CP::ParticleLevelIsolationAlg',
43 'ParticleLevelIsolationElectrons',
45 alg.particles = self.containerName
46 alg.isolation =
'isIsolated' + self.selectionName
if self.isolated
else 'isIsolatedButNotRequired' + self.selectionName
47 alg.notTauOrigin =
'notFromTau' + self.selectionName
if self.notFromTau
else 'notFromTauButNotRequired' + self.selectionName
48 alg.checkType =
'IsoElectron'
51 config.addSelection (self.containerName, self.selectionName, alg.isolation+
',as_char')
53 config.addSelection (self.containerName, self.selectionName, alg.notTauOrigin+
',as_char')
56 if ParticleLevelElectronsBlock.get_instance_count() == 1
or 'pt' not in config.getOutputVars(self.containerName):
59 [
'eta_dressed',
'eta'],
60 [
'phi_dressed',
'phi'],
63 [
'classifierParticleType',
'type'],
64 [
'classifierParticleOrigin',
'origin'],
67 outputVars += [[
'uid',
'uid']]
68 for decoration, branch
in outputVars:
69 config.addOutputVar (self.containerName, decoration, branch, noSys=
True)