CMS 3D CMS Logo

KinematicTree.h
Go to the documentation of this file.
1 #ifndef KinematicTree_H
2 #define KinematicTree_H
3 
9 
37 public:
42  KinematicTree();
43 
44  ~KinematicTree() override;
45 
49  bool isEmpty() const;
50  bool isValid() const { return !empt; }
51 
58  bool isConsistent() const;
59 
68 
78  std::vector<RefCountedKinematicParticle> finalStateParticles() const;
79 
86 
92 
98 
104 
111  std::pair<bool, RefCountedKinematicParticle> motherParticle() const;
112 
118  std::vector<RefCountedKinematicParticle> daughterParticles() const;
119 
125  void movePointerToTheTop() const;
126 
132  bool movePointerToTheMother() const;
133 
138  bool movePointerToTheFirstChild() const;
139 
144  bool movePointerToTheNextChild() const;
145 
154 
162  bool findDecayVertex(const RefCountedKinematicVertex vert) const;
163  bool findDecayVertex(KinematicVertex* vert) const;
164 
175 
181 
192 
193 private:
201 
203 
204  bool leftFinalParticle() const;
205 
207 
208  mutable bool empt;
209 
212 };
213 #endif
std::vector< RefCountedKinematicParticle > finalStateParticles() const
RefCountedKinematicParticle topParticle() const
void replaceCurrentVertex(RefCountedKinematicVertex newVert) const
bool findDecayVertex(const RefCountedKinematicVertex vert) const
bool isEmpty() const
std::pair< bool, RefCountedKinematicParticle > motherParticle() const
void leftBranchAdd(KinematicTree *otherTree, RefCountedKinematicVertex vtx)
math::GraphWalker< RefCountedKinematicVertex, RefCountedKinematicParticle > * treeWalker
~KinematicTree() override
Definition: KinematicTree.cc:8
void replaceCurrentParticle(RefCountedKinematicParticle newPart) const
bool isValid() const
Definition: KinematicTree.h:50
bool movePointerToTheFirstChild() const
bool isConsistent() const
void movePointerToTheTop() const
bool movePointerToTheNextChild() const
math::Graph< RefCountedKinematicVertex, RefCountedKinematicParticle > treeGraph
RefCountedKinematicParticle currentParticle() const
RefCountedKinematicVertex currentDecayVertex() const
RefCountedKinematicVertex currentProductionVertex() const
bool findParticle(const RefCountedKinematicParticle part) const
part
Definition: HCALResponse.h:20
void addParticle(RefCountedKinematicVertex prodVtx, RefCountedKinematicVertex decVtx, RefCountedKinematicParticle part)
bool leftFinalParticle() const
bool leftBranchVertexSearch(RefCountedKinematicVertex vtx) const
bool movePointerToTheMother() const
void addTree(RefCountedKinematicVertex vtx, KinematicTree *tr)
std::vector< RefCountedKinematicParticle > daughterParticles() const
bool leftBranchSearch(RefCountedKinematicParticle part) const