CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
StandAloneMuonFilter.h
Go to the documentation of this file.
1 #ifndef RecoMuon_StandAloneTrackFinder_StandAloneMuonFilter_H
2 #define RecoMuon_StandAloneTrackFinder_StandAloneMuonFilter_H
3 
17 
20 
21 class Propagator;
22 class DetLayer;
24 class Trajectory;
27 class MuonServiceProxy;
28 
29 namespace edm {class ParameterSet; class EventSetup; class Event;}
30 
32 
33  public:
36 
38  virtual ~StandAloneMuonFilter();
39 
40  // Operations
41 
43  void refit(const TrajectoryStateOnSurface& initialState, const DetLayer*, Trajectory& trajectory);
44 
47 
50 
53 
56 
59 
60  void reset();
61 
63  virtual void setEvent(const edm::Event& event);
64 
65  int getTotalChamberUsed() const {return totalChambers;}
66  int getDTChamberUsed() const {return dtChambers;}
67  int getCSCChamberUsed() const {return cscChambers;}
68  int getRPCChamberUsed() const {return rpcChambers;}
69  int getGEMChamberUsed() const {return gemChambers;}
70 
76 
77  inline bool goodState() const {return totalChambers >= 2 &&
79  onlyRPC());}
80 
81  inline bool isCompatibilitySatisfied() const {return totalCompatibleChambers >= 2 &&
83  onlyRPC());}
84 
86  std::vector<const DetLayer*> layers() const {return theDetLayers;}
87 
89  const DetLayer* lastDetLayer() const {return theDetLayers.back();}
90 
93 
96 
98  bool onlyRPC() const {return theRPCLoneliness;}
99 
102 
104  const Propagator *propagator() const;
105 
108 
110 
111 
112 protected:
113 
114 private:
115 
118 
121 
124 
126  void incrementChamberCounters(const DetLayer *layer);
127  void incrementCompatibleChamberCounters(const DetLayer *layer);
128 
130  std::vector<const DetLayer*> compatibleLayers(const DetLayer *initialLayer,
131  const FreeTrajectoryState& fts,
132  PropagationDirection propDir);
133 
134  bool update(const DetLayer * layer,
135  const TrajectoryMeasurement * meas,
136  Trajectory & trajectory);
137 
138  std::vector<TrajectoryMeasurement>
139  findBestMeasurements(const DetLayer * layer, const TrajectoryStateOnSurface & tsos);
140 
147 
150 
153 
158 
163 
165  double theMaxChi2;
168  double theNSigma;
169 
172 
174  std::vector<const DetLayer*> theDetLayers;
175 
178 
182 
185 
191 
197 
200 };
201 #endif
202 
std::vector< const DetLayer * > layers() const
return the layer used for the refit
MeasurementEstimator * estimator() const
access at the estimator
bool onlyRPC() const
True if there are only the RPC measurements.
NavigationDirection fitDirection() const
Return the fit direction.
double theMaxChi2
The max allowed chi2 to accept a rechit in the fit.
MuonTrajectoryUpdator * theMuonUpdator
the muon updator (it doesn&#39;t inhert from an updator, but it has one!)
void createDefaultTrajectory(const Trajectory &, Trajectory &)
void incrementCompatibleChamberCounters(const DetLayer *layer)
bool isCompatibilitySatisfied() const
void setLastCompatibleTSOS(TrajectoryStateOnSurface tsos)
Set the last compatible TSOS.
int getRPCCompatibleChambers() const
PropagationDirection
TrajectoryStateOnSurface lastUpdatedTSOS() const
the Trajectory state on the last surface of the fitting
TrajectoryStateOnSurface theLastCompatibleTSOS
the trajectory state on the last compatible surface
bool theRPCLoneliness
True if there are only the RPC measurements.
std::string theMuonUpdatorName
its name
void setLastUpdatedTSOS(TrajectoryStateOnSurface tsos)
Set the last TSOS.
void refit(const TrajectoryStateOnSurface &initialState, const DetLayer *, Trajectory &trajectory)
Perform the inner-outward fitting.
std::string thePropagatorName
the propagator name
MuonDetLayerMeasurements * theMeasurementExtractor
The Measurement extractor.
void incrementChamberCounters(const DetLayer *layer)
Increment the DT,CSC,RPC counters.
int getCSCCompatibleChambers() const
int getDTCompatibleChambers() const
FreeTrajectoryState const * freeTrajectoryState(bool withErrors=true) const
TrajectoryStateOnSurface lastButOneUpdatedTSOS() const
the Trajectory state on the last surface of the fitting
virtual void setEvent(const edm::Event &event)
Pass the Event to the algo at each event.
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
const Propagator * propagator() const
access at the propagator
StandAloneMuonFilter(const edm::ParameterSet &par, const MuonServiceProxy *service, edm::ConsumesCollector &iC)
Constructor.
void setLastButOneUpdatedTSOS(TrajectoryStateOnSurface tsos)
Set the last but one TSOS.
PropagationDirection propagationDirection() const
Return the propagation direction.
int getTotalChamberUsed() const
MuonTrajectoryUpdator * updator() const
access at the muon updator
bool update(const DetLayer *layer, const TrajectoryMeasurement *meas, Trajectory &trajectory)
std::vector< const DetLayer * > theDetLayers
the det layer used in the reconstruction
NavigationDirection theFitDirection
the propagation direction
std::vector< const DetLayer * > compatibleLayers(const DetLayer *initialLayer, const FreeTrajectoryState &fts, PropagationDirection propDir)
Set the rigth Navigation.
int getGEMCompatibleChambers() const
MeasurementEstimator * theEstimator
The Estimator.
const DetLayer * lastDetLayer() const
return the last det layer
TrajectoryStateOnSurface theLastButOneUpdatedTSOS
the trajectory state on the last but one available surface
TrajectoryStateOnSurface theLastUpdatedTSOS
the trajectory state on the last available surface
int getTotalCompatibleChambers() const
MuonBestMeasurementFinder * bestMeasurementFinder() const
Access to the best measurement finder.
virtual ~StandAloneMuonFilter()
Destructor.
FreeTrajectoryState lastUpdatedFTS() const
the last free trajectory state
std::vector< TrajectoryMeasurement > findBestMeasurements(const DetLayer *layer, const TrajectoryStateOnSurface &tsos)
TrajectoryStateOnSurface lastCompatibleTSOS() const
the Trajectory state on the last compatible surface
MuonBestMeasurementFinder * theBestMeasurementFinder
The best measurement finder: search for the best measurement among the TMs available.
const MuonServiceProxy * theService
FreeTrajectoryState lastButOneUpdatedFTS() const
the last but one free trajectory state