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 51 of file DynamicTruncation.h.

Definition at line 50 of file DynamicTruncation.h.

Constructor & Destructor Documentation

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

Definition at line 45 of file DynamicTruncation.cc.

References ThrParameters::isValidThdDB(), volumeBasedMagneticField_1103l_cfi::magfield, and TrackCandidateProducer_cfi::propagator.

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

Definition at line 66 of file DynamicTruncation.cc.

66  {
67  delete navigation;
68  delete thrManager;
69  delete getSegs;
70 }
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 462 of file DynamicTruncation.cc.

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

468  {
469  double initThr = MAX_THR;
470  if (bestDTEstimator == MAX_THR && bestCSCEstimator == MAX_THR)
471  return false;
472  if (bestDTEstimator <= bestCSCEstimator) {
473  // Get threshold for the chamber
474  if (useDBforThr)
475  getThresholdFromDB(initThr, DetId(bestDTSeg.chamberId()));
476  else
477  getThresholdFromCFG(initThr, DetId(bestDTSeg.chamberId()));
478  if (DYTselector == 0 || (DYTselector == 1 && bestDTEstimator < initThr) ||
479  (DYTselector == 2 && incompLayers < 2 && bestDTEstimator < initThr)) {
480  useSegment(bestDTSeg, tsosDT);
481  return true;
482  }
483  } else {
484  // Get threshold for the chamber
485  if (useDBforThr)
486  getThresholdFromDB(initThr, DetId(bestCSCSeg.cscDetId()));
487  else
488  getThresholdFromCFG(initThr, DetId(bestCSCSeg.cscDetId()));
489  if (DYTselector == 0 || (DYTselector == 1 && bestCSCEstimator < initThr) ||
490  (DYTselector == 2 && incompLayers < 2 && bestCSCEstimator < initThr)) {
491  useSegment(bestCSCSeg, tsosCSC);
492  return true;
493  }
494  }
495  return false;
496 }
void useSegment(DTRecSegment4D const &, TrajectoryStateOnSurface const &)
void getThresholdFromDB(double &, DetId const &)
#define MAX_THR
Definition: DetId.h:17
void getThresholdFromCFG(double &, DetId const &)
void DynamicTruncation::compatibleDets ( TrajectoryStateOnSurface ,
std::map< int, std::vector< DetId >> &   
)
private

Definition at line 277 of file DynamicTruncation.cc.

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

277  {
278  MuonPatternRecoDumper dumper;
279  MeasurementEstimator *theEstimator = new Chi2MeasurementEstimator(1000, 1000);
280  vector<const DetLayer *> navLayers;
282  unsigned int ilayerCorrected = 0;
283  for (unsigned int ilayer = 0; ilayer < navLayers.size(); ilayer++) {
284  // Skip RPC layers
285  if (navLayers[ilayer]->subDetector() != GeomDetEnumerators::DT &&
286  navLayers[ilayer]->subDetector() != GeomDetEnumerators::CSC)
287  continue;
288  ilayerCorrected++;
289  vector<DetLayer::DetWithState> comps =
290  navLayers[ilayer]->compatibleDets(currentState, *propagatorCompatibleDet, *theEstimator);
291  //cout << comps.size() << " compatible Dets with " << navLayers[ilayer]->subDetector() << " Layer " << ilayer << " "
292  //<< dumper.dumpLayer(navLayers[ilayer]);
293  if (!comps.empty()) {
294  for (unsigned int icomp = 0; icomp < comps.size(); icomp++) {
295  DetId id(comps[icomp].first->geographicalId().rawId());
296  detMap[ilayerCorrected].push_back(id);
297  }
298  }
299  }
300  if (theEstimator)
301  delete theEstimator;
302 }
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:17
void DynamicTruncation::correctThrByPAndEta ( double &  thr)
private

Definition at line 513 of file DynamicTruncation.cc.

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

513  {
514  auto parametricThreshold = [this] {
515  double thr50 = this->parameters[this->region].at(0);
516  double p0 = this->parameters[this->region].at(1);
517  double p1 = this->parameters[this->region].at(2);
518  return thr50 * (1 + p0 * p_reco + std::pow(this->p_reco, p1));
519  };
520 
521  std::set<dyt_utils::etaRegion> regionsToExclude = {
523 
524  if (!regionsToExclude.count(this->region))
525  thr = parametricThreshold();
526 }
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:30
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 249 of file DynamicTruncation.cc.

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

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

Definition at line 305 of file DynamicTruncation.cc.

References MuonSubdetId::CSC, MuonSubdetId::DT, photons_cff::ids, dqmiolumiharvest::j, dqmdumpme::k, genParticles_cff::map, and createJobs::tmp.

307  {
308  for (map<int, vector<DetId> >::iterator it = compatibleIds.begin(); it != compatibleIds.end(); ++it) {
309  vector<DetId> ids = compatibleIds[it->first];
310  for (unsigned j = 0; j < ids.size(); j++) {
311  if (ids[j].subdetId() == MuonSubdetId::CSC) {
312  CSCDetId ch(ids[j]);
313  vector<CSCSegment> tmp = getSegs->getCSCSegmentsInChamber(ch);
314  for (unsigned int k = 0; k < tmp.size(); k++)
315  cscSegMap[it->first].push_back(tmp[k]);
316  }
317  if (ids[j].subdetId() == MuonSubdetId::DT) {
318  DTChamberId ch(ids[j]);
319  vector<DTRecSegment4D> tmp = getSegs->getDTSegmentsInChamber(ch);
320  for (unsigned int k = 0; k < tmp.size(); k++)
321  dtSegMap[it->first].push_back(tmp[k]);
322  }
323  }
324  }
325 }
std::vector< DTRecSegment4D > getDTSegmentsInChamber(DTChamberId)
std::vector< CSCSegment > getCSCSegmentsInChamber(CSCDetId)
ChamberSegmentUtility * getSegs
static constexpr int DT
Definition: MuonSubdetId.h:11
tmp
align.sh
Definition: createJobs.py:716
static constexpr int CSC
Definition: MuonSubdetId.h:12
TransientTrackingRecHit::ConstRecHitContainer DynamicTruncation::filter ( const Trajectory traj)

Definition at line 153 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().

153  {
154  result.clear();
155  prelFitMeas.clear();
156 
157  // Get APE maps
160 
161  // Get Last tracker TSOS (updated)
162  vector<TrajectoryMeasurement> muonMeasurements = traj.measurements();
163  TrajectoryMeasurement lastTKm = muonMeasurements.front();
164  for (vector<TrajectoryMeasurement>::const_iterator imT = muonMeasurements.begin(); imT != muonMeasurements.end();
165  imT++) {
166  if (!(*imT).recHit()->isValid())
167  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())
172  continue;
173  if ((*imT).forwardPredictedState().globalPosition().mag() >
175  lastTKm = *imT;
176  }
177  }
179  update(currentState, lastTKm.recHit());
180 
182  update(prelFitState, lastTKm.recHit());
184 
185  // Run the DYT
186  filteringAlgo();
187 
188  return result;
189 }
ConstRecHitPointer const & recHit() const
TrajectoryStateOnSurface currentState
GlobalPoint globalPosition() const
ThrParameters * thrManager
TrajectoryStateOnSurface prelFitState
DataContainer const & measurements() const
Definition: Trajectory.h:178
T mag() const
Definition: PV3DBase.h:64
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:28
const std::map< CSCDetId, GlobalError > & GetCSCApeMap()
Definition: ThrParameters.h:29
DetId geographicalId() const
std::map< CSCDetId, GlobalError > cscApeMap
constexpr Detector det() const
get the detector field from this detid
Definition: DetId.h:46
void DynamicTruncation::filteringAlgo ( )
private

Definition at line 192 of file DynamicTruncation.cc.

References genParticles_cff::map, and MAX_THR.

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

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

Referenced by GlobalMuonRefitter::refit().

79  {
84  return dytInfo;
85  }
void setUsedStations(const std::map< int, bool > &ustMap)
Definition: DYTInfo.h:39
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:48
std::map< int, double > estimatorMap
void DynamicTruncation::getThresholdFromCFG ( double &  thr,
DetId const &  id 
)
private

Definition at line 546 of file DynamicTruncation.cc.

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

546  {
547  if (id.subdetId() == MuonSubdetId::DT) {
548  thr = Thrs[0];
549  }
550  if (id.subdetId() == MuonSubdetId::CSC) {
551  thr = Thrs[1];
552  }
553 
554  if (useParametrizedThr)
555  correctThrByPAndEta(thr);
556 }
void correctThrByPAndEta(double &)
std::vector< int > Thrs
static constexpr int DT
Definition: MuonSubdetId.h:11
static constexpr int CSC
Definition: MuonSubdetId.h:12
void DynamicTruncation::getThresholdFromDB ( double &  thr,
DetId const &  id 
)
private

Definition at line 499 of file DynamicTruncation.cc.

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

499  {
500  vector<DYTThrObject::DytThrStruct> thrvector = dytThresholds->thrsVec;
501  for (vector<DYTThrObject::DytThrStruct>::const_iterator it = thrvector.begin(); it != thrvector.end(); it++) {
503  if (obj.id == id) {
504  thr = obj.thr;
505  break;
506  }
507  }
508  if (useParametrizedThr)
509  correctThrByPAndEta(thr);
510 }
void correctThrByPAndEta(double &)
std::vector< DytThrStruct > thrsVec
Definition: DYTThrObject.h:16
const DYTThrObject * dytThresholds
void DynamicTruncation::preliminaryFit ( std::map< int, std::vector< DetId >>  ,
std::map< int, std::vector< DTRecSegment4D >>  ,
std::map< int, std::vector< CSCSegment >>   
)
private

Definition at line 400 of file DynamicTruncation.cc.

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

402  {
403  for (map<int, vector<DetId> >::iterator it = compatibleIds.begin(); it != compatibleIds.end(); ++it) {
404  DTRecSegment4D bestDTSeg;
405  CSCSegment bestCSCSeg;
406  double bestDTEstimator = MAX_THR;
407  double bestCSCEstimator = MAX_THR;
408  double initThr = MAX_THR;
409  vector<DTRecSegment4D> dtSegs = dtSegMap[it->first];
410  vector<CSCSegment> cscSegs = cscSegMap[it->first];
411 
412  // DT case: find the most compatible segment
413  TrajectoryStateOnSurface tsosDTlayer;
414  testDTstation(prelFitState, dtSegs, bestDTEstimator, bestDTSeg, tsosDTlayer);
415 
416  // CSC case: find the most compatible segment
417  TrajectoryStateOnSurface tsosCSClayer;
418  testCSCstation(prelFitState, cscSegs, bestCSCEstimator, bestCSCSeg, tsosCSClayer);
419 
420  // Decide whether to keep the layer or not
421  if (bestDTEstimator == MAX_THR && bestCSCEstimator == MAX_THR)
422  continue;
423  if (bestDTEstimator <= bestCSCEstimator) {
424  getThresholdFromCFG(initThr, DetId(bestDTSeg.chamberId()));
425  if (bestDTEstimator >= initThr)
426  continue;
427  prelFitMeas.push_back(theMuonRecHitBuilder->build(&bestDTSeg));
428  auto aSegRH = prelFitMeas.back();
429  auto uRes = updatorHandle->update(tsosDTlayer, *aSegRH);
430  if (uRes.isValid()) {
431  prelFitState = uRes;
432  } else {
433  prelFitMeas.pop_back();
434  }
435  } else {
436  getThresholdFromCFG(initThr, DetId(bestCSCSeg.cscDetId()));
437  if (bestCSCEstimator >= initThr)
438  continue;
439  prelFitMeas.push_back(theMuonRecHitBuilder->build(&bestCSCSeg));
440  auto aSegRH = prelFitMeas.back();
441  auto uRes = updatorHandle->update(tsosCSClayer, *aSegRH);
442  if (uRes.isValid()) {
443  prelFitState = uRes;
444  } else {
445  prelFitMeas.pop_back();
446  }
447  }
448  }
449  if (!prelFitMeas.empty())
450  prelFitMeas.pop_back();
451  for (auto imrh = prelFitMeas.rbegin(); imrh != prelFitMeas.rend(); ++imrh) {
452  DetId id = (*imrh)->geographicalId();
454  if (tmp.isValid())
455  prelFitState = tmp;
456  }
459 }
edm::ESHandle< Propagator > propagatorPF
T perp() const
Definition: PV3DBase.h:69
CSCDetId cscDetId() const
Definition: CSCSegment.h:70
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:37
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:17
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
Definition: Propagator.h:50
T eta() const
Definition: PV3DBase.h:73
GlobalVector globalMomentum() const
const GeomDet * idToDet(DetId) const override
tmp
align.sh
Definition: createJobs.py:716
edm::ESHandle< GlobalTrackingGeometry > theG
void getThresholdFromCFG(double &, DetId const &)
void DynamicTruncation::setEtaRegion ( )
private

Definition at line 528 of file DynamicTruncation.cc.

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

528  {
529  float absEta = std::abs(eta_reco);
530  // Defaul value for muons with abs(eta) > 2.4
532 
533  if (absEta <= 0.8)
535  else if (absEta <= 1.2)
537  else if (absEta <= 2.0)
539  else if (absEta <= 2.2)
541  else if (absEta <= 2.4)
543 }
dyt_utils::etaRegion region
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
void DynamicTruncation::setParThrsMode ( bool  dytParThrsMode)
inline

Definition at line 68 of file DynamicTruncation.h.

Referenced by GlobalMuonRefitter::refit().

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

Definition at line 57 of file DynamicTruncation.h.

Referenced by GlobalMuonRefitter::refit().

58  {
59  getSegs->initCSU(DTSegProd, CSCSegProd);
60  }
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 117 of file DynamicTruncation.cc.

References GlobalMuonRefitter_cff::DYTselector, and Exception.

Referenced by GlobalMuonRefitter::refit().

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

Definition at line 130 of file DynamicTruncation.cc.

References Exception, mps_fire::i, and MAX_THR.

Referenced by GlobalMuonRefitter::refit().

130  {
131  if (thr.size() == 2) {
132  for (unsigned int i = 0; i < thr.size(); i++)
133  if (thr[i] >= 0)
134  Thrs.push_back(thr[i]);
135  else
136  Thrs.push_back(MAX_THR);
137  return;
138  }
139  throw cms::Exception("NotAvailable")
140  << "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, edm::ParameterSet::getParameter(), and HLT_2018_cff::region.

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 128 of file DynamicTruncation.cc.

Referenced by GlobalMuonRefitter::refit().

128 { doUpdateOfKFStates = upState; }
void DynamicTruncation::setUseAPE ( bool  useAPE_)

Definition at line 126 of file DynamicTruncation.cc.

Referenced by GlobalMuonRefitter::refit().

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

Definition at line 559 of file DynamicTruncation.cc.

References mps_fire::i, dqmiolumiharvest::j, mag(), dqmiodumpmetadata::n, and edm::swap().

559  {
560  unsigned int i = 0;
561  unsigned int j = 0;
563  for (i = 1; i < n; ++i)
564  for (j = n - 1; j >= i; --j)
565  if (recHits[j - 1]->globalPosition().mag() > recHits[j]->globalPosition().mag())
566  swap(recHits[j - 1], recHits[j]);
567 }
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:117
int DynamicTruncation::stationfromDet ( DetId const &  det)
private

Definition at line 236 of file DynamicTruncation.cc.

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

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

Definition at line 355 of file DynamicTruncation.cc.

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

359  {
360  if (segments.empty())
361  return;
362  for (unsigned int iSeg = 0; iSeg < segments.size(); iSeg++) {
363  CSCDetId chamber(segments[iSeg].cscDetId());
364  if (!propagator->propagate(startingState, theG->idToDet(chamber)->surface()).isValid())
365  continue;
366  tsoscsc = propagator->propagate(startingState, theG->idToDet(chamber)->surface());
367  //if (!tsoscsc.isValid()) continue;
368  LocalError apeLoc;
369  if (useAPE)
371  StateSegmentMatcher estim(tsoscsc, segments[iSeg], apeLoc);
372  double estimator = estim.value();
373  //cout << "estimator CSC = " << estimator << endl;
374  if (estimator >= bestEstimator)
375  continue;
376  bestEstimator = estimator;
377  bestSeg = segments[iSeg];
378  }
379 }
static GlobalError transform(const LocalError &le, const Surface &surf)
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
Definition: Propagator.h:50
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 328 of file DynamicTruncation.cc.

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

332  {
333  if (segments.empty())
334  return;
335  for (unsigned int iSeg = 0; iSeg < segments.size(); iSeg++) {
336  DTChamberId chamber(segments[iSeg].chamberId());
337  if (!propagator->propagate(startingState, theG->idToDet(chamber)->surface()).isValid())
338  continue;
339  tsosdt = propagator->propagate(startingState, theG->idToDet(chamber)->surface());
340  //if (!tsosdt.isValid()) continue;
341  LocalError apeLoc;
342  if (useAPE)
343  apeLoc = ErrorFrameTransformer().transform(dtApeMap.find(chamber)->second, theG->idToDet(chamber)->surface());
344  StateSegmentMatcher estim(tsosdt, segments[iSeg], apeLoc);
345  double estimator = estim.value();
346  //cout << "estimator DT = " << estimator << endl;
347  if (estimator >= bestEstimator)
348  continue;
349  bestEstimator = estimator;
350  bestSeg = segments[iSeg];
351  }
352 }
static GlobalError transform(const LocalError &le, const Surface &surf)
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
std::map< DTChamberId, GlobalError > dtApeMap
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
Definition: Propagator.h:50
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 72 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().

72  {
74  if (temp.isValid())
75  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 96 of file DynamicTruncation.cc.

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

96  {
97  ConstRecHitContainer tmprecHits;
98  vector<CSCRecHit2D> CSCrh = bestCSCSeg.specificRecHits();
99  for (vector<CSCRecHit2D>::iterator it = CSCrh.begin(); it != CSCrh.end(); ++it) {
100  tmprecHits.push_back(theMuonRecHitBuilder->build(&*it));
101  }
102  sort(tmprecHits);
103  for (ConstRecHitContainer::const_iterator it = tmprecHits.begin(); it != tmprecHits.end(); ++it) {
104  const CSCLayer *cscLayer = cscGeom->layer((*it)->det()->geographicalId());
106  if (temp.isValid()) {
107  TrajectoryStateOnSurface tempTsos = updatorHandle->update(temp, **it);
108  if (tempTsos.isValid())
109  tsos = tempTsos;
110  }
111  }
112 }
void sort(ConstRecHitContainer &)
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
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:50
edm::ESHandle< Propagator > propagator
const CSCLayer * layer(CSCDetId id) const
Return the layer corresponding to given DetId.
Definition: CSCGeometry.cc:105
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(), TrackCandidateProducer_cfi::propagator, DTRecSegment4D::recHits(), 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())
91  tsos = tempTsos;
92  }
93  }
94 }
void sort(ConstRecHitContainer &)
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
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:50
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 382 of file DynamicTruncation.cc.

References mps_fire::result.

382  {
383  result.push_back(theMuonRecHitBuilder->build(&bestDTSeg));
384  if (doUpdateOfKFStates)
385  updateWithDThits(currentState, bestDTSeg);
386  else
387  currentState = tsosDT;
388 }
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 391 of file DynamicTruncation.cc.

References mps_fire::result.

391  {
392  result.push_back(theMuonRecHitBuilder->build(&bestCSCSeg));
393  if (doUpdateOfKFStates)
394  updateWithCSChits(currentState, bestCSCSeg);
395  else
396  currentState = tsosCSC;
397 }
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 146 of file DynamicTruncation.h.

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

Definition at line 133 of file DynamicTruncation.h.

TrajectoryStateOnSurface DynamicTruncation::currentState
private

Definition at line 142 of file DynamicTruncation.h.

bool DynamicTruncation::doUpdateOfKFStates
private

Definition at line 152 of file DynamicTruncation.h.

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

Definition at line 145 of file DynamicTruncation.h.

reco::DYTInfo DynamicTruncation::dytInfo
private

Definition at line 144 of file DynamicTruncation.h.

int DynamicTruncation::DYTselector
private

Definition at line 128 of file DynamicTruncation.h.

const DYTThrObject* DynamicTruncation::dytThresholds
private

Definition at line 148 of file DynamicTruncation.h.

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

Definition at line 139 of file DynamicTruncation.h.

double DynamicTruncation::eta_reco
private

Definition at line 155 of file DynamicTruncation.h.

ChamberSegmentUtility* DynamicTruncation::getSegs
private

Definition at line 149 of file DynamicTruncation.h.

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

Definition at line 141 of file DynamicTruncation.h.

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

Definition at line 138 of file DynamicTruncation.h.

double DynamicTruncation::muonETAest
private

Definition at line 147 of file DynamicTruncation.h.

double DynamicTruncation::muonPTest
private

Definition at line 147 of file DynamicTruncation.h.

DirectMuonNavigation* DynamicTruncation::navigation
private

Definition at line 137 of file DynamicTruncation.h.

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

Definition at line 136 of file DynamicTruncation.h.

int DynamicTruncation::nStationsUsed
private

Definition at line 127 of file DynamicTruncation.h.

double DynamicTruncation::p_reco
private

Definition at line 154 of file DynamicTruncation.h.

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

Definition at line 124 of file DynamicTruncation.h.

TrajectoryStateOnSurface DynamicTruncation::prelFitState
private

Definition at line 143 of file DynamicTruncation.h.

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

Definition at line 129 of file DynamicTruncation.h.

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

Definition at line 131 of file DynamicTruncation.h.

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

Definition at line 130 of file DynamicTruncation.h.

dyt_utils::etaRegion DynamicTruncation::region
private

Definition at line 157 of file DynamicTruncation.h.

ConstRecHitContainer DynamicTruncation::result
private

Definition at line 124 of file DynamicTruncation.h.

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

Definition at line 132 of file DynamicTruncation.h.

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

Definition at line 134 of file DynamicTruncation.h.

ThrParameters* DynamicTruncation::thrManager
private

Definition at line 150 of file DynamicTruncation.h.

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

Definition at line 126 of file DynamicTruncation.h.

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

Definition at line 135 of file DynamicTruncation.h.

bool DynamicTruncation::useAPE
private

Definition at line 125 of file DynamicTruncation.h.

bool DynamicTruncation::useDBforThr
private

Definition at line 151 of file DynamicTruncation.h.

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

Definition at line 140 of file DynamicTruncation.h.

bool DynamicTruncation::useParametrizedThr
private

Definition at line 156 of file DynamicTruncation.h.