Draft: Increase the number of trigger lines in the HLT2 ThOr throughput test
This MR inflates the number of HLT2 lines in the ThOr throughput test. This is achieved by replicating a set of three simple lines repeatedly. The structure of this replication is illustrated below.
pions = make_long_pions()
filtered = ParticleFilter(Input=pions, Cut=F.FILTER(F.PT > 400 * MeV))
for i in range(nReplicas):
filtered_tight = ParticleFilter( Input=filtered,
Cut=F.FILTER( in_range(
(ptMin_pi + i * ptStep_pi) * MeV, F.PT, (ptMin_pi + (i + 1 / 2) * ptStep_pi) * MeV)
) )
combination = ParticleCombiner( Inputs=[filtered, filtered], DecayDescriptor="KS0 -> pi+ pi-",
CombinationCut=in_range(
(massMin_ks0 + i * massStep_ks0) * MeV, F.MASS, (massMin_ks0 + (i + 1 / 8) * massStep_ks0) * MeV)
)
dzero = ParticleCombiner( Inputs=[combination, pions, pions], DecayDescriptor="D0 -> KS0 pi+ pi-",
CombinationCut = in_range(
(massMin_d0 + i * massStep_d0) * MeV, F.MASS, (massMin_d0 + (i + 1 / 8) * massStep_d0) * MeV)
)
#Increment list of HLT2 lines
#lines += [ HLT2Line( filtered_tight ), HLT2Line( combination ), HLT2Line( dzero )
Each line replica only requires one parameter to be within a certain range. This is done by defining a global range for this parameter before the replication loop and then assigning a piece of this range as requirement for each line replica.
For example, for the ParticleFilter
lines, the range is defined by ptMin_pi = 1500
, ptMax_pi = 3000
. Then, for nReplicas = 100
, this range is split in 100 pieces, which are used as the pt requirement for the ParticleFilter` replicas.
The filtered_tight
algorithms have acceptance between 5% and 1%, while the combination
and dzero
algorithms have acceptance around 2%.
In time, the actual physics ThOr lines should be used in the test instead.