Herwig
7.2.1
|
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. 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 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 &) | |
ReferenceCounted & | operator= (const 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) |
Private Member Functions | |
KinematicsReconstructor & | operator= (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 . | |
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) |
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.
|
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 559 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
|
protected |
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 565 of file KinematicsReconstructor.h.
|
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 |
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
|
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
|
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 |
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 |
|
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.
root_s | Centre-of-mass energy |
jets | The jets |