CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Classes | Public Member Functions | Private Member Functions | Private Attributes
MuonTrajectoryUpdator Class Reference

#include <MuonTrajectoryUpdator.h>

Classes

struct  RadiusComparatorInOut
 Ordering along increasing radius (for DT rechits) More...
 
struct  RadiusComparatorOutIn
 Ordering along decreasing radius (for DT rechits) More...
 
struct  ZedComparatorInOut
 Ordering along increasing zed (for CSC rechits) More...
 
struct  ZedComparatorOutIn
 Ordering along decreasing zed (for CSC rechits) More...
 

Public Member Functions

const MeasurementEstimatorestimator () const
 accasso at the propagator More...
 
NavigationDirection fitDirection ()
 get the fit direction More...
 
void makeFirstTime ()
 reset the theFirstTSOSFlag More...
 
double maxChi2 () const
 get the max chi2 allowed More...
 
const TrajectoryStateUpdatormeasurementUpdator () const
 
 MuonTrajectoryUpdator (const edm::ParameterSet &par, NavigationDirection fitDirection)
 Constructor from Propagator and Parameter set. More...
 
 MuonTrajectoryUpdator (NavigationDirection fitDirection, double chi2, int granularity)
 Constructor from Propagator, chi2 and the granularity flag. More...
 
void setFitDirection (NavigationDirection fitDirection)
 set fit direction More...
 
void setMaxChi2 (double chi2)
 set max chi2 More...
 
virtual std::pair< bool,
TrajectoryStateOnSurface
update (const TrajectoryMeasurement *measurement, Trajectory &trajectory, const Propagator *propagator)
 update the Trajectory with the TrajectoryMeasurement More...
 
virtual ~MuonTrajectoryUpdator ()
 Destructor. More...
 

Private Member Functions

TrajectoryStateOnSurface propagateState (const TrajectoryStateOnSurface &state, const TrajectoryMeasurement *measurement, const TransientTrackingRecHit::ConstRecHitPointer &current, const Propagator *propagator) const
 
void sort (TransientTrackingRecHit::ConstRecHitContainer &, const DetLayer *)
 
TrajectoryMeasurement updateMeasurement (const TrajectoryStateOnSurface &propagatedTSOS, const TrajectoryStateOnSurface &lastUpdatedTSOS, const TransientTrackingRecHit::ConstRecHitPointer &recHit, const double &chi2, const DetLayer *detLayer, const TrajectoryMeasurement *initialMeasurement)
 Return the trajectory measurement. It handles both the fw and the bw propagation. More...
 

Private Attributes

MeasurementEstimatortheEstimator
 
bool theFirstTSOSFlag
 
NavigationDirection theFitDirection
 
int theGranularity
 
double theMaxChi2
 the max chi2 allowed More...
 
bool theRescaleErrorFlag
 
double theRescaleFactor
 
bool theRPCExFlag
 
TrajectoryStateUpdatortheUpdator
 
bool useInvalidHits
 

Detailed Description

An updator for the Muon system This class update a trajectory with a muon chamber measurement. In spite of the name, it is NOT an updator, but has one. A muon RecHit is a segment (for DT and CSC) or a "hit" (RPC). This updator is suitable both for FW and BW filtering. The difference between the two fitter are two: the granularity of the updating (i.e.: segment position or 1D rechit position), which can be set via parameter set, and the propagation direction which is embeded in the propagator set in the c'tor.

Author
R. Bellan - INFN Torino ricca.nosp@m.rdo..nosp@m.bella.nosp@m.n@ce.nosp@m.rn.ch
S. Lacaprara - INFN Legnaro

Definition at line 32 of file MuonTrajectoryUpdator.h.

Constructor & Destructor Documentation

MuonTrajectoryUpdator::MuonTrajectoryUpdator ( const edm::ParameterSet par,
NavigationDirection  fitDirection 
)

Constructor from Propagator and Parameter set.

Definition at line 40 of file MuonTrajectoryUpdator.cc.

References Chi2MeasurementEstimatorESProducer_cfi::Chi2MeasurementEstimator, edm::ParameterSet::getParameter(), theEstimator, theFirstTSOSFlag, theGranularity, theMaxChi2, theRescaleErrorFlag, theRescaleFactor, theRPCExFlag, theUpdator, and useInvalidHits.

42 
43  // The max allowed chi2 to accept a rechit in the fit
44  theMaxChi2 = par.getParameter<double>("MaxChi2");
46 
47  // The KF updator
48  theUpdator= new KFUpdator();
49 
50  // The granularity
51  theGranularity = par.getParameter<int>("Granularity");
52 
53  // Rescale the error of the first state?
54  theRescaleErrorFlag = par.getParameter<bool>("RescaleError");
55 
56  if(theRescaleErrorFlag)
57  // The rescale factor
58  theRescaleFactor = par.getParameter<double>("RescaleErrorFactor");
59 
60  // Use the invalid hits?
61  useInvalidHits = par.getParameter<bool>("UseInvalidHits");
62 
63  // Flag needed for the rescaling
64  theFirstTSOSFlag = true;
65 
66  // Exlude RPC from the fit?
67  theRPCExFlag = par.getParameter<bool>("ExcludeRPCFromFit");
68 }
T getParameter(std::string const &) const
NavigationDirection fitDirection()
get the fit direction
double theMaxChi2
the max chi2 allowed
TrajectoryStateUpdator * theUpdator
NavigationDirection theFitDirection
MeasurementEstimator * theEstimator
MuonTrajectoryUpdator::MuonTrajectoryUpdator ( NavigationDirection  fitDirection,
double  chi2,
int  granularity 
)

Constructor from Propagator, chi2 and the granularity flag.

Definition at line 70 of file MuonTrajectoryUpdator.cc.

References Chi2MeasurementEstimatorESProducer_cfi::Chi2MeasurementEstimator, theEstimator, theMaxChi2, and theUpdator.

71  : theMaxChi2(chi2),
72  theGranularity(granularity),
75 
76  // The KF updator
77  theUpdator= new KFUpdator();
78 }
NavigationDirection fitDirection()
get the fit direction
double theMaxChi2
the max chi2 allowed
TrajectoryStateUpdator * theUpdator
NavigationDirection theFitDirection
MeasurementEstimator * theEstimator
MuonTrajectoryUpdator::~MuonTrajectoryUpdator ( )
virtual

Destructor.

Definition at line 81 of file MuonTrajectoryUpdator.cc.

References theEstimator, and theUpdator.

81  {
82  delete theEstimator;
83  delete theUpdator;
84 }
TrajectoryStateUpdator * theUpdator
MeasurementEstimator * theEstimator

Member Function Documentation

const MeasurementEstimator* MuonTrajectoryUpdator::estimator ( void  ) const
inline

accasso at the propagator

Definition at line 55 of file MuonTrajectoryUpdator.h.

References theEstimator.

Referenced by CosmicMuonTrajectoryBuilder::trajectories(), and update().

55 {return theEstimator;}
MeasurementEstimator * theEstimator
NavigationDirection MuonTrajectoryUpdator::fitDirection ( )
inline

get the fit direction

Definition at line 62 of file MuonTrajectoryUpdator.h.

References theFitDirection.

Referenced by setFitDirection(), and sort().

62 {return theFitDirection;}
NavigationDirection theFitDirection
void MuonTrajectoryUpdator::makeFirstTime ( )

reset the theFirstTSOSFlag

Definition at line 86 of file MuonTrajectoryUpdator.cc.

References theFirstTSOSFlag.

Referenced by CosmicMuonTrajectoryBuilder::build(), and StandAloneMuonFilter::reset().

86  {
87  theFirstTSOSFlag = true;
88 }
double MuonTrajectoryUpdator::maxChi2 ( ) const
inline

get the max chi2 allowed

Definition at line 59 of file MuonTrajectoryUpdator.h.

References theMaxChi2.

59 {return theMaxChi2 ;}
double theMaxChi2
the max chi2 allowed
const TrajectoryStateUpdator* MuonTrajectoryUpdator::measurementUpdator ( ) const
inline

Definition at line 56 of file MuonTrajectoryUpdator.h.

References theUpdator.

Referenced by update().

56 {return theUpdator;}
TrajectoryStateUpdator * theUpdator
TrajectoryStateOnSurface MuonTrajectoryUpdator::propagateState ( const TrajectoryStateOnSurface state,
const TrajectoryMeasurement measurement,
const TransientTrackingRecHit::ConstRecHitPointer current,
const Propagator propagator 
) const
private

Propagate the state to the hit surface if it's a multi hit RecHit. i.e.: if "current" is a sub-rechit of the mesurement (i.e. a 1/2D RecHit) the state will be propagated to the surface where lies the "current" rechit

Definition at line 211 of file MuonTrajectoryUpdator.cc.

References TrajectoryMeasurement::predictedState(), Propagator::propagate(), and TrajectoryMeasurement::recHit().

Referenced by update().

214  {
215 
216  const TransientTrackingRecHit::ConstRecHitPointer mother = measurement->recHit();
217 
218  if( current->geographicalId() == mother->geographicalId() )
219  return measurement->predictedState();
220 
221  const TrajectoryStateOnSurface tsos =
222  propagator->propagate(state, current->det()->surface());
223  return tsos;
224 
225 }
TrajectoryStateOnSurface const & predictedState() const
ConstRecHitPointer const & recHit() const
virtual TrajectoryStateOnSurface propagate(const FreeTrajectoryState &, const Surface &) const
Definition: Propagator.cc:12
void MuonTrajectoryUpdator::setFitDirection ( NavigationDirection  fitDirection)
inline

set fit direction

Definition at line 68 of file MuonTrajectoryUpdator.h.

References fitDirection(), and theFitDirection.

Referenced by CosmicMuonTrajectoryBuilder::build(), and CosmicMuonTrajectoryBuilder::trajectories().

NavigationDirection fitDirection()
get the fit direction
NavigationDirection theFitDirection
void MuonTrajectoryUpdator::setMaxChi2 ( double  chi2)
inline

set max chi2

Definition at line 65 of file MuonTrajectoryUpdator.h.

References theMaxChi2.

65 {theMaxChi2 = chi2;}
double theMaxChi2
the max chi2 allowed
void MuonTrajectoryUpdator::sort ( TransientTrackingRecHit::ConstRecHitContainer recHitsForFit,
const DetLayer detLayer 
)
private

Definition at line 252 of file MuonTrajectoryUpdator.cc.

References GeomDetEnumerators::CSC, GeomDetEnumerators::DT, fitDirection(), insideOut, outsideIn, and DetLayer::subDetector().

Referenced by update().

253  {
254 
255  if(detLayer->subDetector()==GeomDetEnumerators::DT){
256  if(fitDirection() == insideOut)
257  stable_sort(recHitsForFit.begin(),recHitsForFit.end(), RadiusComparatorInOut() );
258  else if(fitDirection() == outsideIn)
259  stable_sort(recHitsForFit.begin(),recHitsForFit.end(),RadiusComparatorOutIn() );
260  else
261  LogError("Muon|RecoMuon|MuonTrajectoryUpdator") <<"MuonTrajectoryUpdator::sort: Wrong propagation direction!!";
262  }
263 
264  else if(detLayer->subDetector()==GeomDetEnumerators::CSC){
265  if(fitDirection() == insideOut)
266  stable_sort(recHitsForFit.begin(),recHitsForFit.end(), ZedComparatorInOut() );
267  else if(fitDirection() == outsideIn)
268  stable_sort(recHitsForFit.begin(),recHitsForFit.end(), ZedComparatorOutIn() );
269  else
270  LogError("Muon|RecoMuon|MuonTrajectoryUpdator") <<"MuonTrajectoryUpdator::sort: Wrong propagation direction!!";
271  }
272 }
NavigationDirection fitDirection()
get the fit direction
virtual SubDetector subDetector() const =0
The type of detector (PixelBarrel, PixelEndcap, TIB, TOB, TID, TEC, CSC, DT, RPCBarrel, RPCEndcap)
pair< bool, TrajectoryStateOnSurface > MuonTrajectoryUpdator::update ( const TrajectoryMeasurement measurement,
Trajectory trajectory,
const Propagator propagator 
)
virtual

update the Trajectory with the TrajectoryMeasurement

Definition at line 92 of file MuonTrajectoryUpdator.cc.

References MuonTransientTrackingRecHitBreaker::breakInSubRecHits(), MuonPatternRecoDumper::dumpTSOS(), MeasurementEstimator::estimate(), estimator(), TrajectoryStateOnSurface::globalDirection(), TrajectoryStateOnSurface::globalPosition(), TrajectoryStateOnSurface::isValid(), TrajectoryMeasurement::layer(), LogTrace, measurementUpdator(), metname, DetId::Muon, PV3DBase< T, PVType, FrameType >::perp(), TrajectoryMeasurement::predictedState(), propagateState(), Trajectory::push(), TrajectoryMeasurement::recHit(), TrajectoryStateOnSurface::rescaleError(), MuonSubdetId::RPC, sort(), MuonTransientTrackingRecHit::specificBuild(), AlCaHLTBitMon_QueryRunRegistry::string, theFirstTSOSFlag, theGranularity, theRescaleErrorFlag, theRescaleFactor, theRPCExFlag, TrajectoryStateUpdator::update(), updateMeasurement(), and useInvalidHits.

Referenced by progressbar.ProgressBar::__next__(), relval_steps.Matrix::__setitem__(), relval_steps.Steps::__setitem__(), Vispa.Gui.VispaWidget.VispaWidget::autosize(), CosmicMuonTrajectoryBuilder::build(), Vispa.Views.LineDecayView.LineDecayContainer::createObject(), Vispa.Views.LineDecayView.LineDecayContainer::deselectAllObjects(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::deselectAllWidgets(), Vispa.Gui.VispaWidget.VispaWidget::enableAutosizing(), progressbar.ProgressBar::finish(), Vispa.Gui.MenuWidget.MenuWidget::leaveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseMoveEvent(), Vispa.Gui.MenuWidget.MenuWidget::mouseMoveEvent(), Vispa.Views.LineDecayView.LineDecayContainer::mouseMoveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseReleaseEvent(), Vispa.Views.LineDecayView.LineDecayContainer::objectMoved(), relval_steps.Steps::overwrite(), Vispa.Views.LineDecayView.LineDecayContainer::removeObject(), Vispa.Gui.ConnectableWidget.ConnectableWidget::removePorts(), Vispa.Gui.FindDialog.FindDialog::reset(), Vispa.Gui.PortConnection.PointToPointConnection::select(), Vispa.Gui.VispaWidget.VispaWidget::select(), Vispa.Views.LineDecayView.LineDecayContainer::select(), Vispa.Gui.VispaWidget.VispaWidget::setText(), Vispa.Gui.VispaWidget.VispaWidget::setTitle(), Vispa.Gui.ZoomableWidget.ZoomableWidget::setZoom(), Vispa.Views.LineDecayView.LineDecayContainer::setZoom(), CosmicMuonTrajectoryBuilder::trajectories(), StandAloneMuonFilter::update(), and Vispa.Gui.PortConnection.PointToPointConnection::updateConnection().

94  {
95 
96  const std::string metname = "Muon|RecoMuon|MuonTrajectoryUpdator";
97 
98  MuonPatternRecoDumper muonDumper;
99 
100  // Status of the updating
101  bool updated=false;
102 
103  if(!measurement) return pair<bool,TrajectoryStateOnSurface>(updated,TrajectoryStateOnSurface() );
104 
105  // measurement layer
106  const DetLayer* detLayer=measurement->layer();
107 
108  // these are the 4D segment for the CSC/DT and a point for the RPC
109  TransientTrackingRecHit::ConstRecHitPointer muonRecHit = measurement->recHit();
110 
111  // The KFUpdator takes TransientTrackingRecHits as arg.
114 
115  // sort the container in agreement with the porpagation direction
116  sort(recHitsForFit,detLayer);
117 
118  TrajectoryStateOnSurface lastUpdatedTSOS = measurement->predictedState();
119 
120  LogTrace(metname)<<"Number of rechits for the fit: "<<recHitsForFit.size()<<endl;
121 
122  TransientTrackingRecHit::ConstRecHitContainer::iterator recHit;
123  for(recHit = recHitsForFit.begin(); recHit != recHitsForFit.end(); ++recHit ) {
124  if ((*recHit)->isValid() ) {
125 
126  // propagate the TSOS onto the rechit plane
127  TrajectoryStateOnSurface propagatedTSOS = propagateState(lastUpdatedTSOS, measurement,
128  *recHit, propagator);
129 
130  if ( propagatedTSOS.isValid() ) {
131  pair<bool,double> thisChi2 = estimator()->estimate(propagatedTSOS, *((*recHit).get()));
132 
133  LogTrace(metname) << "Estimation for Kalman Fit. Chi2: " << thisChi2.second;
134 
135  // Is an RPC hit? Prepare the variable to possibly exluding it from the fit
136  bool wantIncludeThisHit = true;
137  if (theRPCExFlag &&
138  (*recHit)->geographicalId().det() == DetId::Muon &&
139  (*recHit)->geographicalId().subdetId() == MuonSubdetId::RPC){
140  wantIncludeThisHit = false;
141  LogTrace(metname) << "This is an RPC hit and the present configuration is such that it will be excluded from the fit";
142  }
143 
144 
145  // The Chi2 cut was already applied in the estimator, which
146  // returns 0 if the chi2 is bigger than the cut defined in its
147  // constructor
148  if (thisChi2.first) {
149  updated=true;
150  if (wantIncludeThisHit) { // This split is a trick to have the RPC hits counted as updatable (in used chamber counting), while are not actually included in the fit when the proper obtion is activated.
151 
152  LogTrace(metname) << endl
153  << " Kalman Start" << "\n" << "\n";
154  LogTrace(metname) << " Meas. Position : " << (**recHit).globalPosition() << "\n"
155  << " Pred. Position : " << propagatedTSOS.globalPosition()
156  << " Pred Direction : " << propagatedTSOS.globalDirection()<< endl;
157 
159  propagatedTSOS.rescaleError(theRescaleFactor);
160  theFirstTSOSFlag = false;
161  }
162 
163  lastUpdatedTSOS = measurementUpdator()->update(propagatedTSOS,*((*recHit).get()));
164 
165  LogTrace(metname) << " Fit Position : " << lastUpdatedTSOS.globalPosition()
166  << " Fit Direction : " << lastUpdatedTSOS.globalDirection()
167  << "\n"
168  << " Fit position radius : "
169  << lastUpdatedTSOS.globalPosition().perp()
170  << "filter updated" << endl;
171 
172  LogTrace(metname) << muonDumper.dumpTSOS(lastUpdatedTSOS);
173 
174  LogTrace(metname) << "\n\n Kalman End" << "\n" << "\n";
175 
176  TrajectoryMeasurement updatedMeasurement = updateMeasurement( propagatedTSOS, lastUpdatedTSOS,
177  *recHit, thisChi2.second, detLayer,
178  measurement);
179  // FIXME: check!
180  trajectory.push(updatedMeasurement, thisChi2.second);
181  }
182  else {
183  LogTrace(metname) << " Compatible RecHit with good chi2 but made with RPC when it was decided to not include it in the fit"
184  << " --> trajectory NOT updated, invalid RecHit added." << endl;
185 
186  MuonTransientTrackingRecHit::MuonRecHitPointer invalidRhPtr = MuonTransientTrackingRecHit::specificBuild( (*recHit)->det(), (*recHit)->hit() );
187  invalidRhPtr->invalidateHit();
188  TrajectoryMeasurement invalidRhMeasurement(propagatedTSOS, propagatedTSOS, invalidRhPtr.get(), thisChi2.second, detLayer);
189  trajectory.push(invalidRhMeasurement, thisChi2.second);
190  }
191  }
192  else {
193  if(useInvalidHits) {
194  LogTrace(metname) << " Compatible RecHit with too large chi2"
195  << " --> trajectory NOT updated, invalid RecHit added." << endl;
196 
197  MuonTransientTrackingRecHit::MuonRecHitPointer invalidRhPtr = MuonTransientTrackingRecHit::specificBuild( (*recHit)->det(), (*recHit)->hit() );
198  invalidRhPtr->invalidateHit();
199  TrajectoryMeasurement invalidRhMeasurement(propagatedTSOS, propagatedTSOS, invalidRhPtr.get(), thisChi2.second, detLayer);
200  trajectory.push(invalidRhMeasurement, thisChi2.second);
201  }
202  }
203  }
204  }
205  }
206  recHitsForFit.clear();
207  return pair<bool,TrajectoryStateOnSurface>(updated,lastUpdatedTSOS);
208 }
TrajectoryStateOnSurface const & predictedState() const
const MeasurementEstimator * estimator() const
accasso at the propagator
T perp() const
Definition: PV3DBase.h:72
ConstRecHitPointer const & recHit() const
virtual HitReturnType estimate(const TrajectoryStateOnSurface &ts, const TransientTrackingRecHit &hit) const =0
const std::string metname
virtual TrajectoryStateOnSurface update(const TrajectoryStateOnSurface &, const TransientTrackingRecHit &) const =0
GlobalPoint globalPosition() const
TrajectoryStateOnSurface propagateState(const TrajectoryStateOnSurface &state, const TrajectoryMeasurement *measurement, const TransientTrackingRecHit::ConstRecHitPointer &current, const Propagator *propagator) const
static TransientTrackingRecHit::ConstRecHitContainer breakInSubRecHits(TransientTrackingRecHit::ConstRecHitPointer, int granularity)
takes a muon rechit and returns its sub-rechits given a certain granularity
void sort(TransientTrackingRecHit::ConstRecHitContainer &, const DetLayer *)
std::string dumpTSOS(const TrajectoryStateOnSurface &tsos) const
TrajectoryMeasurement updateMeasurement(const TrajectoryStateOnSurface &propagatedTSOS, const TrajectoryStateOnSurface &lastUpdatedTSOS, const TransientTrackingRecHit::ConstRecHitPointer &recHit, const double &chi2, const DetLayer *detLayer, const TrajectoryMeasurement *initialMeasurement)
Return the trajectory measurement. It handles both the fw and the bw propagation. ...
const DetLayer * layer() const
#define LogTrace(id)
std::vector< ConstRecHitPointer > ConstRecHitContainer
const TrajectoryStateUpdator * measurementUpdator() const
static const int RPC
Definition: MuonSubdetId.h:14
static MuonRecHitPointer specificBuild(const GeomDet *geom, const TrackingRecHit *rh)
void push(const TrajectoryMeasurement &tm)
Definition: Trajectory.cc:35
GlobalVector globalDirection() const
TrajectoryMeasurement MuonTrajectoryUpdator::updateMeasurement ( const TrajectoryStateOnSurface propagatedTSOS,
const TrajectoryStateOnSurface lastUpdatedTSOS,
const TransientTrackingRecHit::ConstRecHitPointer recHit,
const double &  chi2,
const DetLayer detLayer,
const TrajectoryMeasurement initialMeasurement 
)
private

Return the trajectory measurement. It handles both the fw and the bw propagation.

Definition at line 228 of file MuonTrajectoryUpdator.cc.

Referenced by update().

232  {
233  return TrajectoryMeasurement(propagatedTSOS, lastUpdatedTSOS,
234  recHit,chi2,detLayer);
235 
236  // // FIXME: put a better check! One could fit in first out-in and then in - out
237  // if(propagator()->propagationDirection() == alongMomentum)
238  // return TrajectoryMeasurement(propagatedTSOS, lastUpdatedTSOS,
239  // recHit,thisChi2.second,detLayer);
240 
241  // // FIXME: Check this carefully!!
242  // else if(propagator()->propagationDirection() == oppositeToMomentum)
243  // return TrajectoryMeasurement(initialMeasurement->forwardPredictedState(),
244  // propagatedTSOS, lastUpdatedTSOS,
245  // recHit,thisChi2.second,detLayer);
246  // else{
247  // LogError("MuonTrajectoryUpdator::updateMeasurement") <<"Wrong propagation direction!!";
248  // }
249 }

Member Data Documentation

MeasurementEstimator* MuonTrajectoryUpdator::theEstimator
private
bool MuonTrajectoryUpdator::theFirstTSOSFlag
private

Definition at line 149 of file MuonTrajectoryUpdator.h.

Referenced by makeFirstTime(), MuonTrajectoryUpdator(), and update().

NavigationDirection MuonTrajectoryUpdator::theFitDirection
private

Definition at line 146 of file MuonTrajectoryUpdator.h.

Referenced by fitDirection(), and setFitDirection().

int MuonTrajectoryUpdator::theGranularity
private

the granularity if 0 4D-segments are used both for the DT and CSC, if 1 2D-segments are used for the DT and the 2D-points for the CSC if 2 the 1D rec hit for the DT are used, while the 2D rechit for the CSC are used Maybe in a second step there will be more than 3 option i.e. max granularity for DT but not for the CSC and the viceversa

Definition at line 94 of file MuonTrajectoryUpdator.h.

Referenced by MuonTrajectoryUpdator(), and update().

double MuonTrajectoryUpdator::theMaxChi2
private

the max chi2 allowed

Definition at line 86 of file MuonTrajectoryUpdator.h.

Referenced by maxChi2(), MuonTrajectoryUpdator(), and setMaxChi2().

bool MuonTrajectoryUpdator::theRescaleErrorFlag
private

Definition at line 150 of file MuonTrajectoryUpdator.h.

Referenced by MuonTrajectoryUpdator(), and update().

double MuonTrajectoryUpdator::theRescaleFactor
private

Definition at line 151 of file MuonTrajectoryUpdator.h.

Referenced by MuonTrajectoryUpdator(), and update().

bool MuonTrajectoryUpdator::theRPCExFlag
private

Definition at line 156 of file MuonTrajectoryUpdator.h.

Referenced by MuonTrajectoryUpdator(), and update().

TrajectoryStateUpdator* MuonTrajectoryUpdator::theUpdator
private
bool MuonTrajectoryUpdator::useInvalidHits
private

Definition at line 154 of file MuonTrajectoryUpdator.h.

Referenced by MuonTrajectoryUpdator(), and update().