Skiming.
11def HION4SkimmingToolCfg(flags):
12 """Configure the example skimming tool"""
13 acc = ComponentAccumulator()
14
15 ExtraData = []
16 ExtraData += ['xAOD::MuonContainer/Muons']
17 ExtraData += ['xAOD::ElectronContainer/Electrons']
18 ExtraData += ['xAOD::PhotonContainer/Photons']
19 ExtraData += ['xAOD::TrackParticleContainer/InDetTrackParticles']
20
21 acc.addSequence( seqAND("HION4Sequence") )
22 acc.getSequence("HION4Sequence").ExtraDataForDynamicConsumers = ExtraData
23 acc.getSequence("HION4Sequence").ProcessDynamicDataDependencies = True
24
25 muonsRequirements = '(Muons.pt >= 2.0*GeV) && (abs(Muons.eta) < 2.6)'
26 muonOnlySelection = 'count('+muonsRequirements+') >= 1'
27
28 electronsRequirements = '(Electrons.pt > 1.5*GeV) && (abs(Electrons.eta) < 2.6)'
29 electronOnlySelection = 'count('+electronsRequirements+') >= 1'
30
31 photonsRequirements = '(Photons.pt >= 1.5*GeV)'
32 photonOnlySelection = 'count('+photonsRequirements+') >=2'
33
34 electronPhotonSelection = '(count('+electronsRequirements+') + count('+photonsRequirements+')) >= 2'
35
36 trackRequirements = '(InDetTrackParticles.pt >= 0.2*GeV) && (abs(InDetTrackParticles.eta) < 2.5)'
37 trackOnlySelection = '( count('+trackRequirements+') >= 2 && 5 >= count('+trackRequirements+') )'
38
39 tightTrackRequirements = '(InDetTrackParticles.pt >= 1*GeV) && (abs(InDetTrackParticles.eta) < 2.5)'
40 tightTrackOnlySelection = '( count('+tightTrackRequirements+') == 2 )'
41
42 objectSelection = '('+muonOnlySelection+' || '+electronOnlySelection+' || '+photonOnlySelection+' || '+electronPhotonSelection+' || '+trackOnlySelection+')'
43
44 from DerivationFrameworkHI import ListTriggers
45 VMtrigger=ListTriggers.HION4SkimmingTriggersVM()
46 triggers=ListTriggers.HION4SkimmingTriggersALL()
47
48 tdt = None
49 if flags.Trigger.EDMVersion != -1:
50 from TrigDecisionTool.TrigDecisionToolConfig import TrigDecisionToolCfg
51 tdt = acc.getPrimaryAndMerge(TrigDecisionToolCfg(flags))
52 expression = '( (' + ' || '.join(triggers) + ') && '+objectSelection+') || ( '+ ' || '.join(VMtrigger)+ ' && '+tightTrackOnlySelection+')'
53 else:
54 expression = '( '+objectSelection+' ) || ( '+tightTrackOnlySelection+' )'
55
56
57 acc.addPublicTool(CompFactory.DerivationFramework.xAODStringSkimmingTool(name = "HION4StringSkimmingTool",
58 expression = expression,
59 TrigDecisionTool=tdt),
60 primary = True)
61
62 return(acc)
63