CMS 3D CMS Logo

KinematicTree.h
Go to the documentation of this file.
1 #ifndef KinematicTree_H
2 #define KinematicTree_H
3 
9 
37 {
38  public:
39 
44  KinematicTree();
45 
46 
47  virtual ~KinematicTree();
48 
52  bool isEmpty() const;
53  bool isValid() const {return !empt;}
54 
61  bool isConsistent() const;
62 
71 
81  std::vector<RefCountedKinematicParticle> finalStateParticles() const;
82 
89 
95 
101 
107 
114  std::pair<bool,RefCountedKinematicParticle> motherParticle() const;
115 
116 
122  std::vector<RefCountedKinematicParticle> daughterParticles() const;
123 
129  void movePointerToTheTop() const;
130 
136  bool movePointerToTheMother() const;
137 
142  bool movePointerToTheFirstChild() const;
143 
148  bool movePointerToTheNextChild() const;
149 
157  bool findParticle(const RefCountedKinematicParticle part) const;
158 
166  bool findDecayVertex(const RefCountedKinematicVertex vert) const;
167  bool findDecayVertex(KinematicVertex * vert) const;
168 
179 
180 
185  void replaceCurrentVertex(RefCountedKinematicVertex newVert) const;
186 
197 private:
198 
206 
208 
209  bool leftFinalParticle() const;
210 
212 
213  mutable bool empt;
214 
217 
218 };
219 #endif
void replaceCurrentParticle(RefCountedKinematicParticle newPart) const
RefCountedKinematicVertex currentDecayVertex() const
bool movePointerToTheFirstChild() const
bool movePointerToTheNextChild() const
bool leftBranchVertexSearch(RefCountedKinematicVertex vtx) const
std::pair< bool, RefCountedKinematicParticle > motherParticle() const
bool leftFinalParticle() const
void leftBranchAdd(KinematicTree *otherTree, RefCountedKinematicVertex vtx)
RefCountedKinematicParticle topParticle() const
RefCountedKinematicVertex currentProductionVertex() const
bool leftBranchSearch(RefCountedKinematicParticle part) const
bool findParticle(const RefCountedKinematicParticle part) const
bool movePointerToTheMother() const
bool findDecayVertex(const RefCountedKinematicVertex vert) const
std::vector< RefCountedKinematicParticle > finalStateParticles() const
bool isValid() const
Definition: KinematicTree.h:53
virtual ~KinematicTree()
Definition: KinematicTree.cc:9
graphwalker< RefCountedKinematicVertex, RefCountedKinematicParticle > * treeWalker
void replaceCurrentVertex(RefCountedKinematicVertex newVert) const
void movePointerToTheTop() const
graph< RefCountedKinematicVertex, RefCountedKinematicParticle > treeGraph
bool isConsistent() const
std::vector< RefCountedKinematicParticle > daughterParticles() const
Definition: adjgraph.h:12
RefCountedKinematicParticle currentParticle() const
part
Definition: HCALResponse.h:20
void addParticle(RefCountedKinematicVertex prodVtx, RefCountedKinematicVertex decVtx, RefCountedKinematicParticle part)
void addTree(RefCountedKinematicVertex vtx, KinematicTree *tr)
bool isEmpty() const