CMS 3D CMS Logo

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 &)
 
reco::DYTInfo getDYTInfo ()
 
void setParThrsMode (bool dytParThrsMode)
 
void setProd (const edm::Handle< DTRecSegment4DCollection > &DTSegProd, const edm::Handle< CSCSegmentCollection > &CSCSegProd)
 
void setRecoEta (double eta)
 
void setRecoP (double p)
 
void setSelector (int)
 
void setThr (const std::vector< int > &)
 
void setThrsMap (const edm::ParameterSet &)
 
void setUpdateState (bool)
 
void setUseAPE (bool)
 
 ~DynamicTruncation ()
 

Private Member Functions

bool chooseLayers (int &, double const &, DTRecSegment4D const &, TrajectoryStateOnSurface const &, double const &, CSCSegment const &, TrajectoryStateOnSurface const &)
 
void compatibleDets (TrajectoryStateOnSurface &, std::map< int, std::vector< DetId > > &)
 
void correctThrByPAndEta (double &)
 
void fillDYTInfos (int const &, bool const &, int &, double const &, double const &, DTRecSegment4D const &, CSCSegment const &)
 
void fillSegmentMaps (std::map< int, std::vector< DetId > > &, std::map< int, std::vector< DTRecSegment4D > > &, std::map< int, std::vector< CSCSegment > > &)
 
void filteringAlgo ()
 
void getThresholdFromCFG (double &, DetId const &)
 
void getThresholdFromDB (double &, DetId const &)
 
void preliminaryFit (std::map< int, std::vector< DetId > >, std::map< int, std::vector< DTRecSegment4D > >, std::map< int, std::vector< CSCSegment > >)
 
void setEtaRegion ()
 
void sort (ConstRecHitContainer &)
 
int stationfromDet (DetId const &)
 
void testCSCstation (TrajectoryStateOnSurface &, std::vector< CSCSegment > const &, double &, CSCSegment &, TrajectoryStateOnSurface &)
 
void testDTstation (TrajectoryStateOnSurface &, std::vector< DTRecSegment4D > const &, double &, DTRecSegment4D &, TrajectoryStateOnSurface &)
 
void update (TrajectoryStateOnSurface &, ConstRecHitPointer)
 
void updateWithCSChits (TrajectoryStateOnSurface &, CSCSegment const &)
 
void updateWithDThits (TrajectoryStateOnSurface &, DTRecSegment4D const &)
 
void useSegment (DTRecSegment4D const &, TrajectoryStateOnSurface const &)
 
void useSegment (CSCSegment const &, TrajectoryStateOnSurface const &)
 

Private Attributes

std::map< CSCDetId, GlobalErrorcscApeMap
 
edm::ESHandle< CSCGeometrycscGeom
 
TrajectoryStateOnSurface currentState
 
bool doUpdateOfKFStates
 
std::map< DTChamberId, GlobalErrordtApeMap
 
reco::DYTInfo dytInfo
 
int DYTselector
 
const DYTThrObjectdytThresholds
 
std::map< int, double > estimatorMap
 
double eta_reco
 
ChamberSegmentUtilitygetSegs
 
std::map< int, DetIdidChamberMap
 
edm::ESHandle< MagneticFieldmagfield
 
double muonETAest
 
double muonPTest
 
DirectMuonNavigationnavigation
 
edm::ESHandle< MuonDetLayerGeometrynavMuon
 
int nStationsUsed
 
double p_reco
 
std::map< dyt_utils::etaRegion, std::vector< double > > parameters
 
ConstRecHitContainer prelFitMeas
 
TrajectoryStateOnSurface prelFitState
 
edm::ESHandle< Propagatorpropagator
 
edm::ESHandle< PropagatorpropagatorCompatibleDet
 
edm::ESHandle< PropagatorpropagatorPF
 
dyt_utils::etaRegion region
 
ConstRecHitContainer result
 
edm::ESHandle< GlobalTrackingGeometrytheG
 
edm::ESHandle< TransientTrackingRecHitBuildertheMuonRecHitBuilder
 
ThrParametersthrManager
 
std::vector< int > Thrs
 
edm::ESHandle< TrajectoryStateUpdatorupdatorHandle
 
bool useAPE
 
bool useDBforThr
 
std::map< int, bool > usedStationMap
 
bool useParametrizedThr
 

Detailed Description

Definition at line 48 of file DynamicTruncation.h.

Member Typedef Documentation

Definition at line 53 of file DynamicTruncation.h.

Definition at line 52 of file DynamicTruncation.h.

Constructor & Destructor Documentation

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

Definition at line 47 of file DynamicTruncation.cc.

References ThrParameters::isValidThdDB(), and PhotonConversionTrajectorySeedProducerFromQuadruplets_cfi::propagator.

47  {
48  propagator = theService.propagator("SmartPropagatorAny");
49  propagatorPF = theService.propagator("SmartPropagatorAny");
50  propagatorCompatibleDet = theService.propagator("SmartPropagatorAny");
51  theG = theService.trackingGeometry();
52  theService.eventSetup().get<TransientRecHitRecord>().get("MuonRecHitBuilder",theMuonRecHitBuilder);
53  theService.eventSetup().get<TrackingComponentsRecord>().get("KFUpdator",updatorHandle);
54  theService.eventSetup().get<MuonGeometryRecord>().get(cscGeom);
55  theService.eventSetup().get<MuonRecoGeometryRecord>().get(navMuon);
56  theService.eventSetup().get<IdealMagneticFieldRecord>().get(magfield);
57  navigation = new DirectMuonNavigation(theService.detLayerGeometry());
59  thrManager = new ThrParameters(&theService.eventSetup());
61  if (useDBforThr) dytThresholds = thrManager->getInitialThresholds();
62 
63  doUpdateOfKFStates = true;
64  useParametrizedThr = false;
65 }
DirectMuonNavigation * navigation
edm::ESHandle< Propagator > propagatorPF
edm::ESHandle< Propagator > propagatorCompatibleDet
ThrParameters * thrManager
edm::ESHandle< MuonDetLayerGeometry > navMuon
edm::ESHandle< TrajectoryStateUpdator > updatorHandle
const bool isValidThdDB()
Definition: ThrParameters.h:28
edm::ESHandle< TransientTrackingRecHitBuilder > theMuonRecHitBuilder
ChamberSegmentUtility * getSegs
const DYTThrObject * dytThresholds
edm::ESHandle< Propagator > propagator
const DYTThrObject * getInitialThresholds()
Definition: ThrParameters.h:31
edm::ESHandle< MagneticField > magfield
edm::ESHandle< GlobalTrackingGeometry > theG
edm::ESHandle< CSCGeometry > cscGeom
DynamicTruncation::~DynamicTruncation ( )

Definition at line 67 of file DynamicTruncation.cc.

67  {
68  delete navigation;
69  delete thrManager;
70  delete getSegs;
71 }
DirectMuonNavigation * navigation
ThrParameters * thrManager
ChamberSegmentUtility * getSegs

Member Function Documentation

bool DynamicTruncation::chooseLayers ( int &  incompLayers,
double const &  bestDTEstimator,
DTRecSegment4D const &  bestDTSeg,
TrajectoryStateOnSurface const &  tsosDT,
double const &  bestCSCEstimator,
CSCSegment const &  bestCSCSeg,
TrajectoryStateOnSurface const &  tsosCSC 
)
private

Definition at line 436 of file DynamicTruncation.cc.

References DTRecSegment4D::chamberId(), CSCSegment::cscDetId(), GlobalMuonRefitter_cff::DYTselector, and MAX_THR.

437  {
438  double initThr = MAX_THR;
439  if (bestDTEstimator == MAX_THR && bestCSCEstimator == MAX_THR) return false;
440  if (bestDTEstimator <= bestCSCEstimator) {
441  // Get threshold for the chamber
442  if (useDBforThr) getThresholdFromDB(initThr, DetId(bestDTSeg.chamberId()));
443  else getThresholdFromCFG(initThr, DetId(bestDTSeg.chamberId()));
444  if (DYTselector == 0 || (DYTselector == 1 && bestDTEstimator < initThr) ||
445  (DYTselector == 2 && incompLayers < 2 && bestDTEstimator < initThr)) {
446  useSegment(bestDTSeg, tsosDT);
447  return true;
448  }
449  } else {
450  // Get threshold for the chamber
451  if (useDBforThr) getThresholdFromDB(initThr, DetId(bestCSCSeg.cscDetId()));
452  else getThresholdFromCFG(initThr, DetId(bestCSCSeg.cscDetId()));
453  if (DYTselector == 0 || (DYTselector == 1 && bestCSCEstimator < initThr) ||
454  (DYTselector == 2 && incompLayers < 2 && bestCSCEstimator < initThr)) {
455  useSegment(bestCSCSeg, tsosCSC);
456  return true;
457  }
458  }
459  return false;
460 }
void useSegment(DTRecSegment4D const &, TrajectoryStateOnSurface const &)
void getThresholdFromDB(double &, DetId const &)
#define MAX_THR
Definition: DetId.h:18
void getThresholdFromCFG(double &, DetId const &)
void DynamicTruncation::compatibleDets ( TrajectoryStateOnSurface tsos,
std::map< int, std::vector< DetId > > &  detMap 
)
private

Definition at line 273 of file DynamicTruncation.cc.

References alongMomentum, Chi2MeasurementEstimator_cfi::Chi2MeasurementEstimator, GeomDetEnumerators::CSC, GeomDetEnumerators::DT, edm::first(), and triggerObjects_cff::id.

273  {
274  MuonPatternRecoDumper dumper;
275  MeasurementEstimator *theEstimator = new Chi2MeasurementEstimator(1000, 1000);
276  vector<const DetLayer *> navLayers;
278  unsigned int ilayerCorrected = 0;
279  for ( unsigned int ilayer=0; ilayer<navLayers.size(); ilayer++ ) {
280  // Skip RPC layers
281  if (navLayers[ilayer]->subDetector() != GeomDetEnumerators::DT &&
282  navLayers[ilayer]->subDetector() != GeomDetEnumerators::CSC) continue;
283  ilayerCorrected++;
284  vector<DetLayer::DetWithState> comps = navLayers[ilayer]->compatibleDets(currentState, *propagatorCompatibleDet, *theEstimator);
285  //cout << comps.size() << " compatible Dets with " << navLayers[ilayer]->subDetector() << " Layer " << ilayer << " "
286  //<< dumper.dumpLayer(navLayers[ilayer]);
287  if (!comps.empty()) {
288  for ( unsigned int icomp=0; icomp<comps.size(); icomp++ ) {
289  DetId id(comps[icomp].first->geographicalId().rawId());
290  detMap[ilayerCorrected].push_back(id);
291  }
292  }
293  }
294  if (theEstimator) delete theEstimator;
295 }
DirectMuonNavigation * navigation
TrajectoryStateOnSurface currentState
edm::ESHandle< Propagator > propagatorCompatibleDet
std::vector< const DetLayer * > compatibleLayers(const FreeTrajectoryState &fts, PropagationDirection timeDirection) const
FreeTrajectoryState const * freeState(bool withErrors=true) const
Definition: DetId.h:18
void DynamicTruncation::correctThrByPAndEta ( double &  thr)
private

Definition at line 478 of file DynamicTruncation.cc.

References dyt_utils::eta2p0, dyt_utils::eta2p2, dyt_utils::eta2p4, p1, and funct::pow().

478  {
479 
480  auto parametricThreshold = [this]{
481  double thr50 = this->parameters[this->region].at(0);
482  double p0 = this->parameters[this->region].at(1);
483  double p1 = this->parameters[this->region].at(2);
484  return thr50 * ( 1 + p0*p_reco + std::pow( this->p_reco, p1));
485  };
486 
487  std::set<dyt_utils::etaRegion> regionsToExclude = {dyt_utils::etaRegion::eta2p0,dyt_utils::etaRegion::eta2p2, dyt_utils::etaRegion::eta2p4 };
488 
489  if ( ! regionsToExclude.count(this->region) ) thr = parametricThreshold();
490 }
dyt_utils::etaRegion region
double p1[4]
Definition: TauolaWrapper.h:89
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40
void DynamicTruncation::fillDYTInfos ( int const &  st,
bool const &  chosenLayer,
int &  incompConLay,
double const &  bestDTEstimator,
double const &  bestCSCEstimator,
DTRecSegment4D const &  bestDTSeg,
CSCSegment const &  bestCSCSeg 
)
private

Definition at line 248 of file DynamicTruncation.cc.

References DTRecSegment4D::chamberId(), CSCSegment::cscDetId(), and triggerObjects_cff::id.

250  {
251  if (chosenLayer) {
252  nStationsUsed++;
253  incompConLay = 0;
254  if (bestDTEstimator <= bestCSCEstimator) {
255  estimatorMap[st] = bestDTEstimator;
256  DetId id(bestDTSeg.chamberId());
257  idChamberMap[st] = id;
258  } else {
259  DetId id(bestCSCSeg.cscDetId());
260  idChamberMap[st] = id;
261  estimatorMap[st] = bestCSCEstimator;
262  }
263  usedStationMap[st] = true;
264  } else {
265  incompConLay++;
266  estimatorMap[st] = -1;
267  usedStationMap[st] = false;
268  }
269 }
std::map< int, bool > usedStationMap
std::map< int, DetId > idChamberMap
Definition: DetId.h:18
std::map< int, double > estimatorMap
void DynamicTruncation::fillSegmentMaps ( std::map< int, std::vector< DetId > > &  compatibleIds,
std::map< int, std::vector< DTRecSegment4D > > &  dtSegMap,
std::map< int, std::vector< CSCSegment > > &  cscSegMap 
)
private

Definition at line 299 of file DynamicTruncation.cc.

References MuonSubdetId::CSC, MuonSubdetId::DT, gen::k, genParticles_cff::map, and tmp.

301  {
302  for (map<int, vector<DetId> >::iterator it=compatibleIds.begin(); it!=compatibleIds.end(); ++it) {
303  vector<DetId> ids = compatibleIds[it->first];
304  for (unsigned j = 0; j < ids.size(); j++) {
305  if (ids[j].subdetId() == MuonSubdetId::CSC) {
306  CSCDetId ch(ids[j]);
307  vector<CSCSegment> tmp = getSegs->getCSCSegmentsInChamber(ch);
308  for (unsigned int k = 0; k < tmp.size(); k++) cscSegMap[it->first].push_back(tmp[k]);
309  }
310  if (ids[j].subdetId() == MuonSubdetId::DT) {
311  DTChamberId ch(ids[j]);
312  vector<DTRecSegment4D> tmp = getSegs->getDTSegmentsInChamber(ch);
313  for (unsigned int k = 0; k < tmp.size(); k++) dtSegMap[it->first].push_back(tmp[k]);
314  }
315  }
316  }
317 }
std::vector< DTRecSegment4D > getDTSegmentsInChamber(DTChamberId)
std::vector< CSCSegment > getCSCSegmentsInChamber(CSCDetId)
ChamberSegmentUtility * getSegs
int k[5][pyjets_maxn]
std::vector< std::vector< double > > tmp
Definition: MVATrainer.cc:100
static constexpr int DT
Definition: MuonSubdetId.h:12
static constexpr int CSC
Definition: MuonSubdetId.h:13
TransientTrackingRecHit::ConstRecHitContainer DynamicTruncation::filter ( const Trajectory traj)

Definition at line 155 of file DynamicTruncation.cc.

References DetId::det(), TrajectoryMeasurement::forwardPredictedState(), TrackingRecHit::geographicalId(), TrajectoryStateOnSurface::globalPosition(), PV3DBase< T, PVType, FrameType >::mag(), Trajectory::measurements(), TrajectoryMeasurement::recHit(), mps_fire::result, DetId::Tracker, and update.

Referenced by GlobalMuonRefitter::refit().

155  {
156  result.clear();
157  prelFitMeas.clear();
158 
159  // Get APE maps
162 
163  // Get Last tracker TSOS (updated)
164  vector<TrajectoryMeasurement> muonMeasurements = traj.measurements();
165  TrajectoryMeasurement lastTKm = muonMeasurements.front();
166  for (vector<TrajectoryMeasurement>::const_iterator imT = muonMeasurements.begin(); imT != muonMeasurements.end(); imT++ ) {
167  if ( !(*imT).recHit()->isValid() ) continue;
168  const TransientTrackingRecHit* hit = &(*(*imT).recHit());
169  if (hit->geographicalId().det() == DetId::Tracker) {
170  result.push_back((*imT).recHit());
171  if (!(*imT).forwardPredictedState().isValid()) continue;
172  if ((*imT).forwardPredictedState().globalPosition().mag() >
173  lastTKm.forwardPredictedState().globalPosition().mag()) lastTKm = *imT;
174  }
175  }
177  update(currentState, lastTKm.recHit());
178 
180  update(prelFitState, lastTKm.recHit());
182 
183  // Run the DYT
184  filteringAlgo();
185 
186  return result;
187 }
ConstRecHitPointer const & recHit() const
TrajectoryStateOnSurface currentState
GlobalPoint globalPosition() const
ThrParameters * thrManager
TrajectoryStateOnSurface prelFitState
DataContainer const & measurements() const
Definition: Trajectory.h:196
T mag() const
Definition: PV3DBase.h:67
ConstRecHitContainer result
ConstRecHitContainer prelFitMeas
TrajectoryStateOnSurface const & forwardPredictedState() const
Access to forward predicted state (from fitter or builder)
std::map< DTChamberId, GlobalError > dtApeMap
void update(TrajectoryStateOnSurface &, ConstRecHitPointer)
const std::map< DTChamberId, GlobalError > & GetDTApeMap()
Definition: ThrParameters.h:29
const std::map< CSCDetId, GlobalError > & GetCSCApeMap()
Definition: ThrParameters.h:30
DetId geographicalId() const
std::map< CSCDetId, GlobalError > cscApeMap
constexpr Detector det() const
get the detector field from this detid
Definition: DetId.h:39
void DynamicTruncation::filteringAlgo ( )
private

Definition at line 191 of file DynamicTruncation.cc.

References genParticles_cff::map, and MAX_THR.

191  {
192  map<int, vector<DetId> > compatibleIds;
193  map<int, vector<DTRecSegment4D> > dtSegMap;
194  map<int, vector<CSCSegment> > cscSegMap;
195  int incompConLay = 0;
196  nStationsUsed = 0;
197 
198  // Get list of compatible layers
199  compatibleDets(currentState, compatibleIds);
200 
201  // Fill segment maps
202  fillSegmentMaps(compatibleIds, dtSegMap, cscSegMap);
203 
204  // Do a preliminary fit
205  if (useDBforThr) preliminaryFit(compatibleIds, dtSegMap, cscSegMap);
206 
207  // Loop on compatible layers
208  for (map<int, vector<DetId> >::iterator it=compatibleIds.begin(); it!=compatibleIds.end(); ++it) {
209  int stLayer = stationfromDet(it->second.front());
210  DTRecSegment4D bestDTSeg;
211  CSCSegment bestCSCSeg;
212  double bestDTEstimator = MAX_THR;
213  double bestCSCEstimator = MAX_THR;
214  vector<DTRecSegment4D> dtSegs = dtSegMap[it->first];
215  vector<CSCSegment> cscSegs = cscSegMap[it->first];
216 
217  // DT case: find the most compatible segment
218  TrajectoryStateOnSurface tsosDTlayer;
219  testDTstation(currentState, dtSegs, bestDTEstimator, bestDTSeg, tsosDTlayer);
220 
221  // CSC case: find the most compatible segment
222  TrajectoryStateOnSurface tsosCSClayer;
223  testCSCstation(currentState, cscSegs, bestCSCEstimator, bestCSCSeg, tsosCSClayer);
224 
225  // Decide whether to keep the layer or not
226  bool chosenLayer = chooseLayers(incompConLay, bestDTEstimator, bestDTSeg, tsosDTlayer, bestCSCEstimator, bestCSCSeg, tsosCSClayer);
227  fillDYTInfos(stLayer, chosenLayer, incompConLay, bestDTEstimator, bestCSCEstimator, bestDTSeg, bestCSCSeg);
228  }
229  //cout << "Number of used stations = " << nStationsUsed << endl;
230 }
void compatibleDets(TrajectoryStateOnSurface &, std::map< int, std::vector< DetId > > &)
TrajectoryStateOnSurface currentState
void fillSegmentMaps(std::map< int, std::vector< DetId > > &, std::map< int, std::vector< DTRecSegment4D > > &, std::map< int, std::vector< CSCSegment > > &)
void testDTstation(TrajectoryStateOnSurface &, std::vector< DTRecSegment4D > const &, double &, DTRecSegment4D &, TrajectoryStateOnSurface &)
void testCSCstation(TrajectoryStateOnSurface &, std::vector< CSCSegment > const &, double &, CSCSegment &, TrajectoryStateOnSurface &)
#define MAX_THR
void preliminaryFit(std::map< int, std::vector< DetId > >, std::map< int, std::vector< DTRecSegment4D > >, std::map< int, std::vector< CSCSegment > >)
void fillDYTInfos(int const &, bool const &, int &, double const &, double const &, DTRecSegment4D const &, CSCSegment const &)
bool chooseLayers(int &, double const &, DTRecSegment4D const &, TrajectoryStateOnSurface const &, double const &, CSCSegment const &, TrajectoryStateOnSurface const &)
int stationfromDet(DetId const &)
reco::DYTInfo DynamicTruncation::getDYTInfo ( )
inline

Definition at line 81 of file DynamicTruncation.h.

References genParticles_cff::map, reco::DYTInfo::setNStUsed(), jetUpdater_cfi::sort, and update.

Referenced by GlobalMuonRefitter::refit().

81  {
86  return dytInfo;
87  }
void setUsedStations(const std::map< int, bool > &ustMap)
Definition: DYTInfo.h:37
std::map< int, bool > usedStationMap
void setDYTEstimators(const std::map< int, double > &dytEstMap)
Definition: DYTInfo.h:26
std::map< int, DetId > idChamberMap
void setNStUsed(int NStUsed)
Definition: DYTInfo.h:22
reco::DYTInfo dytInfo
void setIdChambers(const std::map< int, DetId > &IdChambersMap)
Definition: DYTInfo.h:46
std::map< int, double > estimatorMap
void DynamicTruncation::getThresholdFromCFG ( double &  thr,
DetId const &  id 
)
private

Definition at line 508 of file DynamicTruncation.cc.

References MuonSubdetId::CSC, and MuonSubdetId::DT.

508  {
509  if (id.subdetId() == MuonSubdetId::DT) {
510  thr = Thrs[0];
511  }
512  if (id.subdetId() == MuonSubdetId::CSC) {
513  thr = Thrs[1];
514  }
515 
517 
518 }
void correctThrByPAndEta(double &)
std::vector< int > Thrs
static constexpr int DT
Definition: MuonSubdetId.h:12
static constexpr int CSC
Definition: MuonSubdetId.h:13
void DynamicTruncation::getThresholdFromDB ( double &  thr,
DetId const &  id 
)
private

Definition at line 464 of file DynamicTruncation.cc.

References DYTThrObject::DytThrStruct::id, haddnano::obj, and DYTThrObject::DytThrStruct::thr.

464  {
465  vector<DYTThrObject::DytThrStruct> thrvector = dytThresholds->thrsVec;
466  for (vector<DYTThrObject::DytThrStruct>::const_iterator it = thrvector.begin(); it != thrvector.end(); it++) {
468  if (obj.id == id) {
469  thr = obj.thr;
470  break;
471  }
472  }
474 }
void correctThrByPAndEta(double &)
std::vector< DytThrStruct > thrsVec
Definition: DYTThrObject.h:17
const DYTThrObject * dytThresholds
void DynamicTruncation::preliminaryFit ( std::map< int, std::vector< DetId > >  compatibleIds,
std::map< int, std::vector< DTRecSegment4D > >  dtSegMap,
std::map< int, std::vector< CSCSegment > >  cscSegMap 
)
private

Definition at line 379 of file DynamicTruncation.cc.

References DTRecSegment4D::chamberId(), CSCSegment::cscDetId(), TrajectoryStateOnSurface::globalMomentum(), TrajectoryStateOnSurface::isValid(), genParticles_cff::map, MAX_THR, PV3DBase< T, PVType, FrameType >::perp(), and tmp.

380  {
381  for (map<int, vector<DetId> >::iterator it=compatibleIds.begin(); it!=compatibleIds.end(); ++it) {
382  DTRecSegment4D bestDTSeg;
383  CSCSegment bestCSCSeg;
384  double bestDTEstimator = MAX_THR;
385  double bestCSCEstimator = MAX_THR;
386  double initThr = MAX_THR;
387  vector<DTRecSegment4D> dtSegs = dtSegMap[it->first];
388  vector<CSCSegment> cscSegs = cscSegMap[it->first];
389 
390  // DT case: find the most compatible segment
391  TrajectoryStateOnSurface tsosDTlayer;
392  testDTstation(prelFitState, dtSegs, bestDTEstimator, bestDTSeg, tsosDTlayer);
393 
394  // CSC case: find the most compatible segment
395  TrajectoryStateOnSurface tsosCSClayer;
396  testCSCstation(prelFitState, cscSegs, bestCSCEstimator, bestCSCSeg, tsosCSClayer);
397 
398  // Decide whether to keep the layer or not
399  if (bestDTEstimator == MAX_THR && bestCSCEstimator == MAX_THR) continue;
400  if (bestDTEstimator <= bestCSCEstimator) {
401  getThresholdFromCFG(initThr, DetId(bestDTSeg.chamberId()));
402  if (bestDTEstimator >= initThr) continue;
403  prelFitMeas.push_back(theMuonRecHitBuilder->build(&bestDTSeg));
404  auto aSegRH = prelFitMeas.back();
405  auto uRes = updatorHandle->update(tsosDTlayer, *aSegRH);
406  if (uRes.isValid()){
407  prelFitState = uRes;
408  } else {
409  prelFitMeas.pop_back();
410  }
411  } else {
412  getThresholdFromCFG(initThr, DetId(bestCSCSeg.cscDetId()));
413  if (bestCSCEstimator >= initThr) continue;
414  prelFitMeas.push_back(theMuonRecHitBuilder->build(&bestCSCSeg));
415  auto aSegRH = prelFitMeas.back();
416  auto uRes = updatorHandle->update(tsosCSClayer, *aSegRH);
417  if (uRes.isValid()){
418  prelFitState = uRes;
419  } else {
420  prelFitMeas.pop_back();
421  }
422  }
423  }
424  if (!prelFitMeas.empty()) prelFitMeas.pop_back();
425  for (auto imrh = prelFitMeas.rbegin(); imrh != prelFitMeas.rend(); ++imrh) {
426  DetId id = (*imrh)->geographicalId();
428  if (tmp.isValid()) prelFitState = tmp;
429  }
432 }
edm::ESHandle< Propagator > propagatorPF
T perp() const
Definition: PV3DBase.h:72
CSCDetId cscDetId() const
Definition: CSCSegment.h:69
virtual DTChamberId chamberId() const
The (specific) DetId of the chamber on which the segment resides.
void testDTstation(TrajectoryStateOnSurface &, std::vector< DTRecSegment4D > const &, double &, DTRecSegment4D &, TrajectoryStateOnSurface &)
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:42
virtual TrajectoryStateOnSurface update(const TrajectoryStateOnSurface &, const TrackingRecHit &) const =0
TrajectoryStateOnSurface prelFitState
void testCSCstation(TrajectoryStateOnSurface &, std::vector< CSCSegment > const &, double &, CSCSegment &, TrajectoryStateOnSurface &)
edm::ESHandle< TrajectoryStateUpdator > updatorHandle
ConstRecHitContainer prelFitMeas
edm::ESHandle< TransientTrackingRecHitBuilder > theMuonRecHitBuilder
virtual RecHitPointer build(const TrackingRecHit *p) const =0
build a tracking rechit from an existing rechit
#define MAX_THR
Definition: DetId.h:18
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
Definition: Propagator.h:53
T eta() const
Definition: PV3DBase.h:76
std::vector< std::vector< double > > tmp
Definition: MVATrainer.cc:100
GlobalVector globalMomentum() const
const GeomDet * idToDet(DetId) const override
edm::ESHandle< GlobalTrackingGeometry > theG
void getThresholdFromCFG(double &, DetId const &)
void DynamicTruncation::setEtaRegion ( )
private

Definition at line 492 of file DynamicTruncation.cc.

References funct::abs(), dyt_utils::eta0p8, dyt_utils::eta1p2, dyt_utils::eta2p0, dyt_utils::eta2p2, and dyt_utils::eta2p4.

492  {
493 
494  float absEta = std::abs(eta_reco);
495  // Defaul value for muons with abs(eta) > 2.4
497 
498  if( absEta <= 0.8 ) region = dyt_utils::etaRegion::eta0p8;
499  else if( absEta <= 1.2 ) region = dyt_utils::etaRegion::eta1p2;
500  else if( absEta <= 2.0 ) region = dyt_utils::etaRegion::eta2p0;
501  else if( absEta <= 2.2 ) region = dyt_utils::etaRegion::eta2p2;
502  else if( absEta <= 2.4 ) region = dyt_utils::etaRegion::eta2p4;
503 
504 }
dyt_utils::etaRegion region
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
void DynamicTruncation::setParThrsMode ( bool  dytParThrsMode)
inline

Definition at line 70 of file DynamicTruncation.h.

Referenced by GlobalMuonRefitter::refit().

70 { useParametrizedThr = dytParThrsMode;}
void DynamicTruncation::setProd ( const edm::Handle< DTRecSegment4DCollection > &  DTSegProd,
const edm::Handle< CSCSegmentCollection > &  CSCSegProd 
)
inline

Definition at line 59 of file DynamicTruncation.h.

Referenced by GlobalMuonRefitter::refit().

60  {
61  getSegs->initCSU(DTSegProd, CSCSegProd);
62  }
void initCSU(const edm::Handle< DTRecSegment4DCollection > &, const edm::Handle< CSCSegmentCollection > &)
ChamberSegmentUtility * getSegs
void DynamicTruncation::setRecoEta ( double  eta)
inline
void DynamicTruncation::setRecoP ( double  p)
inline
void DynamicTruncation::setSelector ( int  selector)

Definition at line 116 of file DynamicTruncation.cc.

References GlobalMuonRefitter_cff::DYTselector, and Exception.

Referenced by GlobalMuonRefitter::refit().

116  {
117  if (selector < 0 || selector > 2) throw cms::Exception("NotAvailable") << "DYT selector: wrong option!" << endl;
118  //if (selector == 0) cout << "[DYT disabled]\n";
119  //if (selector == 1) cout << "[use all compatible stations]\n";
120  //if (selector == 2) cout << "[stop at second consecutive incompatible station]\n";
121  DYTselector = selector;
122 
123 }
void DynamicTruncation::setThr ( const std::vector< int > &  thr)

Definition at line 133 of file DynamicTruncation.cc.

References Exception, mps_fire::i, and MAX_THR.

Referenced by GlobalMuonRefitter::refit().

133  {
134  if (thr.size() == 2) {
135  for (unsigned int i = 0; i < thr.size(); i++)
136  if (thr[i] >= 0) Thrs.push_back(thr[i]);
137  else Thrs.push_back(MAX_THR);
138  return;
139  }
140  throw cms::Exception("NotAvailable") << "WARNING: wrong size for the threshold vector!\nExpected size: 2\n Found size: " << thr.size();
141 }
#define MAX_THR
std::vector< int > Thrs
void DynamicTruncation::setThrsMap ( const edm::ParameterSet par)

Definition at line 143 of file DynamicTruncation.cc.

References dyt_utils::etaRegionStr, and edm::ParameterSet::getParameter().

Referenced by GlobalMuonRefitter::refit().

143  {
144  for (auto const& region : dyt_utils::etaRegionStr ){
145  parameters[region.first] = par.getParameter< std::vector<double> >(region.second);
146  }
147 }
T getParameter(std::string const &) const
dyt_utils::etaRegion region
static const std::map< etaRegion, std::string > etaRegionStr
void DynamicTruncation::setUpdateState ( bool  upState)

Definition at line 129 of file DynamicTruncation.cc.

Referenced by GlobalMuonRefitter::refit().

129  {
130  doUpdateOfKFStates = upState;
131 }
void DynamicTruncation::setUseAPE ( bool  useAPE_)

Definition at line 125 of file DynamicTruncation.cc.

Referenced by GlobalMuonRefitter::refit().

125  {
126  useAPE = useAPE_;
127 }
void DynamicTruncation::sort ( ConstRecHitContainer recHits)
private

Definition at line 522 of file DynamicTruncation.cc.

References mps_fire::i, mag(), gen::n, and edm::swap().

522  {
523  unsigned int i=0;
524  unsigned int j=0;
525  ConstRecHitContainer::size_type n = recHits.size();
526  for(i=1; i<n; ++i)
527  for(j=n-1; j>=i; --j)
528  if(recHits[j-1]->globalPosition().mag() > recHits[j]->globalPosition().mag()) swap (recHits[j-1],recHits[j]);
529 }
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
uint16_t size_type
void swap(Association< C > &lhs, Association< C > &rhs)
Definition: Association.h:116
int DynamicTruncation::stationfromDet ( DetId const &  det)
private

Definition at line 234 of file DynamicTruncation.cc.

References MuonSubdetId::CSC, MuonSubdetId::DT, DTChamberId::station(), CSCDetId::station(), and DetId::subdetId().

234  {
235  if (det.subdetId() == MuonSubdetId::CSC) {
236  CSCDetId ch(det);
237  return ch.station();
238  }
239  if (det.subdetId() == MuonSubdetId::DT) {
240  DTChamberId ch(det);
241  return ch.station();
242  }
243  return 0;
244 }
static constexpr int DT
Definition: MuonSubdetId.h:12
static constexpr int CSC
Definition: MuonSubdetId.h:13
void DynamicTruncation::testCSCstation ( TrajectoryStateOnSurface startingState,
std::vector< CSCSegment > const &  segments,
double &  bestEstimator,
CSCSegment bestSeg,
TrajectoryStateOnSurface tsoscsc 
)
private

Definition at line 342 of file DynamicTruncation.cc.

References relativeConstraints::chamber, PhotonConversionTrajectorySeedProducerFromQuadruplets_cfi::propagator, TrajectoryStateOnSurface::surface(), ErrorFrameTransformer::transform(), and StateSegmentMatcher::value().

343  {
344  if (segments.empty()) return;
345  for (unsigned int iSeg = 0; iSeg < segments.size(); iSeg++) {
346  CSCDetId chamber(segments[iSeg].cscDetId());
347  if (!propagator->propagate(startingState, theG->idToDet(chamber)->surface()).isValid()) continue;
348  tsoscsc = propagator->propagate(startingState, theG->idToDet(chamber)->surface());
349  //if (!tsoscsc.isValid()) continue;
350  LocalError apeLoc;
351  if (useAPE) apeLoc = ErrorFrameTransformer().transform(cscApeMap.find(chamber)->second, theG->idToDet(chamber)->surface());
352  StateSegmentMatcher estim(tsoscsc, segments[iSeg], apeLoc);
353  double estimator = estim.value();
354  //cout << "estimator CSC = " << estimator << endl;
355  if (estimator >= bestEstimator) continue;
356  bestEstimator = estimator;
357  bestSeg = segments[iSeg];
358  }
359 }
static GlobalError transform(const LocalError &le, const Surface &surf)
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:42
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
Definition: Propagator.h:53
edm::ESHandle< Propagator > propagator
const GeomDet * idToDet(DetId) const override
std::map< CSCDetId, GlobalError > cscApeMap
edm::ESHandle< GlobalTrackingGeometry > theG
void DynamicTruncation::testDTstation ( TrajectoryStateOnSurface startingState,
std::vector< DTRecSegment4D > const &  segments,
double &  bestEstimator,
DTRecSegment4D bestSeg,
TrajectoryStateOnSurface tsosdt 
)
private

Definition at line 321 of file DynamicTruncation.cc.

References relativeConstraints::chamber, PhotonConversionTrajectorySeedProducerFromQuadruplets_cfi::propagator, TrajectoryStateOnSurface::surface(), ErrorFrameTransformer::transform(), and StateSegmentMatcher::value().

322  {
323  if (segments.empty()) return;
324  for (unsigned int iSeg = 0; iSeg < segments.size(); iSeg++) {
325  DTChamberId chamber(segments[iSeg].chamberId());
326  if (!propagator->propagate(startingState, theG->idToDet(chamber)->surface()).isValid()) continue;
327  tsosdt = propagator->propagate(startingState, theG->idToDet(chamber)->surface());
328  //if (!tsosdt.isValid()) continue;
329  LocalError apeLoc;
330  if (useAPE) apeLoc = ErrorFrameTransformer().transform(dtApeMap.find(chamber)->second, theG->idToDet(chamber)->surface());
331  StateSegmentMatcher estim(tsosdt, segments[iSeg], apeLoc);
332  double estimator = estim.value();
333  //cout << "estimator DT = " << estimator << endl;
334  if (estimator >= bestEstimator) continue;
335  bestEstimator = estimator;
336  bestSeg = segments[iSeg];
337  }
338 }
static GlobalError transform(const LocalError &le, const Surface &surf)
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:42
std::map< DTChamberId, GlobalError > dtApeMap
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
Definition: Propagator.h:53
edm::ESHandle< Propagator > propagator
const GeomDet * idToDet(DetId) const override
edm::ESHandle< GlobalTrackingGeometry > theG
void DynamicTruncation::update ( TrajectoryStateOnSurface tsos,
ConstRecHitPointer  rechit 
)
private

Definition at line 73 of file DynamicTruncation.cc.

References TrajectoryStateOnSurface::isValid(), groupFilesInBlocks::temp, and TrajectoryStateOnSurface::update().

Referenced by progressbar.ProgressBar::__next__(), MatrixUtil.Matrix::__setitem__(), MatrixUtil.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(), 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(), MatrixUtil.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().

73  {
75  if (temp.isValid()) tsos = updatorHandle->update(tsos, *rechit);
76 }
virtual TrajectoryStateOnSurface update(const TrajectoryStateOnSurface &, const TrackingRecHit &) const =0
edm::ESHandle< TrajectoryStateUpdator > updatorHandle
void DynamicTruncation::updateWithCSChits ( TrajectoryStateOnSurface tsos,
CSCSegment const &  bestCSCSeg 
)
private

Definition at line 95 of file DynamicTruncation.cc.

References TrajectoryStateOnSurface::isValid(), PhotonConversionTrajectorySeedProducerFromQuadruplets_cfi::propagator, jetUpdater_cfi::sort, CSCSegment::specificRecHits(), GeomDet::surface(), groupFilesInBlocks::temp, and TrajectoryStateOnSurface::update().

95  {
96  ConstRecHitContainer tmprecHits;
97  vector<CSCRecHit2D> CSCrh = bestCSCSeg.specificRecHits();
98  for (vector<CSCRecHit2D>::iterator it = CSCrh.begin(); it != CSCrh.end(); ++it) {
99  tmprecHits.push_back(theMuonRecHitBuilder->build(&*it));
100  }
101  sort(tmprecHits);
102  for (ConstRecHitContainer::const_iterator it = tmprecHits.begin(); it != tmprecHits.end(); ++it) {
103  const CSCLayer* cscLayer = cscGeom->layer((*it)->det()->geographicalId());
105  if (temp.isValid()) {
106  TrajectoryStateOnSurface tempTsos = updatorHandle->update(temp, **it);
107  if (tempTsos.isValid() ) tsos = tempTsos;
108  }
109  }
110 }
void sort(ConstRecHitContainer &)
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:42
virtual TrajectoryStateOnSurface update(const TrajectoryStateOnSurface &, const TrackingRecHit &) const =0
edm::ESHandle< TrajectoryStateUpdator > updatorHandle
edm::ESHandle< TransientTrackingRecHitBuilder > theMuonRecHitBuilder
virtual RecHitPointer build(const TrackingRecHit *p) const =0
build a tracking rechit from an existing rechit
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
Definition: Propagator.h:53
edm::ESHandle< Propagator > propagator
const CSCLayer * layer(CSCDetId id) const
Return the layer corresponding to given DetId.
Definition: CSCGeometry.cc:139
TransientTrackingRecHit::ConstRecHitContainer ConstRecHitContainer
edm::ESHandle< CSCGeometry > cscGeom
void DynamicTruncation::updateWithDThits ( TrajectoryStateOnSurface tsos,
DTRecSegment4D const &  bestDTSeg 
)
private

Definition at line 78 of file DynamicTruncation.cc.

References TrajectoryStateOnSurface::isValid(), PhotonConversionTrajectorySeedProducerFromQuadruplets_cfi::propagator, DTRecSegment4D::recHits(), jetUpdater_cfi::sort, TrajectoryStateOnSurface::surface(), groupFilesInBlocks::temp, and TrajectoryStateOnSurface::update().

78  {
79  ConstRecHitContainer tmprecHits;
80  vector<const TrackingRecHit*> DTrh = bestDTSeg.recHits();
81  for (vector<const TrackingRecHit*>::iterator it = DTrh.begin(); it != DTrh.end(); it++) {
82  tmprecHits.push_back(theMuonRecHitBuilder->build(*it));
83  }
84  sort(tmprecHits);
85  for (ConstRecHitContainer::const_iterator it = tmprecHits.begin(); it != tmprecHits.end(); ++it) {
86  DTLayerId layid((*it)->det()->geographicalId());
88  if (temp.isValid()) {
89  TrajectoryStateOnSurface tempTsos = updatorHandle->update(temp, **it);
90  if (tempTsos.isValid() ) tsos = tempTsos;
91  }
92  }
93 }
void sort(ConstRecHitContainer &)
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:42
virtual TrajectoryStateOnSurface update(const TrajectoryStateOnSurface &, const TrackingRecHit &) const =0
edm::ESHandle< TrajectoryStateUpdator > updatorHandle
edm::ESHandle< TransientTrackingRecHitBuilder > theMuonRecHitBuilder
virtual RecHitPointer build(const TrackingRecHit *p) const =0
build a tracking rechit from an existing rechit
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
Definition: Propagator.h:53
edm::ESHandle< Propagator > propagator
const GeomDet * idToDet(DetId) const override
TransientTrackingRecHit::ConstRecHitContainer ConstRecHitContainer
edm::ESHandle< GlobalTrackingGeometry > theG
void DynamicTruncation::useSegment ( DTRecSegment4D const &  bestDTSeg,
TrajectoryStateOnSurface const &  tsosDT 
)
private

Definition at line 363 of file DynamicTruncation.cc.

References mps_fire::result.

363  {
364  result.push_back(theMuonRecHitBuilder->build(&bestDTSeg));
366  else currentState = tsosDT;
367 }
TrajectoryStateOnSurface currentState
ConstRecHitContainer result
edm::ESHandle< TransientTrackingRecHitBuilder > theMuonRecHitBuilder
virtual RecHitPointer build(const TrackingRecHit *p) const =0
build a tracking rechit from an existing rechit
void updateWithDThits(TrajectoryStateOnSurface &, DTRecSegment4D const &)
void DynamicTruncation::useSegment ( CSCSegment const &  bestCSCSeg,
TrajectoryStateOnSurface const &  tsosCSC 
)
private

Definition at line 371 of file DynamicTruncation.cc.

References mps_fire::result.

371  {
372  result.push_back(theMuonRecHitBuilder->build(&bestCSCSeg));
374  else currentState = tsosCSC;
375 }
TrajectoryStateOnSurface currentState
void updateWithCSChits(TrajectoryStateOnSurface &, CSCSegment const &)
ConstRecHitContainer result
edm::ESHandle< TransientTrackingRecHitBuilder > theMuonRecHitBuilder
virtual RecHitPointer build(const TrackingRecHit *p) const =0
build a tracking rechit from an existing rechit

Member Data Documentation

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

Definition at line 133 of file DynamicTruncation.h.

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

Definition at line 120 of file DynamicTruncation.h.

TrajectoryStateOnSurface DynamicTruncation::currentState
private

Definition at line 129 of file DynamicTruncation.h.

bool DynamicTruncation::doUpdateOfKFStates
private

Definition at line 139 of file DynamicTruncation.h.

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

Definition at line 132 of file DynamicTruncation.h.

reco::DYTInfo DynamicTruncation::dytInfo
private

Definition at line 131 of file DynamicTruncation.h.

int DynamicTruncation::DYTselector
private

Definition at line 115 of file DynamicTruncation.h.

const DYTThrObject* DynamicTruncation::dytThresholds
private

Definition at line 135 of file DynamicTruncation.h.

std::map<int, double> DynamicTruncation::estimatorMap
private

Definition at line 126 of file DynamicTruncation.h.

double DynamicTruncation::eta_reco
private

Definition at line 142 of file DynamicTruncation.h.

ChamberSegmentUtility* DynamicTruncation::getSegs
private

Definition at line 136 of file DynamicTruncation.h.

std::map<int, DetId> DynamicTruncation::idChamberMap
private

Definition at line 128 of file DynamicTruncation.h.

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

Definition at line 125 of file DynamicTruncation.h.

double DynamicTruncation::muonETAest
private

Definition at line 134 of file DynamicTruncation.h.

double DynamicTruncation::muonPTest
private

Definition at line 134 of file DynamicTruncation.h.

DirectMuonNavigation* DynamicTruncation::navigation
private

Definition at line 124 of file DynamicTruncation.h.

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

Definition at line 123 of file DynamicTruncation.h.

int DynamicTruncation::nStationsUsed
private

Definition at line 114 of file DynamicTruncation.h.

double DynamicTruncation::p_reco
private

Definition at line 141 of file DynamicTruncation.h.

std::map<dyt_utils::etaRegion, std::vector<double> > DynamicTruncation::parameters
private
ConstRecHitContainer DynamicTruncation::prelFitMeas
private

Definition at line 111 of file DynamicTruncation.h.

TrajectoryStateOnSurface DynamicTruncation::prelFitState
private

Definition at line 130 of file DynamicTruncation.h.

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

Definition at line 116 of file DynamicTruncation.h.

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

Definition at line 118 of file DynamicTruncation.h.

edm::ESHandle<Propagator> DynamicTruncation::propagatorPF
private

Definition at line 117 of file DynamicTruncation.h.

dyt_utils::etaRegion DynamicTruncation::region
private

Definition at line 144 of file DynamicTruncation.h.

ConstRecHitContainer DynamicTruncation::result
private

Definition at line 111 of file DynamicTruncation.h.

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

Definition at line 119 of file DynamicTruncation.h.

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

Definition at line 121 of file DynamicTruncation.h.

ThrParameters* DynamicTruncation::thrManager
private

Definition at line 137 of file DynamicTruncation.h.

std::vector<int> DynamicTruncation::Thrs
private

Definition at line 113 of file DynamicTruncation.h.

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

Definition at line 122 of file DynamicTruncation.h.

bool DynamicTruncation::useAPE
private

Definition at line 112 of file DynamicTruncation.h.

bool DynamicTruncation::useDBforThr
private

Definition at line 138 of file DynamicTruncation.h.

std::map<int, bool> DynamicTruncation::usedStationMap
private

Definition at line 127 of file DynamicTruncation.h.

bool DynamicTruncation::useParametrizedThr
private

Definition at line 143 of file DynamicTruncation.h.