Main Page   Class Hierarchy   Compound List   File List   Compound Members  

Relation.h

00001 #ifndef PARTICLE_CLASS_RELATION_H
00002 #define PARTICLE_CLASS_RELATION_H
00003 
00004 #include <string>
00005 #include <vector>
00006 
00007 class Particle;
00008 
00010 class Relation {
00011 
00012 public:
00014   Relation();
00015 
00017   Relation(const Relation &);
00018 
00020   Relation(const Relation &, Particle *);
00021 
00023   virtual ~Relation();
00024 
00026   virtual std::string className(void){ return std::string("Relation"); }
00027   
00029   virtual void dump(const std::string & keyword = std::string(""),
00030                     const std::string & prefix  = std::string("")) const;
00031   
00033   virtual const Particle * mother(void) const;
00034 
00036   virtual Particle * mother(void);
00037   
00039   virtual const Particle * mother(Particle &);
00040   
00042   virtual unsigned int nChildren(void) const;
00043   
00045   virtual const Particle * child(unsigned int) const;
00046 
00048   virtual Particle * child(unsigned int);
00049   
00051   virtual const std::vector<Particle *> & children(void) const;
00052   
00054   virtual void append(Particle &);
00055 
00057   virtual void append(Particle *);
00058   
00060   virtual void remove(Particle &);
00061 
00063   virtual void remove(Particle *);
00064 
00066   virtual void removeAll(void);
00067   
00069   virtual unsigned int nFinalStateParticles(void) const;
00070   
00072   virtual const Particle * finalStateParticle(unsigned int) const;
00073 
00075   virtual const std::vector<Particle *> & finalStateParticles(void) const;
00076 
00078   virtual const Particle * gen(void) const;
00079 
00081   virtual Particle * gen(void);
00082   
00084   virtual const Particle * gen(Particle &);
00085   
00087   virtual void resetGenParticle(void);
00088 
00092   virtual const Particle * rec(void) const;
00093 
00095   virtual Particle * rec(void);
00096   
00098   virtual const Particle * rec(Particle &);
00099   
00101   virtual void resetRecParticle(void);
00102 
00104   virtual bool isIdenticalWith(const Relation &) const;
00105 
00107   virtual Relation & operator = (const Relation &);
00108 
00109 protected:
00110   // calculates m_finalStateParticles.
00111   virtual void fillFinalStateParticles(void) const;
00112 
00113   Particle * m_self;
00114   Particle * m_mother;
00115   Particle * m_gen;
00116   Particle * m_rec;
00117   std::vector<Particle *> m_children;
00118   mutable std::vector<Particle *> m_finalStateParticles;
00119 };
00120 #endif // PARTICLE_CLASS_RELATION_H

Generated on Tue Apr 13 13:25:32 2004 for ATLAS JAPAN by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002