9 #ifndef ThePEG_Collision_H 10 #define ThePEG_Collision_H 16 #include "ThePEG/Vectors/LorentzVector.h" 17 #include "ThePEG/Vectors/LorentzRotation.h" 108 template <
class OutputIterator>
116 template <
class OutputIterator>
281 template <
class Iterator>
403 static string className() {
return "ThePEG::Collision"; }
405 static TPtr create() {
return TPtr::Create(
Collision()); }
412 #ifndef ThePEG_TEMPLATES_IN_CC_FILE 413 #include "Collision.tcc" const LorentzPoint & vertex() const
Return the vertex position of this Collision.
void persistentOutput(PersistentOStream &) const
Standard function for writing to a persistent stream.
PersistentIStream is used to read persistent objects from a stream where they were previously written...
Energy2 m2() const
Return the total invariant mass squared of the final-state particles in this Collision.
StepVector theSteps
A vector of all steps in this Collision.
The EventHandler is the base class used to implement event handlers in ThePEG.
PPair theIncoming
The pair of colliding particles.
ThePEG::Ptr< SubProcess >::pointer SubProPtr
Alias for a reference counted pointer to SubProcess .
vector< StepPtr > StepVector
A vector of pointers to Step.
Define the base class from which all (polymorphic) classes in ThePEG are derived. ...
ClassTraitsType is an empty, non-polymorphic, base class.
static void Init()
Standard Init function.
This is the main config header file for the Event classes.
The Event class contains all Particles produced in the generation of an event.
Classes derived from the SelectorBase class are used to extract particles from an Event with Event::s...
void persistentInput(PersistentIStream &, int)
Standard functions for reading from a persistent stream.
set< tPPtr, less< tPPtr > > tParticleSet
A set of transient pointers to Particle.
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data...
bool member(const Container &c, const Key &k)
Check if a given object is a part of a container.
ParticleSet allParticles
A set of all particles in this Collision.
friend ostream & operator<<(ostream &os, const Collision &c)
Output to a standard ostream.
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
void selectFinalState(OutputIterator r) const
Extract all final state particles in this Collision.
void removeSubProcess(tSubProPtr p)
Remove a SubProcess from this Collision.
SubProcessVector theSubProcesses
A vector of all sub-processes in this Collision.
TransientConstRCPtr is a simple wrapper around a bare const pointer which can be assigned to and from...
Ptr< EventRecordBase >::transient_const_pointer tcEventBasePtr
Alias for a transient pointer to const EventRecordBase.
The LorentzRotation class combine a SpinOneLorentzRotation and a spin SpinHalfLorentzRotation to prov...
TransientRCPtr is a simple wrapper around a bare pointer which can be assigned to and from an RCPtr a...
const SubProcessVector & subProcesses() const
Return the possibly empty list of sub processes in this Collision.
CollPtr clone() const
Clone this Collision.
Rebinder is a class associating pairs of pointers to objects.
const ParticleSet & all() const
Return a reference to the list of all particles in this Collision.
tEventPtr event() const
Return a pointer to the Event to which this Collision belongs.
This is the main namespace within which all identifiers in ThePEG are declared.
void vertex(const LorentzPoint &p)
Set the vertex position of this Collision.
static ClassDescription< Collision > initCollision
Describe concrete class with persistent data.
void addSubProcess(tSubProPtr p)
Add a new SubProcess to this Collision.
void transform(const LorentzRotation &)
Transform all particles in this Collision.
bool isRemnant(tPPtr p) const
Return true if the given particle is a remnant of the colliding particles.
Collision()
Private default constructor must only be used by the PersistentIStream class via the ClassTraits<Coll...
tStepPtr newStep(tcEventBasePtr newHandler=tcEventBasePtr())
Create a new step in this collision, which is a copy of the last step (if any) and return a pointer t...
ThePEG::Ptr< Step >::transient_const_pointer tcStepPtr
Alias for a transient pointer to a const Step .
void removeParticle(tPPtr)
Remove (recursively) the given Particle from the Collision.
tcEventBasePtr theHandler
A pointer to the EventHandler which performed the generation of this Collision.
Collision & operator=(const Collision &)
The assignment operator is private and not implemented.
set< PPtr, less< PPtr > > ParticleSet
A set of pointers to Particle.
tStepPtr finalStep()
Return a pointer to the last step in this Collission.
void removeDecay(tPPtr)
Remove (recursively) the decay products from a given Particle and add the particle to the list of fin...
tParticleSet getRemnants() const
Return the set of remnants in this collision.
vector< SubProPtr > SubProcessVector
A vector of pointers to SubProcess.
void addStep(tStepPtr s)
Add a new Step to this Collision.
tSubProPtr primarySubProcess() const
Return a pointer to the primary SubProcess in this Collision.
void addParticle(tPPtr p)
Add a particle to this Collision.
pair< PPtr, PPtr > PPair
A pair of pointers to Particle objects.
void popStep()
Remove the last Step in this Collision.
RCPtr is a reference counted (smart) pointer.
void removeEntry(tPPtr p)
Remove a given Particle entry.
~Collision()
The destructor.
This is the decalaration of the Collision class.
tEventPtr theEvent
A pointer to the Event to which this Collision belongs.
LorentzPoint theVertex
The vertex position of this Collision.
void addParticles(Iterator first, Iterator last)
Add a range of particles to this Collision.
ThePEG::Ptr< Event >::transient_pointer tEventPtr
Alias for a transient pointer to Event .
The default concrete implementation of ClassTraitsBase.
tPVector getFinalState() const
Extract all final state particles in this Collision.
tcStepPtr finalStep() const
Return a const pointer to the last step in this Collission.
tcEventBasePtr handler() const
Return a pointer to the EventHandler which produced this Collision.
tcStepPtr step(unsigned int i) const
Return a pointer to a given Step in this Collision.
vector< tPPtr > tPVector
A vector of transient pointers to Particle objects.
void select(OutputIterator r, const SelectorBase &s) const
Extract particles from this Collision which satisfies the requirements given by an object of the Sele...
This file contains declarations of standard selector classes.
BaseClassTraits describes the base classes of the templated class.
ParticleSelector< FinalStateSelector > SelectFinalState
Typedef to declare a selector used to extract all final state particles from an event.
ThePEG::Ptr< Step >::pointer StepPtr
Alias for a reference counted pointer to Step .
Collision(const PPair &newIncoming, tEventPtr newEvent=tEventPtr(), tcEventBasePtr newHandler=tcEventBasePtr())
The standard constructor takes a pair of incoming particles as argument.
const PPair & incoming() const
Return a reference to the pair of colliding particles in this Collision.
void rebind(const EventTranslationMap &trans)
Rebind to cloned objects.
const StepVector & steps() const
Return the vector of steps in this Collision.
The templated ClassTraitsBase class defines a set of default information about classes used by ThePEG...
The Step class contains information of all particles present after certain step in the event generati...
void cleanSteps()
Remove all steps which have no new particles introduced in them.