herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
Herwig::KinematicsReconstructor Class Reference

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>

Inheritance diagram for Herwig::KinematicsReconstructor:

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. More...
 
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. More...
 
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.
 
Functions used by the persistent I/O system.
void persistentOutput (PersistentOStream &os) const
 Function used to write out object persistently. More...
 
void persistentInput (PersistentIStream &is, int version)
 Function used to read in object persistently. More...
 
- 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
 
void persistentOutput (PersistentOStream &os) const
 
void persistentInput (PersistentIStream &is, int version)
 
- Public Member Functions inherited from ThePEG::InterfacedBase
string fullName () const
 
string name () const
 
string path () const
 
string comment () const
 
void setup (istream &is)
 
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
 
void persistentOutput (PersistentOStream &os) const
 
void persistentInput (PersistentIStream &is, int version)
 
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
 
void persistentOutput (PersistentOStream &os) const
 
void persistentInput (PersistentIStream &is, int version)
 
- Public Member Functions inherited from ThePEG::Base
void debug () 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
 

Static Public Member Functions

static void Init ()
 The standard Init function used to initialize the interfaces. More...
 
- 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 ()
 

Protected Member Functions

void reconstructFinalFinalOffShell (JetKinVect orderedJets, Energy2 s, bool recursive) const
 Recursively treat the most off-shell paricle seperately for final-final reconstruction.
 
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.
 
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. More...
 
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.
 
virtual bool reconstructTimeLikeJet (const tShowerParticlePtr particleJetParent) const
 Methods to reconstruct the kinematics of individual jets. More...
 
bool reconstructSpaceLikeJet (const tShowerParticlePtr particleJetParent) const
 Exactly similar to the previous one, but for a space-like jet. More...
 
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. More...
 
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. More...
 
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
 
LorentzRotation solveBoost (const double k, const Lorentz5Momentum &newq, const Lorentz5Momentum &oldp) const
 Various methods for the Lorentz transforms needed to do the rescalings. More...
 
LorentzRotation solveBoost (const Lorentz5Momentum &newq, const Lorentz5Momentum &oldq) const
 Compute the boost to get from the the old momentum to the new.
 
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. More...
 
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}. More...
 
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).
 
double solveKfactor (const Energy &root_s, const JetKinVect &jets) const
 Methods to calculate the various scaling factors. More...
 
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
 Calculate the rescaling factors for the jets in a particle decay where there was initial-state radiation. More...
 
double inverseRescalingFactor (vector< Lorentz5Momentum > pout, vector< Energy > mon, Energy roots) const
 Compute the momentum rescaling factor needed to invert the shower. More...
 
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. More...
 
Energy momConsEq (double k, const Energy &root_s, const JetKinVect &jets) const
 Check the rescaling conserves momentum. More...
 
void findInitialBoost (const Lorentz5Momentum &pold, const Lorentz5Momentum &pnew, LorentzRotation &toRest, LorentzRotation &fromRest) const
 
Clone Methods.
virtual IBPtr clone () const
 Make a simple clone of this object. More...
 
virtual IBPtr fullclone () const
 Make a clone of this object, possibly modifying the cloned object to make it sane. More...
 
Standard Interfaced functions.
virtual void doinit ()
 Initialize this object after the setup phase before saving an EventGenerator to disk. More...
 
- 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
 InterfacedBase (string newName)
 
 InterfacedBase (const InterfacedBase &i)
 
virtual void readSetup (istream &is)
 
virtual void doupdate ()
 
virtual void doinitrun ()
 
virtual void dofinish ()
 
virtual IVector getReferences ()
 
virtual void rebind (const TranslationMap &)
 
virtual void readSetup (istream &is)
 
virtual void doupdate ()
 
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 &)
 
ReferenceCountedoperator= (const ReferenceCounted &)
 
 ReferenceCounted (const ReferenceCounted &)
 
ReferenceCountedoperator= (const ReferenceCounted &)
 
- Protected Member Functions inherited from ThePEG::Named
const Namedoperator= (const Named &other)
 
const string & name (const string &newName)
 

Private Member Functions

KinematicsReconstructoroperator= (const KinematicsReconstructor &)=delete
 The assignment operator is private and must never be called. More...
 

Private Attributes

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.
 
tShowerParticlePtr _progenitor
 The progenitor of the jet currently being reconstructed.
 
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.
 

Additional Inherited Members

- Public Types inherited from ThePEG::InterfacedBase
enum  InitState
 
- Public Types inherited from ThePEG::Pointer::ReferenceCounted
typedef unsigned int CounterType
 
- 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)
 

Detailed Description

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:

  • although we often use the term "jet" in either methods or variables names, or in comments, which could appear applicable only for QCD showering, there is indeed no "dynamics" represented in this class: only kinematics is involved, as the name of this class remainds. Therefore it can be used for any kind of showers (QCD-,QED-,EWK-,... bremsstrahlung).
See also
ShowerParticle
ShowerKinematics
The interfaces defined for KinematicsReconstructor.

Definition at line 126 of file KinematicsReconstructor.h.

Member Function Documentation

◆ boostChain()

void Herwig::KinematicsReconstructor::boostChain ( tPPtr  p,
const LorentzRotation bv,
tPPtr parent 
) const
protected

Recursively boost the initial-state shower.

Parameters
pThe particle
bvThe boost
parentThe parent of the chain

◆ clone()

virtual IBPtr Herwig::KinematicsReconstructor::clone ( ) const
inlineprotectedvirtual

Make a simple clone of this object.

Returns
a pointer to the new object.

Implements ThePEG::InterfacedBase.

Definition at line 559 of file KinematicsReconstructor.h.

◆ deconstructDecayJets()

virtual bool Herwig::KinematicsReconstructor::deconstructDecayJets ( HardTreePtr  ,
ShowerInteraction   
) const
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

◆ deconstructFinalStateSystem()

void Herwig::KinematicsReconstructor::deconstructFinalStateSystem ( const LorentzRotation toRest,
const LorentzRotation fromRest,
HardTreePtr  ,
vector< HardBranchingPtr >  ,
ShowerInteraction   
) const
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

◆ deepTransform()

void Herwig::KinematicsReconstructor::deepTransform ( PPtr  particle,
const LorentzRotation r,
bool  match = true,
PPtr  original = PPtr() 
) const
protected

Apply a transform to the particle and any child, including child ShowerTree objects.

Parameters
particleThe particle
rThe Lorentz transformation
matchWhether or not to look at children etc
originalThe original particle

◆ doinit()

virtual void Herwig::KinematicsReconstructor::doinit ( )
protectedvirtual

Initialize this object after the setup phase before saving an EventGenerator to disk.

Exceptions
InitExceptionif object could not be initialized properly.

Reimplemented from ThePEG::InterfacedBase.

◆ fullclone()

virtual IBPtr Herwig::KinematicsReconstructor::fullclone ( ) const
inlineprotectedvirtual

Make a clone of this object, possibly modifying the cloned object to make it sane.

Returns
a pointer to the new object.

Reimplemented from ThePEG::InterfacedBase.

Definition at line 565 of file KinematicsReconstructor.h.

◆ Init()

static void Herwig::KinematicsReconstructor::Init ( )
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.

◆ inverseDecayRescalingFactor()

bool Herwig::KinematicsReconstructor::inverseDecayRescalingFactor ( vector< Lorentz5Momentum >  pout,
vector< Energy >  mon,
Energy  roots,
Lorentz5Momentum  ppartner,
Energy  mbar,
double &  k1,
double &  k2 
) const
protected

Compute the momentum rescaling factor needed to invert the shower.

Parameters
poutThe momenta of the outgoing particles
monThe on-shell masses
rootsThe mass of the decaying particle
ppartnerThe momentum of the colour partner
mbarThe mass of the decaying particle
k1The first scaling factor
k2The second scaling factor

◆ inverseRescalingFactor()

double Herwig::KinematicsReconstructor::inverseRescalingFactor ( vector< Lorentz5Momentum >  pout,
vector< Energy >  mon,
Energy  roots 
) const
protected

Compute the momentum rescaling factor needed to invert the shower.

Parameters
poutThe momenta of the outgoing particles
monThe on-shell masses
rootsThe mass of the decaying particle

◆ momConsEq()

Energy Herwig::KinematicsReconstructor::momConsEq ( double  k,
const Energy &  root_s,
const JetKinVect jets 
) const
protected

Check the rescaling conserves momentum.

Parameters
kThe rescaling
root_sThe centre-of-mass energy
jetsThe jets

◆ operator=()

KinematicsReconstructor& Herwig::KinematicsReconstructor::operator= ( const KinematicsReconstructor )
privatedelete

The assignment operator is private and must never be called.

In fact, it should not even be implemented.

◆ persistentInput()

void Herwig::KinematicsReconstructor::persistentInput ( PersistentIStream is,
int  version 
)

Function used to read in object persistently.

Parameters
isthe persistent input stream read from.
versionthe version number of the object when written.

◆ persistentOutput()

void Herwig::KinematicsReconstructor::persistentOutput ( PersistentOStream os) const

Function used to write out object persistently.

Parameters
osthe persistent output stream written to.

◆ reconstructHardJets()

virtual bool Herwig::KinematicsReconstructor::reconstructHardJets ( ShowerTreePtr  hard,
const map< tShowerProgenitorPtr, pair< Energy, double > > &  pt,
ShowerInteraction  type,
bool  switchRecon 
) const
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.

◆ reconstructInitialFinalSystem()

void Herwig::KinematicsReconstructor::reconstructInitialFinalSystem ( vector< ShowerProgenitorPtr >  ) const
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

◆ reconstructSpaceLikeJet()

bool Herwig::KinematicsReconstructor::reconstructSpaceLikeJet ( const tShowerParticlePtr  particleJetParent) const
protected

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

◆ reconstructTimeLikeJet()

virtual bool Herwig::KinematicsReconstructor::reconstructTimeLikeJet ( const tShowerParticlePtr  particleJetParent) const
protectedvirtual

Methods to reconstruct the kinematics of individual jets.

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

◆ solveBoost()

LorentzRotation Herwig::KinematicsReconstructor::solveBoost ( const double  k,
const Lorentz5Momentum &  newq,
const Lorentz5Momentum &  oldp 
) const
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

◆ solveBoostBeta()

Boost Herwig::KinematicsReconstructor::solveBoostBeta ( const double  k,
const Lorentz5Momentum &  newq,
const Lorentz5Momentum &  oldp 
)
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.

◆ solveDecayKFactor()

bool Herwig::KinematicsReconstructor::solveDecayKFactor ( Energy  mb,
const Lorentz5Momentum &  n,
const Lorentz5Momentum &  pjet,
const JetKinVect jetKinematics,
ShowerParticlePtr  partner,
Lorentz5Momentum  ppartner[2],
double &  k1,
double &  k2,
Lorentz5Momentum &  qt 
) const
protected

Calculate the rescaling factors for the jets in a particle decay where there was initial-state radiation.

Parameters
mbThe mass of the decaying particle
nThe reference vector for the initial state radiation
pjetThe momentum of the initial-state jet
jetKinematicsThe JetKinStruct objects for the jets
partnerThe colour partner
ppartnerThe momentum of the colour partner of the decaying particle before and after radiation
k1The rescaling parameter for the partner
k2The rescaling parameter for the outgoing singlet
qtThe transverse momentum vector

◆ solveKfactor()

double Herwig::KinematicsReconstructor::solveKfactor ( const Energy &  root_s,
const JetKinVect jets 
) const
protected

Methods to calculate the various scaling factors.

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.

Parameters
root_sCentre-of-mass energy
jetsThe jets

The documentation for this class was generated from the following file: