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 
20 
25 
28 
36 
39 
41 
44 
47 
48 
49 #include <vector>
50 
52  public:
55 
58 
60  void setEvent(const edm::Event&) const ;
61 
63  std::vector<Trajectory> trajectories(const TrajectorySeed & seed) const ;
64 
66  void trajectories(const TrajectorySeed & seed, TrajectoryContainer &ret) const ;
67 
68  private:
69 
72 
73  public:
75  class trajectory {
76  public:
78  bool duplicate;
79  double chi2;
80  int missed;
81  bool lastmissed;
83  std::list <TrajectoryMeasurement > measurements;
85  Trajectory traj; //the only thing to keep eventually
86  };
87  private:
88 
89  template <class A> class flippingPair : public std::pair<A,A>{
90  public:
92  void flip(){theFlip=!theFlip;}
93  A & head(){ if (theFlip) return this->first ;else return this->second;}
94  A & tail(){if (theFlip) return this->second ;else return this->first;}
95  private:
96  bool theFlip;
97  };
98 
99  typedef std::list< trajectory > TrajectoryCollection;
101 
102  // const MuonServiceProxy * theProxyService;
103 
105  void makeTrajectories(const TrajectorySeed & seed, std::vector<Trajectory> & result ,int version=0) const ;
107  void makeTrajectories_0(const TrajectorySeed & seed, std::vector<Trajectory> & result) const ;
111  void makeTrajectories_1(const TrajectorySeed & seed, std::vector<Trajectory> & result) const ;
112 
117 
118  Trajectory smooth(Trajectory &) const ;
119  void cleanTrajectory(Trajectory & traj) const ;
120 
121  //only global scope variable
122  mutable bool theFirstlayer;
123  //algorithm options
124  //limit the total number of possible trajectories taken into account for a single seed
125  unsigned int theMaxTrajectories;
126 
127  //limit the type of module considered to gather rechits
133  mutable unsigned int theNumberOfHitPerModule;
134  std::vector<unsigned int> theMaxTrajectoriesThreshold;
135  std::vector<unsigned int> theNumberOfHitPerModuleThreshold;
136 
137  //fixed parameters
141 
142  //output track candidate selection
147 
148 
149  //tools and usefull pointers
152 
153  //kalman tools
162 
164 
165 
168 
171 
172 };
173 
174 
175 #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
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