Herwig 7.3.0
|
This class is responsible for the kinematical reconstruction after each showering step, and also for the necessary Lorentz boosts in order to preserve energy-momentum conservation in the overall collision, and also the invariant mass and the rapidity of the hard subprocess system. More...
#include <KinematicsReconstructor.h>
Public Member Functions | |
KinematicsReconstructor () | |
Default constructor. | |
virtual bool | reconstructHardJets (ShowerTreePtr hard, const map< tShowerProgenitorPtr, pair< Energy, double > > &pt, ShowerInteraction type, bool switchRecon) const |
Methods to reconstruct the kinematics of a scattering or decay process. | |
virtual bool | reconstructDecayJets (ShowerTreePtr decay, ShowerInteraction type) const |
Given in input a vector of the particles which initiated the showers the method does the reconstruction of such jets, including the appropriate boosts (kinematics reshufflings) needed to conserve the total energy-momentum of the collision and preserving the invariant mass and the rapidity of the hard subprocess system. | |
virtual bool | deconstructDecayJets (HardTreePtr, ShowerInteraction) const |
Methods to invert the reconstruction of the shower for a scattering or decay process and calculate the variables used to generate the shower given the particles produced. | |
virtual bool | deconstructHardJets (HardTreePtr, ShowerInteraction) const |
Given the particles, with a history which we wish to interpret as a shower reconstruct the variables used to generate the shower for a hard process. | |
Public Member Functions inherited from ThePEG::Interfaced | |
virtual bool | defaultInit () |
PPtr | getParticle (PID) const |
PDPtr | getParticleData (PID) const |
bool | used () const |
void | useMe () const |
tEGPtr | generator () const |
void | persistentOutput (PersistentOStream &os) const |
void | persistentInput (PersistentIStream &is, int version) |
PPtr | getParticle (PID) const |
PDPtr | getParticleData (PID) const |
bool | used () const |
void | useMe () const |
tEGPtr | generator () const |
Public Member Functions inherited from ThePEG::InterfacedBase | |
string | fullName () const |
string | name () const |
string | path () const |
string | comment () const |
void | setup (istream &is) |
void | update () |
void | init () |
virtual bool | preInitialize () const |
void | initrun () |
void | finish () |
void | touch () |
void | reset () |
void | clear () |
InitState | state () const |
bool | locked () const |
bool | touched () const |
virtual IBPtr | fullclone () const |
void | persistentOutput (PersistentOStream &os) const |
void | persistentInput (PersistentIStream &is, int version) |
virtual void | debugme () const |
void | update () |
void | init () |
virtual bool | preInitialize () const |
void | initrun () |
void | finish () |
void | touch () |
void | reset () |
void | clear () |
InitState | state () const |
bool | locked () const |
bool | touched () const |
virtual IBPtr | fullclone () const |
Public Member Functions inherited from ThePEG::Base | |
void | debug () const |
virtual void | debugme () const |
Public Member Functions inherited from ThePEG::Pointer::ReferenceCounted | |
CounterType | referenceCount () const |
Public Member Functions inherited from ThePEG::Named | |
Named (const string &newName=string()) | |
Named (const Named &)=default | |
const string & | name () const |
bool | operator== (const Named &other) const |
bool | operator< (const Named &other) const |
Protected Member Functions | |
Clone Methods. | |
virtual IBPtr | clone () const |
Make a simple clone of this object. | |
virtual IBPtr | fullclone () const |
Make a clone of this object, possibly modifying the cloned object to make it sane. | |
Protected Member Functions inherited from ThePEG::Interfaced | |
void | reporeg (IBPtr object, string name) const |
bool | setDefaultReference (PtrT &ptr, string classname, string objectname) |
Interfaced (const string &newName) | |
Interfaced (const Interfaced &i) | |
void | setGenerator (tEGPtr generator) |
Protected Member Functions inherited from ThePEG::InterfacedBase | |
virtual void | readSetup (istream &is) |
virtual void | doupdate () |
virtual void | doinit () |
virtual void | doinitrun () |
virtual void | dofinish () |
virtual IVector | getReferences () |
virtual void | rebind (const TranslationMap &) |
virtual IBPtr | clone () const=0 |
InterfacedBase (string newName) | |
InterfacedBase (const InterfacedBase &i) | |
virtual void | readSetup (istream &is) |
virtual void | doupdate () |
virtual void | doinit () |
virtual void | doinitrun () |
virtual void | dofinish () |
virtual IVector | getReferences () |
virtual void | rebind (const TranslationMap &) |
Protected Member Functions inherited from ThePEG::Pointer::ReferenceCounted | |
ReferenceCounted (const ReferenceCounted &) | |
ReferenceCounted & | operator= (const ReferenceCounted &) |
Protected Member Functions inherited from ThePEG::Named | |
const Named & | operator= (const Named &other) |
const string & | name (const string &newName) |
Standard Interfaced functions. | |
unsigned int | _reconopt |
Option for handling the reconstruction. | |
unsigned int | _initialBoost |
Option for the boost for initial-initial reconstruction. | |
unsigned int | _finalStateReconOption |
Option for the reconstruction of final state systems. | |
unsigned int | _initialStateReconOption |
Option for the initial state reconstruction. | |
bool | _finalFinalWeight |
Option for FF kinematic factor. | |
Energy | _minQ |
Minimum invariant mass for initial-final dipoles to allow the reconstruction. | |
map< tShowerProgenitorPtr, pair< Energy, double > > | _intrinsic |
Storage of the intrinsic \(p_T\). | |
tShowerTreePtr | _currentTree |
Current ShowerTree. | |
PDVector | _noRescaleVector |
Particles which shouldn't have their masses rescaled as vector for the interface. | |
set< cPDPtr > | _noRescale |
Particles which shouldn't have their masses rescaled as set for quick access. | |
map< tPPtr, vector< LorentzRotation > > | _boosts |
Storage of the boosts applied to enable resetting after failure. | |
map< tShowerTreePtr, vector< LorentzRotation > > | _treeBoosts |
Storage of the boosts applied to enable resetting after failure. | |
virtual void | doinit () |
Initialize this object after the setup phase before saving an EventGenerator to disk. | |
KinematicsReconstructor & | operator= (const KinematicsReconstructor &)=delete |
The assignment operator is private and must never be called. | |
Functions used by the persistent I/O system. | |
void | persistentOutput (PersistentOStream &os) const |
Function used to write out object persistently. | |
void | persistentInput (PersistentIStream &is, int version) |
Function used to read in object persistently. | |
virtual bool | reconstructTimeLikeJet (const tShowerParticlePtr particleJetParent, const tShowerParticlePtr progenitor) const |
Given the particle (ShowerParticle object) that originates a forward (time-like) jet, this method reconstructs the kinematics of the jet. | |
double | solveKfactor (const Energy &root_s, const JetKinVect &jets) const |
Given a vector of 5-momenta of jets, where the 3-momenta are the initial ones before showering and the masses are reconstructed after the showering, this method returns the overall scaling factor for the 3-momenta of the vector of particles, vec{P}_i -> k * vec{P}_i, such to preserve energy- momentum conservation, i.e. | |
LorentzRotation | solveBoost (const double k, const Lorentz5Momentum &newq, const Lorentz5Momentum &oldp) const |
Compute the boost to get from the the old momentum to the new. | |
void | deepTransform (PPtr particle, const LorentzRotation &r, bool match=true, PPtr original=PPtr()) const |
Apply a transform to the particle and any child, including child ShowerTree objects. | |
static void | Init () |
The standard Init function used to initialize the interfaces. | |
bool | reconstructSpaceLikeJet (const tShowerParticlePtr particleJetParent) const |
Methods to reconstruct the kinematics of individual jets. | |
bool | reconstructDecayJet (const tShowerParticlePtr particleJetParent) const |
Exactly similar to the previous one, but for a decay jet This methods returns false if there was no radiation or rescaling required. | |
void | reconstructInitialFinalSystem (vector< ShowerProgenitorPtr >) const |
Methods to perform the reconstruction of various types of colour singlet systems. | |
void | reconstructFinalStateSystem (bool applyBoost, const LorentzRotation &toRest, const LorentzRotation &fromRest, vector< ShowerProgenitorPtr >) const |
Perform the reconstruction of a system with only final-state particles. | |
void | reconstructGeneralSystem (vector< ShowerProgenitorPtr > &ShowerHardJets) const |
Reconstruction of a general coloured system. | |
void | reconstructFinalFirst (vector< ShowerProgenitorPtr > &ShowerHardJets) const |
Reconstruction of a general coloured system doing final-final, then initial-final and then initial-initial. | |
void | reconstructColourPartner (vector< ShowerProgenitorPtr > &ShowerHardJets) const |
Reconstruction of a general coloured system doing colour parners. | |
void | reconstructColourSinglets (vector< ShowerProgenitorPtr > &ShowerHardJets, ShowerInteraction type) const |
Reconstruction based on colour singlet systems. | |
void | reconstructInitialInitialSystem (bool &applyBoost, LorentzRotation &toRest, LorentzRotation &fromRest, vector< ShowerProgenitorPtr >) const |
Perform the reconstruction of a system with only final-state particles. | |
void | deconstructFinalStateSystem (const LorentzRotation &toRest, const LorentzRotation &fromRest, HardTreePtr, vector< HardBranchingPtr >, ShowerInteraction) const |
Methods to perform the inverse reconstruction of various types of colour singlet systems. | |
void | deconstructInitialInitialSystem (bool &applyBoost, LorentzRotation &toRest, LorentzRotation &fromRest, HardTreePtr, vector< HardBranchingPtr >, ShowerInteraction) const |
Perform the inverse reconstruction of a system with only initial-state particles. | |
void | deconstructInitialFinalSystem (HardTreePtr, vector< HardBranchingPtr >, ShowerInteraction) const |
Perform the inverse reconstruction of a system with only initial-state particles. | |
bool | deconstructGeneralSystem (HardTreePtr, ShowerInteraction) const |
bool | deconstructColourSinglets (HardTreePtr, ShowerInteraction) const |
bool | deconstructColourPartner (HardTreePtr, ShowerInteraction) const |
void | reconstructFinalFinalOffShell (JetKinVect orderedJets, Energy2 s, bool recursive) const |
Recursively treat the most off-shell paricle seperately for final-final reconstruction. | |
LorentzRotation | solveBoost (const Lorentz5Momentum &newq, const Lorentz5Momentum &oldq) const |
Various methods for the Lorentz transforms needed to do the rescalings. | |
LorentzRotation | solveBoostZ (const Lorentz5Momentum &newq, const Lorentz5Momentum &oldq) const |
Compute the boost to get from the the old momentum to the new. | |
void | boostChain (tPPtr p, const LorentzRotation &bv, tPPtr &parent) const |
Recursively boost the initial-state shower. | |
Boost | solveBoostBeta (const double k, const Lorentz5Momentum &newq, const Lorentz5Momentum &oldp) |
Given a 5-momentum and a scale factor, the method returns the Lorentz boost that transforms the 3-vector vec{momentum} —> k*vec{momentum}. | |
double | getBeta (const double E, const double q, const double Ep, const double qp) const |
Compute boost parameter along z axis to get (Ep, any perp, qp) from (E, same perp, q). | |
bool | solveDecayKFactor (Energy mb, const Lorentz5Momentum &n, const Lorentz5Momentum &pjet, const JetKinVect &jetKinematics, ShowerParticlePtr partner, Lorentz5Momentum ppartner[2], double &k1, double &k2, Lorentz5Momentum &qt) const |
Methods to calculate the various scaling factors. | |
double | inverseRescalingFactor (vector< Lorentz5Momentum > pout, vector< Energy > mon, Energy roots) const |
Compute the momentum rescaling factor needed to invert the shower. | |
bool | inverseDecayRescalingFactor (vector< Lorentz5Momentum > pout, vector< Energy > mon, Energy roots, Lorentz5Momentum ppartner, Energy mbar, double &k1, double &k2) const |
Compute the momentum rescaling factor needed to invert the shower. | |
Energy | momConsEq (double k, const Energy &root_s, const JetKinVect &jets) const |
Check the rescaling conserves momentum. | |
void | findInitialBoost (const Lorentz5Momentum &pold, const Lorentz5Momentum &pnew, LorentzRotation &toRest, LorentzRotation &fromRest) const |
template<typename Value > | |
void | findPartners (Value branch, set< Value > &done, const set< Value > &branchings, vector< Value > &jets) const |
Find the colour partners of a particle to identify the colour singlet systems for the reconstruction. | |
bool | addIntrinsicPt (vector< ShowerProgenitorPtr >) const |
Add the intrinsic \(p_T\) to the system if needed. | |
Energy | findMass (HardBranchingPtr) const |
Find the mass of a particle in the hard branching. | |
vector< double > | initialStateRescaling (double x1, double x2, const Lorentz5Momentum &pold, const vector< Lorentz5Momentum > &p, const vector< Lorentz5Momentum > &pq, const vector< Energy > &highespts) const |
Calculate the initial-state rescaling factors. | |
vector< double > | inverseInitialStateRescaling (double &x1, double &x2, const Lorentz5Momentum &pold, const vector< Lorentz5Momentum > &p, const vector< Lorentz5Momentum > &pq) const |
Calculate the inverse of the initial-state rescaling factor. | |
template<typename Value > | |
ColourSinglet< Value >::VecType | identifySystems (set< Value > jets, unsigned int &nnun, unsigned int &nnii, unsigned int &nnif, unsigned int &nnf, unsigned int &nni) const |
Find the colour singlet systems. | |
template<typename Value > | |
void | combineFinalState (vector< ColourSinglet< Value > > &systems) const |
Combine final-state colour systems. | |
Additional Inherited Members | |
Public Types inherited from ThePEG::InterfacedBase | |
enum | InitState |
Public Types inherited from ThePEG::Pointer::ReferenceCounted | |
typedef unsigned int | CounterType |
Static Public Member Functions inherited from ThePEG::Interfaced | |
static void | Init () |
Static Public Member Functions inherited from ThePEG::InterfacedBase | |
static void | Init () |
Static Public Member Functions inherited from ThePEG::Base | |
static void | Init () |
Public Attributes inherited from ThePEG::InterfacedBase | |
initializing | |
uninitialized | |
initialized | |
runready | |
Public Attributes inherited from ThePEG::Pointer::ReferenceCounted | |
const unsigned long | uniqueId |
Static Protected Member Functions inherited from ThePEG::Interfaced | |
static void | registerRepository (IBPtr) |
static void | registerRepository (IBPtr, string newName) |
This class is responsible for the kinematical reconstruction after each showering step, and also for the necessary Lorentz boosts in order to preserve energy-momentum conservation in the overall collision, and also the invariant mass and the rapidity of the hard subprocess system.
In the case of multi-step showering, there will be not unnecessary kinematical reconstructions.
There is also the option of taking a set of momenta for the particles and inverting the reconstruction to give the evolution variables for the shower.
Notice:
Definition at line 126 of file KinematicsReconstructor.h.
|
inline |
Default constructor.
Definition at line 133 of file KinematicsReconstructor.h.
|
protected |
Recursively boost the initial-state shower.
p | The particle |
bv | The boost |
parent | The parent of the chain |
|
inlineprotectedvirtual |
Make a simple clone of this object.
Implements ThePEG::InterfacedBase.
Definition at line 564 of file KinematicsReconstructor.h.
|
virtual |
Methods to invert the reconstruction of the shower for a scattering or decay process and calculate the variables used to generate the shower given the particles produced.
This is needed for the CKKW and POWHEG approaches Given the particles, with a history which we wish to interpret as a shower reconstruct the variables used to generate the shower
|
protected |
Methods to perform the inverse reconstruction of various types of colour singlet systems.
Perform the inverse reconstruction of a system with only final-state particles
void Herwig::KinematicsReconstructor::deepTransform | ( | PPtr | particle, |
const LorentzRotation & | r, | ||
bool | match = true , |
||
PPtr | original = PPtr() |
||
) | const |
Apply a transform to the particle and any child, including child ShowerTree objects.
particle | The particle |
r | The Lorentz transformation |
match | Whether or not to look at children etc |
original | The original particle |
|
protectedvirtual |
Initialize this object after the setup phase before saving an EventGenerator to disk.
InitException | if object could not be initialized properly. |
Reimplemented from ThePEG::InterfacedBase.
|
inlineprotectedvirtual |
Make a clone of this object, possibly modifying the cloned object to make it sane.
Reimplemented from ThePEG::InterfacedBase.
Definition at line 570 of file KinematicsReconstructor.h.
|
inlineprotected |
Compute boost parameter along z axis to get (Ep, any perp, qp) from (E, same perp, q).
Definition at line 434 of file KinematicsReconstructor.h.
References ThePEG::sqr().
|
static |
The standard Init function used to initialize the interfaces.
Called exactly once for each class by the class description system before the main function starts or when this class is dynamically loaded.
|
protected |
Compute the momentum rescaling factor needed to invert the shower.
pout | The momenta of the outgoing particles |
mon | The on-shell masses |
roots | The mass of the decaying particle |
ppartner | The momentum of the colour partner |
mbar | The mass of the decaying particle |
k1 | The first scaling factor |
k2 | The second scaling factor |
|
protected |
Compute the momentum rescaling factor needed to invert the shower.
pout | The momenta of the outgoing particles |
mon | The on-shell masses |
roots | The mass of the decaying particle |
|
protected |
Check the rescaling conserves momentum.
k | The rescaling |
root_s | The centre-of-mass energy |
jets | The jets |
|
privatedelete |
The assignment operator is private and must never be called.
In fact, it should not even be implemented.
void Herwig::KinematicsReconstructor::persistentInput | ( | PersistentIStream & | is, |
int | version | ||
) |
Function used to read in object persistently.
is | the persistent input stream read from. |
version | the version number of the object when written. |
void Herwig::KinematicsReconstructor::persistentOutput | ( | PersistentOStream & | os | ) | const |
Function used to write out object persistently.
os | the persistent output stream written to. |
|
virtual |
Methods to reconstruct the kinematics of a scattering or decay process.
Given in input a vector of the particles which initiated the showers the method does the reconstruction of such jets, including the appropriate boosts (kinematics reshufflings)
needed to conserve the total energy-momentum of the collision and preserving the invariant mass and the rapidity of the hard subprocess system.
|
protected |
Methods to perform the reconstruction of various types of colour singlet systems.
Perform the reconstruction of a system with one incoming and at least one outgoing particle
|
protected |
Methods to reconstruct the kinematics of individual jets.
Exactly similar to the previous one, but for a space-like jet. Also in this case we start from the final grand-children (which are childless) of the particle which originates the jet, but in this case we proceed "forward" (in the physical time picture) towards the particleJetParent. This methods returns false if there was no radiation or rescaling required
|
virtual |
Given the particle (ShowerParticle object) that originates a forward (time-like) jet, this method reconstructs the kinematics of the jet.
That is, by starting from the final grand-children (which originates directly or indirectly from particleJetParent, and which don't have children), and moving "backwards" (in a physical time picture), towards the particleJetParent, the ShowerKinematics objects associated with the various particles, which have been created during the showering, are now completed. In particular, at the end, we get the mass of the jet, which is the main information we want. This methods returns false if there was no radiation or rescaling required
|
protected |
Various methods for the Lorentz transforms needed to do the rescalings.
Compute the boost to get from the the old momentum to the new
|
protected |
Given a 5-momentum and a scale factor, the method returns the Lorentz boost that transforms the 3-vector vec{momentum} —> k*vec{momentum}.
The method returns the null boost in the case no solution exists. This will only work in the case where the outgoing jet-momenta are parallel to the momenta of the particles leaving the hard subprocess.
|
protected |
Methods to calculate the various scaling factors.
Calculate the rescaling factors for the jets in a particle decay where there was initial-state radiation
mb | The mass of the decaying particle |
n | The reference vector for the initial state radiation |
pjet | The momentum of the initial-state jet |
jetKinematics | The JetKinStruct objects for the jets |
partner | The colour partner |
ppartner | The momentum of the colour partner of the decaying particle before and after radiation |
k1 | The rescaling parameter for the partner |
k2 | The rescaling parameter for the outgoing singlet |
qt | The transverse momentum vector |
double Herwig::KinematicsReconstructor::solveKfactor | ( | const Energy & | root_s, |
const JetKinVect & | jets | ||
) | const |
Given a vector of 5-momenta of jets, where the 3-momenta are the initial ones before showering and the masses are reconstructed after the showering, this method returns the overall scaling factor for the 3-momenta of the vector of particles, vec{P}_i -> k * vec{P}_i, such to preserve energy- momentum conservation, i.e.
after the rescaling the center of mass 5-momentum is equal to the one specified in input, cmMomentum. The method returns 0 if such factor cannot be found.
root_s | Centre-of-mass energy |
jets | The jets |
|
mutableprivate |
Storage of the boosts applied to enable resetting after failure.
Definition at line 651 of file KinematicsReconstructor.h.
|
mutableprivate |
Current ShowerTree.
Definition at line 634 of file KinematicsReconstructor.h.
|
private |
Option for FF kinematic factor.
Definition at line 618 of file KinematicsReconstructor.h.
|
private |
Option for the reconstruction of final state systems.
Definition at line 608 of file KinematicsReconstructor.h.
|
private |
Option for the boost for initial-initial reconstruction.
Definition at line 603 of file KinematicsReconstructor.h.
|
private |
Option for the initial state reconstruction.
Definition at line 613 of file KinematicsReconstructor.h.
|
mutableprivate |
Storage of the intrinsic \(p_T\).
Definition at line 629 of file KinematicsReconstructor.h.
|
private |
Minimum invariant mass for initial-final dipoles to allow the reconstruction.
Definition at line 624 of file KinematicsReconstructor.h.
|
private |
Particles which shouldn't have their masses rescaled as set for quick access.
Definition at line 646 of file KinematicsReconstructor.h.
|
private |
Particles which shouldn't have their masses rescaled as vector for the interface.
Definition at line 640 of file KinematicsReconstructor.h.
|
private |
Option for handling the reconstruction.
Definition at line 598 of file KinematicsReconstructor.h.
|
mutableprivate |
Storage of the boosts applied to enable resetting after failure.
Definition at line 656 of file KinematicsReconstructor.h.