CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
MuonRoadTrajectoryBuilder.h
Go to the documentation of this file.
1 #ifndef RecoMuon_L3TrackFinder_MuonRoadTrajectoryBuilder_h
2 #define RecoMuon_L3TrackFinder_MuonRoadTrajectoryBuilder_h
3 
17 
24 
29 
32 
40 
43 
45 
48 
51 
52 
53 #include <vector>
54 
56  public:
59 
62 
64  void setEvent(const edm::Event&) const ;
65 
67  std::vector<Trajectory> trajectories(const TrajectorySeed & seed) const ;
68 
70  void trajectories(const TrajectorySeed & seed, TrajectoryContainer &ret) const ;
71 
72  private:
73 
75  std::string theCategory ;
76 
77  public:
79  class trajectory {
80  public:
82  bool duplicate;
83  double chi2;
84  int missed;
85  bool lastmissed;
87  std::list <TrajectoryMeasurement > measurements;
89  Trajectory traj; //the only thing to keep eventually
90  };
91  private:
92 
93  template <class A> class flippingPair : public std::pair<A,A>{
94  public:
96  void flip(){theFlip=!theFlip;}
97  A & head(){ if (theFlip) return this->first ;else return this->second;}
98  A & tail(){if (theFlip) return this->second ;else return this->first;}
99  private:
100  bool theFlip;
101  };
102 
103  typedef std::list< trajectory > TrajectoryCollection;
105 
106  // const MuonServiceProxy * theProxyService;
107 
109  void makeTrajectories(const TrajectorySeed & seed, std::vector<Trajectory> & result ,int version=0) const ;
111  void makeTrajectories_0(const TrajectorySeed & seed, std::vector<Trajectory> & result) const ;
115  void makeTrajectories_1(const TrajectorySeed & seed, std::vector<Trajectory> & result) const ;
116 
121 
122  Trajectory smooth(Trajectory &) const ;
123  void cleanTrajectory(Trajectory & traj) const ;
124 
125  //only global scope variable
126  mutable bool theFirstlayer;
127  //algorithm options
128  //limit the total number of possible trajectories taken into account for a single seed
129  unsigned int theMaxTrajectories;
130 
131  //limit the type of module considered to gather rechits
137  mutable unsigned int theNumberOfHitPerModule;
138  std::vector<unsigned int> theMaxTrajectoriesThreshold;
139  std::vector<unsigned int> theNumberOfHitPerModuleThreshold;
140 
141  //fixed parameters
145 
146  //output track candidate selection
151 
152 
153  //tools and usefull pointers
156 
157  //kalman tools
166 
168 
169 
172 
175 
176 };
177 
178 
179 #endif
std::vector< Trajectory > Trajectories
flippingPair< TrajectoryCollection > TrajectoryCollectionFPair
std::vector< unsigned int > theMaxTrajectoriesThreshold
list step
Definition: launcher.py:15
std::string theCategory
Info/Debug category &quot;Muon|RecoMuon|MuonRoadTrajectoryBuilder&quot;.
MuonRoadTrajectoryBuilder(const edm::ParameterSet &par, const MeasurementTracker *mt, const MagneticField *f, const Propagator *p)
constructor from PSet and things from record
std::vector< Trajectory > trajectories(const TrajectorySeed &seed) const
void makeTrajectories(const TrajectorySeed &seed, std::vector< Trajectory > &result, int version=0) const
KFTrajectorySmoother * theSmoother
Trajectory smooth(Trajectory &) const
std::vector< unsigned int > theNumberOfHitPerModuleThreshold
Chi2MeasurementEstimator * theHitEstimator
bool checkStep(TrajectoryCollection &collection) const
void makeTrajectories_0(const TrajectorySeed &seed, std::vector< Trajectory > &result) const
U second(std::pair< T, U > const &p)
void setEvent(const edm::Event &) const
std::vector< Trajectory > TrajectoryContainer
void cleanTrajectory(Trajectory &traj) const
tuple result
Definition: query.py:137
TrajectoryStateUpdator * theUpdator
double f[11][100]
void makeTrajectories_1(const TrajectorySeed &seed, std::vector< Trajectory > &result) const
bool first
Definition: L1TdeRCT.cc:94
const MeasurementTracker * theMeasurementTracker
std::list< TrajectoryMeasurement > measurements
std::list< trajectory > TrajectoryCollection
Chi2MeasurementEstimator * theRoadEstimator
void checkDuplicate(TrajectoryCollection &collection) const
int GatherHits(const TrajectoryStateOnSurface &step, const DetLayer *thislayer, TrajectoryCollectionFPair &Trajectories) const