CMS 3D CMS Logo

List of all members | Classes | Public Types | Public Member Functions | Private Member Functions | Private Attributes
DynamicTruncation Class Reference

#include <DynamicTruncation.h>

Classes

struct  Config
 

Public Types

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

Public Member Functions

 DynamicTruncation (Config const &, const edm::EventSetup &, 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
 
std::unique_ptr< ChamberSegmentUtilitygetSegs
 
std::map< int, DetIdidChamberMap
 
edm::ESHandle< MagneticFieldmagfield
 
double muonETAest
 
double muonPTest
 
std::unique_ptr< 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
 
std::unique_ptr< 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

◆ ConstRecHitContainer

Definition at line 64 of file DynamicTruncation.h.

◆ ConstRecHitPointer

Definition at line 63 of file DynamicTruncation.h.

Constructor & Destructor Documentation

◆ DynamicTruncation()

DynamicTruncation::DynamicTruncation ( Config const &  config,
const edm::EventSetup eventSetup,
const MuonServiceProxy theService 
)

Definition at line 53 of file DynamicTruncation.cc.

References cscGeom, doUpdateOfKFStates, dytThresholds, options_cfi::eventSetup, getSegs, magfield, navigation, navMuon, propagator, propagatorCompatibleDet, propagatorPF, theG, theMuonRecHitBuilder, thrManager, updatorHandle, useDBforThr, and useParametrizedThr.

55  {
56  propagator = theService.propagator("SmartPropagatorAny");
57  propagatorPF = theService.propagator("SmartPropagatorAny");
58  propagatorCompatibleDet = theService.propagator("SmartPropagatorAny");
59  theG = theService.trackingGeometry();
60  theMuonRecHitBuilder = eventSetup.getHandle(config.muonRecHitBuilderToken_);
61  updatorHandle = eventSetup.getHandle(config.updatorToken_);
62  cscGeom = eventSetup.getHandle(config.cscGeomToken_);
63  navMuon = eventSetup.getHandle(config.navMuonToken_);
64  magfield = theService.magneticField();
65  navigation = std::make_unique<DirectMuonNavigation>(theService.detLayerGeometry());
66  getSegs = std::make_unique<ChamberSegmentUtility>();
67  {
68  edm::ESHandle<DYTThrObject> dytThresholdsH = eventSetup.getHandle(config.dytThresholdsToken_);
69  AlignmentErrorsExtended const &dtAlignmentErrorsExtended = eventSetup.getData(config.dtAlignmentErrorsToken_);
70  AlignmentErrorsExtended const &cscAlignmentErrorsExtended = eventSetup.getData(config.cscAlignmentErrorsToken_);
71 
72  thrManager = std::make_unique<ThrParameters>(dytThresholdsH, dtAlignmentErrorsExtended, cscAlignmentErrorsExtended);
73  }
74  useDBforThr = thrManager->isValidThdDB();
75  dytThresholds = nullptr;
76  if (useDBforThr)
77  dytThresholds = thrManager->getInitialThresholds();
78 
79  doUpdateOfKFStates = true;
80  useParametrizedThr = false;
81 }
edm::ESHandle< Propagator > propagatorPF
edm::ESHandle< Propagator > propagatorCompatibleDet
Definition: config.py:1
std::unique_ptr< ChamberSegmentUtility > getSegs
edm::ESHandle< MuonDetLayerGeometry > navMuon
std::unique_ptr< ThrParameters > thrManager
edm::ESHandle< TrajectoryStateUpdator > updatorHandle
edm::ESHandle< TransientTrackingRecHitBuilder > theMuonRecHitBuilder
std::unique_ptr< DirectMuonNavigation > navigation
const DYTThrObject * dytThresholds
edm::ESHandle< Propagator > propagator
edm::ESHandle< MagneticField > magfield
edm::ESHandle< GlobalTrackingGeometry > theG
edm::ESHandle< CSCGeometry > cscGeom

◆ ~DynamicTruncation()

DynamicTruncation::~DynamicTruncation ( )

Definition at line 83 of file DynamicTruncation.cc.

83 {}

Member Function Documentation

◆ chooseLayers()

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

References DTRecSegment4D::chamberId(), CSCSegment::cscDetId(), DYTselector, getThresholdFromCFG(), getThresholdFromDB(), MAX_THR, useDBforThr, and useSegment().

Referenced by filteringAlgo().

481  {
482  double initThr = MAX_THR;
483  if (bestDTEstimator == MAX_THR && bestCSCEstimator == MAX_THR)
484  return false;
485  if (bestDTEstimator <= bestCSCEstimator) {
486  // Get threshold for the chamber
487  if (useDBforThr)
488  getThresholdFromDB(initThr, DetId(bestDTSeg.chamberId()));
489  else
490  getThresholdFromCFG(initThr, DetId(bestDTSeg.chamberId()));
491  if (DYTselector == 0 || (DYTselector == 1 && bestDTEstimator < initThr) ||
492  (DYTselector == 2 && incompLayers < 2 && bestDTEstimator < initThr)) {
493  useSegment(bestDTSeg, tsosDT);
494  return true;
495  }
496  } else {
497  // Get threshold for the chamber
498  if (useDBforThr)
499  getThresholdFromDB(initThr, DetId(bestCSCSeg.cscDetId()));
500  else
501  getThresholdFromCFG(initThr, DetId(bestCSCSeg.cscDetId()));
502  if (DYTselector == 0 || (DYTselector == 1 && bestCSCEstimator < initThr) ||
503  (DYTselector == 2 && incompLayers < 2 && bestCSCEstimator < initThr)) {
504  useSegment(bestCSCSeg, tsosCSC);
505  return true;
506  }
507  }
508  return false;
509 }
void useSegment(DTRecSegment4D const &, TrajectoryStateOnSurface const &)
void getThresholdFromDB(double &, DetId const &)
#define MAX_THR
Definition: DetId.h:17
void getThresholdFromCFG(double &, DetId const &)

◆ compatibleDets()

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

Definition at line 290 of file DynamicTruncation.cc.

References alongMomentum, Chi2MeasurementEstimator_cfi::Chi2MeasurementEstimator, GeomDetEnumerators::CSC, currentState, GeomDetEnumerators::DT, dqmdumpme::first, TrajectoryStateOnSurface::freeState(), l1ctLayer2EG_cff::id, navigation, and propagatorCompatibleDet.

Referenced by filteringAlgo().

290  {
291  MuonPatternRecoDumper dumper;
292  MeasurementEstimator *theEstimator = new Chi2MeasurementEstimator(1000, 1000);
293  vector<const DetLayer *> navLayers;
294  navLayers = navigation->compatibleLayers(*(currentState.freeState()), alongMomentum);
295  unsigned int ilayerCorrected = 0;
296  for (unsigned int ilayer = 0; ilayer < navLayers.size(); ilayer++) {
297  // Skip RPC layers
298  if (navLayers[ilayer]->subDetector() != GeomDetEnumerators::DT &&
299  navLayers[ilayer]->subDetector() != GeomDetEnumerators::CSC)
300  continue;
301  ilayerCorrected++;
302  vector<DetLayer::DetWithState> comps =
303  navLayers[ilayer]->compatibleDets(currentState, *propagatorCompatibleDet, *theEstimator);
304  //cout << comps.size() << " compatible Dets with " << navLayers[ilayer]->subDetector() << " Layer " << ilayer << " "
305  //<< dumper.dumpLayer(navLayers[ilayer]);
306  if (!comps.empty()) {
307  for (unsigned int icomp = 0; icomp < comps.size(); icomp++) {
308  DetId id(comps[icomp].first->geographicalId().rawId());
309  detMap[ilayerCorrected].push_back(id);
310  }
311  }
312  }
313  if (theEstimator)
314  delete theEstimator;
315 }
TrajectoryStateOnSurface currentState
edm::ESHandle< Propagator > propagatorCompatibleDet
std::unique_ptr< DirectMuonNavigation > navigation
Definition: DetId.h:17
FreeTrajectoryState const * freeState(bool withErrors=true) const

◆ correctThrByPAndEta()

void DynamicTruncation::correctThrByPAndEta ( double &  thr)
private

Definition at line 526 of file DynamicTruncation.cc.

References dyt_utils::eta2p0, dyt_utils::eta2p2, dyt_utils::eta2p4, LaserDQM_cfg::p1, p_reco, parameters, funct::pow(), and region.

Referenced by getThresholdFromCFG(), and getThresholdFromDB().

526  {
527  auto parametricThreshold = [this] {
528  double thr50 = this->parameters[this->region].at(0);
529  double p0 = this->parameters[this->region].at(1);
530  double p1 = this->parameters[this->region].at(2);
531  return thr50 * (1 + p0 * p_reco + std::pow(this->p_reco, p1));
532  };
533 
534  std::set<dyt_utils::etaRegion> regionsToExclude = {
536 
537  if (!regionsToExclude.count(this->region))
538  thr = parametricThreshold();
539 }
dyt_utils::etaRegion region
std::map< dyt_utils::etaRegion, std::vector< double > > parameters
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:29

◆ fillDYTInfos()

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

References DTRecSegment4D::chamberId(), CSCSegment::cscDetId(), estimatorMap, l1ctLayer2EG_cff::id, idChamberMap, nStationsUsed, and usedStationMap.

Referenced by filteringAlgo().

268  {
269  if (chosenLayer) {
270  nStationsUsed++;
271  incompConLay = 0;
272  if (bestDTEstimator <= bestCSCEstimator) {
273  estimatorMap[st] = bestDTEstimator;
274  DetId id(bestDTSeg.chamberId());
275  idChamberMap[st] = id;
276  } else {
277  DetId id(bestCSCSeg.cscDetId());
278  idChamberMap[st] = id;
279  estimatorMap[st] = bestCSCEstimator;
280  }
281  usedStationMap[st] = true;
282  } else {
283  incompConLay++;
284  estimatorMap[st] = -1;
285  usedStationMap[st] = false;
286  }
287 }
std::map< int, bool > usedStationMap
std::map< int, DetId > idChamberMap
Definition: DetId.h:17
std::map< int, double > estimatorMap

◆ fillSegmentMaps()

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

References MuonSubdetId::CSC, MuonSubdetId::DT, getSegs, ALPAKA_ACCELERATOR_NAMESPACE::vertexFinder::it, dqmiolumiharvest::j, dqmdumpme::k, genParticles_cff::map, and createJobs::tmp.

Referenced by filteringAlgo().

320  {
321  for (map<int, vector<DetId> >::iterator it = compatibleIds.begin(); it != compatibleIds.end(); ++it) {
322  vector<DetId> ids = compatibleIds[it->first];
323  for (unsigned j = 0; j < ids.size(); j++) {
324  if (ids[j].subdetId() == MuonSubdetId::CSC) {
325  CSCDetId ch(ids[j]);
326  vector<CSCSegment> tmp = getSegs->getCSCSegmentsInChamber(ch);
327  for (unsigned int k = 0; k < tmp.size(); k++)
328  cscSegMap[it->first].push_back(tmp[k]);
329  }
330  if (ids[j].subdetId() == MuonSubdetId::DT) {
331  DTChamberId ch(ids[j]);
332  vector<DTRecSegment4D> tmp = getSegs->getDTSegmentsInChamber(ch);
333  for (unsigned int k = 0; k < tmp.size(); k++)
334  dtSegMap[it->first].push_back(tmp[k]);
335  }
336  }
337  }
338 }
std::unique_ptr< 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

◆ filter()

TransientTrackingRecHit::ConstRecHitContainer DynamicTruncation::filter ( const Trajectory traj)

Definition at line 166 of file DynamicTruncation.cc.

References cscApeMap, currentState, dtApeMap, filteringAlgo(), TrajectoryMeasurement::forwardPredictedState(), TrajectoryStateOnSurface::globalPosition(), PV3DBase< T, PVType, FrameType >::mag(), Trajectory::measurements(), prelFitMeas, prelFitState, TrajectoryMeasurement::recHit(), result, thrManager, DetId::Tracker, and update().

Referenced by GlobalMuonRefitter::refit().

166  {
167  result.clear();
168  prelFitMeas.clear();
169 
170  // Get APE maps
171  dtApeMap = thrManager->GetDTApeMap();
172  cscApeMap = thrManager->GetCSCApeMap();
173 
174  // Get Last tracker TSOS (updated)
175  vector<TrajectoryMeasurement> muonMeasurements = traj.measurements();
176  TrajectoryMeasurement lastTKm = muonMeasurements.front();
177  for (vector<TrajectoryMeasurement>::const_iterator imT = muonMeasurements.begin(); imT != muonMeasurements.end();
178  imT++) {
179  if (!(*imT).recHit()->isValid())
180  continue;
181  const TransientTrackingRecHit *hit = &(*(*imT).recHit());
182  if (hit->geographicalId().det() == DetId::Tracker) {
183  result.push_back((*imT).recHit());
184  if (!(*imT).forwardPredictedState().isValid())
185  continue;
186  if ((*imT).forwardPredictedState().globalPosition().mag() >
188  lastTKm = *imT;
189  }
190  }
192  update(currentState, lastTKm.recHit());
193 
195  update(prelFitState, lastTKm.recHit());
197 
198  // Run the DYT
199  filteringAlgo();
200 
201  return result;
202 }
TrajectoryStateOnSurface currentState
TrajectoryStateOnSurface const & forwardPredictedState() const
Access to forward predicted state (from fitter or builder)
DataContainer const & measurements() const
Definition: Trajectory.h:178
TrajectoryStateOnSurface prelFitState
GlobalPoint globalPosition() const
ConstRecHitContainer result
T mag() const
Definition: PV3DBase.h:64
std::unique_ptr< ThrParameters > thrManager
ConstRecHitContainer prelFitMeas
std::map< DTChamberId, GlobalError > dtApeMap
void update(TrajectoryStateOnSurface &, ConstRecHitPointer)
std::map< CSCDetId, GlobalError > cscApeMap
ConstRecHitPointer const & recHit() const

◆ filteringAlgo()

void DynamicTruncation::filteringAlgo ( )
private

Definition at line 205 of file DynamicTruncation.cc.

References chooseLayers(), compatibleDets(), currentState, fillDYTInfos(), fillSegmentMaps(), ALPAKA_ACCELERATOR_NAMESPACE::vertexFinder::it, genParticles_cff::map, MAX_THR, nStationsUsed, preliminaryFit(), stationfromDet(), testCSCstation(), testDTstation(), and useDBforThr.

Referenced by filter().

205  {
206  map<int, vector<DetId> > compatibleIds;
207  map<int, vector<DTRecSegment4D> > dtSegMap;
208  map<int, vector<CSCSegment> > cscSegMap;
209  int incompConLay = 0;
210  nStationsUsed = 0;
211 
212  // Get list of compatible layers
213  compatibleDets(currentState, compatibleIds);
214 
215  // Fill segment maps
216  fillSegmentMaps(compatibleIds, dtSegMap, cscSegMap);
217 
218  // Do a preliminary fit
219  if (useDBforThr)
220  preliminaryFit(compatibleIds, dtSegMap, cscSegMap);
221 
222  // Loop on compatible layers
223  for (map<int, vector<DetId> >::iterator it = compatibleIds.begin(); it != compatibleIds.end(); ++it) {
224  int stLayer = stationfromDet(it->second.front());
225  DTRecSegment4D bestDTSeg;
226  CSCSegment bestCSCSeg;
227  double bestDTEstimator = MAX_THR;
228  double bestCSCEstimator = MAX_THR;
229  vector<DTRecSegment4D> dtSegs = dtSegMap[it->first];
230  vector<CSCSegment> cscSegs = cscSegMap[it->first];
231 
232  // DT case: find the most compatible segment
233  TrajectoryStateOnSurface tsosDTlayer;
234  testDTstation(currentState, dtSegs, bestDTEstimator, bestDTSeg, tsosDTlayer);
235 
236  // CSC case: find the most compatible segment
237  TrajectoryStateOnSurface tsosCSClayer;
238  testCSCstation(currentState, cscSegs, bestCSCEstimator, bestCSCSeg, tsosCSClayer);
239 
240  // Decide whether to keep the layer or not
241  bool chosenLayer =
242  chooseLayers(incompConLay, bestDTEstimator, bestDTSeg, tsosDTlayer, bestCSCEstimator, bestCSCSeg, tsosCSClayer);
243  fillDYTInfos(stLayer, chosenLayer, incompConLay, bestDTEstimator, bestCSCEstimator, bestDTSeg, bestCSCSeg);
244  }
245  //cout << "Number of used stations = " << nStationsUsed << endl;
246 }
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 &)

◆ getDYTInfo()

reco::DYTInfo DynamicTruncation::getDYTInfo ( )
inline

Definition at line 92 of file DynamicTruncation.h.

References dytInfo, estimatorMap, idChamberMap, nStationsUsed, reco::DYTInfo::setDYTEstimators(), reco::DYTInfo::setIdChambers(), reco::DYTInfo::setNStUsed(), reco::DYTInfo::setUsedStations(), and usedStationMap.

Referenced by GlobalMuonRefitter::refit().

92  {
97  return dytInfo;
98  }
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

◆ getThresholdFromCFG()

void DynamicTruncation::getThresholdFromCFG ( double &  thr,
DetId const &  id 
)
private

Definition at line 559 of file DynamicTruncation.cc.

References correctThrByPAndEta(), MuonSubdetId::CSC, MuonSubdetId::DT, Thrs, and useParametrizedThr.

Referenced by chooseLayers(), and preliminaryFit().

559  {
560  if (id.subdetId() == MuonSubdetId::DT) {
561  thr = Thrs[0];
562  }
563  if (id.subdetId() == MuonSubdetId::CSC) {
564  thr = Thrs[1];
565  }
566 
567  if (useParametrizedThr)
568  correctThrByPAndEta(thr);
569 }
void correctThrByPAndEta(double &)
std::vector< int > Thrs
static constexpr int DT
Definition: MuonSubdetId.h:11
static constexpr int CSC
Definition: MuonSubdetId.h:12

◆ getThresholdFromDB()

void DynamicTruncation::getThresholdFromDB ( double &  thr,
DetId const &  id 
)
private

Definition at line 512 of file DynamicTruncation.cc.

References correctThrByPAndEta(), dytThresholds, ALPAKA_ACCELERATOR_NAMESPACE::vertexFinder::it, getGTfromDQMFile::obj, DYTThrObject::thrsVec, and useParametrizedThr.

Referenced by chooseLayers().

512  {
513  vector<DYTThrObject::DytThrStruct> thrvector = dytThresholds->thrsVec;
514  for (vector<DYTThrObject::DytThrStruct>::const_iterator it = thrvector.begin(); it != thrvector.end(); it++) {
516  if (obj.id == id) {
517  thr = obj.thr;
518  break;
519  }
520  }
521  if (useParametrizedThr)
522  correctThrByPAndEta(thr);
523 }
void correctThrByPAndEta(double &)
std::vector< DytThrStruct > thrsVec
Definition: DYTThrObject.h:19
const DYTThrObject * dytThresholds

◆ preliminaryFit()

void DynamicTruncation::preliminaryFit ( std::map< int, std::vector< DetId >>  ,
std::map< int, std::vector< DTRecSegment4D >>   
)
private

Definition at line 413 of file DynamicTruncation.cc.

References TransientTrackingRecHitBuilder::build(), DTRecSegment4D::chamberId(), CSCSegment::cscDetId(), PV3DBase< T, PVType, FrameType >::eta(), getThresholdFromCFG(), TrajectoryStateOnSurface::globalMomentum(), GlobalTrackingGeometry::idToDet(), ALPAKA_ACCELERATOR_NAMESPACE::vertexFinder::it, genParticles_cff::map, MAX_THR, muonETAest, muonPTest, PV3DBase< T, PVType, FrameType >::perp(), prelFitMeas, prelFitState, Propagator::propagate(), propagatorPF, GeomDet::surface(), testCSCstation(), testDTstation(), theG, theMuonRecHitBuilder, createJobs::tmp, TrajectoryStateUpdator::update(), and updatorHandle.

Referenced by filteringAlgo().

415  {
416  for (map<int, vector<DetId> >::iterator it = compatibleIds.begin(); it != compatibleIds.end(); ++it) {
417  DTRecSegment4D bestDTSeg;
418  CSCSegment bestCSCSeg;
419  double bestDTEstimator = MAX_THR;
420  double bestCSCEstimator = MAX_THR;
421  double initThr = MAX_THR;
422  vector<DTRecSegment4D> dtSegs = dtSegMap[it->first];
423  vector<CSCSegment> cscSegs = cscSegMap[it->first];
424 
425  // DT case: find the most compatible segment
426  TrajectoryStateOnSurface tsosDTlayer;
427  testDTstation(prelFitState, dtSegs, bestDTEstimator, bestDTSeg, tsosDTlayer);
428 
429  // CSC case: find the most compatible segment
430  TrajectoryStateOnSurface tsosCSClayer;
431  testCSCstation(prelFitState, cscSegs, bestCSCEstimator, bestCSCSeg, tsosCSClayer);
432 
433  // Decide whether to keep the layer or not
434  if (bestDTEstimator == MAX_THR && bestCSCEstimator == MAX_THR)
435  continue;
436  if (bestDTEstimator <= bestCSCEstimator) {
437  getThresholdFromCFG(initThr, DetId(bestDTSeg.chamberId()));
438  if (bestDTEstimator >= initThr)
439  continue;
440  prelFitMeas.push_back(theMuonRecHitBuilder->build(&bestDTSeg));
441  auto aSegRH = prelFitMeas.back();
442  auto uRes = updatorHandle->update(tsosDTlayer, *aSegRH);
443  if (uRes.isValid()) {
444  prelFitState = uRes;
445  } else {
446  prelFitMeas.pop_back();
447  }
448  } else {
449  getThresholdFromCFG(initThr, DetId(bestCSCSeg.cscDetId()));
450  if (bestCSCEstimator >= initThr)
451  continue;
452  prelFitMeas.push_back(theMuonRecHitBuilder->build(&bestCSCSeg));
453  auto aSegRH = prelFitMeas.back();
454  auto uRes = updatorHandle->update(tsosCSClayer, *aSegRH);
455  if (uRes.isValid()) {
456  prelFitState = uRes;
457  } else {
458  prelFitMeas.pop_back();
459  }
460  }
461  }
462  if (!prelFitMeas.empty())
463  prelFitMeas.pop_back();
464  for (auto imrh = prelFitMeas.rbegin(); imrh != prelFitMeas.rend(); ++imrh) {
465  DetId id = (*imrh)->geographicalId();
467  if (tmp.isValid())
468  prelFitState = tmp;
469  }
472 }
edm::ESHandle< Propagator > propagatorPF
T perp() const
Definition: PV3DBase.h:69
virtual DTChamberId chamberId() const
The (specific) DetId of the chamber on which the segment resides.
T eta() const
Definition: PV3DBase.h:73
void testDTstation(TrajectoryStateOnSurface &, std::vector< DTRecSegment4D > const &, double &, DTRecSegment4D &, TrajectoryStateOnSurface &)
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
Definition: Propagator.h:50
const GeomDet * idToDet(DetId) const override
TrajectoryStateOnSurface prelFitState
virtual TrajectoryStateOnSurface update(const TrajectoryStateOnSurface &, const TrackingRecHit &) const =0
virtual RecHitPointer build(const TrackingRecHit *p) const =0
build a tracking rechit from an existing rechit
void testCSCstation(TrajectoryStateOnSurface &, std::vector< CSCSegment > const &, double &, CSCSegment &, TrajectoryStateOnSurface &)
edm::ESHandle< TrajectoryStateUpdator > updatorHandle
ConstRecHitContainer prelFitMeas
edm::ESHandle< TransientTrackingRecHitBuilder > theMuonRecHitBuilder
#define MAX_THR
Definition: DetId.h:17
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
CSCDetId cscDetId() const
Definition: CSCSegment.h:70
GlobalVector globalMomentum() const
tmp
align.sh
Definition: createJobs.py:716
edm::ESHandle< GlobalTrackingGeometry > theG
void getThresholdFromCFG(double &, DetId const &)

◆ setEtaRegion()

void DynamicTruncation::setEtaRegion ( )
private

Definition at line 541 of file DynamicTruncation.cc.

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

Referenced by setRecoEta().

541  {
542  float absEta = std::abs(eta_reco);
543  // Defaul value for muons with abs(eta) > 2.4
545 
546  if (absEta <= 0.8)
548  else if (absEta <= 1.2)
550  else if (absEta <= 2.0)
552  else if (absEta <= 2.2)
554  else if (absEta <= 2.4)
556 }
dyt_utils::etaRegion region
Abs< T >::type abs(const T &t)
Definition: Abs.h:22

◆ setParThrsMode()

void DynamicTruncation::setParThrsMode ( bool  dytParThrsMode)
inline

Definition at line 81 of file DynamicTruncation.h.

References useParametrizedThr.

Referenced by GlobalMuonRefitter::refit().

81 { useParametrizedThr = dytParThrsMode; }

◆ setProd()

void DynamicTruncation::setProd ( const edm::Handle< DTRecSegment4DCollection > &  DTSegProd,
const edm::Handle< CSCSegmentCollection > &  CSCSegProd 
)
inline

Definition at line 70 of file DynamicTruncation.h.

References getSegs.

Referenced by GlobalMuonRefitter::refit().

71  {
72  getSegs->initCSU(DTSegProd, CSCSegProd);
73  }
std::unique_ptr< ChamberSegmentUtility > getSegs

◆ setRecoEta()

void DynamicTruncation::setRecoEta ( double  eta)
inline

Definition at line 83 of file DynamicTruncation.h.

References PVValHelper::eta, eta_reco, and setEtaRegion().

Referenced by GlobalMuonRefitter::refit().

◆ setRecoP()

void DynamicTruncation::setRecoP ( double  p)
inline

◆ setSelector()

void DynamicTruncation::setSelector ( int  selector)

Definition at line 130 of file DynamicTruncation.cc.

References DYTselector, Exception, and collectionMerger::selector.

Referenced by GlobalMuonRefitter::refit().

130  {
131  if (selector < 0 || selector > 2)
132  throw cms::Exception("NotAvailable") << "DYT selector: wrong option!" << endl;
133  //if (selector == 0) cout << "[DYT disabled]\n";
134  //if (selector == 1) cout << "[use all compatible stations]\n";
135  //if (selector == 2) cout << "[stop at second consecutive incompatible station]\n";
137 }

◆ setThr()

void DynamicTruncation::setThr ( const std::vector< int > &  thr)

Definition at line 143 of file DynamicTruncation.cc.

References Exception, mps_fire::i, MAX_THR, and Thrs.

Referenced by GlobalMuonRefitter::refit().

143  {
144  if (thr.size() == 2) {
145  for (unsigned int i = 0; i < thr.size(); i++)
146  if (thr[i] >= 0)
147  Thrs.push_back(thr[i]);
148  else
149  Thrs.push_back(MAX_THR);
150  return;
151  }
152  throw cms::Exception("NotAvailable")
153  << "WARNING: wrong size for the threshold vector!\nExpected size: 2\n Found size: " << thr.size();
154 }
#define MAX_THR
std::vector< int > Thrs

◆ setThrsMap()

void DynamicTruncation::setThrsMap ( const edm::ParameterSet par)

Definition at line 156 of file DynamicTruncation.cc.

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

Referenced by GlobalMuonRefitter::refit().

156  {
157  for (auto const &region : dyt_utils::etaRegionStr) {
158  parameters[region.first] = par.getParameter<std::vector<double> >(region.second);
159  }
160 }
dyt_utils::etaRegion region
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
std::map< dyt_utils::etaRegion, std::vector< double > > parameters
static const std::map< etaRegion, std::string > etaRegionStr

◆ setUpdateState()

void DynamicTruncation::setUpdateState ( bool  upState)

Definition at line 141 of file DynamicTruncation.cc.

References doUpdateOfKFStates.

Referenced by GlobalMuonRefitter::refit().

141 { doUpdateOfKFStates = upState; }

◆ setUseAPE()

void DynamicTruncation::setUseAPE ( bool  useAPE_)

Definition at line 139 of file DynamicTruncation.cc.

References useAPE.

Referenced by GlobalMuonRefitter::refit().

139 { useAPE = useAPE_; }

◆ sort()

void DynamicTruncation::sort ( ConstRecHitContainer recHits)
private

Definition at line 572 of file DynamicTruncation.cc.

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

Referenced by updateWithCSChits(), and updateWithDThits().

572  {
573  unsigned int i = 0;
574  unsigned int j = 0;
576  for (i = 1; i < n; ++i)
577  for (j = n - 1; j >= i; --j)
578  if (recHits[j - 1]->globalPosition().mag() > recHits[j]->globalPosition().mag())
579  swap(recHits[j - 1], recHits[j]);
580 }
uint16_t size_type
void swap(Association< C > &lhs, Association< C > &rhs)
Definition: Association.h:112
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())

◆ stationfromDet()

int DynamicTruncation::stationfromDet ( DetId const &  det)
private

Definition at line 249 of file DynamicTruncation.cc.

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

Referenced by filteringAlgo().

249  {
250  if (det.subdetId() == MuonSubdetId::CSC) {
251  CSCDetId ch(det);
252  return ch.station();
253  }
254  if (det.subdetId() == MuonSubdetId::DT) {
255  DTChamberId ch(det);
256  return ch.station();
257  }
258  return 0;
259 }
static constexpr int DT
Definition: MuonSubdetId.h:11
static constexpr int CSC
Definition: MuonSubdetId.h:12

◆ testCSCstation()

void DynamicTruncation::testCSCstation ( TrajectoryStateOnSurface startingState,
std::vector< CSCSegment > const &  segments,
double &  bestEstimator,
CSCSegment bestSeg,
TrajectoryStateOnSurface tsoscsc 
)
private

Definition at line 368 of file DynamicTruncation.cc.

References relativeConstraints::chamber, cscApeMap, GlobalTrackingGeometry::idToDet(), sistrip::SpyUtilities::isValid(), Propagator::propagate(), propagator, GeomDet::surface(), theG, ErrorFrameTransformer::transform(), useAPE, and StateSegmentMatcher::value().

Referenced by filteringAlgo(), and preliminaryFit().

372  {
373  if (segments.empty())
374  return;
375  for (unsigned int iSeg = 0; iSeg < segments.size(); iSeg++) {
376  CSCDetId chamber(segments[iSeg].cscDetId());
377  if (!propagator->propagate(startingState, theG->idToDet(chamber)->surface()).isValid())
378  continue;
379  tsoscsc = propagator->propagate(startingState, theG->idToDet(chamber)->surface());
380  //if (!tsoscsc.isValid()) continue;
381  LocalError apeLoc;
382  if (useAPE)
384  StateSegmentMatcher estim(tsoscsc, segments[iSeg], apeLoc);
385  double estimator = estim.value();
386  //cout << "estimator CSC = " << estimator << endl;
387  if (estimator >= bestEstimator)
388  continue;
389  bestEstimator = estimator;
390  bestSeg = segments[iSeg];
391  }
392 }
static GlobalError transform(const LocalError &le, const Surface &surf)
const bool isValid(const Frame &aFrame, const FrameQuality &aQuality, const uint16_t aExpectedPos)
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
Definition: Propagator.h:50
const GeomDet * idToDet(DetId) const override
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
edm::ESHandle< Propagator > propagator
std::map< CSCDetId, GlobalError > cscApeMap
edm::ESHandle< GlobalTrackingGeometry > theG

◆ testDTstation()

void DynamicTruncation::testDTstation ( TrajectoryStateOnSurface startingState,
std::vector< DTRecSegment4D > const &  segments,
double &  bestEstimator,
DTRecSegment4D bestSeg,
TrajectoryStateOnSurface tsosdt 
)
private

Definition at line 341 of file DynamicTruncation.cc.

References relativeConstraints::chamber, dtApeMap, GlobalTrackingGeometry::idToDet(), sistrip::SpyUtilities::isValid(), Propagator::propagate(), propagator, GeomDet::surface(), theG, ErrorFrameTransformer::transform(), useAPE, and StateSegmentMatcher::value().

Referenced by filteringAlgo(), and preliminaryFit().

345  {
346  if (segments.empty())
347  return;
348  for (unsigned int iSeg = 0; iSeg < segments.size(); iSeg++) {
349  DTChamberId chamber(segments[iSeg].chamberId());
350  if (!propagator->propagate(startingState, theG->idToDet(chamber)->surface()).isValid())
351  continue;
352  tsosdt = propagator->propagate(startingState, theG->idToDet(chamber)->surface());
353  //if (!tsosdt.isValid()) continue;
354  LocalError apeLoc;
355  if (useAPE)
356  apeLoc = ErrorFrameTransformer().transform(dtApeMap.find(chamber)->second, theG->idToDet(chamber)->surface());
357  StateSegmentMatcher estim(tsosdt, segments[iSeg], apeLoc);
358  double estimator = estim.value();
359  //cout << "estimator DT = " << estimator << endl;
360  if (estimator >= bestEstimator)
361  continue;
362  bestEstimator = estimator;
363  bestSeg = segments[iSeg];
364  }
365 }
static GlobalError transform(const LocalError &le, const Surface &surf)
const bool isValid(const Frame &aFrame, const FrameQuality &aQuality, const uint16_t aExpectedPos)
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
Definition: Propagator.h:50
const GeomDet * idToDet(DetId) const override
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
std::map< DTChamberId, GlobalError > dtApeMap
edm::ESHandle< Propagator > propagator
edm::ESHandle< GlobalTrackingGeometry > theG

◆ update()

void DynamicTruncation::update ( TrajectoryStateOnSurface tsos,
ConstRecHitPointer  rechit 
)
private

Definition at line 85 of file DynamicTruncation.cc.

References groupFilesInBlocks::temp, TrajectoryStateUpdator::update(), and updatorHandle.

Referenced by progressbar.ProgressBar::__next__(), MatrixUtil.Matrix::__setitem__(), MatrixUtil.Steps::__setitem__(), filter(), progressbar.ProgressBar::finish(), and MatrixUtil.Steps::overwrite().

85  {
87  if (temp.isValid())
88  tsos = updatorHandle->update(tsos, *rechit);
89 }
virtual TrajectoryStateOnSurface update(const TrajectoryStateOnSurface &, const TrackingRecHit &) const =0
edm::ESHandle< TrajectoryStateUpdator > updatorHandle

◆ updateWithCSChits()

void DynamicTruncation::updateWithCSChits ( TrajectoryStateOnSurface tsos,
CSCSegment const &  bestCSCSeg 
)
private

Definition at line 109 of file DynamicTruncation.cc.

References TransientTrackingRecHitBuilder::build(), cscGeom, TrajectoryStateOnSurface::isValid(), ALPAKA_ACCELERATOR_NAMESPACE::vertexFinder::it, CSCGeometry::layer(), Propagator::propagate(), propagator, sort(), CSCSegment::specificRecHits(), GeomDet::surface(), groupFilesInBlocks::temp, theMuonRecHitBuilder, TrajectoryStateUpdator::update(), and updatorHandle.

Referenced by useSegment().

109  {
110  ConstRecHitContainer tmprecHits;
111  vector<CSCRecHit2D> CSCrh = bestCSCSeg.specificRecHits();
112  for (vector<CSCRecHit2D>::iterator it = CSCrh.begin(); it != CSCrh.end(); ++it) {
113  tmprecHits.push_back(theMuonRecHitBuilder->build(&*it));
114  }
115  sort(tmprecHits);
116  for (ConstRecHitContainer::const_iterator it = tmprecHits.begin(); it != tmprecHits.end(); ++it) {
117  const CSCLayer *cscLayer = cscGeom->layer((*it)->det()->geographicalId());
119  if (temp.isValid()) {
121  if (tempTsos.isValid())
122  tsos = tempTsos;
123  }
124  }
125 }
void sort(ConstRecHitContainer &)
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
Definition: Propagator.h:50
virtual TrajectoryStateOnSurface update(const TrajectoryStateOnSurface &, const TrackingRecHit &) const =0
virtual RecHitPointer build(const TrackingRecHit *p) const =0
build a tracking rechit from an existing rechit
edm::ESHandle< TrajectoryStateUpdator > updatorHandle
edm::ESHandle< TransientTrackingRecHitBuilder > theMuonRecHitBuilder
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
edm::ESHandle< Propagator > propagator
TransientTrackingRecHit::ConstRecHitContainer ConstRecHitContainer
const CSCLayer * layer(CSCDetId id) const
Return the layer corresponding to given DetId.
Definition: CSCGeometry.cc:105
edm::ESHandle< CSCGeometry > cscGeom

◆ updateWithDThits()

void DynamicTruncation::updateWithDThits ( TrajectoryStateOnSurface tsos,
DTRecSegment4D const &  bestDTSeg 
)
private

Definition at line 91 of file DynamicTruncation.cc.

References TransientTrackingRecHitBuilder::build(), GlobalTrackingGeometry::idToDet(), TrajectoryStateOnSurface::isValid(), ALPAKA_ACCELERATOR_NAMESPACE::vertexFinder::it, Propagator::propagate(), propagator, DTRecSegment4D::recHits(), sort(), GeomDet::surface(), groupFilesInBlocks::temp, theG, theMuonRecHitBuilder, TrajectoryStateUpdator::update(), and updatorHandle.

Referenced by useSegment().

91  {
92  ConstRecHitContainer tmprecHits;
93  vector<const TrackingRecHit *> DTrh = bestDTSeg.recHits();
94  for (vector<const TrackingRecHit *>::iterator it = DTrh.begin(); it != DTrh.end(); it++) {
95  tmprecHits.push_back(theMuonRecHitBuilder->build(*it));
96  }
97  sort(tmprecHits);
98  for (ConstRecHitContainer::const_iterator it = tmprecHits.begin(); it != tmprecHits.end(); ++it) {
99  DTLayerId layid((*it)->det()->geographicalId());
101  if (temp.isValid()) {
103  if (tempTsos.isValid())
104  tsos = tempTsos;
105  }
106  }
107 }
void sort(ConstRecHitContainer &)
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
Definition: Propagator.h:50
const GeomDet * idToDet(DetId) const override
virtual TrajectoryStateOnSurface update(const TrajectoryStateOnSurface &, const TrackingRecHit &) const =0
virtual RecHitPointer build(const TrackingRecHit *p) const =0
build a tracking rechit from an existing rechit
edm::ESHandle< TrajectoryStateUpdator > updatorHandle
edm::ESHandle< TransientTrackingRecHitBuilder > theMuonRecHitBuilder
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
edm::ESHandle< Propagator > propagator
TransientTrackingRecHit::ConstRecHitContainer ConstRecHitContainer
edm::ESHandle< GlobalTrackingGeometry > theG

◆ useSegment() [1/2]

void DynamicTruncation::useSegment ( DTRecSegment4D const &  bestDTSeg,
TrajectoryStateOnSurface const &  tsosDT 
)
private

Definition at line 395 of file DynamicTruncation.cc.

References TransientTrackingRecHitBuilder::build(), currentState, doUpdateOfKFStates, result, theMuonRecHitBuilder, and updateWithDThits().

Referenced by chooseLayers().

395  {
396  result.push_back(theMuonRecHitBuilder->build(&bestDTSeg));
397  if (doUpdateOfKFStates)
398  updateWithDThits(currentState, bestDTSeg);
399  else
400  currentState = tsosDT;
401 }
TrajectoryStateOnSurface currentState
ConstRecHitContainer result
virtual RecHitPointer build(const TrackingRecHit *p) const =0
build a tracking rechit from an existing rechit
edm::ESHandle< TransientTrackingRecHitBuilder > theMuonRecHitBuilder
void updateWithDThits(TrajectoryStateOnSurface &, DTRecSegment4D const &)

◆ useSegment() [2/2]

void DynamicTruncation::useSegment ( CSCSegment const &  bestCSCSeg,
TrajectoryStateOnSurface const &  tsosCSC 
)
private

Definition at line 404 of file DynamicTruncation.cc.

References TransientTrackingRecHitBuilder::build(), currentState, doUpdateOfKFStates, result, theMuonRecHitBuilder, and updateWithCSChits().

404  {
405  result.push_back(theMuonRecHitBuilder->build(&bestCSCSeg));
406  if (doUpdateOfKFStates)
407  updateWithCSChits(currentState, bestCSCSeg);
408  else
409  currentState = tsosCSC;
410 }
TrajectoryStateOnSurface currentState
void updateWithCSChits(TrajectoryStateOnSurface &, CSCSegment const &)
ConstRecHitContainer result
virtual RecHitPointer build(const TrackingRecHit *p) const =0
build a tracking rechit from an existing rechit
edm::ESHandle< TransientTrackingRecHitBuilder > theMuonRecHitBuilder

Member Data Documentation

◆ cscApeMap

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

Definition at line 159 of file DynamicTruncation.h.

Referenced by filter(), and testCSCstation().

◆ cscGeom

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

Definition at line 146 of file DynamicTruncation.h.

Referenced by DynamicTruncation(), and updateWithCSChits().

◆ currentState

TrajectoryStateOnSurface DynamicTruncation::currentState
private

Definition at line 155 of file DynamicTruncation.h.

Referenced by compatibleDets(), filter(), filteringAlgo(), and useSegment().

◆ doUpdateOfKFStates

bool DynamicTruncation::doUpdateOfKFStates
private

Definition at line 165 of file DynamicTruncation.h.

Referenced by DynamicTruncation(), setUpdateState(), and useSegment().

◆ dtApeMap

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

Definition at line 158 of file DynamicTruncation.h.

Referenced by filter(), and testDTstation().

◆ dytInfo

reco::DYTInfo DynamicTruncation::dytInfo
private

Definition at line 157 of file DynamicTruncation.h.

Referenced by getDYTInfo().

◆ DYTselector

int DynamicTruncation::DYTselector
private

Definition at line 141 of file DynamicTruncation.h.

Referenced by chooseLayers(), and setSelector().

◆ dytThresholds

const DYTThrObject* DynamicTruncation::dytThresholds
private

Definition at line 161 of file DynamicTruncation.h.

Referenced by DynamicTruncation(), and getThresholdFromDB().

◆ estimatorMap

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

Definition at line 152 of file DynamicTruncation.h.

Referenced by fillDYTInfos(), and getDYTInfo().

◆ eta_reco

double DynamicTruncation::eta_reco
private

Definition at line 168 of file DynamicTruncation.h.

Referenced by setEtaRegion(), and setRecoEta().

◆ getSegs

std::unique_ptr<ChamberSegmentUtility> DynamicTruncation::getSegs
private

Definition at line 162 of file DynamicTruncation.h.

Referenced by DynamicTruncation(), fillSegmentMaps(), and setProd().

◆ idChamberMap

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

Definition at line 154 of file DynamicTruncation.h.

Referenced by fillDYTInfos(), and getDYTInfo().

◆ magfield

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

Definition at line 151 of file DynamicTruncation.h.

Referenced by DynamicTruncation().

◆ muonETAest

double DynamicTruncation::muonETAest
private

Definition at line 160 of file DynamicTruncation.h.

Referenced by preliminaryFit().

◆ muonPTest

double DynamicTruncation::muonPTest
private

Definition at line 160 of file DynamicTruncation.h.

Referenced by preliminaryFit().

◆ navigation

std::unique_ptr<DirectMuonNavigation> DynamicTruncation::navigation
private

Definition at line 150 of file DynamicTruncation.h.

Referenced by compatibleDets(), and DynamicTruncation().

◆ navMuon

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

Definition at line 149 of file DynamicTruncation.h.

Referenced by DynamicTruncation().

◆ nStationsUsed

int DynamicTruncation::nStationsUsed
private

Definition at line 140 of file DynamicTruncation.h.

Referenced by fillDYTInfos(), filteringAlgo(), and getDYTInfo().

◆ p_reco

double DynamicTruncation::p_reco
private

Definition at line 167 of file DynamicTruncation.h.

Referenced by correctThrByPAndEta(), and setRecoP().

◆ parameters

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

Definition at line 171 of file DynamicTruncation.h.

Referenced by correctThrByPAndEta(), and setThrsMap().

◆ prelFitMeas

ConstRecHitContainer DynamicTruncation::prelFitMeas
private

Definition at line 137 of file DynamicTruncation.h.

Referenced by filter(), and preliminaryFit().

◆ prelFitState

TrajectoryStateOnSurface DynamicTruncation::prelFitState
private

Definition at line 156 of file DynamicTruncation.h.

Referenced by filter(), and preliminaryFit().

◆ propagator

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

◆ propagatorCompatibleDet

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

Definition at line 144 of file DynamicTruncation.h.

Referenced by compatibleDets(), and DynamicTruncation().

◆ propagatorPF

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

Definition at line 143 of file DynamicTruncation.h.

Referenced by DynamicTruncation(), and preliminaryFit().

◆ region

dyt_utils::etaRegion DynamicTruncation::region
private

Definition at line 170 of file DynamicTruncation.h.

Referenced by correctThrByPAndEta(), setEtaRegion(), and setThrsMap().

◆ result

ConstRecHitContainer DynamicTruncation::result
private

Definition at line 137 of file DynamicTruncation.h.

Referenced by filter(), and useSegment().

◆ theG

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

◆ theMuonRecHitBuilder

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

◆ thrManager

std::unique_ptr<ThrParameters> DynamicTruncation::thrManager
private

Definition at line 163 of file DynamicTruncation.h.

Referenced by DynamicTruncation(), and filter().

◆ Thrs

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

Definition at line 139 of file DynamicTruncation.h.

Referenced by getThresholdFromCFG(), and setThr().

◆ updatorHandle

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

◆ useAPE

bool DynamicTruncation::useAPE
private

Definition at line 138 of file DynamicTruncation.h.

Referenced by setUseAPE(), testCSCstation(), and testDTstation().

◆ useDBforThr

bool DynamicTruncation::useDBforThr
private

Definition at line 164 of file DynamicTruncation.h.

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

◆ usedStationMap

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

Definition at line 153 of file DynamicTruncation.h.

Referenced by fillDYTInfos(), and getDYTInfo().

◆ useParametrizedThr

bool DynamicTruncation::useParametrizedThr
private