CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Public Attributes | Protected Types | Protected Member Functions | Protected Attributes
SimpleNavigableLayer Class Referenceabstract

#include <SimpleNavigableLayer.h>

Inheritance diagram for SimpleNavigableLayer:
NavigableLayer SimpleBarrelNavigableLayer SimpleForwardNavigableLayer

Public Types

typedef std::vector< const BarrelDetLayer * > BDLC
 
typedef std::vector< const DetLayer * > DLC
 
typedef std::vector< const ForwardDetLayer * > FDLC
 

Public Member Functions

virtual std::vector< const DetLayer * > compatibleLayers (const FreeTrajectoryState &fts, PropagationDirection timeDirection) const
 
virtual std::vector< const DetLayer * > compatibleLayers (const FreeTrajectoryState &fts, PropagationDirection timeDirection, int &counter) const
 
std::vector< const DetLayer * > compatibleLayers (const FreeTrajectoryState &fts, PropagationDirection timeDirection, int &counter) const final
 
virtual std::vector< const DetLayer * > compatibleLayers (NavigationDirection direction) const=0
 
virtual void setAdditionalLink (const DetLayer *, NavigationDirection direction=insideOut)=0
 
void setCheckCrossingSide (bool docheck)
 
virtual void setInwardLinks (const BDLC &, const FDLC &, TkLayerLess sorter=TkLayerLess(outsideIn))=0
 
 SimpleNavigableLayer (const MagneticField *field, float eps, bool checkCrossingSide=true)
 
- Public Member Functions inherited from NavigableLayer
virtual std::vector< const DetLayer * > compatibleLayers (const FreeTrajectoryState &fts, PropagationDirection timeDirection) const
 
virtual std::vector< const DetLayer * > compatibleLayers (NavigationDirection direction) const =0
 
virtual DetLayer const * detLayer () const =0
 
virtual std::vector< const DetLayer * > nextLayers (const FreeTrajectoryState &fts, PropagationDirection timeDirection) const =0
 
virtual std::vector< const DetLayer * > nextLayers (NavigationDirection direction) const =0
 
virtual void setDetLayer (DetLayer const *dl)=0
 
void setSchool (NavigationSchool const *sh)
 
virtual ~NavigableLayer ()
 

Public Attributes

bool theSelfSearch
 

Protected Types

typedef BDLC::iterator BDLI
 
typedef BDLC::const_iterator ConstBDLI
 
typedef FDLC::const_iterator ConstFDLI
 
typedef FDLC::iterator FDLI
 
typedef TrajectoryStateOnSurface TSOS
 

Protected Member Functions

TSOS crossingState (const FreeTrajectoryState &fts, PropagationDirection dir) const
 
AnalyticalPropagator propagator (PropagationDirection dir) const
 
bool wellInside (const FreeTrajectoryState &fts, PropagationDirection dir, const BarrelDetLayer *bl, DLC &result) const
 
bool wellInside (const FreeTrajectoryState &fts, PropagationDirection dir, const DLC &layers, DLC &result) const
 
bool wellInside (const FreeTrajectoryState &fts, PropagationDirection dir, const ForwardDetLayer *bl, DLC &result) const
 
bool wellInside (const FreeTrajectoryState &fts, PropagationDirection dir, ConstBDLI begin, ConstBDLI end, DLC &result) const
 
bool wellInside (const FreeTrajectoryState &fts, PropagationDirection dir, ConstFDLI begin, ConstFDLI end, DLC &result) const
 

Protected Attributes

bool theCheckCrossingSide
 
float theEpsilon
 
const MagneticFieldtheField
 
- Protected Attributes inherited from NavigableLayer
NavigationSchool const * school = nullptr
 

Detailed Description

A partial implementation of the NavigableLayer

Definition at line 20 of file SimpleNavigableLayer.h.

Member Typedef Documentation

◆ BDLC

typedef std::vector<const BarrelDetLayer*> SimpleNavigableLayer::BDLC

Definition at line 23 of file SimpleNavigableLayer.h.

◆ BDLI

typedef BDLC::iterator SimpleNavigableLayer::BDLI
protected

Definition at line 49 of file SimpleNavigableLayer.h.

◆ ConstBDLI

typedef BDLC::const_iterator SimpleNavigableLayer::ConstBDLI
protected

Definition at line 51 of file SimpleNavigableLayer.h.

◆ ConstFDLI

typedef FDLC::const_iterator SimpleNavigableLayer::ConstFDLI
protected

Definition at line 52 of file SimpleNavigableLayer.h.

◆ DLC

typedef std::vector<const DetLayer*> SimpleNavigableLayer::DLC

Definition at line 22 of file SimpleNavigableLayer.h.

◆ FDLC

typedef std::vector<const ForwardDetLayer*> SimpleNavigableLayer::FDLC

Definition at line 24 of file SimpleNavigableLayer.h.

◆ FDLI

typedef FDLC::iterator SimpleNavigableLayer::FDLI
protected

Definition at line 50 of file SimpleNavigableLayer.h.

◆ TSOS

Definition at line 53 of file SimpleNavigableLayer.h.

Constructor & Destructor Documentation

◆ SimpleNavigableLayer()

SimpleNavigableLayer::SimpleNavigableLayer ( const MagneticField field,
float  eps,
bool  checkCrossingSide = true 
)
inline

Definition at line 26 of file SimpleNavigableLayer.h.

27  : theField(field), theEpsilon(eps), theCheckCrossingSide(checkCrossingSide), theSelfSearch(false) {}

Member Function Documentation

◆ compatibleLayers() [1/4]

virtual std::vector<const DetLayer*> NavigableLayer::compatibleLayers
inline

Definition at line 33 of file NavigableLayer.h.

34  {
35  int counter = 0;
36  return compatibleLayers(fts, timeDirection, counter);
37  };

◆ compatibleLayers() [2/4]

virtual std::vector<const DetLayer*> NavigableLayer::compatibleLayers
inline

Definition at line 39 of file NavigableLayer.h.

41  {
42  edm::LogWarning("DetLayers") << "compatibleLayers(fts,dir,counter) not implemented. returning empty vector";
43  return std::vector<const DetLayer*>();
44  }

◆ compatibleLayers() [3/4]

std::vector< const DetLayer * > SimpleNavigableLayer::compatibleLayers ( const FreeTrajectoryState fts,
PropagationDirection  timeDirection,
int &  counter 
) const
finalvirtual

Reimplemented from NavigableLayer.

Definition at line 216 of file SimpleNavigableLayer.cc.

218  {
219  typedef std::vector<const DetLayer*> Lvect;
220  typedef std::set<const DetLayer*> Lset;
221 
222  //initiate the first iteration
223  const Lvect& someLayers = nextLayers(fts, timeDirection);
224  if (someLayers.empty()) {
225  LogDebug("SimpleNavigableLayer") << "Number of compatible layers: " << 0;
226  return someLayers;
227  }
228 
229  Lset collect; //a container of unique instances. to avoid duplicates
230  Lset layerToTry, nextLayerToTry; //set used for iterations
231  layerToTry.insert(someLayers.begin(), someLayers.end());
232 
233  while (!layerToTry.empty() && (counter++) <= 150) {
234  LogDebug("SimpleNavigableLayer") << counter << "] going to check on : " << layerToTry.size() << " next layers.";
235  //clear this set first, it will be swaped with layerToTry
236  nextLayerToTry.clear();
237  for (auto toTry : layerToTry) {
238  //add the layer you tried.
239  LogDebug("SimpleNavigableLayer") << counter << "] adding layer with pointer: " << (toTry)
240  << " first detid: " << (toTry)->basicComponents().front()->geographicalId();
241  if (!collect.insert(toTry).second)
242  continue;
243 
244  //find the next layers from it
245  Lvect&& nextLayers = school->nextLayers(*toTry, fts, timeDirection);
246  LogDebug("SimpleNavigableLayer") << counter << "] this layer has : " << nextLayers.size() << " next layers.";
247  nextLayerToTry.insert(nextLayers.begin(), nextLayers.end());
248  } // layerToTry
249  //swap now that you where to go next.
250  layerToTry.swap(nextLayerToTry);
251  }
252  if (counter >= 150) {
253  edm::LogWarning("SimpleNavigableLayer") << "WARNING: compatibleLayers() more than 150 iterations!!! Bailing out..";
254  counter = -1;
255  return Lvect();
256  }
257 
258  LogDebug("SimpleNavigableLayer") << "Number of compatible layers: " << collect.size();
259 
260  return Lvect(collect.begin(), collect.end());
261 }

References LogDebug.

Referenced by SimpleForwardNavigableLayer::compatibleLayers(), and SimpleBarrelNavigableLayer::compatibleLayers().

◆ compatibleLayers() [4/4]

virtual std::vector<const DetLayer*> NavigableLayer::compatibleLayers

◆ crossingState()

TrajectoryStateOnSurface SimpleNavigableLayer::crossingState ( const FreeTrajectoryState fts,
PropagationDirection  dir 
) const
protected

Definition at line 15 of file SimpleNavigableLayer.cc.

16  {
17  //self propagating. step one: go close to the center
18  GlobalPoint initialPoint = fts.position();
20  GlobalPoint center(0, 0, 0);
21  TSOS propState = middle.extrapolate(fts, center, propagator(dir));
22  if (!propState.isValid())
23  return TrajectoryStateOnSurface();
24 
25  FreeTrajectoryState const& dest = *propState.freeState();
26  GlobalPoint middlePoint = dest.position();
27  const float toCloseToEachOther2 = 1e-4 * 1e-4;
28  if
29  UNLIKELY((middlePoint - initialPoint).mag2() < toCloseToEachOther2) {
30  LogDebug("SimpleNavigableLayer")
31  << "initial state and PCA are identical. Things are bound to fail. Do not add the link.";
32  return TrajectoryStateOnSurface();
33  }
34 
35  /*
36  std::string dirS;
37  if (dir==alongMomentum) dirS = "alongMomentum";
38  else if (dir==oppositeToMomentum) dirS = "oppositeToMomentum";
39  else dirS = "anyDirection";
40  */
41 
42  LogDebug("SimpleNavigableLayer") << "self propagating(" << dir << ") from:\n"
43  << fts << "\n"
44  << dest << "\n"
45  << " and the direction is: " << dir;
46 
47  //second propagation to go on the other side of the barrel
48  //propState = propagator(dir).propagate( dest, detLayer()->specificSurface());
49  propState = propagator(dir).propagate(dest, detLayer()->surface());
50  if (!propState.isValid())
51  return TrajectoryStateOnSurface();
52 
53  const FreeTrajectoryState& dest2 = *propState.freeState();
54  GlobalPoint finalPoint = dest2.position();
55  LogDebug("SimpleNavigableLayer") << "second propagation(" << dir << ") to: \n" << dest2;
56  double finalDot = (middlePoint - initialPoint).basicVector().dot((finalPoint - middlePoint).basicVector());
57  if
58  UNLIKELY(finalDot < 0) { // check that before and after are in different side.
59  LogDebug("SimpleNavigableLayer") << "switch side back: ABORT.";
60  return TrajectoryStateOnSurface();
61  }
62  return propState;
63 }

References mps_fire::dest, DeadROC_duringRun::dir, MillePedeFileConverter_cfg::e, TransverseImpactPointExtrapolator::extrapolate(), TrajectoryStateOnSurface::freeState(), TrajectoryStateOnSurface::isValid(), LogDebug, mag2(), FreeTrajectoryState::position(), TrackCandidateProducer_cfi::propagator, and UNLIKELY.

◆ propagator()

AnalyticalPropagator SimpleNavigableLayer::propagator ( PropagationDirection  dir) const
inlineprotected

Definition at line 82 of file SimpleNavigableLayer.h.

82  {
83  AnalyticalPropagator aPropagator(theField);
84  aPropagator.setPropagationDirection(dir);
85  return aPropagator;
86  }

References DeadROC_duringRun::dir, and Propagator::setPropagationDirection().

◆ setAdditionalLink()

virtual void SimpleNavigableLayer::setAdditionalLink ( const DetLayer ,
NavigationDirection  direction = insideOut 
)
pure virtual

◆ setCheckCrossingSide()

void SimpleNavigableLayer::setCheckCrossingSide ( bool  docheck)
inline

◆ setInwardLinks()

virtual void SimpleNavigableLayer::setInwardLinks ( const BDLC ,
const FDLC ,
TkLayerLess  sorter = TkLayerLess(outsideIn) 
)
pure virtual

◆ wellInside() [1/5]

bool SimpleNavigableLayer::wellInside ( const FreeTrajectoryState fts,
PropagationDirection  dir,
const BarrelDetLayer bl,
DLC result 
) const
protected

Definition at line 65 of file SimpleNavigableLayer.cc.

68  {
69  TSOS propState = (bl == detLayer()) ? crossingState(fts, dir) : propagator(dir).propagate(fts, bl->specificSurface());
70 
71  if (!propState.isValid())
72  return false;
73 
74  //if requested check that the layer is crossed on the right side
76  bool backTobackTransverse =
77  (fts.position().x() * propState.globalPosition().x() + fts.position().y() * propState.globalPosition().y()) < 0;
78  bool backToback = propState.globalPosition().basicVector().dot(fts.position().basicVector()) < 0;
79 
80  if (backTobackTransverse || backToback) {
81  LogTrace("TkNavigation") << "Crossing over prevented!\nStaring from (x,y,z,r) (" << fts.position().x() << ","
82  << fts.position().y() << "," << fts.position().z() << "," << fts.position().perp()
83  << ") going to TSOS (x,y,z,r)" << propState.globalPosition().x() << ","
84  << propState.globalPosition().y() << "," << propState.globalPosition().z() << ","
85  << propState.globalPosition().perp() << ")";
86  return false;
87 
88  /*
89  //we have to check the crossing side only if we are going to something smaller
90  if (fts.position().perp()>bl->specificSurface().radius() ||
91  fabs(fts.position().z())>bl->surface().bounds().length()/2. ){
92  if (propState.globalPosition().basicVector().dot(fts.position().basicVector())<0){
93  LogTrace("TkNavigation") << "Crossing over prevented!\nStaring from (x,y,z,r) ("
94  << fts.position().x()<<","<< fts.position().y()<<","<< fts.position().z()<<","<<fts.position().perp()
95  << ") going to TSOS (x,y,z,r)"
96  << propState.globalPosition().x()<<","<< propState.globalPosition().y()<<","<< propState.globalPosition().z()<<","<<propState.globalPosition().perp()<<")";;
97  return false;
98  }
99  }
100  */
101  }
102  }
103 
104  const Bounds& bounds(bl->specificSurface().bounds());
105  float length = bounds.length() * 0.5f;
106 
107  // take into account the thickness of the layer
108  float deltaZ =
109  0.5f * bounds.thickness() * std::abs(propState.globalDirection().z()) / propState.globalDirection().perp();
110 
111  // take into account the error on the predicted state
112  const float nSigma = theEpsilon; // temporary reuse of epsilon
113  if (propState.hasError()) {
114  deltaZ += nSigma * sqrt(fts.cartesianError().position().czz());
115  }
116 
117  // cout << "SimpleNavigableLayer BarrelDetLayer deltaZ = " << deltaZ << endl;
118 
119  float zpos = propState.globalPosition().z();
120  if (std::abs(zpos) < length + deltaZ)
121  result.push_back(bl);
122 
123  return std::abs(zpos) < length - deltaZ;
124 }

References funct::abs(), PV3DBase< T, PVType, FrameType >::basicVector(), FreeTrajectoryState::cartesianError(), GlobalErrorBase< T, ErrorWeightType >::czz(), DeadROC_duringRun::dir, Basic3DVector< T >::dot(), TrajectoryStateOnSurface::globalDirection(), TrajectoryStateOnSurface::globalPosition(), TrajectoryStateOnSurface::hasError(), TrajectoryStateOnSurface::isValid(), Bounds::length(), LogTrace, HLTSiStripMonitoring_cff::nSigma, PV3DBase< T, PVType, FrameType >::perp(), CartesianTrajectoryError::position(), FreeTrajectoryState::position(), TrackCandidateProducer_cfi::propagator, mps_fire::result, BarrelDetLayer::specificSurface(), mathSSE::sqrt(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by SimpleForwardNavigableLayer::nextLayers(), and SimpleBarrelNavigableLayer::nextLayers().

◆ wellInside() [2/5]

bool SimpleNavigableLayer::wellInside ( const FreeTrajectoryState fts,
PropagationDirection  dir,
const DLC layers,
DLC result 
) const
protected

Definition at line 180 of file SimpleNavigableLayer.cc.

183  {
184  for (auto l : layers) {
185  if (l->isBarrel()) {
186  const BarrelDetLayer* bl = reinterpret_cast<const BarrelDetLayer*>(l);
187  if (wellInside(fts, dir, bl, result))
188  return true;
189  } else {
190  const ForwardDetLayer* fl = reinterpret_cast<const ForwardDetLayer*>(l);
191  if (wellInside(fts, dir, fl, result))
192  return true;
193  }
194  }
195  return false;
196 }

References DeadROC_duringRun::dir, cmsLHEtoEOSManager::l, hgcalTopologyTester_cfi::layers, and mps_fire::result.

◆ wellInside() [3/5]

bool SimpleNavigableLayer::wellInside ( const FreeTrajectoryState fts,
PropagationDirection  dir,
const ForwardDetLayer bl,
DLC result 
) const
protected

Definition at line 126 of file SimpleNavigableLayer.cc.

129  {
130  TSOS propState = propagator(dir).propagate(fts, fl->specificSurface());
131  if (!propState.isValid())
132  return false;
133 
134  if (fl == detLayer()) {
135  LogDebug("SimpleNavigableLayer") << "self propagating from:\n" << fts << "\n to \n" << *propState.freeState();
136  }
137 
138  //if requested avoids crossing over the tracker
139  if (theCheckCrossingSide) {
140  bool backTobackTransverse =
141  (fts.position().x() * propState.globalPosition().x() + fts.position().y() * propState.globalPosition().y()) < 0;
142  bool backToback = propState.globalPosition().basicVector().dot(fts.position().basicVector()) < 0;
143 
144  if (backTobackTransverse || backToback) {
145  LogTrace("TkNavigation") << "Crossing over prevented!\nStaring from (x,y,z,r) (" << fts.position().x() << ","
146  << fts.position().y() << "," << fts.position().z() << "," << fts.position().perp()
147  << ") going to TSOS (x,y,z,r)" << propState.globalPosition().x() << ","
148  << propState.globalPosition().y() << "," << propState.globalPosition().z() << ","
149  << propState.globalPosition().perp() << ")";
150  ;
151  return false;
152 
153  // if (fts.position().z()*propState.globalPosition().z() < 0) return false;
154  }
155  }
156 
157  float rpos = propState.globalPosition().perp();
158  float innerR = fl->specificSurface().innerRadius();
159  float outerR = fl->specificSurface().outerRadius();
160 
161  // take into account the thickness of the layer
162  float deltaR = 0.5f * fl->surface().bounds().thickness() * propState.localDirection().perp() /
163  std::abs(propState.localDirection().z());
164 
165  // take into account the error on the predicted state
166  const float nSigma = theEpsilon;
167  if (propState.hasError()) {
168  LocalError err = propState.localError().positionError();
169  // ignore correlation for the moment...
170  deltaR += nSigma * sqrt(err.xx() + err.yy());
171  }
172 
173  // cout << "SimpleNavigableLayer BarrelDetLayer deltaR = " << deltaR << endl;
174 
175  if (innerR - deltaR < rpos && rpos < outerR + deltaR)
176  result.push_back(fl);
177  return (innerR + deltaR < rpos && rpos < outerR - deltaR);
178 }

References funct::abs(), PV3DBase< T, PVType, FrameType >::basicVector(), Surface::bounds(), PbPb_ZMuSkimMuonDPG_cff::deltaR, DeadROC_duringRun::dir, Basic3DVector< T >::dot(), runTheMatrix::err, TrajectoryStateOnSurface::freeState(), TrajectoryStateOnSurface::globalPosition(), TrajectoryStateOnSurface::hasError(), TrajectoryStateOnSurface::isValid(), TrajectoryStateOnSurface::localDirection(), TrajectoryStateOnSurface::localError(), LogDebug, LogTrace, HLTSiStripMonitoring_cff::nSigma, PV3DBase< T, PVType, FrameType >::perp(), FreeTrajectoryState::position(), LocalTrajectoryError::positionError(), TrackCandidateProducer_cfi::propagator, mps_fire::result, ForwardDetLayer::specificSurface(), mathSSE::sqrt(), ForwardDetLayer::surface(), Bounds::thickness(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

◆ wellInside() [4/5]

bool SimpleNavigableLayer::wellInside ( const FreeTrajectoryState fts,
PropagationDirection  dir,
ConstBDLI  begin,
ConstBDLI  end,
DLC result 
) const
protected

Definition at line 198 of file SimpleNavigableLayer.cc.

199  {
200  for (ConstBDLI i = begin; i < end; i++) {
201  if (wellInside(fts, dir, *i, result))
202  return true;
203  }
204  return false;
205 }

References begin, DeadROC_duringRun::dir, end, mps_fire::i, and mps_fire::result.

◆ wellInside() [5/5]

bool SimpleNavigableLayer::wellInside ( const FreeTrajectoryState fts,
PropagationDirection  dir,
ConstFDLI  begin,
ConstFDLI  end,
DLC result 
) const
protected

Definition at line 207 of file SimpleNavigableLayer.cc.

208  {
209  for (ConstFDLI i = begin; i < end; i++) {
210  if (wellInside(fts, dir, *i, result))
211  return true;
212  }
213  return false;
214 }

References begin, DeadROC_duringRun::dir, end, mps_fire::i, and mps_fire::result.

Member Data Documentation

◆ theCheckCrossingSide

bool SimpleNavigableLayer::theCheckCrossingSide
protected

Definition at line 43 of file SimpleNavigableLayer.h.

◆ theEpsilon

float SimpleNavigableLayer::theEpsilon
protected

Definition at line 42 of file SimpleNavigableLayer.h.

◆ theField

const MagneticField* SimpleNavigableLayer::theField
protected

Definition at line 41 of file SimpleNavigableLayer.h.

◆ theSelfSearch

bool SimpleNavigableLayer::theSelfSearch
TrajectoryStateOnSurface::globalDirection
GlobalVector globalDirection() const
Definition: TrajectoryStateOnSurface.h:67
NavigableLayer::detLayer
virtual DetLayer const * detLayer() const =0
counter
Definition: counter.py:1
mps_fire.i
i
Definition: mps_fire.py:355
SimpleNavigableLayer::theField
const MagneticField * theField
Definition: SimpleNavigableLayer.h:41
LocalTrajectoryError::positionError
LocalError positionError() const
Definition: LocalTrajectoryError.h:81
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
SimpleNavigableLayer::theCheckCrossingSide
bool theCheckCrossingSide
Definition: SimpleNavigableLayer.h:43
TrajectoryStateOnSurface::globalPosition
GlobalPoint globalPosition() const
Definition: TrajectoryStateOnSurface.h:65
Bounds
Definition: Bounds.h:18
SimpleNavigableLayer::propagator
AnalyticalPropagator propagator(PropagationDirection dir) const
Definition: SimpleNavigableLayer.h:82
TransverseImpactPointExtrapolator
Definition: TransverseImpactPointExtrapolator.h:26
FreeTrajectoryState::position
GlobalPoint position() const
Definition: FreeTrajectoryState.h:67
end
#define end
Definition: vmac.h:39
Bounds::length
virtual float length() const =0
PV3DBase::z
T z() const
Definition: PV3DBase.h:61
SimpleNavigableLayer::wellInside
bool wellInside(const FreeTrajectoryState &fts, PropagationDirection dir, const BarrelDetLayer *bl, DLC &result) const
Definition: SimpleNavigableLayer.cc:65
UNLIKELY
#define UNLIKELY(x)
Definition: Likely.h:21
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
SimpleNavigableLayer::theSelfSearch
bool theSelfSearch
Definition: SimpleNavigableLayer.h:46
NavigationSchool::nextLayers
std::vector< const DetLayer * > nextLayers(const DetLayer &detLayer, Args &&... args) const
Definition: NavigationSchool.h:33
TrajectoryStateOnSurface::freeState
FreeTrajectoryState const * freeState(bool withErrors=true) const
Definition: TrajectoryStateOnSurface.h:58
FreeTrajectoryState::cartesianError
CartesianTrajectoryError cartesianError() const
Definition: FreeTrajectoryState.h:81
TrajectoryStateOnSurface::localDirection
LocalVector localDirection() const
Definition: TrajectoryStateOnSurface.h:76
TrajectoryStateOnSurface::hasError
bool hasError() const
Definition: TrajectoryStateOnSurface.h:56
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
Basic3DVector::dot
T dot(const Basic3DVector &rh) const
Scalar product, or "dot" product, with a vector of same type.
Definition: extBasic3DVector.h:189
Point3DBase< float, GlobalTag >
PbPb_ZMuSkimMuonDPG_cff.deltaR
deltaR
Definition: PbPb_ZMuSkimMuonDPG_cff.py:63
edm::LogWarning
Definition: MessageLogger.h:141
SimpleNavigableLayer::crossingState
TSOS crossingState(const FreeTrajectoryState &fts, PropagationDirection dir) const
Definition: SimpleNavigableLayer.cc:15
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:670
runTheMatrix.err
err
Definition: runTheMatrix.py:288
LocalError
Definition: LocalError.h:12
SimpleNavigableLayer::compatibleLayers
std::vector< const DetLayer * > compatibleLayers(const FreeTrajectoryState &fts, PropagationDirection timeDirection, int &counter) const final
Definition: SimpleNavigableLayer.cc:216
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
mag2
T mag2() const
The vector magnitude squared. Equivalent to vec.dot(vec)
Definition: Basic3DVectorLD.h:124
SimpleNavigableLayer::ConstFDLI
FDLC::const_iterator ConstFDLI
Definition: SimpleNavigableLayer.h:52
BarrelDetLayer
Definition: BarrelDetLayer.h:22
cmsLHEtoEOSManager.l
l
Definition: cmsLHEtoEOSManager.py:193
PV3DBase::basicVector
const BasicVectorType & basicVector() const
Definition: PV3DBase.h:53
NavigableLayer::school
NavigationSchool const * school
Definition: NavigableLayer.h:52
AnalyticalPropagator
Definition: AnalyticalPropagator.h:22
ForwardDetLayer
Definition: ForwardDetLayer.h:22
FreeTrajectoryState
Definition: FreeTrajectoryState.h:27
TransverseImpactPointExtrapolator::extrapolate
TrajectoryStateOnSurface extrapolate(const FreeTrajectoryState &fts, const GlobalPoint &vtx) const
extrapolation with default (=geometrical) propagator
Definition: TransverseImpactPointExtrapolator.cc:23
GlobalErrorBase::czz
T czz() const
Definition: GlobalErrorBase.h:107
NavigableLayer::nextLayers
virtual std::vector< const DetLayer * > nextLayers(NavigationDirection direction) const =0
mps_fire.result
result
Definition: mps_fire.py:303
SimpleNavigableLayer::ConstBDLI
BDLC::const_iterator ConstBDLI
Definition: SimpleNavigableLayer.h:51
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:671
TrajectoryStateOnSurface::localError
const LocalTrajectoryError & localError() const
Definition: TrajectoryStateOnSurface.h:77
BarrelDetLayer::specificSurface
virtual const BoundCylinder & specificSurface() const final
Extension of the interface.
Definition: BarrelDetLayer.h:39
PV3DBase::perp
T perp() const
Definition: PV3DBase.h:69
CartesianTrajectoryError::position
const GlobalError position() const
Position error submatrix.
Definition: CartesianTrajectoryError.h:41
HLTSiStripMonitoring_cff.nSigma
nSigma
Definition: HLTSiStripMonitoring_cff.py:151
begin
#define begin
Definition: vmac.h:32
hgcalTopologyTester_cfi.layers
layers
Definition: hgcalTopologyTester_cfi.py:8
TrajectoryStateOnSurface::isValid
bool isValid() const
Definition: TrajectoryStateOnSurface.h:54
SimpleNavigableLayer::theEpsilon
float theEpsilon
Definition: SimpleNavigableLayer.h:42
mps_fire.dest
dest
Definition: mps_fire.py:179
DeadROC_duringRun.dir
dir
Definition: DeadROC_duringRun.py:23
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37