KiTrack  1.7.0
Segment.h
1 #ifndef Segment_h
2 #define Segment_h
3 
4 #include <vector>
5 #include <list>
6 #include <string>
7 
8 #include "KiTrack/IHit.h"
9 
10 namespace KiTrack{
11 
12 
40  class Segment {
41 
42 
43  public:
44 
45  Segment( std::vector <IHit*> hits);
46  Segment( IHit* hit);
47 
48 
49  void deleteParent ( Segment* delParent ){ _parents.remove( delParent );};
50  void deleteChild ( Segment* delChild ){ _children.remove( delChild );};
51 
52 
53  std::list <Segment*> getChildren() { return _children;};
54  std::list <Segment*> getParents() { return _parents;};
55 
56  std::vector <IHit*> getHits()const {return _hits;};
57 
58  void addChild( Segment* child ){ _children.push_back(child); };
59  void addParent( Segment* parent ){ _parents.push_back(parent); };
60 
61  unsigned getLayer()const { return _layer; };
62  void setLayer( unsigned layer ) { _layer = layer; };
63 
64  std::vector<int>& getState() { return _state; };
65 
66  void raiseState() { if (_state.size() > 0) _state[0]++; };
67  int getInnerState()const { return _state[0];};
68  int getOuterState()const { return _state.back();};
69  void resetState();
70 
71  void setSkippedLayers( unsigned skippedLayers ){ _state.resize( skippedLayers + 1 );}
72 
73  bool isActive() const { return _active;}
74  void setActive( bool active ){ _active = active; }
75 
77  std::string getInfo();
78 
79  private:
80 
81  std::list <Segment*> _children;
82  std::list <Segment*> _parents;
83 
84 
85 
86  std::vector <IHit*> _hits;
87 
88  std::vector<int> _state;
89 
90  unsigned _layer;
91  bool _active;
92 
93  };
94 
95 
96 } //end of KiTrack Namespace
97 
98 #endif
99 
A Segment is something like a track or a part of a track: it consists of hits linked together...
Definition: Segment.h:40
std::string getInfo()
Definition: Segment.cc:48
An Interface for hits.
Definition: IHit.h:17