herwig is hosted by Hepforge, IPPP Durham
Herwig++  2.7.0
Herwig::QTildeReconstructor 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 <QTildeReconstructor.h>

Inheritance diagram for Herwig::QTildeReconstructor:

List of all members.

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 $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.
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

QTildeReconstructoroperator= (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 $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.

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 QTildeReconstructor.

Definition at line 73 of file QTildeReconstructor.h.


Member Function Documentation

void Herwig::QTildeReconstructor::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
virtual IBPtr Herwig::QTildeReconstructor::clone ( ) const [inline, protected, virtual]

Make a simple clone of this object.

Returns:
a pointer to the new 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.

Parameters:
particleThe particle
rThe Lorentz transformation
matchWhether or not to look at children etc
originalThe original particle
virtual void Herwig::QTildeReconstructor::doinit ( ) [protected, virtual]

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.

virtual IBPtr Herwig::QTildeReconstructor::fullclone ( ) const [inline, protected, virtual]

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 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.

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
double Herwig::QTildeReconstructor::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
Energy Herwig::QTildeReconstructor::momConsEq ( const 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
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.

Function used to read in object persistently.

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

Reimplemented from ThePEG::Interfaced.

Function used to write out object persistently.

Parameters:
osthe 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.

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
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.

Parameters:
root_sCentre-of-mass energy
jetsThe jets

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