CMS 3D CMS Logo

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

#include <HitPairGeneratorFromLayerPairForPhotonConversion.h>

Public Types

typedef SeedingLayerSetsHits::SeedingLayer Layer
 
typedef LayerHitMapCache LayerCacheType
 
typedef SeedingLayerSetsHits::SeedingLayerSet Layers
 

Public Member Functions

bool checkBoundaries (const DetLayer &layer, const ConversionRegion &convRegion, float maxSearchR, float maxSearchZ)
 
bool checkRZCompatibilityWithSeedTrack (const RecHitsSortedInPhi::Hit &hit, const DetLayer &layer, const ConversionRegion &convRegion)
 
float getLayerRadius (const DetLayer &layer)
 
float getLayerZ (const DetLayer &layer)
 
bool getPhiRange (float &Phimin, float &Phimax, const DetLayer &layer, const ConversionRegion &convRegion, const edm::EventSetup &es)
 
bool getPhiRange (float &Phimin, float &Phimax, const float &layerR, const ConversionRegion &convRegion, const edm::EventSetup &es)
 
 HitPairGeneratorFromLayerPairForPhotonConversion (unsigned int inner, unsigned int outer, LayerCacheType *layerCache, unsigned int nSize=30000, unsigned int max=0)
 
void hitPairs (const ConversionRegion &convRegion, const TrackingRegion &reg, OrderedHitPairs &prs, const Layers &layers, const edm::Event &ev, const edm::EventSetup &es)
 

Private Member Functions

double getCot (double dz, double dr)
 

Private Attributes

std::stringstream ss
 
const unsigned int theInnerLayer
 
LayerCacheTypetheLayerCache
 
const unsigned int theMaxElement
 
const unsigned int theOuterLayer
 

Detailed Description

Definition at line 14 of file HitPairGeneratorFromLayerPairForPhotonConversion.h.

Member Typedef Documentation

◆ Layer

◆ LayerCacheType

◆ Layers

Constructor & Destructor Documentation

◆ HitPairGeneratorFromLayerPairForPhotonConversion()

HitPairGeneratorFromLayerPairForPhotonConversion::HitPairGeneratorFromLayerPairForPhotonConversion ( unsigned int  inner,
unsigned int  outer,
LayerCacheType layerCache,
unsigned int  nSize = 30000,
unsigned int  max = 0 
)

Member Function Documentation

◆ checkBoundaries()

bool HitPairGeneratorFromLayerPairForPhotonConversion::checkBoundaries ( const DetLayer layer,
const ConversionRegion convRegion,
float  maxSearchR,
float  maxSearchZ 
)

Definition at line 222 of file HitPairGeneratorFromLayerPairForPhotonConversion.cc.

225  {
226  if (layer.location() == GeomDetEnumerators::barrel) {
227  float minZEndCap = 130;
228  if (fabs(convRegion.convPoint().z()) > minZEndCap) {
229 #ifdef mydebug_Seed
230  ss << "\tthe conversion seems to be in the endcap. Zconv " << convRegion.convPoint().z() << std::endl;
231  std::cout << ss.str();
232 #endif
233  return false;
234  }
235 
236  float R = getLayerRadius(layer);
237 
238  if (convRegion.convPoint().perp() > R) {
239 #ifdef mydebug_Seed
240  ss << "\tthis layer is before the conversion : R layer " << R << " [ Rconv " << convRegion.convPoint().perp()
241  << " Zconv " << convRegion.convPoint().z() << std::endl;
242  std::cout << ss.str();
243 #endif
244  return false;
245  }
246 
247  if (R - convRegion.convPoint().perp() > maxSearchR) {
248 #ifdef mydebug_Seed
249  ss << "\tthis layer is far from the conversion more than cut " << maxSearchR << " cm. R layer " << R
250  << " [ Rconv " << convRegion.convPoint().perp() << " Zconv " << convRegion.convPoint().z() << std::endl;
251  std::cout << ss.str();
252 #endif
253  return false;
254  }
255 
256  } else if (layer.location() == GeomDetEnumerators::endcap) {
257  float Z = getLayerZ(layer);
258  if ((convRegion.convPoint().z() > 0 && convRegion.convPoint().z() > Z) ||
259  (convRegion.convPoint().z() < 0 && convRegion.convPoint().z() < Z)) {
260 #ifdef mydebug_Seed
261  ss << "\tthis layer is before the conversion : Z layer " << Z << " [ Rconv " << convRegion.convPoint().perp()
262  << " Zconv " << convRegion.convPoint().z() << std::endl;
263  std::cout << ss.str();
264 #endif
265  return false;
266  }
267 
268  if (fabs(Z - convRegion.convPoint().z()) > maxSearchZ) {
269 #ifdef mydebug_Seed
270  ss << "\tthis layer is far from the conversion more than cut " << maxSearchZ << " cm. Z layer " << Z
271  << " [ Rconv " << convRegion.convPoint().perp() << " Zconv " << convRegion.convPoint().z() << std::endl;
272  std::cout << ss.str();
273 #endif
274  return false;
275  }
276  }
277  return true;
278 }

References GeomDetEnumerators::barrel, ConversionRegion::convPoint(), gather_cfg::cout, GeomDetEnumerators::endcap, getLayerRadius(), getLayerZ(), DetLayer::location(), PV3DBase< T, PVType, FrameType >::perp(), dttmaxenums::R, ss, DOFs::Z, and PV3DBase< T, PVType, FrameType >::z().

Referenced by hitPairs().

◆ checkRZCompatibilityWithSeedTrack()

bool HitPairGeneratorFromLayerPairForPhotonConversion::checkRZCompatibilityWithSeedTrack ( const RecHitsSortedInPhi::Hit hit,
const DetLayer layer,
const ConversionRegion convRegion 
)

Definition at line 327 of file HitPairGeneratorFromLayerPairForPhotonConversion.cc.

328  {
329  static const float nSigmaRZ = std::sqrt(12.f);
330  Range hitCotTheta;
331 
332  double sigmaCotTheta = convRegion.errTheta() *
333  (1 + convRegion.cotTheta() * convRegion.cotTheta()); //Error Propagation from sigma theta.
334  Range allowedCotTheta(convRegion.cotTheta() - nSigmaRZ * sigmaCotTheta,
335  convRegion.cotTheta() + nSigmaRZ * sigmaCotTheta);
336 
337  double dz = hit->globalPosition().z() - convRegion.pvtxPoint().z();
338  double r_reduced = std::sqrt(sqr(hit->globalPosition().x() - convRegion.pvtxPoint().x()) +
339  sqr(hit->globalPosition().y() - convRegion.pvtxPoint().y()));
340 
341  if (layer.location() == GeomDetEnumerators::barrel) {
342  float zErr = nSigmaRZ * hit->errorGlobalZ();
343  hitCotTheta = Range(getCot(dz - zErr, r_reduced), getCot(dz + zErr, r_reduced));
344  } else {
345  float rErr = nSigmaRZ * hit->errorGlobalR();
346  if (dz > 0)
347  hitCotTheta = Range(getCot(dz, r_reduced + rErr), getCot(dz, r_reduced - rErr));
348  else
349  hitCotTheta = Range(getCot(dz, r_reduced - rErr), getCot(dz, r_reduced + rErr));
350  }
351 
352  Range crossRange = allowedCotTheta.intersection(hitCotTheta);
353 
354 #ifdef mydebug_Seed
355  ss << "\n\t\t cotTheta allowed Range " << allowedCotTheta.min() << " \t, " << allowedCotTheta.max()
356  << "\n\t\t hitCotTheta Range " << hitCotTheta.min() << " \t, " << hitCotTheta.max() << "\n\t\t Cross Range "
357  << crossRange.min() << " \t, " << crossRange.max() << "\n\t\t the seed track has origin " << convRegion.convPoint()
358  << " \t cotTheta " << convRegion.cotTheta() << std::endl;
359 #endif
360 
361  return crossRange.empty();
362 }

References GeomDetEnumerators::barrel, ConversionRegion::convPoint(), ConversionRegion::cotTheta(), PVValHelper::dz, ConversionRegion::errTheta(), f, getCot(), PixelRecoRange< T >::intersection(), DetLayer::location(), nSigmaRZ, ConversionRegion::pvtxPoint(), sqr(), mathSSE::sqrt(), ss, PV3DBase< T, PVType, FrameType >::x(), hit::x, PV3DBase< T, PVType, FrameType >::y(), hit::y, PV3DBase< T, PVType, FrameType >::z(), and hit::z.

Referenced by hitPairs().

◆ getCot()

double HitPairGeneratorFromLayerPairForPhotonConversion::getCot ( double  dz,
double  dr 
)
private

Definition at line 364 of file HitPairGeneratorFromLayerPairForPhotonConversion.cc.

364  {
365  if (std::abs(dr) > 1.e-4f)
366  return dz / dr;
367  else if (dz > 0)
368  return 99999.f;
369  else
370  return -99999.f;
371 }

References funct::abs(), flavorHistoryFilter_cfi::dr, PVValHelper::dz, MillePedeFileConverter_cfg::e, and f.

Referenced by checkRZCompatibilityWithSeedTrack().

◆ getLayerRadius()

float HitPairGeneratorFromLayerPairForPhotonConversion::getLayerRadius ( const DetLayer layer)

Definition at line 197 of file HitPairGeneratorFromLayerPairForPhotonConversion.cc.

197  {
198  if (layer.location() == GeomDetEnumerators::barrel) {
199  const BarrelDetLayer& bl = static_cast<const BarrelDetLayer&>(layer);
200  float rLayer = bl.specificSurface().radius();
201 
202  // the maximal delta phi will be for the innermost hits
203  float theThickness = layer.surface().bounds().thickness();
204  return rLayer + 0.5f * theThickness;
205  }
206 
207  //Fixme
208  return 0;
209 }

References GeomDetEnumerators::barrel, Surface::bounds(), DetLayer::location(), BarrelDetLayer::specificSurface(), GeometricSearchDet::surface(), and Bounds::thickness().

Referenced by checkBoundaries(), and getPhiRange().

◆ getLayerZ()

float HitPairGeneratorFromLayerPairForPhotonConversion::getLayerZ ( const DetLayer layer)

Definition at line 211 of file HitPairGeneratorFromLayerPairForPhotonConversion.cc.

211  {
212  if (layer.location() == GeomDetEnumerators::endcap) {
213  float layerZ = layer.position().z();
214  float theThickness = layer.surface().bounds().thickness();
215  float layerZmax = layerZ > 0 ? layerZ + 0.5f * theThickness : layerZ - 0.5f * theThickness;
216  return layerZmax;
217  } else {
218  //Fixme
219  return 0;
220  }
221 }

References Surface::bounds(), GeomDetEnumerators::endcap, DetLayer::location(), GeometricSearchDet::position(), GeometricSearchDet::surface(), Bounds::thickness(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by checkBoundaries(), and getPhiRange().

◆ getPhiRange() [1/2]

bool HitPairGeneratorFromLayerPairForPhotonConversion::getPhiRange ( float &  Phimin,
float &  Phimax,
const DetLayer layer,
const ConversionRegion convRegion,
const edm::EventSetup es 
)

Definition at line 280 of file HitPairGeneratorFromLayerPairForPhotonConversion.cc.

284  {
285  if (layer.location() == GeomDetEnumerators::barrel) {
286  return getPhiRange(Phimin, Phimax, getLayerRadius(layer), convRegion, es);
287  } else if (layer.location() == GeomDetEnumerators::endcap) {
288  float Z = getLayerZ(layer);
289  float R = Z / convRegion.cotTheta();
290  return getPhiRange(Phimin, Phimax, R, convRegion, es); //FIXME
291  }
292  return false;
293 }

References GeomDetEnumerators::barrel, ConversionRegion::cotTheta(), GeomDetEnumerators::endcap, getLayerRadius(), getLayerZ(), DetLayer::location(), dataAnalyzerFineBiningParameters_cff::Phimax, dataAnalyzerFineBiningParameters_cff::Phimin, dttmaxenums::R, and DOFs::Z.

Referenced by hitPairs().

◆ getPhiRange() [2/2]

bool HitPairGeneratorFromLayerPairForPhotonConversion::getPhiRange ( float &  Phimin,
float &  Phimax,
const float &  layerR,
const ConversionRegion convRegion,
const edm::EventSetup es 
)

Definition at line 295 of file HitPairGeneratorFromLayerPairForPhotonConversion.cc.

296  {
297  Phimin = reco::deltaPhi(convRegion.convPoint().phi(), 0.);
298 
299  float dphi;
300  float ptmin = 0.1;
301  float DeltaL = layerR - convRegion.convPoint().perp();
302 
303  if (DeltaL < 0) {
304  Phimin = 0;
305  Phimax = 0;
306  return false;
307  }
308 
309  float theRCurvatureMin = PixelRecoUtilities::bendingRadius(ptmin, es);
310 
311  if (theRCurvatureMin < DeltaL)
312  dphi = atan(DeltaL / layerR);
313  else
314  dphi = atan(theRCurvatureMin / layerR * (1 - sqrt(1 - sqr(DeltaL / theRCurvatureMin))));
315 
316  if (convRegion.charge() > 0) {
317  Phimax = Phimin;
318  Phimin = Phimax - dphi;
319  } else {
320  Phimax = Phimin + dphi;
321  }
322 
323  //std::cout << dphi << " " << Phimin << " " << Phimax << " " << layerR << " " << DeltaL << " " << convRegion.convPoint().phi() << " " << convRegion.convPoint().perp()<< std::endl;
324  return true;
325 }

References PixelRecoUtilities::bendingRadius(), ConversionRegion::charge(), ConversionRegion::convPoint(), reco::deltaPhi(), PV3DBase< T, PVType, FrameType >::perp(), PV3DBase< T, PVType, FrameType >::phi(), dataAnalyzerFineBiningParameters_cff::Phimax, dataAnalyzerFineBiningParameters_cff::Phimin, ptmin, sqr(), and mathSSE::sqrt().

◆ hitPairs()

void HitPairGeneratorFromLayerPairForPhotonConversion::hitPairs ( const ConversionRegion convRegion,
const TrackingRegion reg,
OrderedHitPairs prs,
const Layers layers,
const edm::Event ev,
const edm::EventSetup es 
)

Definition at line 43 of file HitPairGeneratorFromLayerPairForPhotonConversion.cc.

48  {
49  auto oldSize = result.size();
50  auto maxNum = result.size() + theMaxElement;
51 
52 #ifdef mydebug_Seed
53  ss.str("");
54 #endif
55 
56  typedef OrderedHitPair::InnerRecHit InnerHit;
57  typedef OrderedHitPair::OuterRecHit OuterHit;
59 
60  Layer innerLayerObj = layers[theInnerLayer];
61  Layer outerLayerObj = layers[theOuterLayer];
62 
63 #ifdef mydebug_Seed
64  ss << "In " << innerLayerObj.name() << " Out " << outerLayerObj.name() << std::endl;
65 #endif
66 
67  if (!checkBoundaries(*innerLayerObj.detLayer(), convRegion, 40., 60.))
68  return; //FIXME, the maxSearchR(Z) are not optimized
69  if (!checkBoundaries(*outerLayerObj.detLayer(), convRegion, 50., 60.))
70  return; //FIXME, the maxSearchR(Z) are not optimized
71 
72  /*get hit sorted in phi for each layer: NB: doesn't apply any region cut*/
73  const RecHitsSortedInPhi& innerHitsMap = theLayerCache(innerLayerObj, region, es);
74  if (innerHitsMap.empty())
75  return;
76 
77  const RecHitsSortedInPhi& outerHitsMap = theLayerCache(outerLayerObj, region, es);
78  if (outerHitsMap.empty())
79  return;
80  /*----------------*/
81 
82  /*This object will check the compatibility of the his in phi among the two layers. */
83  //InnerDeltaPhi deltaPhi(innerLayerObj.detLayer(), region, es);
84 
85  static const float nSigmaRZ = std::sqrt(12.f);
86  // static const float nSigmaPhi = 3.f;
87  vector<RecHitsSortedInPhi::Hit> innerHits, outerHits;
88  float outerPhimin, outerPhimax;
89  float innerPhimin, innerPhimax;
90 
91  /*Getting only the Hits in the outer layer that are compatible with the conversion region*/
92  if (!getPhiRange(outerPhimin, outerPhimax, *outerLayerObj.detLayer(), convRegion, es))
93  return;
94  outerHitsMap.hits(outerPhimin, outerPhimax, outerHits);
95 
96 #ifdef mydebug_Seed
97  ss << "\tophimin, ophimax " << outerPhimin << " " << outerPhimax << std::endl;
98 #endif
99 
100  /* loop on outer hits*/
101  for (vector<RecHitsSortedInPhi::Hit>::const_iterator oh = outerHits.begin(); oh != outerHits.end(); ++oh) {
102  RecHitsSortedInPhi::Hit ohit = (*oh);
103 #ifdef mydebug_Seed
104  GlobalPoint oPos = ohit->globalPosition();
105 
106  ss << "\toPos " << oPos << " r " << oPos.perp() << " phi " << oPos.phi() << " cotTheta " << oPos.z() / oPos.perp()
107  << std::endl;
108 #endif
109 
110  /*Check the compatibility of the ohit with the eta of the seeding track*/
111  if (checkRZCompatibilityWithSeedTrack(ohit, *outerLayerObj.detLayer(), convRegion))
112  continue;
113 
114  /*
115  //Do I need this? it uses a compatibility that probably I wouldn't
116  //Removing for the time being
117 
118  PixelRecoRange<float> phiRange = deltaPhi( oPos.perp(), oPos.phi(), oPos.z(), nSigmaPhi*(ohit->errorGlobalRPhi()));
119  if (phiRange.empty()) continue;
120  */
121 
122  std::unique_ptr<const HitRZCompatibility> checkRZ = region.checkRZ(innerLayerObj.detLayer(), ohit, es);
123  if (!checkRZ) {
124 #ifdef mydebug_Seed
125  ss << "*******\nNo valid checkRZ\n*******" << std::endl;
126 #endif
127  continue;
128  }
129 
130  /*Get only the inner hits compatible with the conversion region*/
131  innerHits.clear();
132  if (!getPhiRange(innerPhimin, innerPhimax, *innerLayerObj.detLayer(), convRegion, es))
133  continue;
134  innerHitsMap.hits(innerPhimin, innerPhimax, innerHits);
135 
136 #ifdef mydebug_Seed
137  ss << "\tiphimin, iphimax " << innerPhimin << " " << innerPhimax << std::endl;
138 #endif
139 
140  /*Loop on inner hits*/
141  for (vector<RecHitsSortedInPhi::Hit>::const_iterator ih = innerHits.begin(), ieh = innerHits.end(); ih < ieh;
142  ++ih) {
143  GlobalPoint innPos = (*ih)->globalPosition();
144 
145 #ifdef mydebug_Seed
146  ss << "\tinnPos " << innPos << " r " << innPos.perp() << " phi " << innPos.phi() << " cotTheta "
147  << innPos.z() / innPos.perp() << std::endl;
148 #endif
149 
150  /*Check the compatibility of the ohit with the eta of the seeding track*/
151  if (checkRZCompatibilityWithSeedTrack(*ih, *innerLayerObj.detLayer(), convRegion))
152  continue;
153 
154  float r_reduced = std::sqrt(sqr(innPos.x() - region.origin().x()) + sqr(innPos.y() - region.origin().y()));
155  Range allowed;
156  Range hitRZ;
157  if (innerLayerObj.detLayer()->location() == barrel) {
158  allowed = checkRZ->range(r_reduced);
159  float zErr = nSigmaRZ * (*ih)->errorGlobalZ();
160  hitRZ = Range(innPos.z() - zErr, innPos.z() + zErr);
161  } else {
162  allowed = checkRZ->range(innPos.z());
163  float rErr = nSigmaRZ * (*ih)->errorGlobalR();
164  hitRZ = Range(r_reduced - rErr, r_reduced + rErr);
165  }
166  Range crossRange = allowed.intersection(hitRZ);
167 
168 #ifdef mydebug_Seed
169  ss << "\n\t\t allowed Range " << allowed.min() << " \t, " << allowed.max() << "\n\t\t hitRz Range "
170  << hitRZ.min() << " \t, " << hitRZ.max() << "\n\t\t Cross Range " << crossRange.min() << " \t, "
171  << crossRange.max() << "\n\t\t the seed track has origin " << convRegion.convPoint() << " \t cotTheta "
172  << convRegion.cotTheta() << std::endl;
173 #endif
174 
175  if (!crossRange.empty()) {
176 #ifdef mydebug_Seed
177  ss << "\n\t\t !!!!ACCEPTED!!! \n\n";
178 #endif
179  if (theMaxElement != 0 && result.size() >= maxNum) {
180  result.resize(oldSize);
181 #ifdef mydebug_Seed
182  edm::LogError("TooManySeeds") << "number of pairs exceed maximum, no pairs produced";
183  std::cout << ss.str();
184 #endif
185  return;
186  }
187  result.push_back(OrderedHitPair(*ih, ohit));
188  }
189  }
190  }
191 
192 #ifdef mydebug_Seed
193  std::cout << ss.str();
194 #endif
195 }

References Reference_intrackfit_cff::barrel, checkBoundaries(), checkRZCompatibilityWithSeedTrack(), ConversionRegion::convPoint(), ConversionRegion::cotTheta(), gather_cfg::cout, SeedingLayerSetsHits::SeedingLayer::detLayer(), RecHitsSortedInPhi::empty(), f, getPhiRange(), RecHitsSortedInPhi::hits(), PixelRecoRange< T >::intersection(), hgcalTopologyTester_cfi::layers, DetLayer::location(), SeedingLayerSetsHits::SeedingLayer::name(), nSigmaRZ, PV3DBase< T, PVType, FrameType >::perp(), PV3DBase< T, PVType, FrameType >::phi(), HLT_2018_cff::region, mps_fire::result, sqr(), mathSSE::sqrt(), ss, theInnerLayer, theLayerCache, theMaxElement, theOuterLayer, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

Member Data Documentation

◆ ss

std::stringstream HitPairGeneratorFromLayerPairForPhotonConversion::ss
private

◆ theInnerLayer

const unsigned int HitPairGeneratorFromLayerPairForPhotonConversion::theInnerLayer
private

Definition at line 56 of file HitPairGeneratorFromLayerPairForPhotonConversion.h.

Referenced by hitPairs().

◆ theLayerCache

LayerCacheType& HitPairGeneratorFromLayerPairForPhotonConversion::theLayerCache
private

Definition at line 54 of file HitPairGeneratorFromLayerPairForPhotonConversion.h.

Referenced by hitPairs().

◆ theMaxElement

const unsigned int HitPairGeneratorFromLayerPairForPhotonConversion::theMaxElement
private

Definition at line 57 of file HitPairGeneratorFromLayerPairForPhotonConversion.h.

Referenced by hitPairs().

◆ theOuterLayer

const unsigned int HitPairGeneratorFromLayerPairForPhotonConversion::theOuterLayer
private

Definition at line 55 of file HitPairGeneratorFromLayerPairForPhotonConversion.h.

Referenced by hitPairs().

nSigmaRZ
constexpr double nSigmaRZ
Definition: PixelTripletLargeTipGenerator.cc:43
Reference_intrackfit_cff.barrel
list barrel
Definition: Reference_intrackfit_cff.py:37
HitPairGeneratorFromLayerPairForPhotonConversion::Layer
SeedingLayerSetsHits::SeedingLayer Layer
Definition: HitPairGeneratorFromLayerPairForPhotonConversion.h:19
hit::y
double y
Definition: SiStripHitEffFromCalibTree.cc:90
f
double f[11][100]
Definition: MuScleFitUtils.cc:78
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
reco::deltaPhi
constexpr double deltaPhi(double phi1, double phi2)
Definition: deltaPhi.h:26
HitPairGeneratorFromLayerPairForPhotonConversion::theOuterLayer
const unsigned int theOuterLayer
Definition: HitPairGeneratorFromLayerPairForPhotonConversion.h:55
HitPairGeneratorFromLayerPairForPhotonConversion::ss
std::stringstream ss
Definition: HitPairGeneratorFromLayerPairForPhotonConversion.h:59
HitPairGeneratorFromLayerPairForPhotonConversion::theInnerLayer
const unsigned int theInnerLayer
Definition: HitPairGeneratorFromLayerPairForPhotonConversion.h:56
gather_cfg.cout
cout
Definition: gather_cfg.py:144
sqr
int sqr(const T &t)
Definition: pfalgo_common_ref.h:9
HitPairGeneratorFromLayerPairForPhotonConversion::getCot
double getCot(double dz, double dr)
Definition: HitPairGeneratorFromLayerPairForPhotonConversion.cc:364
OrderedHitPair::OuterRecHit
SeedingHitSet::ConstRecHitPointer OuterRecHit
Definition: OrderedHitPair.h:8
GeometricSearchDet::position
virtual const Surface::PositionType & position() const
Returns position of the surface.
Definition: GeometricSearchDet.h:31
HitPairGeneratorFromLayerPairForPhotonConversion::checkBoundaries
bool checkBoundaries(const DetLayer &layer, const ConversionRegion &convRegion, float maxSearchR, float maxSearchZ)
Definition: HitPairGeneratorFromLayerPairForPhotonConversion.cc:222
hit::x
double x
Definition: SiStripHitEffFromCalibTree.cc:89
PV3DBase::z
T z() const
Definition: PV3DBase.h:61
ConversionRegion::errTheta
double errTheta() const
Definition: ConversionRegion.h:18
GeomDetEnumerators::barrel
Definition: GeomDetEnumerators.h:9
DetLayer::location
virtual Location location() const =0
Which part of the detector (barrel, endcap)
Range
PixelRecoRange< float > Range
Definition: HitPairGeneratorFromLayerPairForPhotonConversion.cc:23
HitPairGeneratorFromLayerPairForPhotonConversion::checkRZCompatibilityWithSeedTrack
bool checkRZCompatibilityWithSeedTrack(const RecHitsSortedInPhi::Hit &hit, const DetLayer &layer, const ConversionRegion &convRegion)
Definition: HitPairGeneratorFromLayerPairForPhotonConversion.cc:327
SurfaceOrientation::inner
Definition: Surface.h:19
HitPairGeneratorFromLayerPairForPhotonConversion::getPhiRange
bool getPhiRange(float &Phimin, float &Phimax, const DetLayer &layer, const ConversionRegion &convRegion, const edm::EventSetup &es)
Definition: HitPairGeneratorFromLayerPairForPhotonConversion.cc:280
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
ConversionRegion::pvtxPoint
GlobalPoint pvtxPoint() const
Definition: ConversionRegion.h:16
Surface::bounds
const Bounds & bounds() const
Definition: Surface.h:87
HitPairGeneratorFromLayerPairForPhotonConversion::getLayerRadius
float getLayerRadius(const DetLayer &layer)
Definition: HitPairGeneratorFromLayerPairForPhotonConversion.cc:197
RecHitsSortedInPhi::Hit
BaseTrackerRecHit const * Hit
Definition: RecHitsSortedInPhi.h:19
Point3DBase< float, GlobalTag >
PixelRecoRange::intersection
PixelRecoRange< T > intersection(const PixelRecoRange< T > &r) const
Definition: PixelRecoRange.h:40
hit::z
double z
Definition: SiStripHitEffFromCalibTree.cc:91
ConversionRegion::convPoint
GlobalPoint convPoint() const
Definition: ConversionRegion.h:15
RecHitsSortedInPhi
Definition: RecHitsSortedInPhi.h:17
Bounds::thickness
virtual float thickness() const =0
edm::LogError
Definition: MessageLogger.h:183
HitPairGeneratorFromLayerPairForPhotonConversion::getLayerZ
float getLayerZ(const DetLayer &layer)
Definition: HitPairGeneratorFromLayerPairForPhotonConversion.cc:211
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
GeomDetEnumerators::endcap
Definition: GeomDetEnumerators.h:9
RecHitsSortedInPhi::empty
bool empty() const
Definition: RecHitsSortedInPhi.h:45
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
DOFs::Z
Definition: AlignPCLThresholdsWriter.cc:37
BarrelDetLayer
Definition: BarrelDetLayer.h:22
RecHitsSortedInPhi::hits
std::vector< Hit > hits(float phiMin, float phiMax) const
Definition: RecHitsSortedInPhi.cc:93
PVValHelper::dz
Definition: PVValidationHelpers.h:50
flavorHistoryFilter_cfi.dr
dr
Definition: flavorHistoryFilter_cfi.py:37
HLT_2018_cff.region
region
Definition: HLT_2018_cff.py:81479
OrderedHitPair::InnerRecHit
SeedingHitSet::ConstRecHitPointer InnerRecHit
Definition: OrderedHitPair.h:9
GeometricSearchDet::surface
virtual const BoundSurface & surface() const =0
The surface of the GeometricSearchDet.
ptmin
double ptmin
Definition: HydjetWrapper.h:84
dataAnalyzerFineBiningParameters_cff.Phimax
Phimax
Definition: dataAnalyzerFineBiningParameters_cff.py:7
mps_fire.result
result
Definition: mps_fire.py:303
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
HitPairGeneratorFromLayerPairForPhotonConversion::theMaxElement
const unsigned int theMaxElement
Definition: HitPairGeneratorFromLayerPairForPhotonConversion.h:57
SurfaceOrientation::outer
Definition: Surface.h:19
dataAnalyzerFineBiningParameters_cff.Phimin
Phimin
Definition: dataAnalyzerFineBiningParameters_cff.py:8
OrderedHitPair
Definition: OrderedHitPair.h:6
HitPairGeneratorFromLayerPairForPhotonConversion::theLayerCache
LayerCacheType & theLayerCache
Definition: HitPairGeneratorFromLayerPairForPhotonConversion.h:54
PixelRecoUtilities::bendingRadius
T bendingRadius(T pt, const edm::EventSetup &iSetup)
Definition: PixelRecoUtilities.h:34
dttmaxenums::R
Definition: DTTMax.h:29
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
hgcalTopologyTester_cfi.layers
layers
Definition: hgcalTopologyTester_cfi.py:8
PV3DBase::phi
Geom::Phi< T > phi() const
Definition: PV3DBase.h:66
hit
Definition: SiStripHitEffFromCalibTree.cc:88
Hit
SeedingHitSet::ConstRecHitPointer Hit
Definition: SeedGeneratorFromProtoTracksEDProducer.cc:34
ConversionRegion::cotTheta
float cotTheta() const
Definition: ConversionRegion.h:17
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
ConversionRegion::charge
int charge() const
Definition: ConversionRegion.h:19