CMS 3D CMS Logo

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

#include <DynamicTruncation.h>

Public Types

typedef
TransientTrackingRecHit::ConstRecHitContainer 
ConstRecHitContainer
 
typedef
TransientTrackingRecHit::ConstRecHitPointer 
ConstRecHitPointer
 

Public Member Functions

 DynamicTruncation (const edm::Event &, const MuonServiceProxy &)
 
TransientTrackingRecHit::ConstRecHitContainer filter (const Trajectory &)
 
std::vector< double > getEstimators ()
 
void setThr (int, int, int)
 
 ~DynamicTruncation ()
 

Private Member Functions

void compatibleDets (TrajectoryStateOnSurface &, std::map< int, std::vector< DetId > > &)
 
void filteringAlgo (std::map< int, std::vector< DetId > > &)
 
double getBest (std::vector< CSCSegment > &, TrajectoryStateOnSurface &, CSCSegment &)
 
double getBest (std::vector< DTRecSegment4D > &, TrajectoryStateOnSurface &, DTRecSegment4D &)
 
ConstRecHitContainer sort (ConstRecHitContainer &)
 
void update (TrajectoryStateOnSurface &, ConstRecHitPointer)
 
void updateWithCSChits (ConstRecHitContainer &)
 
void updateWithDThits (ConstRecHitContainer &)
 

Private Attributes

std::map< CSCDetId, GlobalErrorcscApeMap
 
edm::ESHandle< CSCGeometrycscGeom
 
int CSCThr
 
TrajectoryStateOnSurface currentState
 
std::map< DTChamberId,
GlobalError
dtApeMap
 
int DTThr
 
std::vector< double > estimators
 
edm::ESHandle< MagneticFieldmagfield
 
DirectMuonNavigationnavigation
 
edm::ESHandle
< MuonDetLayerGeometry
navMuon
 
edm::ESHandle< Propagatorpropagator
 
edm::ESHandle< PropagatorpropagatorCompatibleDet
 
ConstRecHitContainer result
 
const edm::EventtheEvent
 
edm::ESHandle
< GlobalTrackingGeometry
theG
 
edm::ESHandle
< TransientTrackingRecHitBuilder
theMuonRecHitBuilder
 
const edm::EventSetuptheSetup
 
edm::ESHandle
< TrajectoryStateUpdator
updatorHandle
 
bool useAPE
 

Detailed Description

Class: DynamicTruncation

Description: class for the dynamical stop of the KF according to the compatibility degree between the extrapolated track state and the reconstructed segment in the muon chambers

Date:
2011/12/20 15:28:28
Revision:
1.7

Authors : D. Pagano & G. Bruno - UCL Louvain

Definition at line 47 of file DynamicTruncation.h.

Member Typedef Documentation

Definition at line 52 of file DynamicTruncation.h.

Definition at line 51 of file DynamicTruncation.h.

Constructor & Destructor Documentation

DynamicTruncation::DynamicTruncation ( const edm::Event event,
const MuonServiceProxy theService 
)

Definition at line 49 of file DynamicTruncation.cc.

References cscGeom, event(), magfield, navigation, navMuon, propagator, propagatorCompatibleDet, theEvent, theG, theMuonRecHitBuilder, theSetup, and updatorHandle.

49  :
50  DTThr(0), CSCThr(0), useAPE(false)
51 {
52  theEvent = &event;
53  theSetup = &theService.eventSetup();
54  propagator = theService.propagator("SmartPropagator");
55  propagatorCompatibleDet = theService.propagator("SteppingHelixPropagatorAny");
56  theG = theService.trackingGeometry();
57  theService.eventSetup().get<TransientRecHitRecord>().get("MuonRecHitBuilder",theMuonRecHitBuilder);
58  theService.eventSetup().get<TrackingComponentsRecord>().get("KFUpdator",updatorHandle);
59  theService.eventSetup().get<MuonGeometryRecord>().get(cscGeom);
60  theService.eventSetup().get<MuonRecoGeometryRecord>().get(navMuon);
61  theService.eventSetup().get<IdealMagneticFieldRecord>().get(magfield);
62  navigation = new DirectMuonNavigation(theService.detLayerGeometry());
63 }
DirectMuonNavigation * navigation
edm::ESHandle< Propagator > propagatorCompatibleDet
edm::ESHandle< MuonDetLayerGeometry > navMuon
const edm::EventSetup * theSetup
edm::ESHandle< TrajectoryStateUpdator > updatorHandle
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 edm::Event * theEvent
edm::ESHandle< TransientTrackingRecHitBuilder > theMuonRecHitBuilder
edm::ESHandle< Propagator > propagator
edm::ESHandle< MagneticField > magfield
edm::ESHandle< GlobalTrackingGeometry > theG
edm::ESHandle< CSCGeometry > cscGeom
DynamicTruncation::~DynamicTruncation ( )

Definition at line 67 of file DynamicTruncation.cc.

References navigation.

67  {
68  if (navigation) delete navigation;
69 }
DirectMuonNavigation * navigation

Member Function Documentation

void DynamicTruncation::compatibleDets ( TrajectoryStateOnSurface tsos,
std::map< int, std::vector< DetId > > &  detMap 
)
private

Definition at line 181 of file DynamicTruncation.cc.

References alongMomentum, Chi2MeasurementEstimatorESProducer_cfi::Chi2MeasurementEstimator, DirectMuonNavigation::compatibleLayers(), currentState, first, TrajectoryStateOnSurface::freeState(), navigation, propagatorCompatibleDet, GeomDetEnumerators::RPCBarrel, and GeomDetEnumerators::RPCEndcap.

Referenced by filter().

181  {
182  // SteppingHelixPropagator prop(magfield.product(), anyDirection);
183  // MuonPatternRecoDumper dumper;
184  MeasurementEstimator *theEstimator = new Chi2MeasurementEstimator(100, 3);
185  std::vector<const DetLayer *> navLayers;
187  for ( unsigned int ilayer=0; ilayer<navLayers.size(); ilayer++ ) {
188  // Skip RPC layers
189  if (navLayers[ilayer]->subDetector() == GeomDetEnumerators::RPCEndcap
190  || navLayers[ilayer]->subDetector() == GeomDetEnumerators::RPCBarrel) continue;
191  std::vector<DetLayer::DetWithState> comps = navLayers[ilayer]->compatibleDets(currentState,
192  *propagatorCompatibleDet, *theEstimator);
193  // cout << comps.size() << " compatible Dets with " << navLayers[ilayer]->subDetector() << " Layer " << ilayer << " "
194  // << dumper.dumpLayer(navLayers[ilayer]) << " " << endl;
195  if (comps.size() > 0) {
196  for ( unsigned int icomp=0; icomp<comps.size(); icomp++ ) {
197  DetId id(comps[icomp].first->geographicalId().rawId());
198  detMap[ilayer].push_back(id);
199  }
200  }
201  }
202  if (theEstimator) delete theEstimator;
203 }
DirectMuonNavigation * navigation
TrajectoryStateOnSurface currentState
edm::ESHandle< Propagator > propagatorCompatibleDet
std::vector< const DetLayer * > compatibleLayers(const FreeTrajectoryState &fts, PropagationDirection timeDirection) const
FreeTrajectoryState * freeState(bool withErrors=true) const
bool first
Definition: L1TdeRCT.cc:94
Definition: DetId.h:20
TransientTrackingRecHit::ConstRecHitContainer DynamicTruncation::filter ( const Trajectory traj)

Definition at line 73 of file DynamicTruncation.cc.

References compatibleDets(), cscApeMap, currentState, DetId::det(), dtApeMap, error, filteringAlgo(), TrajectoryMeasurement::forwardPredictedState(), TrackingRecHit::geographicalId(), edm::EventSetup::get(), TrajectoryStateOnSurface::globalPosition(), PV3DBase< T, PVType, FrameType >::mag(), Trajectory::measurements(), TrajectoryMeasurement::recHit(), result, theSetup, DetId::Tracker, and update().

Referenced by GlobalMuonRefitter::refit().

73  {
74  result.clear();
75 
76  // Fill the map with the APE chamber by chamber (DT)
77  // IT ALSO WORKS IF APE IS 0
78  edm::ESHandle<AlignmentErrors> dtAlignmentErrors;
79  theSetup->get<DTAlignmentErrorRcd>().get( dtAlignmentErrors );
80  for ( std::vector<AlignTransformError>::const_iterator it = dtAlignmentErrors->m_alignError.begin();
81  it != dtAlignmentErrors->m_alignError.end(); it++ ) {
82  CLHEP::HepSymMatrix error = (*it).matrix();
83  GlobalError glbErr(error[0][0], error[1][0], error[1][1], error[2][0], error[2][1], error[2][2]);
84  DTChamberId DTid((*it).rawId());
85  dtApeMap.insert( pair<DTChamberId, GlobalError> (DTid, glbErr) );
86  }
87 
88  // Fill the map with the APE chamber by chamber (CSC)
89  // IT ALSO WORKS IF APE IS 0
90  edm::ESHandle<AlignmentErrors> cscAlignmentErrors;
91  theSetup->get<CSCAlignmentErrorRcd>().get( cscAlignmentErrors );
92  for ( std::vector<AlignTransformError>::const_iterator it = cscAlignmentErrors->m_alignError.begin();
93  it != cscAlignmentErrors->m_alignError.end(); it++ ) {
94  CLHEP::HepSymMatrix error = (*it).matrix();
95  GlobalError glbErr(error[0][0], error[1][0], error[1][1], error[2][0], error[2][1], error[2][2]);
96  CSCDetId CSCid((*it).rawId());
97  cscApeMap.insert( pair<CSCDetId, GlobalError> (CSCid, glbErr) );
98  }
99 
100  // Put the tracker hits in the final vector and get the last tracker valid measure
101  std::vector<TrajectoryMeasurement> muonMeasurements = traj.measurements();
102  TrajectoryMeasurement lastTKm = muonMeasurements.front();
103  for (std::vector<TrajectoryMeasurement>::const_iterator imT = muonMeasurements.begin(); imT != muonMeasurements.end(); imT++ ) {
104  if ( !(*imT).recHit()->isValid() ) continue;
105  const TransientTrackingRecHit* hit = &(*(*imT).recHit());
106  if (hit->geographicalId().det() == DetId::Tracker) {
107  result.push_back((*imT).recHit());
108  if (!(*imT).forwardPredictedState().isValid()) continue;
109  if ((*imT).forwardPredictedState().globalPosition().mag()
110  > lastTKm.forwardPredictedState().globalPosition().mag()) lastTKm = *imT;
111  }
112  }
113 
114  // get the last (forward) predicted state for the tracker
116 
117  // update the state with the last tracker measure
118  update(currentState, lastTKm.recHit());
119 
120  // use the navigation to get the list of compatible dets
121  map<int, std::vector<DetId> > detMap;
122  compatibleDets(currentState, detMap);
123 
124  // selects the muon hits for the final refit
125  filteringAlgo(detMap);
126 
127  return result;
128 }
void compatibleDets(TrajectoryStateOnSurface &, std::map< int, std::vector< DetId > > &)
ConstRecHitPointer const & recHit() const
TrajectoryStateOnSurface currentState
GlobalPoint globalPosition() const
DataContainer const & measurements() const
Definition: Trajectory.h:215
void filteringAlgo(std::map< int, std::vector< DetId > > &)
T mag() const
Definition: PV3DBase.h:67
ConstRecHitContainer result
const edm::EventSetup * theSetup
TrajectoryStateOnSurface const & forwardPredictedState() const
Access to forward predicted state (from fitter or builder)
std::map< DTChamberId, GlobalError > dtApeMap
const T & get() const
Definition: EventSetup.h:55
void update(TrajectoryStateOnSurface &, ConstRecHitPointer)
DetId geographicalId() const
Detector det() const
get the detector field from this detid
Definition: DetId.h:37
std::map< CSCDetId, GlobalError > cscApeMap
void DynamicTruncation::filteringAlgo ( std::map< int, std::vector< DetId > > &  detMap)
private

Definition at line 207 of file DynamicTruncation.cc.

References MuonSubdetId::CSC, CSCThr, currentState, MuonSubdetId::DT, DTThr, estimators, getBest(), ChamberSegmentUtility::getCSClist(), ChamberSegmentUtility::getCSCRHmap(), ChamberSegmentUtility::getDTlist(), ChamberSegmentUtility::getDTRHmap(), TrajectoryStateOnSurface::isValid(), j, MAX_THR, DetId::Muon, propagator, result, DTChamberId::station(), CSCDetId::station(), DetId::subdetId(), groupFilesInBlocks::temp, theEvent, theG, theMuonRecHitBuilder, theSetup, and updatorHandle.

Referenced by filter().

207  {
209  for (unsigned int iDet = 0; iDet < detMap.size(); ++iDet) {
210  double bestLayerValue = MAX_THR;
211  bool isDTorCSC = false;
212  ConstRecHitContainer layerRH, layerSEG;
213  std::vector<DetId> chamber = detMap[iDet];
214  for (unsigned int j = 0; j < chamber.size(); ++j) {
215  DetId id = chamber[j];
216 
217  if (id.det() == DetId::Muon && id.subdetId() == MuonSubdetId::DT) {
218  isDTorCSC = true;
219 
220  DTChamberId DTid(id);
221 
222  std::vector<DTRecSegment4D> allDTsegs;
223  std::map<int, std::vector<DTRecSegment4D> >::const_iterator dtIter = getSegs.getDTlist().find(DTid.station());
224  if (dtIter != getSegs.getDTlist().end()){
225  allDTsegs = dtIter->second;
226  }
227  std::vector<DTRecSegment4D>::size_type sz = allDTsegs.size();
228  for (unsigned int iSeg=0; iSeg<sz; ++iSeg) {
229 
230  // Propagate the state to the current chamber
231  TrajectoryStateOnSurface tsosdt = propagator->propagate(currentState,
232  theG->idToDet(allDTsegs[iSeg].chamberId())->surface());
233  if (!tsosdt.isValid()) continue;
234 
235  std::vector<DTRecSegment4D> DTsegs;
236  DTsegs.push_back(allDTsegs[iSeg]);
237 
238  DTRecSegment4D bestDTSeg;
239  double bestChamberValue = getBest(DTsegs, tsosdt, bestDTSeg);
240  if (bestChamberValue < bestLayerValue) bestLayerValue = bestChamberValue;
241 
242  // Check if the best estimator value is below the THR and then get the RH componing the segment
243  if (bestChamberValue >= DTThr || bestChamberValue > bestLayerValue) continue;
244  layerRH.clear(); layerSEG.clear();
245  layerSEG.push_back(theMuonRecHitBuilder->build(&bestDTSeg));
246  std::vector<DTRecHit1D> DTrh = getSegs.getDTRHmap(bestDTSeg);
247  for (std::vector<DTRecHit1D>::iterator it = DTrh.begin(); it != DTrh.end(); it++) {
248  layerRH.push_back(theMuonRecHitBuilder->build(&*it));
249  }
250  }
251  }
252  if (id.det() == DetId::Muon && id.subdetId() == MuonSubdetId::CSC) {
253  isDTorCSC = true;
254  CSCDetId CSCid(id);
255 
256  std::vector<CSCSegment> allCSCsegs;
257  std::map<int, std::vector<CSCSegment> >::const_iterator cscIter = getSegs.getCSClist().find(CSCid.station());
258  if (cscIter != getSegs.getCSClist().end()){
259  allCSCsegs = cscIter->second;
260  }
261 
262  std::vector<CSCSegment>::size_type sz = allCSCsegs.size();
263  for (unsigned int iSeg=0; iSeg<sz; ++iSeg) {
264 
265  // Propagate the state to the current chamber
266  TrajectoryStateOnSurface tsoscsc = propagator->propagate(currentState,
267  theG->idToDet(allCSCsegs[iSeg].cscDetId())->surface());
268  if (!tsoscsc.isValid()) continue;
269 
270  std::vector<CSCSegment> CSCsegs;
271  CSCsegs.push_back(allCSCsegs[iSeg]);
272 
273  CSCSegment bestCSCSeg;
274  double bestChamberValue = getBest(CSCsegs, tsoscsc, bestCSCSeg);
275  if (bestChamberValue < bestLayerValue) bestLayerValue = bestChamberValue;
276 
277  // Check if the best estimator value is below the THR and then get the RH componing the segment
278  if (bestChamberValue >= CSCThr || bestChamberValue > bestLayerValue) continue;
279  layerRH.clear(); layerSEG.clear();
280  layerSEG.push_back(theMuonRecHitBuilder->build(&bestCSCSeg));
281  std::vector<CSCRecHit2D> CSCrh = getSegs.getCSCRHmap(bestCSCSeg);
282  for (std::vector<CSCRecHit2D>::iterator it = CSCrh.begin(); it != CSCrh.end(); ++it) {
283  layerRH.push_back(theMuonRecHitBuilder->build(&*it));
284  }
285  }
286  }
287  }
288 
289  if (isDTorCSC) {
290  if (bestLayerValue < MAX_THR) estimators.push_back(bestLayerValue);
291  else estimators.push_back(-1);
292  }
293 
294  // For segment based fits
295  if (layerSEG.size() > 0) {
296  result.push_back(layerSEG.front());
297  DetId id_ = layerSEG.front()->geographicalId();
298  if (id_.subdetId() == MuonSubdetId::DT) {
299  DTChamberId MuonChId(id_);
300  TrajectoryStateOnSurface temp = propagator->propagate(currentState, theG->idToDet(MuonChId)->surface());
301  if (temp.isValid())
302  currentState = updatorHandle->update(temp, *layerSEG.front());
303  }
304  if (id_.subdetId() == MuonSubdetId::CSC) {
305  CSCDetId MuonChId(id_);
306  TrajectoryStateOnSurface temp = propagator->propagate(currentState, theG->idToDet(MuonChId)->surface());
307  if (temp.isValid())
308  currentState = updatorHandle->update(temp, *layerSEG.front());
309  }
310  }
311 
312 
313 
314 
315  /*
316  // For hit based fits
317  if (layerRH.size() > 0) {
318  for (ConstRecHitContainer::iterator it = layerRH.begin(); it != layerRH.end(); ++it) result.push_back((*it));
319 
320  // sort the vector
321  layerRH = sort(layerRH);
322 
323  // update the currentState using all rh
324  DetId id = layerRH.front()->geographicalId();
325  if (id.subdetId() == MuonSubdetId::DT) updateWithDThits(layerRH);
326  else updateWithCSChits(layerRH);
327  }
328  */
329 
330  layerSEG.clear();
331  layerRH.clear();
332  }
333 }
TrajectoryStateOnSurface currentState
std::vector< double > estimators
uint16_t size_type
static const int CSC
Definition: MuonSubdetId.h:15
ConstRecHitContainer result
const edm::EventSetup * theSetup
double getBest(std::vector< CSCSegment > &, TrajectoryStateOnSurface &, CSCSegment &)
int j
Definition: DBlmapReader.cc:9
edm::ESHandle< TrajectoryStateUpdator > updatorHandle
int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:39
const edm::Event * theEvent
edm::ESHandle< TransientTrackingRecHitBuilder > theMuonRecHitBuilder
#define MAX_THR
Definition: DetId.h:20
edm::ESHandle< Propagator > propagator
TransientTrackingRecHit::ConstRecHitContainer ConstRecHitContainer
static const int DT
Definition: MuonSubdetId.h:14
edm::ESHandle< GlobalTrackingGeometry > theG
double DynamicTruncation::getBest ( std::vector< CSCSegment > &  segs,
TrajectoryStateOnSurface tsos,
CSCSegment bestCSCSeg 
)
private

Definition at line 143 of file DynamicTruncation.cc.

References cscApeMap, i, MAX_THR, edm::second(), theG, tmp, ErrorFrameTransformer::transform(), useAPE, and StateSegmentMatcher::value().

Referenced by filteringAlgo().

143  {
144  unsigned int i = 0;
145  double val = MAX_THR;
146  std::vector<CSCSegment>::size_type sz = segs.size();
147  for (i=0; i<sz; i++) {
148  LocalError apeLoc; //default constructor is all zeroes, OK
149  if (useAPE) apeLoc = ErrorFrameTransformer().transform(cscApeMap.find(segs[i].cscDetId())->second, theG->idToDet(segs[i].cscDetId())->surface());
150  StateSegmentMatcher estim(&tsos, &segs[i], &apeLoc);
151  double tmp = estim.value();
152  if (tmp < val) {
153  bestCSCSeg = segs[i];
154  val = tmp;
155  }
156  }
157  return val;
158 }
static GlobalError transform(const LocalError &le, const Surface &surf)
int i
Definition: DBlmapReader.cc:9
uint16_t size_type
U second(std::pair< T, U > const &p)
#define MAX_THR
std::vector< std::vector< double > > tmp
Definition: MVATrainer.cc:100
std::map< CSCDetId, GlobalError > cscApeMap
edm::ESHandle< GlobalTrackingGeometry > theG
double DynamicTruncation::getBest ( std::vector< DTRecSegment4D > &  segs,
TrajectoryStateOnSurface tsos,
DTRecSegment4D bestDTSeg 
)
private

Definition at line 162 of file DynamicTruncation.cc.

References dtApeMap, i, MAX_THR, edm::second(), theG, tmp, ErrorFrameTransformer::transform(), useAPE, and StateSegmentMatcher::value().

162  {
163  unsigned int i = 0;
164  double val = MAX_THR;
166  for (i=0; i<sz; i++) {
167  LocalError apeLoc; //default constructor is all zeroes, OK
168  if (useAPE) apeLoc = ErrorFrameTransformer().transform(dtApeMap.find(segs[i].chamberId())->second, theG->idToDet(segs[i].chamberId())->surface());
169  StateSegmentMatcher estim(&tsos, &segs[i], &apeLoc);
170  double tmp = estim.value();
171  if (tmp < val) {
172  bestDTSeg = segs[i];
173  val = tmp;
174  }
175  }
176  return val;
177 }
static GlobalError transform(const LocalError &le, const Surface &surf)
int i
Definition: DBlmapReader.cc:9
uint16_t size_type
U second(std::pair< T, U > const &p)
#define MAX_THR
std::map< DTChamberId, GlobalError > dtApeMap
std::vector< std::vector< double > > tmp
Definition: MVATrainer.cc:100
edm::ESHandle< GlobalTrackingGeometry > theG
std::vector<double> DynamicTruncation::getEstimators ( )
inline

Definition at line 65 of file DynamicTruncation.h.

References estimators.

65 {return estimators;};
std::vector< double > estimators
void DynamicTruncation::setThr ( int  bThr,
int  eThr,
int  useAPE_ 
)

Definition at line 132 of file DynamicTruncation.cc.

References CSCThr, DTThr, MAX_THR, and useAPE.

Referenced by GlobalMuonRefitter::refit().

132  {
133  if (useAPE_ == 1) useAPE = true;
134  else useAPE = false;
135  if (bThr <= MAX_THR && bThr >= 0) DTThr = bThr; // DT thr
136  else DTThr = MAX_THR;
137  if (eThr <= MAX_THR && eThr >= 0) CSCThr = eThr; // CSC thr
138  else CSCThr = MAX_THR;
139 }
#define MAX_THR
TransientTrackingRecHit::ConstRecHitContainer DynamicTruncation::sort ( ConstRecHitContainer recHits)
private

Definition at line 365 of file DynamicTruncation.cc.

References i, j, mag(), n, and swap().

365  {
366  unsigned int i=0;
367  unsigned int j=0;
368  ConstRecHitContainer::size_type n = recHits.size();
369  for(i=1; i<n; ++i)
370  for(j=n-1; j>=i; --j)
371  {
372  if(recHits[j-1]->globalPosition().mag() > recHits[j]->globalPosition().mag())
373  {
374  swap (recHits[j-1],recHits[j]);
375  }
376  }
377  return recHits;
378 }
void swap(ora::Record &rh, ora::Record &lh)
Definition: Record.h:70
int i
Definition: DBlmapReader.cc:9
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
uint16_t size_type
int j
Definition: DBlmapReader.cc:9
void DynamicTruncation::update ( TrajectoryStateOnSurface tsos,
ConstRecHitPointer  rechit 
)
private

Definition at line 337 of file DynamicTruncation.cc.

References currentState, TrajectoryStateOnSurface::isValid(), groupFilesInBlocks::temp, and updatorHandle.

Referenced by progressbar.ProgressBar::__next__(), relval_steps.Matrix::__setitem__(), relval_steps.Steps::__setitem__(), Vispa.Gui.VispaWidget.VispaWidget::autosize(), Vispa.Views.LineDecayView.LineDecayContainer::createObject(), Vispa.Views.LineDecayView.LineDecayContainer::deselectAllObjects(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::deselectAllWidgets(), Vispa.Gui.VispaWidget.VispaWidget::enableAutosizing(), filter(), 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(), and Vispa.Gui.PortConnection.PointToPointConnection::updateConnection().

337  {
338  TrajectoryStateOnSurface temp = updatorHandle->update(tsos, *rechit);
339  if (temp.isValid()) currentState = updatorHandle->update(tsos, *rechit);
340 }
TrajectoryStateOnSurface currentState
edm::ESHandle< TrajectoryStateUpdator > updatorHandle
void DynamicTruncation::updateWithCSChits ( ConstRecHitContainer recHits)
private

Definition at line 354 of file DynamicTruncation.cc.

References cscGeom, currentState, GeomDet::geographicalId(), TrajectoryStateOnSurface::isValid(), propagator, groupFilesInBlocks::temp, theG, and updatorHandle.

354  {
355  for (ConstRecHitContainer::const_iterator it = recHits.begin(); it != recHits.end(); ++it) {
356  const CSCLayer* cscChamber = cscGeom->layer((*it)->det()->geographicalId());
357  CSCDetId layid = cscChamber->geographicalId();
358  TrajectoryStateOnSurface temp = propagator->propagate(currentState, theG->idToDet(layid)->surface());
359  if (temp.isValid()) currentState = updatorHandle->update(temp, **it);
360  }
361 }
TrajectoryStateOnSurface currentState
DetId geographicalId() const
The label of this GeomDet.
Definition: GeomDet.h:72
edm::ESHandle< TrajectoryStateUpdator > updatorHandle
edm::ESHandle< Propagator > propagator
edm::ESHandle< GlobalTrackingGeometry > theG
edm::ESHandle< CSCGeometry > cscGeom
void DynamicTruncation::updateWithDThits ( ConstRecHitContainer recHits)
private

Definition at line 344 of file DynamicTruncation.cc.

References currentState, propagator, groupFilesInBlocks::temp, theG, and updatorHandle.

344  {
345  for (ConstRecHitContainer::const_iterator it = recHits.begin(); it != recHits.end(); ++it) {
346  DTLayerId layid((*it)->det()->geographicalId());
347  TrajectoryStateOnSurface temp = propagator->propagate(currentState, theG->idToDet(layid)->surface());
348  if (temp.isValid()) currentState = updatorHandle->update(temp, **it);
349  }
350 }
TrajectoryStateOnSurface currentState
edm::ESHandle< TrajectoryStateUpdator > updatorHandle
edm::ESHandle< Propagator > propagator
edm::ESHandle< GlobalTrackingGeometry > theG

Member Data Documentation

std::map<CSCDetId, GlobalError> DynamicTruncation::cscApeMap
private

Definition at line 99 of file DynamicTruncation.h.

Referenced by filter(), and getBest().

edm::ESHandle<CSCGeometry> DynamicTruncation::cscGeom
private

Definition at line 87 of file DynamicTruncation.h.

Referenced by DynamicTruncation(), and updateWithCSChits().

int DynamicTruncation::CSCThr
private

Definition at line 81 of file DynamicTruncation.h.

Referenced by filteringAlgo(), and setThr().

TrajectoryStateOnSurface DynamicTruncation::currentState
private
std::map<DTChamberId, GlobalError> DynamicTruncation::dtApeMap
private

Definition at line 98 of file DynamicTruncation.h.

Referenced by filter(), and getBest().

int DynamicTruncation::DTThr
private

Definition at line 80 of file DynamicTruncation.h.

Referenced by filteringAlgo(), and setThr().

std::vector<double> DynamicTruncation::estimators
private

Definition at line 95 of file DynamicTruncation.h.

Referenced by filteringAlgo(), and getEstimators().

edm::ESHandle<MagneticField> DynamicTruncation::magfield
private

Definition at line 92 of file DynamicTruncation.h.

Referenced by DynamicTruncation().

DirectMuonNavigation* DynamicTruncation::navigation
private

Definition at line 91 of file DynamicTruncation.h.

Referenced by compatibleDets(), DynamicTruncation(), and ~DynamicTruncation().

edm::ESHandle<MuonDetLayerGeometry> DynamicTruncation::navMuon
private

Definition at line 90 of file DynamicTruncation.h.

Referenced by DynamicTruncation().

edm::ESHandle<Propagator> DynamicTruncation::propagator
private
edm::ESHandle<Propagator> DynamicTruncation::propagatorCompatibleDet
private

Definition at line 85 of file DynamicTruncation.h.

Referenced by compatibleDets(), and DynamicTruncation().

ConstRecHitContainer DynamicTruncation::result
private

Definition at line 78 of file DynamicTruncation.h.

Referenced by filter(), and filteringAlgo().

const edm::Event* DynamicTruncation::theEvent
private

Definition at line 93 of file DynamicTruncation.h.

Referenced by DynamicTruncation(), and filteringAlgo().

edm::ESHandle<GlobalTrackingGeometry> DynamicTruncation::theG
private
edm::ESHandle<TransientTrackingRecHitBuilder> DynamicTruncation::theMuonRecHitBuilder
private

Definition at line 88 of file DynamicTruncation.h.

Referenced by DynamicTruncation(), and filteringAlgo().

const edm::EventSetup* DynamicTruncation::theSetup
private

Definition at line 94 of file DynamicTruncation.h.

Referenced by DynamicTruncation(), filter(), and filteringAlgo().

edm::ESHandle<TrajectoryStateUpdator> DynamicTruncation::updatorHandle
private
bool DynamicTruncation::useAPE
private

Definition at line 82 of file DynamicTruncation.h.

Referenced by getBest(), and setThr().