New techniques in the integration framework: importance sampling and multi-channeling.
CHANGES within phase_space_generators.py:
new class SingleChannelPhasespace (SCPS):
Implements phase space factorization and importance sampling of a single topology.
Returns the phase space point together with its importance sampling weight (that flattens the single topology peak structure).
--> can be used as an alternative to FlatInvertiblePhasespace (FLATPS) with single channel integrators NAIVE or VEGAS3.
new class MultiChannelPhasespace (MCPS):
Similar to SCPS, implements phase space factorization and importance sampling of a single channel according to the topology it corresponds to.
However, comes with a multi-channel weight (that flattens the peak structures of all topologies involved simultaneously).
Returns the phase space point together with this multi-channel weight.
--> cannot be used as an alternative to FlatInvertiblePhasespace (FLATPS), since it does not work with single channel integrators NAIVE or VEGAS3. Can only be used in combination with the multi-channel integrator MC_VEGAS3
---> new option in MadEvent interface: --PS_generator, can choose from {FLATPS, SCPS, MCPS}.
CHANGES within vegas3_integrator.py:
new class MultiChannelVegas3Integrator (MC_VEGAS3):
Implements multi-channeling according to the Jacobian method with channel weights (alpha).
Specifies the various channels according to their topologies as an instance of the class Channel and compute their channel integral in parallel.
Only works with MCPS.
Iteratively adapts the vegas grid of each channel and the channel weights in a survey stage and just increases the number of points in a refinement stage until the desired accuracy is reached.
A max and a min number of iterations can be set.
The iterations stop before max if the vegas grid and the channel weights converge.
Prints the changes after iterations and frequent (after every 10s) current estimates of the full integral.
Returns the estimate of the integral and the Monte Carlo error.
new class Channel:
Used by MC_VEGAS3.
Specifies the integrand, the channel number and the vegas grid for this channel.
Saves integration estimates, function evaluations, Monte Carlo error, ... for the course of one iteration in the adaptive multi-channel integrator MC_VEGAS3.
---> new integrator option in MadEvent interface: --integrator=MC_VEGAS3.
MORE DETAILED DESCRIPTIONS IN MY THESIS OR IN THE CODE.
after 8 minutes (if you computer is as slow as mine) this should produce something like:
2.69383e-02 +/- 1.79e-04 [pb]
NOTE: if --integrator=MC_VEGAS3:
n_points: specifies total number of points in first iteration, it is doubled with every iteration
n_iterations: number of max iterations
EXAMPLE IMPORTANCE SAMPLING WITHOUT MULTI-CHANNELING:
should produce something like:
1.62014e-02 +/- 1.19e-03 [pb]
NOTE: if the process has multiple diagrams, SCPS takes the first one for its phase space parameterization.
NOTE2: to use this we have to remove the arguments "adaptive_wgts" and "channel_nr" from get_PS_point in the call of ME7Integrand in ME7_integrands.py.
New techniques in the integration framework: importance sampling and multi-channeling.
CHANGES within phase_space_ generators. py:
new class SingleChannelPh asespace (SCPS): hasespace (FLATPS) with single channel integrators NAIVE or VEGAS3.
Implements phase space factorization and importance sampling of a single topology.
Returns the phase space point together with its importance sampling weight (that flattens the single topology peak structure).
--> can be used as an alternative to FlatInvertibleP
new class MultiChannelPha sespace (MCPS): hasespace (FLATPS), since it does not work with single channel integrators NAIVE or VEGAS3. Can only be used in combination with the multi-channel integrator MC_VEGAS3
Similar to SCPS, implements phase space factorization and importance sampling of a single channel according to the topology it corresponds to.
However, comes with a multi-channel weight (that flattens the peak structures of all topologies involved simultaneously).
Returns the phase space point together with this multi-channel weight.
--> cannot be used as an alternative to FlatInvertibleP
---> new option in MadEvent interface: --PS_generator, can choose from {FLATPS, SCPS, MCPS}.
CHANGES within vegas3_ integrator. py:
new class MultiChannelVeg as3Integrator (MC_VEGAS3):
Implements multi-channeling according to the Jacobian method with channel weights (alpha).
Specifies the various channels according to their topologies as an instance of the class Channel and compute their channel integral in parallel.
Only works with MCPS.
Iteratively adapts the vegas grid of each channel and the channel weights in a survey stage and just increases the number of points in a refinement stage until the desired accuracy is reached.
A max and a min number of iterations can be set.
The iterations stop before max if the vegas grid and the channel weights converge.
Prints the changes after iterations and frequent (after every 10s) current estimates of the full integral.
Returns the estimate of the integral and the Monte Carlo error.
new class Channel:
Used by MC_VEGAS3.
Specifies the integrand, the channel number and the vegas grid for this channel.
Saves integration estimates, function evaluations, Monte Carlo error, ... for the course of one iteration in the adaptive multi-channel integrator MC_VEGAS3.
---> new integrator option in MadEvent interface: --integrator= MC_VEGAS3.
MORE DETAILED DESCRIPTIONS IN MY THESIS OR IN THE CODE.
EXAMPLE MULTI-CHANNELING:
generate e+ e- > mu+ mu- a --LO MC_VEGAS3 --n_points=8000 --n_iterations=3 --PS_generator=MCPS
output mytest
launch mytest
launch --integrator=
after 8 minutes (if you computer is as slow as mine) this should produce something like:
2.69383e-02 +/- 1.79e-04 [pb]
NOTE: if --integrator= MC_VEGAS3:
n_points: specifies total number of points in first iteration, it is doubled with every iteration
n_iterations: number of max iterations
EXAMPLE IMPORTANCE SAMPLING WITHOUT MULTI-CHANNELING:
generate e+ e- > mu+ mu- a --LO
output mytest
launch mytest
launch --integrator=NAIVE --n_points=1000 --PS_generator=SCPS
should produce something like:
1.62014e-02 +/- 1.19e-03 [pb]
NOTE: if the process has multiple diagrams, SCPS takes the first one for its phase space parameterization.
NOTE2: to use this we have to remove the arguments "adaptive_wgts" and "channel_nr" from get_PS_point in the call of ME7Integrand in ME7_integrands.py.