Herwig++
2.7.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 <QTildeReconstructor.h>
Public Member Functions | |
QTildeReconstructor () | |
Default constructor. | |
virtual bool | reconstructHardJets (ShowerTreePtr hard, const map< tShowerProgenitorPtr, pair< Energy, double > > &pt) const |
Methods to reconstruct the kinematics of a scattering or decay process. | |
virtual bool | reconstructDecayJets (ShowerTreePtr decay) 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, cEvolverPtr, ShowerInteraction::Type) 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, cEvolverPtr, ShowerInteraction::Type) 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. | |
void | persistentInput (PersistentIStream &is, int version) |
Function used to read in object persistently. | |
Static Public Member Functions | |
static void | Init () |
The standard Init function used to initialize the interfaces. | |
Protected Member Functions | |
vector< unsigned int > | findPartners (unsigned int, vector< ShowerProgenitorPtr >) const |
Find the colour partners of a particle to identify the colour singlet systems for the reconstruction. | |
void | findPartners (HardBranchingPtr branch, set< HardBranchingPtr > &done, const set< HardBranchingPtr > &branchings, vector< HardBranchingPtr > &jets) const |
Find the colour partners for as branching to identify the colour singlet systems for the inverse reconstruction. | |
bool | addIntrinsicPt (vector< ShowerProgenitorPtr >) const |
Add the intrinsic ![]() | |
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. | |
virtual bool | reconstructTimeLikeJet (const tShowerParticlePtr particleJetParent, unsigned int iopt) const |
Methods to reconstruct the kinematics of individual jets. | |
bool | reconstructSpaceLikeJet (const tShowerParticlePtr particleJetParent) const |
Exactly similar to the previous one, but for a space-like jet. | |
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 | 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 >, cEvolverPtr, ShowerInteraction::Type) 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::Type) const |
Perform the inverse reconstruction of a system with only initial-state particles. | |
void | deconstructInitialFinalSystem (HardTreePtr, vector< HardBranchingPtr >, cEvolverPtr, ShowerInteraction::Type) const |
Perform the inverse reconstruction of a system with only initial-state particles. | |
bool | deconstructGeneralSystem (HardTreePtr, cEvolverPtr, ShowerInteraction::Type) const |
LorentzRotation | solveBoost (const double k, const Lorentz5Momentum &newq, const Lorentz5Momentum &oldp) const |
Various methods for the Lorentz transforms needed to do the rescalings. | |
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. | |
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). | |
double | solveKfactor (const Energy &root_s, const JetKinVect &jets) const |
Methods to calculate the various scaling factors. | |
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. | |
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 (const double &k, const Energy &root_s, const JetKinVect &jets) const |
Check the rescaling conserves momentum. | |
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. | |
Standard Interfaced functions. | |
virtual void | doinit () |
Initialize this object after the setup phase before saving an EventGenerator to disk. | |
Private Member Functions | |
QTildeReconstructor & | operator= (const QTildeReconstructor &) |
The assignment operator is private and must never be called. | |
Private Attributes | |
unsigned int | _reconopt |
Option for handling the reconstruction. | |
unsigned int | _initialBoost |
Option for the boost for initial-initial reconstruction. | |
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. |
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 73 of file QTildeReconstructor.h.
void Herwig::QTildeReconstructor::boostChain | ( | tPPtr | p, |
const LorentzRotation & | bv, | ||
tPPtr & | parent | ||
) | const [protected] |
Recursively boost the initial-state shower.
p | The particle |
bv | The boost |
parent | The parent of the chain |
virtual IBPtr Herwig::QTildeReconstructor::clone | ( | ) | const [inline, protected, virtual] |
Make a simple clone of this object.
Implements ThePEG::InterfacedBase.
Definition at line 439 of file QTildeReconstructor.h.
virtual bool Herwig::QTildeReconstructor::deconstructDecayJets | ( | HardTreePtr | , |
cEvolverPtr | , | ||
ShowerInteraction::Type | |||
) | 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
Implements Herwig::KinematicsReconstructor.
void Herwig::QTildeReconstructor::deconstructFinalStateSystem | ( | const LorentzRotation & | toRest, |
const LorentzRotation & | fromRest, | ||
HardTreePtr | , | ||
vector< HardBranchingPtr > | , | ||
cEvolverPtr | , | ||
ShowerInteraction::Type | |||
) | 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
void Herwig::QTildeReconstructor::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.
particle | The particle |
r | The Lorentz transformation |
match | Whether or not to look at children etc |
original | The original particle |
virtual void Herwig::QTildeReconstructor::doinit | ( | ) | [protected, virtual] |
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.
virtual IBPtr Herwig::QTildeReconstructor::fullclone | ( | ) | const [inline, protected, virtual] |
Make a clone of this object, possibly modifying the cloned object to make it sane.
Reimplemented from ThePEG::InterfacedBase.
Definition at line 445 of file QTildeReconstructor.h.
static void Herwig::QTildeReconstructor::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.
Reimplemented from Herwig::KinematicsReconstructor.
bool Herwig::QTildeReconstructor::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.
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 |
double Herwig::QTildeReconstructor::inverseRescalingFactor | ( | vector< Lorentz5Momentum > | pout, |
vector< Energy > | mon, | ||
Energy | roots | ||
) | const [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 |
Energy Herwig::QTildeReconstructor::momConsEq | ( | const double & | k, |
const Energy & | root_s, | ||
const JetKinVect & | jets | ||
) | const [protected] |
Check the rescaling conserves momentum.
k | The rescaling |
root_s | The centre-of-mass energy |
jets | The jets |
QTildeReconstructor& Herwig::QTildeReconstructor::operator= | ( | const QTildeReconstructor & | ) | [private] |
The assignment operator is private and must never be called.
In fact, it should not even be implemented.
void Herwig::QTildeReconstructor::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. |
Reimplemented from ThePEG::Interfaced.
void Herwig::QTildeReconstructor::persistentOutput | ( | PersistentOStream & | os | ) | const |
Function used to write out object persistently.
os | the persistent output stream written to. |
Reimplemented from ThePEG::Interfaced.
virtual bool Herwig::QTildeReconstructor::reconstructHardJets | ( | ShowerTreePtr | hard, |
const map< tShowerProgenitorPtr, pair< Energy, double > > & | pt | ||
) | 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.
Implements Herwig::KinematicsReconstructor.
void Herwig::QTildeReconstructor::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
bool Herwig::QTildeReconstructor::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
virtual bool Herwig::QTildeReconstructor::reconstructTimeLikeJet | ( | const tShowerParticlePtr | particleJetParent, |
unsigned int | iopt | ||
) | const [protected, virtual] |
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
LorentzRotation Herwig::QTildeReconstructor::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
Boost Herwig::QTildeReconstructor::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.
bool Herwig::QTildeReconstructor::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.
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::QTildeReconstructor::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.
root_s | Centre-of-mass energy |
jets | The jets |