9 #ifndef ThePEG_BasicStep_H 10 #define ThePEG_BasicStep_H 13 #include "ThePEG/EventRecord/Particle.h" 14 #include "ThePEG/EventRecord/StandardSelectors.h" 84 template <
typename OutputIterator>
92 template <
typename OutputIterator>
112 template <
typename PIterator>
113 static vector<tPVector>
getSinglets(PIterator first, PIterator last) {
216 template <
typename CIterator>
218 CIterator firstChild, CIterator lastChild,
219 bool fixColour =
true) {
220 for ( ; firstChild != lastChild; ++firstChild )
251 template <
typename CIterator>
253 CIterator firstChild, CIterator lastChild) {
255 for ( ; firstChild != lastChild; ++firstChild )
270 template <
typename Iterator>
272 bool checkfinal =
true);
282 template <
typename PIterator,
typename CIterator>
284 CIterator firstChild, CIterator lastChild);
320 template <
typename Iterator>
339 template <
typename Iterator>
391 template <
typename Cont>
402 template <
typename Iterator>
453 template <
typename Inserter,
typename PPo
inter>
531 #include "Collision.h" 537 #ifndef ThePEG_TEMPLATES_IN_CC_FILE tPPtr find(tcPPtr p) const
Get mutable particle.
static void Init()
Standard Init function.
PersistentIStream is used to read persistent objects from a stream where they were previously written...
bool setCopy(tcPPtr pold, tPPtr pnew)
Make particles copies of eachother.
const ParticleSet & all() const
A reference to the set of all particles in this step.
void removeEntry(tPPtr p)
Remove a particle entry from the step.
Define the base class from which all (polymorphic) classes in ThePEG are derived. ...
static ClassDescription< Step > initStep
Describe concrete class with persistent data.
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...
static vector< tPVector > getSinglets(PIterator first, PIterator last)
Return a vector of particle vectors with colour-connected partons, where each particle vector is in a...
tPPtr colourNeighbour(tcPPtr particle, bool anti=false) const
Return the (anti-)colour neighbour of the given particle if one exists in the final state of this Ste...
set< tPPtr, less< tPPtr > > tParticleSet
A set of transient pointers to Particle.
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data...
void insertIntermediate(tPPtr p, tPPtr parent, tPPtr child)
Add an intermediate particle.
tPVector getFinalState() const
Extract all final state particles in this Step.
bool member(const Container &c, const Key &k)
Check if a given object is a part of a container.
void rebind(const EventTranslationMap &trans)
Rebind to cloned objects.
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
bool nullStep() const
Return true if no new particles were introduced in this step.
bool removeDecayProduct(tcPPtr parent, tPPtr child)
Remove the child form the given parent.
TransientConstRCPtr is a simple wrapper around a bare const pointer which can be assigned to and from...
void removeParticle(tPPtr p)
Remove (recursively) the given Particle from the Step.
Ptr< EventRecordBase >::transient_const_pointer tcEventBasePtr
Alias for a transient pointer to const EventRecordBase.
ParticleSet theIntermediates
The set of all intermediate particle in this step.
TransientRCPtr is a simple wrapper around a bare pointer which can be assigned to and from an RCPtr a...
tCollPtr theCollision
Pointer to the collision to which this step belongs.
void addParticle(tPPtr p)
Add a particle to this step.
Rebinder is a class associating pairs of pointers to objects.
tPPtr insertCopy(tcPPtr p)
Insert a copy.
This is the main namespace within which all identifiers in ThePEG are declared.
ostream & left(ostream &os)
Stream manipulator setting an ostream to left-adjust its ouput.
const ParticleSet & particles() const
A reference to the set of outgoing particles in this step.
void selectFinalState(OutputIterator r) const
Extract all final state particles in this Step.
ParticleSet theParticles
The set of all outgoing particle in this step.
const PPair & incoming() const
Returns the colliding particles in the collision to which this step belongs.
void collision(tCollPtr c)
Setup pointer to the Collision.
ParticleSet allParticles
The set of all particles available in this step.
void handler(tcEventBasePtr sh)
Setup pointer to the step handler.
void addParticles(Iterator first, Iterator last)
Add a range of particles to this Step.
SubProcessVector theSubProcesses
The vector of all sub-processes introduced in this step.
Step(tCollPtr newCollision=tCollPtr(), tcEventBasePtr newHandler=tcEventBasePtr())
Standard constructor.
set< PPtr, less< PPtr > > ParticleSet
A set of pointers to Particle.
tParticleSet getCurrent(const Cont &c) const
Get final state particles.
tcEventBasePtr theHandler
Pointer ot the step handler which performed this step.
void addDecayNoCheck(tPPtr parent, tPPtr child)
Add a particle to this Step.
tcEventBasePtr handler() const
Return a pointer to the step handler which performed the generation of this step. ...
void fixColourFlow()
Fix the colour flow of particles which have been added to this step and which have not already had th...
vector< SubProPtr > SubProcessVector
A vector of pointers to SubProcess.
pair< PPtr, PPtr > PPair
A pair of pointers to Particle objects.
T1 const_ptr_cast(const T2 &t2)
Replacement for the standard const_cast.
tCollPtr collision() const
Return a pointer to the Collision to which this step belongs.
void addIfFinal(Inserter o, PPointer p)
Get final state particles.
RCPtr is a reference counted (smart) pointer.
ThePEG::Ptr< Particle >::transient_pointer tPPtr
Alias for a transient pointer to Particle .
bool addDecayProduct(tcPPtr parent, CIterator firstChild, CIterator lastChild, bool fixColour=true)
Add decay products.
void removeSubProcess(tSubProPtr)
Remove a sub-process.
bool addDecayProduct(tcPPtr parent, tPPtr child, bool fixColour=true)
Add decay product.
ThePEG::Ptr< Collision >::transient_pointer tCollPtr
Alias for a transient pointer to Collision .
This is the decalaration of the Collision class.
void addIntermediates(Iterator first, Iterator last)
Add a range of intermediate particles in this step.
StepPtr clone() const
Return a clone of this step.
const SubProcessVector & subProcesses() const
A reference to the vector of sub-processes introduced in this step.
Step & operator=(const Step &)
Assignement is not allowed.
tPPtr copyParticle(tcPPtr p)
Copy a particle.
tPPtr antiColourNeighbour(tcPPtr particle) const
Return the anti-colour neighbour of the given particle if one exists in the final state of this Step...
void select(OutputIterator r, const SelectorBase &s) const
Extract particles from this Step which satisfies the requirements given by an object of the SelectorB...
void persistentOutput(PersistentOStream &) const
Standard function for writing to a persistent stream.
void addSubProcess(tSubProPtr)
Add a sub-process.
void addIntermediate(tPPtr p)
Add an intermediate particle in this Step.
vector< T > & operator<<(vector< T > &tv, const U &u)
Overload the left shift operator for vector to push_back objects to a vector.
vector< tPPtr > tPVector
A vector of transient pointers to Particle objects.
bool removeDecayProduct(tcPPtr parent, CIterator firstChild, CIterator lastChild)
Remove children form the given parent.
const ParticleSet & intermediates() const
A reference to the set of intermediate particles in this step.
void persistentInput(PersistentIStream &, int)
Standard function for reading from a persistent stream.
virtual void debugme() const
Print out debugging information for this object on std::cerr.
ParticleSelector< FinalStateSelector > SelectFinalState
Typedef to declare a selector used to extract all final state particles from an event.
The Step class contains information of all particles present after certain step in the event generati...