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 
15 
18 
23 
26 
34 
37 
39 
42 
45 
46 
47 #include <vector>
48 
50  public:
53 
56 
58  void setEvent(const edm::Event&) const ;
59 
61  std::vector<Trajectory> trajectories(const TrajectorySeed & seed) const ;
62 
64  void trajectories(const TrajectorySeed & seed, TrajectoryContainer &ret) const ;
65 
66  private:
67 
70 
71  public:
73  class trajectory {
74  public:
76  bool duplicate;
77  double chi2;
78  int missed;
79  bool lastmissed;
81  std::list <TrajectoryMeasurement > measurements;
83  Trajectory traj; //the only thing to keep eventually
84  };
85  private:
86 
87  template <class A> class flippingPair : public std::pair<A,A>{
88  public:
90  void flip(){theFlip=!theFlip;}
91  A & head(){ if (theFlip) return this->first ;else return this->second;}
92  A & tail(){if (theFlip) return this->second ;else return this->first;}
93  private:
94  bool theFlip;
95  };
96 
97  typedef std::list< trajectory > TrajectoryCollection;
99 
100  // const MuonServiceProxy * theProxyService;
101 
103  void makeTrajectories(const TrajectorySeed & seed, std::vector<Trajectory> & result ,int version=0) const ;
105  void makeTrajectories_0(const TrajectorySeed & seed, std::vector<Trajectory> & result) const ;
108  bool & firstLayer, unsigned int theNumberOfHitPerModule) const;
110  void makeTrajectories_1(const TrajectorySeed & seed, std::vector<Trajectory> & result) const ;
111 
113  bool checkStep(TrajectoryCollection & collection, unsigned int& theNumberOfHitPerModule) const ;
116 
117  Trajectory smooth(Trajectory &) const ;
118  void cleanTrajectory(Trajectory & traj) const ;
119 
120  //algorithm options
121  //limit the total number of possible trajectories taken into account for a single seed
122  unsigned int theMaxTrajectories;
123 
124  //limit the type of module considered to gather rechits
130  std::vector<unsigned int> theMaxTrajectoriesThreshold;
131  std::vector<unsigned int> theNumberOfHitPerModuleThreshold;
132 
133  //fixed parameters
137 
138  //output track candidate selection
143 
144 
145  //tools and usefull pointers
149 
150  //kalman tools
159 
161 
162 
165 
168 
169 };
170 
171 
172 #endif
std::vector< Trajectory > Trajectories
flippingPair< TrajectoryCollection > TrajectoryCollectionFPair
std::vector< unsigned int > theMaxTrajectoriesThreshold
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
const MeasurementTrackerEvent * theMeasurementTrackerEvent
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
int GatherHits(const TrajectoryStateOnSurface &step, const DetLayer *thislayer, TrajectoryCollectionFPair &Trajectories, bool &firstLayer, unsigned int theNumberOfHitPerModule) 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:79
const MeasurementTracker * theMeasurementTracker
std::list< TrajectoryMeasurement > measurements
std::list< trajectory > TrajectoryCollection
Chi2MeasurementEstimator * theRoadEstimator
volatile std::atomic< bool > shutdown_flag false
void checkDuplicate(TrajectoryCollection &collection) const
bool checkStep(TrajectoryCollection &collection, unsigned int &theNumberOfHitPerModule) const