CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
ME0SegmentMatcher Class Reference
Inheritance diagram for ME0SegmentMatcher:
edm::stream::EDProducer<> edm::stream::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

virtual void beginRun (edm::Run const &, edm::EventSetup const &) override
 
void getFromFTS (const FreeTrajectoryState &, GlobalVector &, GlobalVector &, int &, AlgebraicSymMatrix66 &)
 
FreeTrajectoryState getFTS (const GlobalVector &, const GlobalVector &, int, const AlgebraicSymMatrix66 &, const MagneticField *)
 
FreeTrajectoryState getFTS (const GlobalVector &, const GlobalVector &, int, const AlgebraicSymMatrix55 &, const MagneticField *)
 
 ME0SegmentMatcher (const edm::ParameterSet &)
 Constructor. More...
 
virtual void produce (edm::Event &, const edm::EventSetup &) override
 Produce the ME0Segment collection. More...
 
 ~ME0SegmentMatcher ()
 Destructor. More...
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
- Public Member Functions inherited from edm::stream::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDProducerBase ()
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, std::unordered_multimap< std::string, edm::ProductResolverIndex > const &iIndicies, std::string const &moduleLabel)
 
virtual ~ProducerBase () noexcept(false)
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFromEvent () const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Attributes

edm::InputTag generalTracksTag
 
edm::EDGetTokenT< reco::TrackCollectiongeneralTracksToken_
 
edm::InputTag OurSegmentsTag
 
edm::EDGetTokenT< ME0SegmentCollectionOurSegmentsToken_
 
double thePHIDIR_RESIDUAL_CUT
 
double theX_PULL_CUT
 
double theX_RESIDUAL_CUT
 
double theY_PULL_CUT
 
double theY_RESIDUAL_CUT
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDProducer<>
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 
- Public Types inherited from edm::stream::EDProducerBase
typedef EDProducerAdaptorBase ModuleType
 
- Public Types inherited from edm::ProducerBase
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::stream::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

Author
David Nash

Definition at line 77 of file ME0SegmentMatcher.cc.

Constructor & Destructor Documentation

ME0SegmentMatcher::ME0SegmentMatcher ( const edm::ParameterSet pas)
explicit

Constructor.

Definition at line 116 of file ME0SegmentMatcher.cc.

References generalTracksTag, generalTracksToken_, edm::ParameterSet::getParameter(), OurSegmentsTag, OurSegmentsToken_, thePHIDIR_RESIDUAL_CUT, theX_PULL_CUT, theX_RESIDUAL_CUT, theY_PULL_CUT, and theY_RESIDUAL_CUT.

116  {
117  produces<std::vector<reco::ME0Muon> >();
118  theX_PULL_CUT = pas.getParameter<double>("maxPullX");
119  theX_RESIDUAL_CUT = pas.getParameter<double>("maxDiffX");
120  theY_PULL_CUT = pas.getParameter<double>("maxPullY");
121  theY_RESIDUAL_CUT = pas.getParameter<double>("maxDiffY");
122  thePHIDIR_RESIDUAL_CUT = pas.getParameter<double>("maxDiffPhiDirection");
123  //Might need to replace "OurSegments" with an edm::InputTag of "OurSegments"
124  OurSegmentsTag = pas.getParameter<edm::InputTag>("me0SegmentTag");
125  generalTracksTag = pas.getParameter<edm::InputTag>("tracksTag");
126  OurSegmentsToken_ = consumes<ME0SegmentCollection>(OurSegmentsTag);
127  generalTracksToken_ = consumes<reco::TrackCollection>(generalTracksTag);
128 }
T getParameter(std::string const &) const
edm::InputTag generalTracksTag
edm::EDGetTokenT< reco::TrackCollection > generalTracksToken_
edm::InputTag OurSegmentsTag
edm::EDGetTokenT< ME0SegmentCollection > OurSegmentsToken_
ME0SegmentMatcher::~ME0SegmentMatcher ( )

Destructor.

Definition at line 130 of file ME0SegmentMatcher.cc.

130 {}

Member Function Documentation

void ME0SegmentMatcher::beginRun ( edm::Run const &  iRun,
edm::EventSetup const &  iSetup 
)
overridevirtual

Reimplemented from edm::stream::EDProducerBase.

Definition at line 358 of file ME0SegmentMatcher.cc.

References DEFINE_FWK_MODULE.

359 {
360 
361 }
void ME0SegmentMatcher::getFromFTS ( const FreeTrajectoryState fts,
GlobalVector p3,
GlobalVector r3,
int &  charge,
AlgebraicSymMatrix66 cov 
)

Definition at line 339 of file ME0SegmentMatcher.cc.

References FreeTrajectoryState::cartesianError(), FreeTrajectoryState::charge(), FreeTrajectoryState::hasError(), CartesianTrajectoryError::matrix(), FreeTrajectoryState::momentum(), FreeTrajectoryState::position(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by produce().

341  {
342  GlobalVector p3GV = fts.momentum();
343  GlobalPoint r3GP = fts.position();
344 
345  GlobalVector p3T(p3GV.x(), p3GV.y(), p3GV.z());
346  GlobalVector r3T(r3GP.x(), r3GP.y(), r3GP.z());
347  p3 = p3T;
348  r3 = r3T;
349  // p3.set(p3GV.x(), p3GV.y(), p3GV.z());
350  // r3.set(r3GP.x(), r3GP.y(), r3GP.z());
351 
352  charge = fts.charge();
353  cov = fts.hasError() ? fts.cartesianError().matrix() : AlgebraicSymMatrix66();
354 
355 }
CartesianTrajectoryError cartesianError() const
ROOT::Math::SMatrix< double, 6, 6, ROOT::Math::MatRepSym< double, 6 > > AlgebraicSymMatrix66
T y() const
Definition: PV3DBase.h:63
TrackCharge charge() const
T z() const
Definition: PV3DBase.h:64
GlobalVector momentum() const
const AlgebraicSymMatrix66 & matrix() const
GlobalPoint position() const
T x() const
Definition: PV3DBase.h:62
FreeTrajectoryState ME0SegmentMatcher::getFTS ( const GlobalVector p3,
const GlobalVector r3,
int  charge,
const AlgebraicSymMatrix66 cov,
const MagneticField field 
)

Definition at line 326 of file ME0SegmentMatcher.cc.

References PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by produce().

328  {
329 
330  GlobalVector p3GV(p3.x(), p3.y(), p3.z());
331  GlobalPoint r3GP(r3.x(), r3.y(), r3.z());
332  GlobalTrajectoryParameters tPars(r3GP, p3GV, charge, field);
333 
334  CartesianTrajectoryError tCov(cov);
335 
336  return cov.kRows == 6 ? FreeTrajectoryState(tPars, tCov) : FreeTrajectoryState(tPars) ;
337 }
T y() const
Definition: PV3DBase.h:63
T z() const
Definition: PV3DBase.h:64
T x() const
Definition: PV3DBase.h:62
FreeTrajectoryState ME0SegmentMatcher::getFTS ( const GlobalVector p3,
const GlobalVector r3,
int  charge,
const AlgebraicSymMatrix55 cov,
const MagneticField field 
)
void ME0SegmentMatcher::produce ( edm::Event ev,
const edm::EventSetup setup 
)
overridevirtual

Produce the ME0Segment collection.

Definition at line 132 of file ME0SegmentMatcher.cc.

References funct::abs(), PV3DBase< T, PVType, FrameType >::barePhi(), barePhi(), ecalTB2006H4_GenSimDigiReco_cfg::bField, patCaloMETCorrections_cff::C, relativeConstraints::chamber, ME0Geometry::chamber(), reco::deltaPhi(), reco::deltaR2(), TrajectoryStateOnSurface::freeTrajectoryState(), MergeTrackCollections_cff::generalTracks, generalTracksToken_, edm::EventSetup::get(), edm::Event::getByToken(), getFromFTS(), getFTS(), mps_fire::i, TrajectoryStateOnSurface::isValid(), JacobianCartesianToLocal::jacobian(), eostools::move(), OurSegmentsToken_, Propagator::propagate(), edm::Event::put(), reco::ME0Muon::setGlobalTrackCov(), reco::ME0Muon::setGlobalTrackMomAtSurface(), reco::ME0Muon::setGlobalTrackPosAtSurface(), reco::ME0Muon::setLocalTrackCov(), reco::ME0Muon::setLocalTrackMomAtSurface(), reco::ME0Muon::setLocalTrackPosAtSurface(), mathSSE::sqrt(), thePHIDIR_RESIDUAL_CUT, theX_PULL_CUT, theX_RESIDUAL_CUT, theY_PULL_CUT, theY_RESIDUAL_CUT, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), z, and PV3DBase< T, PVType, FrameType >::z().

132  {
133 
134 
135  //Getting the objects we'll need
136  using namespace edm;
137 
138  ESHandle<ME0Geometry> me0Geom;
139  setup.get<MuonGeometryRecord>().get(me0Geom);
141  setup.get<IdealMagneticFieldRecord>().get(bField);
142  ESHandle<Propagator> ThisshProp;
143  setup.get<TrackingComponentsRecord>().get("SteppingHelixPropagatorAlong", ThisshProp);
144 
145  using namespace reco;
146 
147  Handle<ME0SegmentCollection> OurSegments;
148  //ev.getByLabel("me0Segments","",OurSegments);
149  ev.getByToken(OurSegmentsToken_,OurSegments);
150 
151  auto oc = std::make_unique<std::vector<ME0Muon>>();
152  std::vector<ME0Muon> TempStore;
153 
155  //ev.getByLabel <TrackCollection> ("generalTracks", generalTracks);
156  ev.getByToken(generalTracksToken_,generalTracks);
157 
158 
159  int TrackNumber = 0;
160 
161  for (std::vector<Track>::const_iterator thisTrack = generalTracks->begin();
162  thisTrack != generalTracks->end(); ++thisTrack,++TrackNumber){
163  //Initializing our plane
164 
165  //Remove later
166  if (std::abs(thisTrack->eta()) < 1.8) continue;
167 
168  float zSign = thisTrack->pz() > 0 ? 1.0f : -1.0f;
169 
170  const float zValue = 526.75 * zSign;
171 
172  Plane *plane = new Plane(Surface::PositionType(0,0,zValue),Surface::RotationType());
173 
174  //Getting the initial variables for propagation
175 
176  int chargeReco = thisTrack->charge();
177  GlobalVector p3reco, r3reco;
178 
179  p3reco = GlobalVector(thisTrack->outerPx(), thisTrack->outerPy(), thisTrack->outerPz());
180  r3reco = GlobalVector(thisTrack->outerX(), thisTrack->outerY(), thisTrack->outerZ());
181 
182  AlgebraicSymMatrix66 covReco;
183  //This is to fill the cov matrix correctly
184  AlgebraicSymMatrix55 covReco_curv;
185  covReco_curv = thisTrack->outerStateCovariance();
186  FreeTrajectoryState initrecostate = getFTS(p3reco, r3reco, chargeReco, covReco_curv, &*bField);
187  getFromFTS(initrecostate, p3reco, r3reco, chargeReco, covReco);
188 
189  //Now we propagate and get the propagated variables from the propagated state
190  //SteppingHelixStateInfo startrecostate(initrecostate);
191  //SteppingHelixStateInfo lastrecostate;
192  TrajectoryStateOnSurface lastrecostate;
193 
194  //const SteppingHelixPropagator* ThisshProp =
195  //dynamic_cast<const SteppingHelixPropagator*>(&*shProp);
196 
197 
198 
199  //lastrecostate = ThisshProp->propagate(startrecostate, *plane);
200  //lastrecostate = ThisshProp->propagateWithPath(startrecostate, *plane);
201  //ThisshProp->propagate(startrecostate, *plane,lastrecostate);
202  lastrecostate = ThisshProp->propagate(initrecostate,*plane);
203  if (!lastrecostate.isValid()) continue;
204 
205  FreeTrajectoryState finalrecostate(*lastrecostate.freeTrajectoryState());
206  //lastrecostate.getFreeState(finalrecostate);
207  //finalrecostate = lastrecostate.freeTrajectoryState();
208 
209  AlgebraicSymMatrix66 covFinalReco;
210  GlobalVector p3FinalReco_glob, r3FinalReco_globv;
211  getFromFTS(finalrecostate, p3FinalReco_glob, r3FinalReco_globv, chargeReco, covFinalReco);
212 
213 
214  //To transform the global propagated track to local coordinates
215  int SegmentNumber = 0;
216 
218  double ClosestDelR2 = 999.;
219 
220  for (auto thisSegment = OurSegments->begin(); thisSegment != OurSegments->end();
221  ++thisSegment,++SegmentNumber){
222  ME0DetId id = thisSegment->me0DetId();
223 
224  auto chamber = me0Geom->chamber(id);
225 
226  if ( zSign * chamber->toGlobal(thisSegment->localPosition()).z() < 0 ) continue;
227 
228  GlobalPoint r3FinalReco_glob(r3FinalReco_globv.x(),r3FinalReco_globv.y(),r3FinalReco_globv.z());
229 
230  LocalPoint r3FinalReco = chamber->toLocal(r3FinalReco_glob);
231  LocalVector p3FinalReco=chamber->toLocal(p3FinalReco_glob);
232 
233  LocalPoint thisPosition(thisSegment->localPosition());
234  LocalVector thisDirection(thisSegment->localDirection().x(),thisSegment->localDirection().y(),thisSegment->localDirection().z()); //FIXME
235 
236  //The same goes for the error
237  AlgebraicMatrix thisCov(4,4,0);
238  for (int i = 1; i <=4; i++){
239  for (int j = 1; j <=4; j++){
240  thisCov(i,j) = thisSegment->parametersError()(i,j);
241  }
242  }
243 
245 
246 
247  LocalTrajectoryParameters ltp(r3FinalReco,p3FinalReco,chargeReco);
248  JacobianCartesianToLocal jctl(chamber->surface(),ltp);
249  AlgebraicMatrix56 jacobGlbToLoc = jctl.jacobian();
250 
251  AlgebraicMatrix55 Ctmp = (jacobGlbToLoc * covFinalReco) * ROOT::Math::Transpose(jacobGlbToLoc);
252  AlgebraicSymMatrix55 C; // I couldn't find any other way, so I resort to the brute force
253  for(int i=0; i<5; ++i) {
254  for(int j=0; j<5; ++j) {
255  C[i][j] = Ctmp[i][j];
256 
257  }
258  }
259 
260  Double_t sigmax = sqrt(C[3][3]+thisSegment->localPositionError().xx() );
261  Double_t sigmay = sqrt(C[4][4]+thisSegment->localPositionError().yy() );
262 
263  bool X_MatchFound = false, Y_MatchFound = false, Dir_MatchFound = false;
264 
265 
266  // if ( (std::abs(thisPosition.x()-r3FinalReco.x()) < (3.0 * sigmax)) || (std::abs(thisPosition.x()-r3FinalReco.x()) < 2.0 ) ) X_MatchFound = true;
267  // if ( (std::abs(thisPosition.y()-r3FinalReco.y()) < (3.0 * sigmay)) || (std::abs(thisPosition.y()-r3FinalReco.y()) < 2.0 ) ) Y_MatchFound = true;
268 
269  // if ( std::abs(p3FinalReco_glob.phi()-chamber->toGlobal(thisSegment->localDirection()).phi()) < 0.15) Dir_MatchFound = true;
270 
271 
272  if ( (std::abs(thisPosition.x()-r3FinalReco.x()) < (theX_PULL_CUT * sigmax)) || (std::abs(thisPosition.x()-r3FinalReco.x()) < theX_RESIDUAL_CUT ) ) X_MatchFound = true;
273  if ( (std::abs(thisPosition.y()-r3FinalReco.y()) < (theY_PULL_CUT * sigmay)) || (std::abs(thisPosition.y()-r3FinalReco.y()) < theY_RESIDUAL_CUT ) ) Y_MatchFound = true;
274 
275  if ( std::abs(reco::deltaPhi(p3FinalReco_glob.barePhi(),chamber->toGlobal(thisSegment->localDirection()).barePhi())) < thePHIDIR_RESIDUAL_CUT) Dir_MatchFound = true;
276 
277  //Check for a Match, and if there is a match, check the delR from the segment, keeping only the closest in MuonCandidate
278  if (X_MatchFound && Y_MatchFound && Dir_MatchFound) {
279 
280  TrackRef thisTrackRef(generalTracks,TrackNumber);
281 
282  GlobalPoint SegPos(chamber->toGlobal(thisSegment->localPosition()));
283  GlobalPoint TkPos(r3FinalReco_globv.x(),r3FinalReco_globv.y(),r3FinalReco_globv.z());
284 
285  double thisDelR2 = reco::deltaR2(SegPos,TkPos);
286  if (thisDelR2 < ClosestDelR2){
287  ClosestDelR2 = thisDelR2;
288  MuonCandidate = reco::ME0Muon(thisTrackRef,(*thisSegment),SegmentNumber,chargeReco);
289 
290  MuonCandidate.setGlobalTrackPosAtSurface(r3FinalReco_glob);
291  MuonCandidate.setGlobalTrackMomAtSurface(p3FinalReco_glob);
292  MuonCandidate.setLocalTrackPosAtSurface(r3FinalReco);
293  MuonCandidate.setLocalTrackMomAtSurface(p3FinalReco);
294  MuonCandidate.setGlobalTrackCov(covFinalReco);
295  MuonCandidate.setLocalTrackCov(C);
296  }
297  }
298  }//End loop for (auto thisSegment = OurSegments->begin(); thisSegment != OurSegments->end(); ++thisSegment,++SegmentNumber)
299 
300  //As long as the delR of the MuonCandidate is sensible, store the track-segment pair
301  if (ClosestDelR2 < 500.) {
302  oc->push_back(MuonCandidate);
303  }
304  }
305 
306  // put collection in event
307 
308  ev.put(std::move(oc));
309 }
const AlgebraicMatrix56 & jacobian() const
T barePhi() const
void setLocalTrackMomAtSurface(const LocalVector &localTrackMomAtSurface)
Definition: ME0Muon.h:56
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:122
ROOT::Math::SMatrix< double, 5, 6, ROOT::Math::MatRepStd< double, 5, 6 > > AlgebraicMatrix56
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:457
FreeTrajectoryState getFTS(const GlobalVector &, const GlobalVector &, int, const AlgebraicSymMatrix66 &, const MagneticField *)
ROOT::Math::SMatrix< double, 6, 6, ROOT::Math::MatRepSym< double, 6 > > AlgebraicSymMatrix66
T y() const
Definition: PV3DBase.h:63
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
Definition: Plane.h:17
void setGlobalTrackMomAtSurface(const GlobalVector &globalTrackMomAtSurface)
Definition: ME0Muon.h:54
edm::EDGetTokenT< reco::TrackCollection > generalTracksToken_
T barePhi() const
Definition: PV3DBase.h:68
void setLocalTrackCov(const AlgebraicSymMatrix55 &trackCov)
Definition: ME0Muon.h:59
CLHEP::HepMatrix AlgebraicMatrix
FreeTrajectoryState const * freeTrajectoryState(bool withErrors=true) const
T sqrt(T t)
Definition: SSEVec.h:18
T z() const
Definition: PV3DBase.h:64
const ME0Chamber * chamber(ME0DetId id) const
Return a chamber given its id.
Definition: ME0Geometry.cc:73
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
edm::EDGetTokenT< ME0SegmentCollection > OurSegmentsToken_
void setGlobalTrackCov(const AlgebraicSymMatrix66 &trackCov)
Definition: ME0Muon.h:58
double deltaPhi(double phi1, double phi2)
Definition: deltaPhi.h:22
const T & get() const
Definition: EventSetup.h:56
void getFromFTS(const FreeTrajectoryState &, GlobalVector &, GlobalVector &, int &, AlgebraicSymMatrix66 &)
void setGlobalTrackPosAtSurface(const GlobalPoint &globalTrackPosAtSurface)
Definition: ME0Muon.h:53
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
Definition: Propagator.h:53
T1 deltaR2(T1 eta1, T2 phi1, T3 eta2, T4 phi2)
Definition: deltaR.h:36
fixed size matrix
HLT enums.
T x() const
Definition: PV3DBase.h:62
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepStd< double, 5, 5 > > AlgebraicMatrix55
def move(src, dest)
Definition: eostools.py:510
Global3DVector GlobalVector
Definition: GlobalVector.h:10
void setLocalTrackPosAtSurface(const LocalPoint &localTrackPosAtSurface)
Definition: ME0Muon.h:55

Member Data Documentation

edm::InputTag ME0SegmentMatcher::generalTracksTag
private

Definition at line 108 of file ME0SegmentMatcher.cc.

Referenced by ME0SegmentMatcher().

edm::EDGetTokenT<reco::TrackCollection> ME0SegmentMatcher::generalTracksToken_
private

Definition at line 110 of file ME0SegmentMatcher.cc.

Referenced by ME0SegmentMatcher(), and produce().

edm::InputTag ME0SegmentMatcher::OurSegmentsTag
private

Definition at line 108 of file ME0SegmentMatcher.cc.

Referenced by ME0SegmentMatcher().

edm::EDGetTokenT<ME0SegmentCollection> ME0SegmentMatcher::OurSegmentsToken_
private

Definition at line 109 of file ME0SegmentMatcher.cc.

Referenced by ME0SegmentMatcher(), and produce().

double ME0SegmentMatcher::thePHIDIR_RESIDUAL_CUT
private

Definition at line 107 of file ME0SegmentMatcher.cc.

Referenced by ME0SegmentMatcher(), and produce().

double ME0SegmentMatcher::theX_PULL_CUT
private

Definition at line 107 of file ME0SegmentMatcher.cc.

Referenced by ME0SegmentMatcher(), and produce().

double ME0SegmentMatcher::theX_RESIDUAL_CUT
private

Definition at line 107 of file ME0SegmentMatcher.cc.

Referenced by ME0SegmentMatcher(), and produce().

double ME0SegmentMatcher::theY_PULL_CUT
private

Definition at line 107 of file ME0SegmentMatcher.cc.

Referenced by ME0SegmentMatcher(), and produce().

double ME0SegmentMatcher::theY_RESIDUAL_CUT
private

Definition at line 107 of file ME0SegmentMatcher.cc.

Referenced by ME0SegmentMatcher(), and produce().