CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
SimpleBarrelNavigableLayer Class Referencefinal

#include <SimpleBarrelNavigableLayer.h>

Inheritance diagram for SimpleBarrelNavigableLayer:
SimpleNavigableLayer NavigableLayer

Public Member Functions

std::vector< const DetLayer * > compatibleLayers (const FreeTrajectoryState &fts, PropagationDirection dir) const override
 
std::vector< const DetLayer * > compatibleLayers (const FreeTrajectoryState &fts, PropagationDirection timeDirection, int &counter) const final
 
std::vector< const DetLayer * > compatibleLayers (NavigationDirection direction) const override
 
const DetLayerdetLayer () const override
 
std::vector< const DetLayer * > nextLayers (const FreeTrajectoryState &fts, PropagationDirection timeDirection) const override
 
std::vector< const DetLayer * > nextLayers (NavigationDirection direction) const override
 
void setAdditionalLink (const DetLayer *, NavigationDirection direction=insideOut) override
 
void setDetLayer (const DetLayer *dl) override
 
void setInwardLinks (const BDLC &theBarrelv, const FDLC &theForwardv, TkLayerLess sorter=TkLayerLess(outsideIn)) override
 
 SimpleBarrelNavigableLayer (BarrelDetLayer const *detLayer, const BDLC &outerBLC, const FDLC &outerLeftFL, const FDLC &outerRightFL, const MagneticField *field, float epsilon, bool checkCrossingSide=true)
 
- Public Member Functions inherited from SimpleNavigableLayer
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
 
void setCheckCrossingSide (bool docheck)
 
 SimpleNavigableLayer (const MagneticField *field, float eps, bool checkCrossingSide=true)
 
- Public Member Functions inherited from NavigableLayer
void setSchool (NavigationSchool const *sh)
 
virtual ~NavigableLayer ()
 

Private Attributes

const BarrelDetLayertheDetLayer
 
BDLC theInnerBarrelLayers
 
FDLC theInnerLeftForwardLayers
 
FDLC theInnerRightForwardLayers
 
DLC theNegInnerLayers
 
DLC theNegOuterLayers
 
BDLC theOuterBarrelLayers
 
FDLC theOuterLeftForwardLayers
 
FDLC theOuterRightForwardLayers
 
DLC thePosInnerLayers
 
DLC thePosOuterLayers
 

Additional Inherited Members

- Public Types inherited from SimpleNavigableLayer
typedef std::vector< const BarrelDetLayer * > BDLC
 
typedef std::vector< const DetLayer * > DLC
 
typedef std::vector< const ForwardDetLayer * > FDLC
 
- Public Attributes inherited from SimpleNavigableLayer
bool theSelfSearch
 
- Protected Types inherited from SimpleNavigableLayer
typedef BDLC::iterator BDLI
 
typedef BDLC::const_iterator ConstBDLI
 
typedef FDLC::const_iterator ConstFDLI
 
typedef FDLC::iterator FDLI
 
typedef TrajectoryStateOnSurface TSOS
 
- Protected Member Functions inherited from SimpleNavigableLayer
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 inherited from SimpleNavigableLayer
bool theCheckCrossingSide
 
float theEpsilon
 
const MagneticFieldtheField
 
- Protected Attributes inherited from NavigableLayer
NavigationSchool const * school = nullptr
 

Detailed Description

A concrete NavigableLayer for the barrel

Definition at line 12 of file SimpleBarrelNavigableLayer.h.

Constructor & Destructor Documentation

◆ SimpleBarrelNavigableLayer()

SimpleBarrelNavigableLayer::SimpleBarrelNavigableLayer ( BarrelDetLayer const *  detLayer,
const BDLC outerBLC,
const FDLC outerLeftFL,
const FDLC outerRightFL,
const MagneticField field,
float  epsilon,
bool  checkCrossingSide = true 
)

Definition at line 20 of file SimpleBarrelNavigableLayer.cc.

27  : SimpleNavigableLayer(field, epsilon, checkCrossingSide),
29  theOuterBarrelLayers(outerBLC),
30  theOuterLeftForwardLayers(outerLeftFL),
31  theOuterRightForwardLayers(outerRightFL)
32 
33 {
34  // put barrel and forward layers together
35  theNegOuterLayers.reserve(outerBLC.size() + outerLeftFL.size());
36  thePosOuterLayers.reserve(outerBLC.size() + outerRightFL.size());
37 
38  for (ConstBDLI bl = outerBLC.begin(); bl != outerBLC.end(); bl++)
39  theNegOuterLayers.push_back(*bl);
40  thePosOuterLayers = theNegOuterLayers; // barrel part the same
41 
42  for (ConstFDLI fl = outerLeftFL.begin(); fl != outerLeftFL.end(); fl++)
43  theNegOuterLayers.push_back(*fl);
44  for (ConstFDLI fl = outerRightFL.begin(); fl != outerRightFL.end(); fl++)
45  thePosOuterLayers.push_back(*fl);
46 
47  // sort the outer layers
48  sort(theNegOuterLayers.begin(), theNegOuterLayers.end(), TkLayerLess());
49  sort(thePosOuterLayers.begin(), thePosOuterLayers.end(), TkLayerLess());
53 }

References theNegOuterLayers, theOuterBarrelLayers, theOuterLeftForwardLayers, theOuterRightForwardLayers, and thePosOuterLayers.

Member Function Documentation

◆ compatibleLayers() [1/3]

std::vector<const DetLayer*> SimpleBarrelNavigableLayer::compatibleLayers ( const FreeTrajectoryState fts,
PropagationDirection  dir 
) const
inlineoverridevirtual

Reimplemented from NavigableLayer.

Definition at line 32 of file SimpleBarrelNavigableLayer.h.

33  {
34  int counter = 0;
36  }

References SimpleNavigableLayer::compatibleLayers(), and DeadROC_duringRun::dir.

◆ compatibleLayers() [2/3]

std::vector< const DetLayer * > SimpleNavigableLayer::compatibleLayers
final

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 }

◆ compatibleLayers() [3/3]

vector< const DetLayer * > SimpleBarrelNavigableLayer::compatibleLayers ( NavigationDirection  direction) const
overridevirtual

Implements NavigableLayer.

Definition at line 174 of file SimpleBarrelNavigableLayer.cc.

174  {
175  edm::LogError("TkNavigation") << "ERROR: compatibleLayers() method used without all reachableLayers are set";
176  throw DetLayerException("compatibleLayers() method used without all reachableLayers are set");
177  return vector<const DetLayer*>();
178 }

◆ detLayer()

const DetLayer* SimpleBarrelNavigableLayer::detLayer ( ) const
inlineoverridevirtual

Implements NavigableLayer.

Definition at line 40 of file SimpleBarrelNavigableLayer.h.

40 { return theDetLayer; }

Referenced by nextLayers().

◆ nextLayers() [1/2]

vector< const DetLayer * > SimpleBarrelNavigableLayer::nextLayers ( const FreeTrajectoryState fts,
PropagationDirection  timeDirection 
) const
overridevirtual

Implements NavigableLayer.

Definition at line 79 of file SimpleBarrelNavigableLayer.cc.

80  {
81  // This method contains the sequence in which the layers are tested.
82  // The iteration stops as soon as a layer contains the propagated state
83  // within epsilon.
84 
85  vector<const DetLayer*> result;
86 
87  FreeTrajectoryState ftsWithoutErrors = (fts.hasError()) ? FreeTrajectoryState(fts.parameters()) : fts;
88 
89  auto const position = fts.position();
90  auto const momentum = fts.momentum();
91 
92  //establish whether the tracks is crossing the tracker from outer layers to inner ones
93  //or from inner to outer.
94  GlobalVector transversePosition(position.x(), position.y(), 0);
95  bool isInOutTrackBarrel = (transversePosition.dot(momentum) > 0);
96 
97  float zpos = position.z();
98  bool isInOutTrackFWD = momentum.z() * zpos > 0;
99 
100  //establish whether inner or outer layers are crossed after propagation, according
101  //to BOTH propagationDirection AND track momentum
102  bool dirOppositeXORisInOutTrackBarrel =
103  (!(dir == oppositeToMomentum) && isInOutTrackBarrel) || ((dir == oppositeToMomentum) && !isInOutTrackBarrel);
104  bool dirOppositeXORisInOutTrackFWD =
105  (!(dir == oppositeToMomentum) && isInOutTrackFWD) || ((dir == oppositeToMomentum) && !isInOutTrackFWD);
106 
107  LogDebug("SimpleBarrelNavigableLayer") << "is alongMomentum? " << (dir == alongMomentum) << endl
108  << "isInOutTrackBarrel: " << isInOutTrackBarrel << endl
109  << "isInOutTrackFWD: " << isInOutTrackFWD << endl
110  << "dirOppositeXORisInOutTrackFWD: " << dirOppositeXORisInOutTrackFWD << endl
111  << "dirOppositeXORisInOutTrackBarrel: " << dirOppositeXORisInOutTrackBarrel
112  << endl;
113 
114  bool signZmomentumXORdir =
115  (((momentum.z() > 0) && !(dir == alongMomentum)) || (!(momentum.z() > 0) && (dir == alongMomentum)));
116 
117  if
118  LIKELY(dirOppositeXORisInOutTrackBarrel && dirOppositeXORisInOutTrackFWD) {
119  if (signZmomentumXORdir) {
120  wellInside(ftsWithoutErrors, dir, theNegOuterLayers, result);
121  } else {
122  wellInside(ftsWithoutErrors, dir, thePosOuterLayers, result);
123  }
124  }
125  else if (!dirOppositeXORisInOutTrackBarrel && !dirOppositeXORisInOutTrackFWD) {
126  if (signZmomentumXORdir) {
127  wellInside(ftsWithoutErrors, dir, thePosInnerLayers, result);
128  } else {
129  wellInside(ftsWithoutErrors, dir, theNegInnerLayers, result);
130  }
131  } else if (!dirOppositeXORisInOutTrackBarrel && dirOppositeXORisInOutTrackFWD) {
132  wellInside(ftsWithoutErrors, dir, theInnerBarrelLayers.begin(), theInnerBarrelLayers.end(), result);
133 
134  if (signZmomentumXORdir) {
135  wellInside(ftsWithoutErrors, dir, theInnerLeftForwardLayers.begin(), theInnerLeftForwardLayers.end(), result);
136  wellInside(ftsWithoutErrors, dir, theOuterLeftForwardLayers.begin(), theOuterLeftForwardLayers.end(), result);
137  } else {
138  wellInside(ftsWithoutErrors, dir, theInnerRightForwardLayers.begin(), theInnerRightForwardLayers.end(), result);
139  wellInside(ftsWithoutErrors, dir, theOuterRightForwardLayers.begin(), theOuterRightForwardLayers.end(), result);
140  }
141  } else {
142  if (signZmomentumXORdir) {
143  wellInside(ftsWithoutErrors, dir, theInnerLeftForwardLayers.begin(), theInnerLeftForwardLayers.end(), result);
144  } else {
145  wellInside(ftsWithoutErrors, dir, theInnerRightForwardLayers.begin(), theInnerRightForwardLayers.end(), result);
146  }
147  wellInside(ftsWithoutErrors, dir, theOuterBarrelLayers.begin(), theOuterBarrelLayers.end(), result);
148  }
149 
150  bool goingIntoTheBarrel =
151  (!isInOutTrackBarrel && dir == alongMomentum) || (isInOutTrackBarrel && dir == oppositeToMomentum);
152 
153  LogDebug("SimpleBarrelNavigableLayer") << "goingIntoTheBarrel: " << goingIntoTheBarrel;
154 
155  if
156  UNLIKELY(theSelfSearch && result.empty()) {
157  if (!goingIntoTheBarrel) {
158  LogDebug("SimpleBarrelNavigableLayer")
159  << " state is not going toward the center of the barrel. not adding self search.";
160  } else {
161  const BarrelDetLayer* bl = reinterpret_cast<const BarrelDetLayer*>(detLayer());
162  unsigned int before = result.size();
163  LogDebug("SimpleBarrelNavigableLayer") << " I am trying to added myself as a next layer.";
164  wellInside(ftsWithoutErrors, dir, bl, result);
165  unsigned int after = result.size();
166  if (before != after)
167  LogDebug("SimpleBarrelNavigableLayer") << " I have added myself as a next layer.";
168  }
169  }
170 
171  return result;
172 }

References alongMomentum, detLayer(), DeadROC_duringRun::dir, FreeTrajectoryState::hasError(), LIKELY, LogDebug, FreeTrajectoryState::momentum(), oppositeToMomentum, FreeTrajectoryState::parameters(), FreeTrajectoryState::position(), position, mps_fire::result, theInnerBarrelLayers, theInnerLeftForwardLayers, theInnerRightForwardLayers, theNegInnerLayers, theNegOuterLayers, theOuterBarrelLayers, theOuterLeftForwardLayers, theOuterRightForwardLayers, thePosInnerLayers, thePosOuterLayers, SimpleNavigableLayer::theSelfSearch, UNLIKELY, and SimpleNavigableLayer::wellInside().

◆ nextLayers() [2/2]

vector< const DetLayer * > SimpleBarrelNavigableLayer::nextLayers ( NavigationDirection  direction) const
overridevirtual

Implements NavigableLayer.

Definition at line 55 of file SimpleBarrelNavigableLayer.cc.

55  {
56  vector<const DetLayer*> result;
57 
58  // the order is the one in which layers
59  // should be checked for a reasonable trajectory
60 
61  if (dir == insideOut) {
63  for (DLC::const_iterator i = thePosOuterLayers.begin(); i != thePosOuterLayers.end(); i++) {
64  // avoid duplication of barrel layers
65  if ((**i).location() == GeomDetEnumerators::endcap)
66  result.push_back(*i);
67  }
68  } else {
70  for (DLC::const_iterator i = thePosInnerLayers.begin(); i != thePosInnerLayers.end(); i++) {
71  // avoid duplication of barrel layers
72  if ((**i).location() == GeomDetEnumerators::endcap)
73  result.push_back(*i);
74  }
75  }
76  return result;
77 }

References DeadROC_duringRun::dir, GeomDetEnumerators::endcap, mps_fire::i, insideOut, mps_fire::result, theNegInnerLayers, theNegOuterLayers, thePosInnerLayers, and thePosOuterLayers.

◆ setAdditionalLink()

void SimpleBarrelNavigableLayer::setAdditionalLink ( const DetLayer additional,
NavigationDirection  direction = insideOut 
)
overridevirtual

Implements SimpleNavigableLayer.

Definition at line 219 of file SimpleBarrelNavigableLayer.cc.

219  {
220  const ForwardDetLayer* fadditional = dynamic_cast<const ForwardDetLayer*>(additional);
221  const BarrelDetLayer* badditional = dynamic_cast<const BarrelDetLayer*>(additional);
222  if (badditional) {
223  if (direction == insideOut) {
224  theOuterBarrelLayers.push_back(badditional);
225  theNegOuterLayers.push_back(badditional);
226  thePosOuterLayers.push_back(badditional);
227  return;
228  }
229  theInnerBarrelLayers.push_back(badditional);
230  theNegInnerLayers.push_back(badditional);
231  thePosInnerLayers.push_back(badditional);
232  return;
233  } else if (fadditional) {
234  double zpos = fadditional->position().z();
235  if (direction == insideOut) {
236  if (zpos > 0) {
237  theOuterRightForwardLayers.push_back(fadditional);
238  thePosOuterLayers.push_back(fadditional);
239  return;
240  }
241  theOuterLeftForwardLayers.push_back(fadditional);
242  theNegOuterLayers.push_back(fadditional);
243  return;
244  }
245  if (zpos > 0) {
246  theInnerRightForwardLayers.push_back(fadditional);
247  thePosInnerLayers.push_back(fadditional);
248  return;
249  }
250  theInnerLeftForwardLayers.push_back(fadditional);
251  theNegInnerLayers.push_back(fadditional);
252  return;
253  }
254  edm::LogError("TkNavigation") << "trying to add neither a ForwardDetLayer nor a BarrelDetLayer";
255  return;
256 }

References insideOut, GeometricSearchDet::position(), theInnerBarrelLayers, theInnerLeftForwardLayers, theInnerRightForwardLayers, theNegInnerLayers, theNegOuterLayers, theOuterBarrelLayers, theOuterLeftForwardLayers, theOuterRightForwardLayers, thePosInnerLayers, thePosOuterLayers, and PV3DBase< T, PVType, FrameType >::z().

◆ setDetLayer()

void SimpleBarrelNavigableLayer::setDetLayer ( const DetLayer dl)
overridevirtual

Implements NavigableLayer.

Definition at line 180 of file SimpleBarrelNavigableLayer.cc.

180  {
181  cerr << "Warniong: SimpleBarrelNavigableLayer::setDetLayer called." << endl << "This should never happen!" << endl;
182 }

References EcnaPython_AdcPeg12_S1_10_R170298_1_0_150_Dee0::cerr.

◆ setInwardLinks()

void SimpleBarrelNavigableLayer::setInwardLinks ( const BDLC theBarrelv,
const FDLC theForwardv,
TkLayerLess  sorter = TkLayerLess(outsideIn) 
)
overridevirtual

Implements SimpleNavigableLayer.

Definition at line 184 of file SimpleBarrelNavigableLayer.cc.

184  {
185  theInnerBarrelLayers = theBarrelv;
186  // sort the inner layers
187  sort(theInnerBarrelLayers.begin(), theInnerBarrelLayers.end(), sorter);
188 
189  ConstFDLI middle = find_if(
190  theForwardv.begin(), theForwardv.end(), [](const GeometricSearchDet* a) { return a->position().z() >= 0.0; });
191  theInnerLeftForwardLayers = FDLC(theForwardv.begin(), middle);
192  theInnerRightForwardLayers = FDLC(middle, theForwardv.end());
193 
194  // sort the inner layers
197 
198  // put barrel and forward layers together
201 
202  for (ConstBDLI bl = theInnerBarrelLayers.begin(); bl != theInnerBarrelLayers.end(); bl++)
203  theNegInnerLayers.push_back(*bl);
204  thePosInnerLayers = theNegInnerLayers; // barrel part the same
205 
206  for (ConstFDLI fl = theInnerLeftForwardLayers.begin(); fl != theInnerLeftForwardLayers.end(); fl++)
207  theNegInnerLayers.push_back(*fl);
208  for (ConstFDLI fl = theInnerRightForwardLayers.begin(); fl != theInnerRightForwardLayers.end(); fl++)
209  thePosInnerLayers.push_back(*fl);
210 
211  // sort the inner layers
212  sort(theNegInnerLayers.begin(), theNegInnerLayers.end(), sorter);
213  sort(thePosInnerLayers.begin(), thePosInnerLayers.end(), sorter);
214  sort(theInnerBarrelLayers.begin(), theInnerBarrelLayers.end(), sorter);
217 }

References a, MCScenario_CRAFT1_22X::sorter(), theInnerBarrelLayers, theInnerLeftForwardLayers, theInnerRightForwardLayers, theNegInnerLayers, and thePosInnerLayers.

Member Data Documentation

◆ theDetLayer

const BarrelDetLayer* SimpleBarrelNavigableLayer::theDetLayer
private

Definition at line 48 of file SimpleBarrelNavigableLayer.h.

◆ theInnerBarrelLayers

BDLC SimpleBarrelNavigableLayer::theInnerBarrelLayers
private

Definition at line 50 of file SimpleBarrelNavigableLayer.h.

Referenced by nextLayers(), setAdditionalLink(), and setInwardLinks().

◆ theInnerLeftForwardLayers

FDLC SimpleBarrelNavigableLayer::theInnerLeftForwardLayers
private

Definition at line 55 of file SimpleBarrelNavigableLayer.h.

Referenced by nextLayers(), setAdditionalLink(), and setInwardLinks().

◆ theInnerRightForwardLayers

FDLC SimpleBarrelNavigableLayer::theInnerRightForwardLayers
private

Definition at line 56 of file SimpleBarrelNavigableLayer.h.

Referenced by nextLayers(), setAdditionalLink(), and setInwardLinks().

◆ theNegInnerLayers

DLC SimpleBarrelNavigableLayer::theNegInnerLayers
private

Definition at line 60 of file SimpleBarrelNavigableLayer.h.

Referenced by nextLayers(), setAdditionalLink(), and setInwardLinks().

◆ theNegOuterLayers

DLC SimpleBarrelNavigableLayer::theNegOuterLayers
private

◆ theOuterBarrelLayers

BDLC SimpleBarrelNavigableLayer::theOuterBarrelLayers
private

◆ theOuterLeftForwardLayers

FDLC SimpleBarrelNavigableLayer::theOuterLeftForwardLayers
private

◆ theOuterRightForwardLayers

FDLC SimpleBarrelNavigableLayer::theOuterRightForwardLayers
private

◆ thePosInnerLayers

DLC SimpleBarrelNavigableLayer::thePosInnerLayers
private

Definition at line 61 of file SimpleBarrelNavigableLayer.h.

Referenced by nextLayers(), setAdditionalLink(), and setInwardLinks().

◆ thePosOuterLayers

DLC SimpleBarrelNavigableLayer::thePosOuterLayers
private
Vector3DBase
Definition: Vector3DBase.h:8
FreeTrajectoryState::momentum
GlobalVector momentum() const
Definition: FreeTrajectoryState.h:68
counter
Definition: counter.py:1
SimpleBarrelNavigableLayer::theOuterRightForwardLayers
FDLC theOuterRightForwardLayers
Definition: SimpleBarrelNavigableLayer.h:53
mps_fire.i
i
Definition: mps_fire.py:428
SimpleBarrelNavigableLayer::theDetLayer
const BarrelDetLayer * theDetLayer
Definition: SimpleBarrelNavigableLayer.h:48
FreeTrajectoryState::hasError
bool hasError() const
Definition: FreeTrajectoryState.h:77
oppositeToMomentum
Definition: PropagationDirection.h:4
FreeTrajectoryState::position
GlobalPoint position() const
Definition: FreeTrajectoryState.h:67
SimpleBarrelNavigableLayer::theOuterBarrelLayers
BDLC theOuterBarrelLayers
Definition: SimpleBarrelNavigableLayer.h:49
GeometricSearchDet::position
virtual const Surface::PositionType & position() const
Returns position of the surface.
Definition: GeometricSearchDet.h:31
SimpleBarrelNavigableLayer::theInnerBarrelLayers
BDLC theInnerBarrelLayers
Definition: SimpleBarrelNavigableLayer.h:50
edm::LogWarning
Log< level::Warning, false > LogWarning
Definition: MessageLogger.h:122
geometryDiff.epsilon
int epsilon
Definition: geometryDiff.py:26
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
SimpleBarrelNavigableLayer::theNegInnerLayers
DLC theNegInnerLayers
Definition: SimpleBarrelNavigableLayer.h:60
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
SimpleBarrelNavigableLayer::nextLayers
std::vector< const DetLayer * > nextLayers(NavigationDirection direction) const override
Definition: SimpleBarrelNavigableLayer.cc:55
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:223
a
double a
Definition: hdecay.h:119
SimpleBarrelNavigableLayer::theNegOuterLayers
DLC theNegOuterLayers
Definition: SimpleBarrelNavigableLayer.h:58
GeomDetEnumerators::endcap
Definition: GeomDetEnumerators.h:9
position
static int position[264][3]
Definition: ReadPGInfo.cc:289
SimpleNavigableLayer::compatibleLayers
std::vector< const DetLayer * > compatibleLayers(const FreeTrajectoryState &fts, PropagationDirection timeDirection, int &counter) const final
Definition: SimpleNavigableLayer.cc:216
SimpleBarrelNavigableLayer::theInnerLeftForwardLayers
FDLC theInnerLeftForwardLayers
Definition: SimpleBarrelNavigableLayer.h:55
FreeTrajectoryState::parameters
const GlobalTrajectoryParameters & parameters() const
Definition: FreeTrajectoryState.h:79
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
SimpleNavigableLayer::ConstFDLI
FDLC::const_iterator ConstFDLI
Definition: SimpleNavigableLayer.h:52
SimpleBarrelNavigableLayer::theOuterLeftForwardLayers
FDLC theOuterLeftForwardLayers
Definition: SimpleBarrelNavigableLayer.h:52
BarrelDetLayer
Definition: BarrelDetLayer.h:22
SimpleBarrelNavigableLayer::detLayer
const DetLayer * detLayer() const override
Definition: SimpleBarrelNavigableLayer.h:40
SimpleBarrelNavigableLayer::thePosOuterLayers
DLC thePosOuterLayers
Definition: SimpleBarrelNavigableLayer.h:59
SimpleBarrelNavigableLayer::thePosInnerLayers
DLC thePosInnerLayers
Definition: SimpleBarrelNavigableLayer.h:61
DetLayerException
Common base class.
Definition: DetLayerException.h:15
NavigableLayer::school
NavigationSchool const * school
Definition: NavigableLayer.h:52
MCScenario_CRAFT1_22X.sorter
def sorter(a, b)
Definition: MCScenario_CRAFT1_22X.py:97
ForwardDetLayer
Definition: ForwardDetLayer.h:22
FreeTrajectoryState
Definition: FreeTrajectoryState.h:27
SimpleBarrelNavigableLayer::theInnerRightForwardLayers
FDLC theInnerRightForwardLayers
Definition: SimpleBarrelNavigableLayer.h:56
LIKELY
#define LIKELY(x)
Definition: Likely.h:20
SimpleNavigableLayer::FDLC
std::vector< const ForwardDetLayer * > FDLC
Definition: SimpleNavigableLayer.h:24
insideOut
Definition: NavigationDirection.h:4
mps_fire.result
result
Definition: mps_fire.py:311
SimpleNavigableLayer::ConstBDLI
BDLC::const_iterator ConstBDLI
Definition: SimpleNavigableLayer.h:51
GeometricSearchDet
Definition: GeometricSearchDet.h:17
EcnaPython_AdcPeg12_S1_10_R170298_1_0_150_Dee0.cerr
cerr
Definition: EcnaPython_AdcPeg12_S1_10_R170298_1_0_150_Dee0.py:8
TkLayerLess
Definition: TkLayerLess.h:14
alongMomentum
Definition: PropagationDirection.h:4
SimpleNavigableLayer::SimpleNavigableLayer
SimpleNavigableLayer(const MagneticField *field, float eps, bool checkCrossingSide=true)
Definition: SimpleNavigableLayer.h:26
DeadROC_duringRun.dir
dir
Definition: DeadROC_duringRun.py:23