CMS 3D CMS Logo

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

#include <TSGFromPropagation.h>

Inheritance diagram for TSGFromPropagation:
TrackerSeedGenerator

Classes

struct  increasingEstimate
 
struct  isInvalid
 

Public Member Functions

void init (const MuonServiceProxy *) override
 initialize More...
 
void setEvent (const edm::Event &) override
 set an event More...
 
void trackerSeeds (const TrackCand &, const TrackingRegion &, const TrackerTopology *, std::vector< TrajectorySeed > &) override
 generate seed(s) for a track More...
 
 TSGFromPropagation (const edm::ParameterSet &par, edm::ConsumesCollector &iC, const MuonServiceProxy *)
 
 TSGFromPropagation (const edm::ParameterSet &pset, edm::ConsumesCollector &iC)
 constructor More...
 
 ~TSGFromPropagation () override
 destructor More...
 
- Public Member Functions inherited from TrackerSeedGenerator
const edm::EventgetEvent () const
 
 TrackerSeedGenerator ()
 
virtual void trackerSeeds (const TrackCand &, const TrackingRegion &, const TrackerTopology *, BTSeedCollection &)
 
virtual ~TrackerSeedGenerator ()
 destructor More...
 

Private Member Functions

void adjust (FreeTrajectoryState &) const
 adjust the error matrix of the FTS More...
 
void adjust (TrajectoryStateOnSurface &) const
 adjust the error matrix of the TSOS More...
 
TrajectorySeed createSeed (const TrajectoryStateOnSurface &, const DetId &) const
 create a hitless seed from a trajectory state More...
 
TrajectorySeed createSeed (const TrajectoryStateOnSurface &tsos, const edm::OwnVector< TrackingRecHit > &container, const DetId &id) const
 create a seed from a trajectory state More...
 
double dxyDis (const TrajectoryStateOnSurface &tsos) const
 
const Chi2MeasurementEstimatorestimator () const
 
std::vector< TrajectoryMeasurementfindMeasurements (const DetLayer *, const TrajectoryStateOnSurface &) const
 look for measurements on the first compatible layer More...
 
void getRescalingFactor (const TrackCand &staMuon)
 
TrajectoryStateOnSurface innerState (const TrackCand &) const
 
TrajectoryStateOnSurface outerTkState (const TrackCand &) const
 
bool passSelection (const TrajectoryStateOnSurface &) const
 check some quantity and beam-spot compatibility and decide to continue More...
 
edm::ESHandle< Propagatorpropagator () const
 
const TrajectoryStateUpdatorupdator () const
 
void validMeasurements (std::vector< TrajectoryMeasurement > &) const
 select valid measurements More...
 
double zDis (const TrajectoryStateOnSurface &tsos) const
 

Private Attributes

edm::Handle< reco::BeamSpotbeamSpot
 
bool theAdjustAtIp
 
edm::InputTag theBeamSpotInputTag
 
edm::EDGetTokenT< reco::BeamSpottheBeamSpotToken
 
unsigned long long theCacheId_MT
 
unsigned long long theCacheId_TG
 
std::string theCategory
 
edm::ParameterSet theConfig
 
MuonErrorMatrixtheErrorMatrixAdjuster
 
const Chi2MeasurementEstimatortheEstimator
 
double theFixedErrorRescaling
 
double theFlexErrorRescaling
 
double theMaxChi2
 
edm::ESHandle< MeasurementTrackertheMeasTracker
 
edm::Handle< MeasurementTrackerEventtheMeasTrackerEvent
 
std::string theMeasTrackerName
 
edm::InputTag theMeasurementTrackerEventTag
 
edm::EDGetTokenT< MeasurementTrackerEventtheMeasurementTrackerEventToken
 
const DirectTrackerNavigationtheNavigation
 
std::string thePropagatorName
 
std::string theResetMethod
 
bool theSelectStateFlag
 
const MuonServiceProxytheService
 
double theSigmaZ
 
edm::ESHandle< GeometricSearchTrackertheTracker
 
TrajectoryStateTransformtheTSTransformer
 
bool theUpdateStateFlag
 
const TrajectoryStateUpdatortheUpdator
 
bool theUseVertexStateFlag
 

Additional Inherited Members

- Public Types inherited from TrackerSeedGenerator
typedef std::vector< TrajectorySeedBTSeedCollection
 
typedef std::pair< const Trajectory *, reco::TrackRefTrackCand
 
- Protected Attributes inherited from TrackerSeedGenerator
const edm::EventtheEvent
 
const MuonServiceProxytheProxyService
 

Detailed Description

Author
Chang Liu - Purdue University

Tracker Seed Generator by propagating and updating a standAlone muon to the first 2 (or 1) rechits it meets in tracker system

Author
Chang Liu - Purdue University

Definition at line 31 of file TSGFromPropagation.h.

Constructor & Destructor Documentation

◆ TSGFromPropagation() [1/2]

TSGFromPropagation::TSGFromPropagation ( const edm::ParameterSet pset,
edm::ConsumesCollector iC 
)

constructor

Definition at line 29 of file TSGFromPropagation.cc.

30  : TSGFromPropagation(iConfig, iC, nullptr) {}

◆ TSGFromPropagation() [2/2]

TSGFromPropagation::TSGFromPropagation ( const edm::ParameterSet par,
edm::ConsumesCollector iC,
const MuonServiceProxy service 
)

◆ ~TSGFromPropagation()

TSGFromPropagation::~TSGFromPropagation ( )
override

destructor

Definition at line 52 of file TSGFromPropagation.cc.

52  {
53  LogTrace(theCategory) << " TSGFromPropagation dtor called ";
54  if (theNavigation)
55  delete theNavigation;
56  if (theUpdator)
57  delete theUpdator;
58  if (theEstimator)
59  delete theEstimator;
62 }

References LogTrace, theCategory, theErrorMatrixAdjuster, theEstimator, theNavigation, and theUpdator.

Member Function Documentation

◆ adjust() [1/2]

void TSGFromPropagation::adjust ( FreeTrajectoryState state) const
private

adjust the error matrix of the FTS

Definition at line 356 of file TSGFromPropagation.cc.

356  {
357  //rescale the error
358  if (theResetMethod == "discreate") {
360  return;
361  }
362 
363  //rescale the error
364  if (theResetMethod == "fixed" || !theErrorMatrixAdjuster) {
366  return;
367  }
368 
370  CurvilinearTrajectoryError sfMat = theErrorMatrixAdjuster->get(state.momentum()); //FIXME with position
371  MuonErrorMatrix::multiply(oMat, sfMat);
372 
373  state = FreeTrajectoryState(state.parameters(), oMat);
374 }

References FreeTrajectoryState::curvilinearError(), MuonErrorMatrix::get(), FreeTrajectoryState::momentum(), MuonErrorMatrix::multiply(), FreeTrajectoryState::parameters(), FreeTrajectoryState::rescaleError(), theErrorMatrixAdjuster, theFixedErrorRescaling, theFlexErrorRescaling, and theResetMethod.

Referenced by innerState(), and outerTkState().

◆ adjust() [2/2]

void TSGFromPropagation::adjust ( TrajectoryStateOnSurface state) const
private

◆ createSeed() [1/2]

TrajectorySeed TSGFromPropagation::createSeed ( const TrajectoryStateOnSurface tsos,
const DetId id 
) const
private

create a hitless seed from a trajectory state

Definition at line 274 of file TSGFromPropagation.cc.

274  {
276  return createSeed(tsos, container, id);
277 }

Referenced by trackerSeeds().

◆ createSeed() [2/2]

TrajectorySeed TSGFromPropagation::createSeed ( const TrajectoryStateOnSurface tsos,
const edm::OwnVector< TrackingRecHit > &  container,
const DetId id 
) const
private

create a seed from a trajectory state

Definition at line 279 of file TSGFromPropagation.cc.

281  {
282  PTrajectoryStateOnDet const& seedTSOS = trajectoryStateTransform::persistentState(tsos, id.rawId());
283  return TrajectorySeed(seedTSOS, container, oppositeToMomentum);
284 }

References oppositeToMomentum, and trajectoryStateTransform::persistentState().

◆ dxyDis()

double TSGFromPropagation::dxyDis ( const TrajectoryStateOnSurface tsos) const
private

◆ estimator()

const Chi2MeasurementEstimator* TSGFromPropagation::estimator ( void  ) const
inlineprivate

Definition at line 60 of file TSGFromPropagation.h.

60 { return theEstimator; }

References theEstimator.

Referenced by findMeasurements(), and trackerSeeds().

◆ findMeasurements()

std::vector< TrajectoryMeasurement > TSGFromPropagation::findMeasurements ( const DetLayer nl,
const TrajectoryStateOnSurface staState 
) const
private

look for measurements on the first compatible layer

Definition at line 292 of file TSGFromPropagation.cc.

293  {
294  std::vector<TrajectoryMeasurement> result;
295 
296  std::vector<DetLayer::DetWithState> compatDets = nl->compatibleDets(staState, *propagator(), *estimator());
297  if (compatDets.empty())
298  return result;
299 
300  for (std::vector<DetLayer::DetWithState>::const_iterator idws = compatDets.begin(); idws != compatDets.end();
301  ++idws) {
302  if (idws->second.isValid() && (idws->first)) {
303  std::vector<TrajectoryMeasurement> tmptm =
304  theMeasTrackerEvent->idToDet(idws->first->geographicalId())
305  .fastMeasurements(idws->second, idws->second, *propagator(), *estimator());
306  validMeasurements(tmptm);
307  // if ( tmptm.size() > 2 ) {
308  // std::stable_sort(tmptm.begin(),tmptm.end(),increasingEstimate());
309  // result.insert(result.end(),tmptm.begin(), tmptm.begin()+2);
310  // } else {
311  result.insert(result.end(), tmptm.begin(), tmptm.end());
312  // }
313  }
314  }
315 
316  return result;
317 }

References GeometricSearchDet::compatibleDets(), estimator(), MeasurementTrackerEvent::idToDet(), propagator(), mps_fire::result, theMeasTrackerEvent, and validMeasurements().

Referenced by trackerSeeds().

◆ getRescalingFactor()

void TSGFromPropagation::getRescalingFactor ( const TrackCand staMuon)
private

Definition at line 345 of file TSGFromPropagation.cc.

345  {
346  float pt = (staMuon.second)->pt();
347  if (pt < 13.0)
349  else if (pt < 30.0)
351  else
353  return;
354 }

References DiDispStaMuonMonitor_cfi::pt, and theFlexErrorRescaling.

Referenced by trackerSeeds().

◆ init()

void TSGFromPropagation::init ( const MuonServiceProxy service)
overridevirtual

initialize

Reimplemented from TrackerSeedGenerator.

Definition at line 151 of file TSGFromPropagation.cc.

151  {
152  theMaxChi2 = theConfig.getParameter<double>("MaxChi2");
153 
154  theFixedErrorRescaling = theConfig.getParameter<double>("ErrorRescaling");
155 
156  theFlexErrorRescaling = 1.0;
157 
159 
160  if (theResetMethod != "discrete" && theResetMethod != "fixed" && theResetMethod != "matrix") {
161  edm::LogError("TSGFromPropagation") << "Wrong error rescaling method: " << theResetMethod << "\n"
162  << "Possible choices are: discrete, fixed, matrix.\n"
163  << "Use discrete method" << std::endl;
164  theResetMethod = "discrete";
165  }
166 
168 
169  theCacheId_MT = 0;
170 
171  theCacheId_TG = 0;
172 
174 
176 
177  theUseVertexStateFlag = theConfig.getParameter<bool>("UseVertexState");
178 
179  theUpdateStateFlag = theConfig.getParameter<bool>("UpdateState");
180 
181  theSelectStateFlag = theConfig.getParameter<bool>("SelectState");
182 
183  theUpdator = new KFUpdator();
184 
185  theSigmaZ = theConfig.getParameter<double>("SigmaZ");
186 
187  //theBeamSpotInputTag = theConfig.getParameter<edm::InputTag>("beamSpot");
188 
190  if (theResetMethod == "matrix" && !errorMatrixPset.empty()) {
191  theAdjustAtIp = errorMatrixPset.getParameter<bool>("atIP");
193  } else {
194  theAdjustAtIp = false;
195  theErrorMatrixAdjuster = nullptr;
196  }
197 
200 }

References Chi2MeasurementEstimator_cfi::Chi2MeasurementEstimator, HLT_2018_cff::errorMatrixPset, MuonServiceProxy::eventSetup(), edm::EventSetup::get(), get, edm::ParameterSet::getParameter(), AlCaHLTBitMon_QueryRunRegistry::string, theAdjustAtIp, theCacheId_MT, theCacheId_TG, theConfig, theErrorMatrixAdjuster, theEstimator, theFixedErrorRescaling, theFlexErrorRescaling, theMaxChi2, theNavigation, thePropagatorName, theResetMethod, theSelectStateFlag, theService, theSigmaZ, theTracker, theUpdateStateFlag, theUpdator, and theUseVertexStateFlag.

◆ innerState()

TrajectoryStateOnSurface TSGFromPropagation::innerState ( const TrackCand staMuon) const
private

Definition at line 235 of file TSGFromPropagation.cc.

235  {
236  TrajectoryStateOnSurface innerTS;
237 
238  if (staMuon.first && staMuon.first->isValid()) {
239  if (staMuon.first->direction() == alongMomentum) {
240  innerTS = staMuon.first->firstMeasurement().updatedState();
241  } else if (staMuon.first->direction() == oppositeToMomentum) {
242  innerTS = staMuon.first->lastMeasurement().updatedState();
243  }
244  } else {
246  *(staMuon.second), *theService->trackingGeometry(), &*theService->magneticField());
247  }
248  //rescale the error
249  adjust(innerTS);
250 
251  return innerTS;
252 
253  // return trajectoryStateTransform::innerStateOnSurface(*(staMuon.second),*theService->trackingGeometry(), &*theService->magneticField());
254 }

References adjust(), alongMomentum, trajectoryStateTransform::innerStateOnSurface(), MuonServiceProxy::magneticField(), oppositeToMomentum, theService, and MuonServiceProxy::trackingGeometry().

Referenced by outerTkState().

◆ outerTkState()

TrajectoryStateOnSurface TSGFromPropagation::outerTkState ( const TrackCand staMuon) const
private

Definition at line 256 of file TSGFromPropagation.cc.

256  {
258 
259  if (theUseVertexStateFlag && staMuon.second->pt() > 1.0) {
260  FreeTrajectoryState iniState =
262  //rescale the error at IP
263  adjust(iniState);
264 
265  StateOnTrackerBound fromInside(&*(theService->propagator("PropagatorWithMaterial")));
266  result = fromInside(iniState);
267  } else {
268  StateOnTrackerBound fromOutside(&*propagator());
269  result = fromOutside(innerState(staMuon));
270  }
271  return result;
272 }

References adjust(), trajectoryStateTransform::initialFreeState(), innerState(), MuonServiceProxy::magneticField(), propagator(), MuonServiceProxy::propagator(), mps_fire::result, theService, and theUseVertexStateFlag.

Referenced by trackerSeeds().

◆ passSelection()

bool TSGFromPropagation::passSelection ( const TrajectoryStateOnSurface tsos) const
private

check some quantity and beam-spot compatibility and decide to continue

Definition at line 319 of file TSGFromPropagation.cc.

319  {
320  if (!theSelectStateFlag)
321  return true;
322  else {
323  if (beamSpot.isValid()) {
324  return ((fabs(zDis(tsos) - beamSpot->z0()) < theSigmaZ));
325 
326  } else {
327  return ((fabs(zDis(tsos)) < theSigmaZ));
328  // double theDxyCut = 100;
329  // return ( (zDis(tsos) < theSigmaZ) && (dxyDis(tsos) < theDxyCut) );
330  }
331  }
332 }

References beamSpot, edm::HandleBase::isValid(), theSelectStateFlag, theSigmaZ, reco::BeamSpot::z0(), and zDis().

Referenced by trackerSeeds().

◆ propagator()

edm::ESHandle<Propagator> TSGFromPropagation::propagator ( ) const
inlineprivate

◆ setEvent()

void TSGFromPropagation::setEvent ( const edm::Event iEvent)
overridevirtual

set an event

Reimplemented from TrackerSeedGenerator.

Definition at line 202 of file TSGFromPropagation.cc.

202  {
203  iEvent.getByToken(theBeamSpotToken, beamSpot);
204 
205  unsigned long long newCacheId_MT = theService->eventSetup().get<CkfComponentsRecord>().cacheIdentifier();
206 
207  if (theUpdateStateFlag && newCacheId_MT != theCacheId_MT) {
208  LogTrace(theCategory) << "Measurment Tracker Geometry changed!";
209  theCacheId_MT = newCacheId_MT;
211  }
212 
213  if (theUpdateStateFlag) {
215  }
216 
217  bool trackerGeomChanged = false;
218 
219  unsigned long long newCacheId_TG = theService->eventSetup().get<TrackerRecoGeometryRecord>().cacheIdentifier();
220 
221  if (newCacheId_TG != theCacheId_TG) {
222  LogTrace(theCategory) << "Tracker Reco Geometry changed!";
223  theCacheId_TG = newCacheId_TG;
225  trackerGeomChanged = true;
226  }
227 
228  if (trackerGeomChanged && (theTracker.product() != nullptr)) {
229  if (theNavigation)
230  delete theNavigation;
232  }
233 }

References beamSpot, MuonServiceProxy::eventSetup(), edm::EventSetup::get(), get, iEvent, LogTrace, edm::ESHandle< T >::product(), theBeamSpotToken, theCacheId_MT, theCacheId_TG, theCategory, theMeasTracker, theMeasTrackerEvent, theMeasTrackerName, theMeasurementTrackerEventToken, theNavigation, theService, theTracker, and theUpdateStateFlag.

◆ trackerSeeds()

void TSGFromPropagation::trackerSeeds ( const TrackCand staMuon,
const TrackingRegion region,
const TrackerTopology tTopo,
std::vector< TrajectorySeed > &  result 
)
override

generate seed(s) for a track

Definition at line 64 of file TSGFromPropagation.cc.

67  {
68  if (theResetMethod == "discrete")
69  getRescalingFactor(staMuon);
70 
71  TrajectoryStateOnSurface staState = outerTkState(staMuon);
72 
73  if (!staState.isValid()) {
74  LogTrace(theCategory) << "Error: initial state from L2 muon is invalid.";
75  return;
76  }
77 
78  LogTrace(theCategory) << "begin of trackerSeed:\n staState pos: " << staState.globalPosition()
79  << " mom: " << staState.globalMomentum() << "pos eta: " << staState.globalPosition().eta()
80  << "mom eta: " << staState.globalMomentum().eta();
81 
82  std::vector<const DetLayer*> nls = theNavigation->compatibleLayers(*(staState.freeState()), oppositeToMomentum);
83 
84  LogTrace(theCategory) << " compatible layers: " << nls.size();
85 
86  if (nls.empty())
87  return;
88 
89  int ndesLayer = 0;
90 
91  bool usePredictedState = false;
92 
93  if (theUpdateStateFlag) { //use updated states
94  std::vector<TrajectoryMeasurement> alltm;
95 
96  for (std::vector<const DetLayer*>::const_iterator inl = nls.begin(); inl != nls.end(); inl++, ndesLayer++) {
97  if ((*inl == nullptr))
98  break;
99  // if ( (inl != nls.end()-1 ) && ( (*inl)->subDetector() == GeomDetEnumerators::TEC ) && ( (*(inl+1))->subDetector() == GeomDetEnumerators::TOB ) ) continue;
100  alltm = findMeasurements(*inl, staState);
101  if ((!alltm.empty())) {
102  LogTrace(theCategory) << "final compatible layer: " << ndesLayer;
103  break;
104  }
105  }
106 
107  if (alltm.empty()) {
108  LogTrace(theCategory) << " NO Measurements Found: eta: " << staState.globalPosition().eta() << "pt "
109  << staState.globalMomentum().perp();
110  usePredictedState = true;
111  } else {
112  LogTrace(theCategory) << " Measurements for seeds: " << alltm.size();
113  std::stable_sort(alltm.begin(), alltm.end(), increasingEstimate());
114  if (alltm.size() > 5)
115  alltm.erase(alltm.begin() + 5, alltm.end());
116 
117  int i = 0;
118  for (std::vector<TrajectoryMeasurement>::const_iterator itm = alltm.begin(); itm != alltm.end(); itm++, i++) {
119  TrajectoryStateOnSurface updatedTSOS = updator()->update(itm->predictedState(), *(itm->recHit()));
120  if (updatedTSOS.isValid() && passSelection(updatedTSOS)) {
122  container.push_back(itm->recHit()->hit()->clone());
123  TrajectorySeed ts = createSeed(updatedTSOS, container, itm->recHit()->geographicalId());
124  result.push_back(ts);
125  }
126  }
127  LogTrace(theCategory) << "result: " << result.size();
128  return;
129  }
130  }
131 
132  if (!theUpdateStateFlag || usePredictedState) { //use predicted states
133  LogTrace(theCategory) << "use predicted state: ";
134  for (std::vector<const DetLayer*>::const_iterator inl = nls.begin(); inl != nls.end(); inl++) {
135  if (!result.empty() || *inl == nullptr) {
136  break;
137  }
138  std::vector<DetLayer::DetWithState> compatDets = (*inl)->compatibleDets(staState, *propagator(), *estimator());
139  LogTrace(theCategory) << " compatDets " << compatDets.size();
140  if (compatDets.empty())
141  continue;
142  TrajectorySeed ts = createSeed(compatDets.front().second, compatDets.front().first->geographicalId());
143  result.push_back(ts);
144  }
145  LogTrace(theCategory) << "result: " << result.size();
146  return;
147  }
148  return;
149 }

References DirectTrackerNavigation::compatibleLayers(), createSeed(), estimator(), PV3DBase< T, PVType, FrameType >::eta(), findMeasurements(), TrajectoryStateOnSurface::freeState(), getRescalingFactor(), TrajectoryStateOnSurface::globalMomentum(), TrajectoryStateOnSurface::globalPosition(), mps_fire::i, TrajectoryStateOnSurface::isValid(), LogTrace, oppositeToMomentum, outerTkState(), passSelection(), PV3DBase< T, PVType, FrameType >::perp(), propagator(), edm::OwnVector< T, P >::push_back(), mps_fire::result, theCategory, theNavigation, theResetMethod, theUpdateStateFlag, TrajectoryStateUpdator::update(), and updator().

◆ updator()

const TrajectoryStateUpdator* TSGFromPropagation::updator ( ) const
inlineprivate

Definition at line 58 of file TSGFromPropagation.h.

58 { return theUpdator; }

References theUpdator.

Referenced by trackerSeeds().

◆ validMeasurements()

void TSGFromPropagation::validMeasurements ( std::vector< TrajectoryMeasurement > &  tms) const
private

select valid measurements

Definition at line 286 of file TSGFromPropagation.cc.

286  {
287  std::vector<TrajectoryMeasurement>::iterator tmsend = std::remove_if(tms.begin(), tms.end(), isInvalid());
288  tms.erase(tmsend, tms.end());
289  return;
290 }

Referenced by findMeasurements().

◆ zDis()

double TSGFromPropagation::zDis ( const TrajectoryStateOnSurface tsos) const
private

Member Data Documentation

◆ beamSpot

edm::Handle<reco::BeamSpot> TSGFromPropagation::beamSpot
private

Definition at line 152 of file TSGFromPropagation.h.

Referenced by passSelection(), and setEvent().

◆ theAdjustAtIp

bool TSGFromPropagation::theAdjustAtIp
private

Definition at line 146 of file TSGFromPropagation.h.

Referenced by init().

◆ theBeamSpotInputTag

edm::InputTag TSGFromPropagation::theBeamSpotInputTag
private

Definition at line 153 of file TSGFromPropagation.h.

Referenced by TSGFromPropagation().

◆ theBeamSpotToken

edm::EDGetTokenT<reco::BeamSpot> TSGFromPropagation::theBeamSpotToken
private

Definition at line 154 of file TSGFromPropagation.h.

Referenced by setEvent(), and TSGFromPropagation().

◆ theCacheId_MT

unsigned long long TSGFromPropagation::theCacheId_MT
private

Definition at line 106 of file TSGFromPropagation.h.

Referenced by init(), and setEvent().

◆ theCacheId_TG

unsigned long long TSGFromPropagation::theCacheId_TG
private

Definition at line 107 of file TSGFromPropagation.h.

Referenced by init(), and setEvent().

◆ theCategory

std::string TSGFromPropagation::theCategory
private

◆ theConfig

edm::ParameterSet TSGFromPropagation::theConfig
private

Definition at line 150 of file TSGFromPropagation.h.

Referenced by init(), and TSGFromPropagation().

◆ theErrorMatrixAdjuster

MuonErrorMatrix* TSGFromPropagation::theErrorMatrixAdjuster
private

Definition at line 144 of file TSGFromPropagation.h.

Referenced by adjust(), init(), and ~TSGFromPropagation().

◆ theEstimator

const Chi2MeasurementEstimator* TSGFromPropagation::theEstimator
private

Definition at line 124 of file TSGFromPropagation.h.

Referenced by estimator(), init(), and ~TSGFromPropagation().

◆ theFixedErrorRescaling

double TSGFromPropagation::theFixedErrorRescaling
private

Definition at line 132 of file TSGFromPropagation.h.

Referenced by adjust(), and init().

◆ theFlexErrorRescaling

double TSGFromPropagation::theFlexErrorRescaling
private

Definition at line 130 of file TSGFromPropagation.h.

Referenced by adjust(), getRescalingFactor(), and init().

◆ theMaxChi2

double TSGFromPropagation::theMaxChi2
private

Definition at line 128 of file TSGFromPropagation.h.

Referenced by init().

◆ theMeasTracker

edm::ESHandle<MeasurementTracker> TSGFromPropagation::theMeasTracker
private

Definition at line 114 of file TSGFromPropagation.h.

Referenced by setEvent().

◆ theMeasTrackerEvent

edm::Handle<MeasurementTrackerEvent> TSGFromPropagation::theMeasTrackerEvent
private

Definition at line 116 of file TSGFromPropagation.h.

Referenced by findMeasurements(), and setEvent().

◆ theMeasTrackerName

std::string TSGFromPropagation::theMeasTrackerName
private

Definition at line 113 of file TSGFromPropagation.h.

Referenced by setEvent(), and TSGFromPropagation().

◆ theMeasurementTrackerEventTag

edm::InputTag TSGFromPropagation::theMeasurementTrackerEventTag
private

Definition at line 115 of file TSGFromPropagation.h.

Referenced by TSGFromPropagation().

◆ theMeasurementTrackerEventToken

edm::EDGetTokenT<MeasurementTrackerEvent> TSGFromPropagation::theMeasurementTrackerEventToken
private

Definition at line 155 of file TSGFromPropagation.h.

Referenced by setEvent(), and TSGFromPropagation().

◆ theNavigation

const DirectTrackerNavigation* TSGFromPropagation::theNavigation
private

Definition at line 118 of file TSGFromPropagation.h.

Referenced by init(), setEvent(), trackerSeeds(), and ~TSGFromPropagation().

◆ thePropagatorName

std::string TSGFromPropagation::thePropagatorName
private

Definition at line 142 of file TSGFromPropagation.h.

Referenced by init(), and propagator().

◆ theResetMethod

std::string TSGFromPropagation::theResetMethod
private

Definition at line 138 of file TSGFromPropagation.h.

Referenced by adjust(), init(), and trackerSeeds().

◆ theSelectStateFlag

bool TSGFromPropagation::theSelectStateFlag
private

Definition at line 140 of file TSGFromPropagation.h.

Referenced by init(), and passSelection().

◆ theService

const MuonServiceProxy* TSGFromPropagation::theService
private

Definition at line 120 of file TSGFromPropagation.h.

Referenced by init(), innerState(), outerTkState(), propagator(), and setEvent().

◆ theSigmaZ

double TSGFromPropagation::theSigmaZ
private

Definition at line 148 of file TSGFromPropagation.h.

Referenced by init(), and passSelection().

◆ theTracker

edm::ESHandle<GeometricSearchTracker> TSGFromPropagation::theTracker
private

Definition at line 111 of file TSGFromPropagation.h.

Referenced by init(), and setEvent().

◆ theTSTransformer

TrajectoryStateTransform* TSGFromPropagation::theTSTransformer
private

Definition at line 126 of file TSGFromPropagation.h.

◆ theUpdateStateFlag

bool TSGFromPropagation::theUpdateStateFlag
private

Definition at line 136 of file TSGFromPropagation.h.

Referenced by init(), setEvent(), and trackerSeeds().

◆ theUpdator

const TrajectoryStateUpdator* TSGFromPropagation::theUpdator
private

Definition at line 122 of file TSGFromPropagation.h.

Referenced by init(), updator(), and ~TSGFromPropagation().

◆ theUseVertexStateFlag

bool TSGFromPropagation::theUseVertexStateFlag
private

Definition at line 134 of file TSGFromPropagation.h.

Referenced by init(), and outerTkState().

TSGFromPropagation::theBeamSpotInputTag
edm::InputTag theBeamSpotInputTag
Definition: TSGFromPropagation.h:153
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
TSGFromPropagation::innerState
TrajectoryStateOnSurface innerState(const TrackCand &) const
Definition: TSGFromPropagation.cc:235
FreeTrajectoryState::momentum
GlobalVector momentum() const
Definition: FreeTrajectoryState.h:68
service
Definition: service.py:1
mps_fire.i
i
Definition: mps_fire.py:355
TSGFromPropagation::theResetMethod
std::string theResetMethod
Definition: TSGFromPropagation.h:138
MuonErrorMatrix::multiply
static void multiply(CurvilinearTrajectoryError &initial_error, const CurvilinearTrajectoryError &scale_error)
multiply term by term the two matrix
Definition: MuonErrorMatrix.cc:449
trajectoryStateTransform::initialFreeState
FreeTrajectoryState initialFreeState(const reco::Track &tk, const MagneticField *field, bool withErr=true)
Definition: TrajectoryStateTransform.cc:58
TSGFromPropagation::findMeasurements
std::vector< TrajectoryMeasurement > findMeasurements(const DetLayer *, const TrajectoryStateOnSurface &) const
look for measurements on the first compatible layer
Definition: TSGFromPropagation.cc:292
TSGFromPropagation::theErrorMatrixAdjuster
MuonErrorMatrix * theErrorMatrixAdjuster
Definition: TSGFromPropagation.h:144
TSGFromPropagation::validMeasurements
void validMeasurements(std::vector< TrajectoryMeasurement > &) const
select valid measurements
Definition: TSGFromPropagation.cc:286
TSGFromPropagation::estimator
const Chi2MeasurementEstimator * estimator() const
Definition: TSGFromPropagation.h:60
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
TSGFromPropagation::passSelection
bool passSelection(const TrajectoryStateOnSurface &) const
check some quantity and beam-spot compatibility and decide to continue
Definition: TSGFromPropagation.cc:319
DiDispStaMuonMonitor_cfi.pt
pt
Definition: DiDispStaMuonMonitor_cfi.py:39
reco::BeamSpot::z0
double z0() const
z coordinate
Definition: BeamSpot.h:65
DirectTrackerNavigation::compatibleLayers
std::vector< const DetLayer * > compatibleLayers(const FreeTrajectoryState &fts, PropagationDirection timeDirection) const
find compatible layers for a given trajectory state
Definition: DirectTrackerNavigation.cc:38
TSGFromPropagation::theConfig
edm::ParameterSet theConfig
Definition: TSGFromPropagation.h:150
trajectoryStateTransform::persistentState
PTrajectoryStateOnDet persistentState(const TrajectoryStateOnSurface &ts, unsigned int detid)
Definition: TrajectoryStateTransform.cc:14
TrajectoryStateOnSurface::globalPosition
GlobalPoint globalPosition() const
Definition: TrajectoryStateOnSurface.h:65
TSGFromPropagation::theAdjustAtIp
bool theAdjustAtIp
Definition: TSGFromPropagation.h:146
oppositeToMomentum
Definition: PropagationDirection.h:4
TSGFromPropagation::theService
const MuonServiceProxy * theService
Definition: TSGFromPropagation.h:120
GeometricSearchDet::compatibleDets
virtual std::vector< DetWithState > compatibleDets(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const
Definition: GeometricSearchDet.cc:35
TSGFromPropagation::theSelectStateFlag
bool theSelectStateFlag
Definition: TSGFromPropagation.h:140
TrackerRecoGeometryRecord
Definition: TrackerRecoGeometryRecord.h:11
TSGFromPropagation::getRescalingFactor
void getRescalingFactor(const TrackCand &staMuon)
Definition: TSGFromPropagation.cc:345
TSGFromPropagation::propagator
edm::ESHandle< Propagator > propagator() const
Definition: TSGFromPropagation.h:62
PV3DBase::z
T z() const
Definition: PV3DBase.h:61
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
TrajectoryStateOnSurface::freeState
FreeTrajectoryState const * freeState(bool withErrors=true) const
Definition: TrajectoryStateOnSurface.h:58
edm::EventSetup::get
T get() const
Definition: EventSetup.h:73
CurvilinearTrajectoryError
Definition: CurvilinearTrajectoryError.h:27
CkfComponentsRecord
Definition: CkfComponentsRecord.h:22
FreeTrajectoryState::curvilinearError
const CurvilinearTrajectoryError & curvilinearError() const
Definition: FreeTrajectoryState.h:89
TSGFromPropagation::TSGFromPropagation
TSGFromPropagation(const edm::ParameterSet &pset, edm::ConsumesCollector &iC)
constructor
Definition: TSGFromPropagation.cc:29
reco::BeamSpot
Definition: BeamSpot.h:21
Chi2MeasurementEstimator_cfi.Chi2MeasurementEstimator
Chi2MeasurementEstimator
Definition: Chi2MeasurementEstimator_cfi.py:5
TrajectoryStateOnSurface::weight
double weight() const
Definition: TrajectoryStateOnSurface.h:80
MeasurementTrackerEvent::idToDet
MeasurementDetWithData idToDet(const DetId &id) const
Previous MeasurementDetSystem interface.
Definition: MeasurementTrackerEvent.h:69
edm::ConsumesCollector::consumes
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
Definition: ConsumesCollector.h:49
TSGFromPropagation::theSigmaZ
double theSigmaZ
Definition: TSGFromPropagation.h:148
TSGFromPropagation::thePropagatorName
std::string thePropagatorName
Definition: TSGFromPropagation.h:142
TSGFromPropagation::theTracker
edm::ESHandle< GeometricSearchTracker > theTracker
Definition: TSGFromPropagation.h:111
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
MuonServiceProxy::eventSetup
const edm::EventSetup & eventSetup() const
Definition: MuonServiceProxy.h:76
TrajectoryStateUpdator::update
virtual TrajectoryStateOnSurface update(const TrajectoryStateOnSurface &, const TrackingRecHit &) const =0
TSGFromPropagation::theUpdator
const TrajectoryStateUpdator * theUpdator
Definition: TSGFromPropagation.h:122
edm::ParameterSet
Definition: ParameterSet.h:36
MeasurementTrackerEvent
Definition: MeasurementTrackerEvent.h:15
edm::LogError
Definition: MessageLogger.h:183
TSGFromPropagation::outerTkState
TrajectoryStateOnSurface outerTkState(const TrackCand &) const
Definition: TSGFromPropagation.cc:256
TSGFromPropagation::theMaxChi2
double theMaxChi2
Definition: TSGFromPropagation.h:128
TSGFromPropagation::theMeasTrackerName
std::string theMeasTrackerName
Definition: TSGFromPropagation.h:113
MuonErrorMatrix::get
CurvilinearTrajectoryError get(GlobalVector momentum, bool convolute=true)
main method to be used. Retrieve a 5x5 symetrical matrix according to parametrization of error or sca...
Definition: MuonErrorMatrix.cc:258
PV3DBase::eta
T eta() const
Definition: PV3DBase.h:73
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
TSGFromPropagation::theMeasTracker
edm::ESHandle< MeasurementTracker > theMeasTracker
Definition: TSGFromPropagation.h:114
FreeTrajectoryState::parameters
const GlobalTrajectoryParameters & parameters() const
Definition: FreeTrajectoryState.h:79
MuonServiceProxy::propagator
edm::ESHandle< Propagator > propagator(std::string propagatorName) const
get the propagator
Definition: MuonServiceProxy.cc:177
iEvent
int iEvent
Definition: GenABIO.cc:224
DirectTrackerNavigation
Definition: DirectTrackerNavigation.h:26
TSGFromPropagation::theCategory
std::string theCategory
Definition: TSGFromPropagation.h:109
StateOnTrackerBound
Definition: StateOnTrackerBound.h:13
get
#define get
TSGFromPropagation::theMeasurementTrackerEventToken
edm::EDGetTokenT< MeasurementTrackerEvent > theMeasurementTrackerEventToken
Definition: TSGFromPropagation.h:155
TSGFromPropagation::theBeamSpotToken
edm::EDGetTokenT< reco::BeamSpot > theBeamSpotToken
Definition: TSGFromPropagation.h:154
TrajectoryStateOnSurface::rescaleError
void rescaleError(double factor)
Definition: TrajectoryStateOnSurface.h:82
TSGFromPropagation::theUseVertexStateFlag
bool theUseVertexStateFlag
Definition: TSGFromPropagation.h:134
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
TSGFromPropagation::zDis
double zDis(const TrajectoryStateOnSurface &tsos) const
Definition: TSGFromPropagation.cc:340
TrajectoryStateOnSurface::globalMomentum
GlobalVector globalMomentum() const
Definition: TrajectoryStateOnSurface.h:66
TSGFromPropagation::beamSpot
edm::Handle< reco::BeamSpot > beamSpot
Definition: TSGFromPropagation.h:152
TSGFromPropagation::theEstimator
const Chi2MeasurementEstimator * theEstimator
Definition: TSGFromPropagation.h:124
TSGFromPropagation::theMeasurementTrackerEventTag
edm::InputTag theMeasurementTrackerEventTag
Definition: TSGFromPropagation.h:115
FreeTrajectoryState
Definition: FreeTrajectoryState.h:27
TSGFromPropagation::adjust
void adjust(FreeTrajectoryState &) const
adjust the error matrix of the FTS
Definition: TSGFromPropagation.cc:356
MuonServiceProxy::trackingGeometry
edm::ESHandle< GlobalTrackingGeometry > trackingGeometry() const
get the tracking geometry
Definition: MuonServiceProxy.h:59
TSGFromPropagation::theMeasTrackerEvent
edm::Handle< MeasurementTrackerEvent > theMeasTrackerEvent
Definition: TSGFromPropagation.h:116
TrajectoryStateOnSurface::curvilinearError
const CurvilinearTrajectoryError & curvilinearError() const
Definition: TrajectoryStateOnSurface.h:72
TSGFromPropagation::theUpdateStateFlag
bool theUpdateStateFlag
Definition: TSGFromPropagation.h:136
TrajectorySeed
Definition: TrajectorySeed.h:17
MuonServiceProxy::magneticField
edm::ESHandle< MagneticField > magneticField() const
get the magnetic field
Definition: MuonServiceProxy.h:56
MuonErrorMatrix
Definition: MuonErrorMatrix.h:24
edm::OwnVector::push_back
void push_back(D *&d)
Definition: OwnVector.h:326
TrajectoryStateOnSurface::surface
const SurfaceType & surface() const
Definition: TrajectoryStateOnSurface.h:78
TSGFromPropagation::createSeed
TrajectorySeed createSeed(const TrajectoryStateOnSurface &, const DetId &) const
create a hitless seed from a trajectory state
Definition: TSGFromPropagation.cc:274
mps_fire.result
result
Definition: mps_fire.py:303
TSGFromPropagation::theTSTransformer
TrajectoryStateTransform * theTSTransformer
Definition: TSGFromPropagation.h:126
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:671
TrajectoryStateOnSurface::globalParameters
const GlobalTrajectoryParameters & globalParameters() const
Definition: TrajectoryStateOnSurface.h:64
PTrajectoryStateOnDet
Definition: PTrajectoryStateOnDet.h:10
HLT_2018_cff.errorMatrixPset
errorMatrixPset
Definition: HLT_2018_cff.py:44406
trajectoryStateTransform::innerStateOnSurface
TrajectoryStateOnSurface innerStateOnSurface(const reco::Track &tk, const TrackingGeometry &geom, const MagneticField *field, bool withErr=true)
Definition: TrajectoryStateTransform.cc:110
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
TSGFromPropagation::theFixedErrorRescaling
double theFixedErrorRescaling
Definition: TSGFromPropagation.h:132
TrajectoryStateOnSurface::surfaceSide
SurfaceSide surfaceSide() const
Position relative to material, defined relative to momentum vector.
Definition: TrajectoryStateOnSurface.h:89
TSGFromPropagation::theFlexErrorRescaling
double theFlexErrorRescaling
Definition: TSGFromPropagation.h:130
PV3DBase::perp
T perp() const
Definition: PV3DBase.h:69
edm::InputTag
Definition: InputTag.h:15
alongMomentum
Definition: PropagationDirection.h:4
TSGFromPropagation::updator
const TrajectoryStateUpdator * updator() const
Definition: TSGFromPropagation.h:58
KFUpdator
Definition: KFUpdator.h:32
TrajectoryStateOnSurface::isValid
bool isValid() const
Definition: TrajectoryStateOnSurface.h:54
FreeTrajectoryState::rescaleError
void rescaleError(double factor)
Definition: FreeTrajectoryState.cc:46
TSGFromPropagation::theNavigation
const DirectTrackerNavigation * theNavigation
Definition: TSGFromPropagation.h:118
TSGFromPropagation::theCacheId_TG
unsigned long long theCacheId_TG
Definition: TSGFromPropagation.h:107
edm::OwnVector< TrackingRecHit >
TSGFromPropagation::theCacheId_MT
unsigned long long theCacheId_MT
Definition: TSGFromPropagation.h:106