CMS 3D CMS Logo

HitQuadrupletGeneratorFromLayerPairForPhotonConversion.cc
Go to the documentation of this file.
3 
7 
13 
16 
17 using namespace GeomDetEnumerators;
18 using namespace std;
20 
21 //#define mydebug_QSeed
22 
24 template <class T>
25 inline T sqr(T t) {
26  return t * t;
27 }
28 
35 
37  unsigned int inner, unsigned int outer, LayerCacheType *layerCache, unsigned int max)
38  : theLayerCache(*layerCache), theOuterLayer(outer), theInnerLayer(inner), theMaxElement(max) {
39  ss = new std::stringstream;
40 }
41 
44  const Layers &layers,
45  const edm::Event &event,
46  const edm::EventSetup &es) {
47  ss->str("");
48 
49  typedef OrderedHitPair::InnerRecHit InnerHit;
50  typedef OrderedHitPair::OuterRecHit OuterHit;
52 
53  Layer innerLayerObj = layers[theInnerLayer];
54  Layer outerLayerObj = layers[theOuterLayer];
55 
56  size_t totCountP2 = 0, totCountP1 = 0, totCountM2 = 0, totCountM1 = 0, selCount = 0;
57 #ifdef mydebug_QSeed
58  (*ss) << "In " << innerLayerObj.name() << " Out " << theOuterLayer.name() << std::endl;
59 #endif
60 
61  /*get hit sorted in phi for each layer: NB: doesn't apply any region cut*/
62  const RecHitsSortedInPhi &innerHitsMap = theLayerCache(innerLayerObj, region, es);
63  if (innerHitsMap.empty())
64  return;
65 
66  const RecHitsSortedInPhi &outerHitsMap = theLayerCache(outerLayerObj, region, es);
67  if (outerHitsMap.empty())
68  return;
69  /*----------------*/
70 
71  /*This object will check the compatibility of the his in phi among the two layers. */
72  //InnerDeltaPhi deltaPhi(*innerLayerObj.detLayer(), region, es);
73 
74  vector<RecHitsSortedInPhi::Hit> innerHits;
75  // float outerPhimin, outerPhimax;
76  float innerPhimin, innerPhimax;
77  float maxDeltaPhi = 1.; //sguazz
78  //float maxDeltaPhi=1.;
79 
80  RecHitsSortedInPhi::Range outerHits = outerHitsMap.all();
81 
83  for (RecHitsSortedInPhi::HitIter oh = outerHits.first; oh != outerHits.second; ++oh) {
84  RecHitsSortedInPhi::Hit ohit = (*oh).hit();
85  GlobalPoint oPos = ohit->globalPosition();
86 
87  totCountP2++;
88  std::unique_ptr<const HitRZCompatibility> checkRZ = region.checkRZ(outerLayerObj.detLayer(), ohit, es);
89  for (nextoh = oh + 1; nextoh != outerHits.second; ++nextoh) {
90  RecHitsSortedInPhi::Hit nohit = (*nextoh).hit();
91  GlobalPoint noPos = nohit->globalPosition();
92 
93 #ifdef mydebug_QSeed
94  (*ss) << "\toPos " << oPos << " r " << oPos.perp() << " phi " << oPos.phi() << " cotTheta "
95  << oPos.z() / oPos.perp() << std::endl;
96  (*ss) << "\tnoPos " << noPos << " r " << noPos.perp() << " phi " << noPos.phi() << " cotTheta "
97  << noPos.z() / noPos.perp() << std::endl;
98  (*ss) << "\tDeltaPhi " << reco::deltaPhi(noPos.barePhi(), oPos.barePhi()) << std::endl;
99 #endif
100 
101  if (fabs(reco::deltaPhi(noPos.barePhi(), oPos.barePhi())) > maxDeltaPhi)
102  break;
103 
104  totCountM2++;
105 
106  /*Check the compatibility of the ohit with the eta of the seeding track*/
107  if (failCheckRZCompatibility(nohit, *outerLayerObj.detLayer(), checkRZ.get(), region))
108  continue;
109 
110  /*
111  //Do I need this? it uses a compatibility that probably I wouldn't
112  //Removing for the time being
113 
114  PixelRecoRange<float> phiRange = deltaPhi( oPos.perp(), oPos.phi(), oPos.z(), nSigmaPhi*(ohit->errorGlobalRPhi()));
115  if (phiRange.empty()) continue;
116  */
117 
118  /*Get only the inner hits compatible with the conversion region*/
119  innerPhimin = ohit->globalPosition().phi();
120  innerPhimax = nohit->globalPosition().phi();
121  // checkPhiRange(innerPhimin,innerPhimax);
122 
123  innerHits.clear();
124  innerHitsMap.hits(innerPhimin, innerPhimax, innerHits);
125 
126 #ifdef mydebug_QSeed
127  (*ss) << "\tiphimin, iphimax " << innerPhimin << " " << innerPhimax << std::endl;
128 #endif
129 
130  std::unique_ptr<const HitRZCompatibility> checkRZb = region.checkRZ(innerLayerObj.detLayer(), ohit, es);
131  std::unique_ptr<const HitRZCompatibility> checkRZc = region.checkRZ(innerLayerObj.detLayer(), nohit, es);
132 
133  /*Loop on inner hits*/
134  vector<RecHitsSortedInPhi::Hit>::const_iterator ieh = innerHits.end();
135  for (vector<RecHitsSortedInPhi::Hit>::const_iterator ih = innerHits.begin(); ih < ieh; ++ih) {
136  RecHitsSortedInPhi::Hit ihit = *ih;
137 
138 #ifdef mydebug_QSeed
139  GlobalPoint innPos = (*ih)->globalPosition();
140  (*ss) << "\toPos " << oPos << " r " << oPos.perp() << " phi " << oPos.phi() << " cotTheta "
141  << oPos.z() / oPos.perp() << std::endl;
142  (*ss) << "\tnoPos " << noPos << " r " << noPos.perp() << " phi " << noPos.phi() << " cotTheta "
143  << noPos.z() / noPos.perp() << std::endl;
144  (*ss) << "\tinnPos " << innPos << " r " << innPos.perp() << " phi " << innPos.phi() << " cotTheta "
145  << innPos.z() / innPos.perp() << std::endl;
146 #endif
147 
148  totCountP1++;
149 
150  /*Check the compatibility of the ihit with the two outer hits*/
151  if (failCheckRZCompatibility(ihit, *innerLayerObj.detLayer(), checkRZb.get(), region) ||
152  failCheckRZCompatibility(ihit, *innerLayerObj.detLayer(), checkRZc.get(), region))
153  continue;
154 
155  for (vector<RecHitsSortedInPhi::Hit>::const_iterator nextih = ih + 1; nextih != ieh; ++nextih) {
156  RecHitsSortedInPhi::Hit nihit = *nextih;
157 
158 #ifdef mydebug_QSeed
159  GlobalPoint ninnPos = (*nextih)->globalPosition();
160  (*ss) << "\toPos " << oPos << " r " << oPos.perp() << " phi " << oPos.phi() << " cotTheta "
161  << oPos.z() / oPos.perp() << std::endl;
162  (*ss) << "\tnoPos " << noPos << " r " << noPos.perp() << " phi " << noPos.phi() << " cotTheta "
163  << noPos.z() / noPos.perp() << std::endl;
164  (*ss) << "\tinnPos " << innPos << " r " << innPos.perp() << " phi " << innPos.phi() << " cotTheta "
165  << innPos.z() / innPos.perp() << std::endl;
166  (*ss) << "\tninnPos " << ninnPos << " r " << ninnPos.perp() << " phi " << ninnPos.phi() << " cotTheta "
167  << ninnPos.z() / ninnPos.perp() << std::endl;
168 #endif
169 
170  totCountM1++;
171 
172  /*Check the compatibility of the nihit with the two outer hits*/
173  if (failCheckRZCompatibility(nihit, *innerLayerObj.detLayer(), checkRZb.get(), region) ||
174  failCheckRZCompatibility(nihit, *innerLayerObj.detLayer(), checkRZc.get(), region))
175  continue;
176 
177  /*Sguazz modifica qui*/
178  if (failCheckSlopeTest(ohit, nohit, ihit, nihit, region))
179  continue;
180 
181  if (theMaxElement != 0 && result.size() >= theMaxElement) {
182  result.clear();
183  edm::LogError("TooManyQuads") << "number of Quad combinations exceed maximum, no quads produced";
184 #ifdef mydebug_QSeed
185  (*ss) << "In " << innerLayerObj.name() << " Out " << outerLayerObj.name() << "\tP2 " << totCountP2
186  << "\tM2 " << totCountM2 << "\tP1 " << totCountP1 << "\tM1 " << totCountM1 << "\tsel " << selCount
187  << std::endl;
188  std::cout << (*ss).str();
189 #endif
190  return;
191  }
192  selCount++;
193  result.push_back(OrderedHitPair(ihit, ohit));
194  result.push_back(OrderedHitPair(nihit, nohit));
195  //#ifdef mydebug_QSeed
196  //(*ss) << "sizeOfresul " << result.size() << std::endl;
197  //#endif
198  }
199  }
200  }
201  }
202 #ifdef mydebug_QSeed
203  (*ss) << "In " << innerLayerObj.name() << " Out " << outerLayerObj.name() << "\tP2 " << totCountP2 << "\tM2 "
204  << totCountM2 << "\tP1 " << totCountP1 << "\tM1 " << totCountM1 << "\tsel " << selCount << std::endl;
205  std::cout << (*ss).str();
206 #endif
207 }
208 
210  const DetLayer &layer,
211  const HitRZCompatibility *checkRZ,
212  const TrackingRegion &region) {
213  if (!checkRZ) {
214 #ifdef mydebug_QSeed
215  (*ss) << "*******\nNo valid checkRZ\n*******" << std::endl;
216 #endif
217  return true;
218  }
219 
220  static const float nSigmaRZ = std::sqrt(12.f);
221  float r_reduced = std::sqrt(sqr(hit->globalPosition().x() - region.origin().x()) +
222  sqr(hit->globalPosition().y() - region.origin().y()));
223  Range allowed;
224  Range hitRZ;
225  if (layer.location() == barrel) {
226  allowed = checkRZ->range(r_reduced);
227  float zErr = nSigmaRZ * hit->errorGlobalZ();
228  hitRZ = Range(hit->globalPosition().z() - zErr, hit->globalPosition().z() + zErr);
229  } else {
230  allowed = checkRZ->range(hit->globalPosition().z());
231  float rErr = nSigmaRZ * hit->errorGlobalR();
232  hitRZ = Range(r_reduced - rErr, r_reduced + rErr);
233  }
234  Range crossRange = allowed.intersection(hitRZ);
235 
236 #ifdef mydebug_QSeed
237  (*ss) << "\n\t\t allowed Range " << allowed.min() << " \t, " << allowed.max() << "\n\t\t hitRz Range "
238  << hitRZ.min() << " \t, " << hitRZ.max() << "\n\t\t Cross Range " << crossRange.min() << " \t, "
239  << crossRange.max() << std::endl;
240  if (!crossRange.empty())
241  (*ss) << "\n\t\t !!!!ACCEPTED!!! \n\n";
242 #endif
243 
244  return crossRange.empty();
245 }
246 
248  const RecHitsSortedInPhi::Hit &nohit,
249  const RecHitsSortedInPhi::Hit &ihit,
250  const RecHitsSortedInPhi::Hit &nihit,
251  const TrackingRegion &region) {
252  double r[5], z[5], ez[5];
253  // double pr[2], pz[2], e2pz[2], mr[2], mz[2], e2mz[2];
254 
255  //
256  //Hits
257  r[0] = ohit->globalPosition().perp();
258  z[0] = ohit->globalPosition().z();
259  ez[0] = getEffectiveErrorOnZ(ohit, region);
260  //
261  r[1] = nohit->globalPosition().perp();
262  z[1] = nohit->globalPosition().z();
263  ez[1] = getEffectiveErrorOnZ(nohit, region);
264  //
265  r[2] = nihit->globalPosition().perp();
266  z[2] = nihit->globalPosition().z();
267  ez[2] = getEffectiveErrorOnZ(nihit, region);
268  //
269  r[3] = ihit->globalPosition().perp();
270  z[3] = ihit->globalPosition().z();
271  ez[3] = getEffectiveErrorOnZ(ihit, region);
272  //
273  //R (r) ordering of the 4 hit arrays
274  bubbleSortVsR(4, r, z, ez);
275  //
276  //Vertex
277  r[4] = region.origin().perp();
278  z[4] = region.origin().z();
279  double vError = region.originZBound();
280  if (vError > 15.)
281  vError = 1.;
282  ez[4] = 3. * vError;
283 
284  //
285  //Sequence of checks
286  //
287  //Inner segment == vertex
288  double rInn = r[4];
289  double zInnMin = z[4] - ez[4];
290  double zInnMax = z[4] + ez[4];
291  //
292  // Int == 2, Out == 3
293  double rOut = r[3];
294  double zOutMin = z[3] - ez[3];
295  double zOutMax = z[3] + ez[3];
296  double rInt = r[2];
297  double zIntMin = z[2] - ez[2];
298  double zIntMax = z[2] + ez[2];
299  if (failCheckSegmentZCompatibility(rInn, zInnMin, zInnMax, rInt, zIntMin, zIntMax, rOut, zOutMin, zOutMax))
300  return true;
301  //
302  // Int == 1, Out == 2 (with updated limits)
303  rOut = rInt;
304  zOutMin = zIntMin;
305  zOutMax = zIntMax;
306  rInt = r[1];
307  zIntMin = z[1] - ez[1];
308  zIntMax = z[1] + ez[1];
309  if (failCheckSegmentZCompatibility(rInn, zInnMin, zInnMax, rInt, zIntMin, zIntMax, rOut, zOutMin, zOutMax))
310  return true;
311  //
312  // Int == 0, Out == 1 (with updated limits)
313  rOut = rInt;
314  zOutMin = zIntMin;
315  zOutMax = zIntMax;
316  rInt = r[0];
317  zIntMin = z[0] - ez[0];
318  zIntMax = z[0] + ez[0];
319  if (failCheckSegmentZCompatibility(rInn, zInnMin, zInnMax, rInt, zIntMin, zIntMax, rOut, zOutMin, zOutMax))
320  return true;
321 
322  //
323  // Test is ok!!!
324  return false;
325 }
326 
328  int size, double *ax, double *ay, double *e2y, double &p0, double &e2p0, double &p1) {
329  //#include "verySimpleFit.icc"
330  return 0;
331 }
332 
335  //
336  //Fit-wise the effective error on Z is approximately the sum in quadrature of the error on Z
337  //and the error on R correctly projected by using hit-vertex direction
338 
339  double sqrProjFactor =
340  sqr((hit->globalPosition().z() - region.origin().z()) / (hit->globalPosition().perp() - region.origin().perp()));
341  return (hit->globalPositionError().czz() + sqrProjFactor * hit->globalPositionError().rerr(hit->globalPosition()));
342 }
343 
345  const TrackingRegion &region) {
346  //
347  //Fit-wise the effective error on Z is approximately the sum in quadrature of the error on Z
348  //and the error on R correctly projected by using hit-vertex direction
349  double sqrProjFactor =
350  sqr((hit->globalPosition().z() - region.origin().z()) / (hit->globalPosition().perp() - region.origin().perp()));
351  double effErr =
352  sqrt(hit->globalPositionError().czz() + sqrProjFactor * hit->globalPositionError().rerr(hit->globalPosition()));
353  if (effErr > 2.) {
354  effErr *= 1.8; //Single Side error is strip length * sqrt( 12.) = 3.46
355  //empirically found that the error on ss hits value it is already twice as large (two sigmas)!
356  //Multiply by sqrt(12.)/2.=1.73 to have effErr equal to the strip lenght (1.8 to allow for some margin)
357  //effErr*=2.5; //Used in some tests
358  } else {
359  effErr *= 2.; //Tight //Double side... allowing for 2 sigma variation
360  //effErr*=5.; //Loose //Double side... allowing for 2 sigma variation
361  }
362  return effErr;
363 }
364 
365 void HitQuadrupletGeneratorFromLayerPairForPhotonConversion::bubbleSortVsR(int n, double *ar, double *az, double *aez) {
366  bool swapped = true;
367  int j = 0;
368  double tmpr, tmpz, tmpez;
369  while (swapped) {
370  swapped = false;
371  j++;
372  for (int i = 0; i < n - j; i++) {
373  if (ar[i] > ar[i + 1]) {
374  tmpr = ar[i];
375  ar[i] = ar[i + 1];
376  ar[i + 1] = tmpr;
377  tmpz = az[i];
378  az[i] = az[i + 1];
379  az[i + 1] = tmpz;
380  tmpez = aez[i];
381  aez[i] = aez[i + 1];
382  aez[i + 1] = tmpez;
383  swapped = true;
384  }
385  }
386  }
387 }
388 
390  double &zInnMin,
391  double &zInnMax,
392  double &rInt,
393  double &zIntMin,
394  double &zIntMax,
395  double &rOut,
396  double &zOutMin,
397  double &zOutMax) {
398  //
399  // Check the compatibility in z of an INTermediate segment between an INNer segment and an OUTer segment;
400  // when true is returned zIntMin and zIntMax are replaced with allowed range values
401 
402  //Left side
403  double zLeft = getZAtR(rInn, zInnMin, rInt, rOut, zOutMin);
404  if (zIntMax < zLeft)
405  return true;
406  //Right side
407  double zRight = getZAtR(rInn, zInnMax, rInt, rOut, zOutMax);
408  if (zIntMin > zRight)
409  return true;
410  if (zIntMin < zLeft && zIntMax < zRight) {
411  zIntMax = zLeft;
412  return false;
413  }
414  if (zIntMin > zLeft && zIntMax > zRight) {
415  zIntMax = zRight;
416  return false;
417  }
418 
419  //Segment is fully contained
420  return false;
421 }
422 
424  double &rInn, double &zInn, double &r, double &rOut, double &zOut) {
425  // z - zInn r - rInn r - rInn
426  // ----------- = ----------- ==> z = zInn + (zOut - zInn) * -----------
427  // zOut - zInn rOut - rInn rOut - rInn
428 
429  return zInn + (zOut - zInn) * (r - rInn) / (rOut - rInn);
430 }
nSigmaRZ
constexpr double nSigmaRZ
Definition: PixelTripletLargeTipGenerator.cc:43
OrderedHitPairs
Definition: OrderedHitPairs.h:8
mps_fire.i
i
Definition: mps_fire.py:428
HitQuadrupletGeneratorFromLayerPairForPhotonConversion::failCheckSegmentZCompatibility
bool failCheckSegmentZCompatibility(double &rInn, double &zInnMin, double &zInnMax, double &rInt, double &zIntMin, double &zIntMax, double &rOut, double &zOutMin, double &zOutMax)
Definition: HitQuadrupletGeneratorFromLayerPairForPhotonConversion.cc:389
HitQuadrupletGeneratorFromLayerPairForPhotonConversion::ss
std::stringstream * ss
Definition: HitQuadrupletGeneratorFromLayerPairForPhotonConversion.h:64
Reference_intrackfit_cff.barrel
list barrel
Definition: Reference_intrackfit_cff.py:37
MessageLogger.h
dqmiodumpmetadata.n
n
Definition: dqmiodumpmetadata.py:28
TrackerGeometry.h
RecHitsSortedInPhi::all
Range all() const
Definition: RecHitsSortedInPhi.h:84
hit::y
double y
Definition: SiStripHitEffFromCalibTree.cc:90
ESHandle.h
DetLayer
Definition: DetLayer.h:21
f
double f[11][100]
Definition: MuScleFitUtils.cc:78
reco::deltaPhi
constexpr double deltaPhi(double phi1, double phi2)
Definition: deltaPhi.h:26
deltaPhi.h
TransientRecHitRecord.h
SeedingLayerSetsHits::SeedingLayer::detLayer
const DetLayer * detLayer() const
Definition: SeedingLayerSetsHits.h:50
gather_cfg.cout
cout
Definition: gather_cfg.py:144
TrackerRecoGeometryRecord.h
OrderedHitPair::OuterRecHit
SeedingHitSet::ConstRecHitPointer OuterRecHit
Definition: OrderedHitPair.h:8
Range
PixelRecoRange< float > Range
Definition: HitQuadrupletGeneratorFromLayerPairForPhotonConversion.cc:23
HitQuadrupletGeneratorFromLayerPairForPhotonConversion::getEffectiveErrorOnZ
double getEffectiveErrorOnZ(const RecHitsSortedInPhi::Hit &hit, const TrackingRegion &region)
Definition: HitQuadrupletGeneratorFromLayerPairForPhotonConversion.cc:344
HitQuadrupletGeneratorFromLayerPairForPhotonConversion::hitPairs
void hitPairs(const TrackingRegion &reg, OrderedHitPairs &prs, const Layers &layers, const edm::Event &ev, const edm::EventSetup &es)
Definition: HitQuadrupletGeneratorFromLayerPairForPhotonConversion.cc:42
PixelRecoRange::min
T min() const
Definition: PixelRecoRange.h:25
hit::x
double x
Definition: SiStripHitEffFromCalibTree.cc:89
PV3DBase::z
T z() const
Definition: PV3DBase.h:61
HitQuadrupletGeneratorFromLayerPairForPhotonConversion::theInnerLayer
const unsigned int theInnerLayer
Definition: HitQuadrupletGeneratorFromLayerPairForPhotonConversion.h:61
HitQuadrupletGeneratorFromLayerPairForPhotonConversion::theOuterLayer
const unsigned int theOuterLayer
Definition: HitQuadrupletGeneratorFromLayerPairForPhotonConversion.h:60
LayerHitMapCache
Definition: LayerHitMapCache.h:14
HitQuadrupletGeneratorFromLayerPairForPhotonConversion.h
HitRZCompatibility.h
SurfaceOrientation::inner
Definition: Surface.h:19
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
DDAxes::z
RecHitsSortedInPhi::Hit
BaseTrackerRecHit const * Hit
Definition: RecHitsSortedInPhi.h:19
PixelRecoUtilities.h
Point3DBase< float, GlobalTag >
PixelRecoRange::intersection
PixelRecoRange< T > intersection(const PixelRecoRange< T > &r) const
Definition: PixelRecoRange.h:40
HitRZCompatibility
Definition: HitRZCompatibility.h:8
OrderedHitPairs.h
hit::z
double z
Definition: SiStripHitEffFromCalibTree.cc:91
HitQuadrupletGeneratorFromLayerPairForPhotonConversion::failCheckSlopeTest
bool failCheckSlopeTest(const RecHitsSortedInPhi::Hit &ohit, const RecHitsSortedInPhi::Hit &nohit, const RecHitsSortedInPhi::Hit &ihit, const RecHitsSortedInPhi::Hit &nihit, const TrackingRegion &region)
Definition: HitQuadrupletGeneratorFromLayerPairForPhotonConversion.cc:247
phase1PixelTopology::layer
constexpr std::array< uint8_t, layerIndexSize > layer
Definition: phase1PixelTopology.h:99
sqr
T sqr(T t)
Definition: HitQuadrupletGeneratorFromLayerPairForPhotonConversion.cc:25
InnerDeltaPhi.h
RecHitsSortedInPhi
Definition: RecHitsSortedInPhi.h:17
PixelRecoRange< float >
Event.h
SeedingLayerSetsHits::SeedingLayer::name
const std::string & name() const
Definition: SeedingLayerSetsHits.h:49
PV3DBase::barePhi
T barePhi() const
Definition: PV3DBase.h:65
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
RecHitsSortedInPhi::empty
bool empty() const
Definition: RecHitsSortedInPhi.h:45
HLT_FULL_cff.region
region
Definition: HLT_FULL_cff.py:88271
BarrelDetLayer.h
p1
double p1[4]
Definition: TauolaWrapper.h:89
edm::EventSetup
Definition: EventSetup.h:58
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
SeedingLayerSetsHits::SeedingLayer
Definition: SeedingLayerSetsHits.h:37
HitQuadrupletGeneratorFromLayerPairForPhotonConversion::getZAtR
double getZAtR(double &rInn, double &zInn, double &r, double &rOut, double &zOut)
Definition: HitQuadrupletGeneratorFromLayerPairForPhotonConversion.cc:423
HitQuadrupletGeneratorFromLayerPairForPhotonConversion::failCheckRZCompatibility
bool failCheckRZCompatibility(const RecHitsSortedInPhi::Hit &hit, const DetLayer &layer, const HitRZCompatibility *checkRZ, const TrackingRegion &region)
Definition: HitQuadrupletGeneratorFromLayerPairForPhotonConversion.cc:209
alignCSCRings.r
r
Definition: alignCSCRings.py:93
TrackingRegionBase.h
GeomDetEnumerators
Definition: GeomDetEnumerators.h:8
HitQuadrupletGeneratorFromLayerPairForPhotonConversion::HitQuadrupletGeneratorFromLayerPairForPhotonConversion
HitQuadrupletGeneratorFromLayerPairForPhotonConversion(unsigned int inner, unsigned int outer, LayerCacheType *layerCache, unsigned int max=0)
Definition: HitQuadrupletGeneratorFromLayerPairForPhotonConversion.cc:36
HitQuadrupletGeneratorFromLayerPairForPhotonConversion::theLayerCache
LayerCacheType & theLayerCache
Definition: HitQuadrupletGeneratorFromLayerPairForPhotonConversion.h:59
std
Definition: JetResolutionObject.h:76
RecHitsSortedInPhi::hits
std::vector< Hit > hits(float phiMin, float phiMax) const
Definition: RecHitsSortedInPhi.cc:93
T
long double T
Definition: Basic3DVectorLD.h:48
ForwardDetLayer.h
SeedingLayerSetsHits::SeedingLayerSet
Definition: SeedingLayerSetsHits.h:65
OrderedHitPair::InnerRecHit
SeedingHitSet::ConstRecHitPointer InnerRecHit
Definition: OrderedHitPair.h:9
CommPDSkim_cfg.maxDeltaPhi
maxDeltaPhi
Definition: CommPDSkim_cfg.py:74
DetLayer.h
EventSetup.h
HitQuadrupletGeneratorFromLayerPairForPhotonConversion::getSqrEffectiveErrorOnZ
double getSqrEffectiveErrorOnZ(const RecHitsSortedInPhi::Hit &hit, const TrackingRegion &region)
Definition: HitQuadrupletGeneratorFromLayerPairForPhotonConversion.cc:333
HitQuadrupletGeneratorFromLayerPairForPhotonConversion::theMaxElement
const unsigned int theMaxElement
Definition: HitQuadrupletGeneratorFromLayerPairForPhotonConversion.h:62
HitRZCompatibility::range
virtual Range range(const float &rORz) const =0
TrackingRegion
Definition: TrackingRegion.h:41
TransientTrackingRecHitBuilder.h
mps_fire.result
result
Definition: mps_fire.py:311
TrackingRegion.h
RecHitsSortedInPhi::HitIter
std::vector< HitWithPhi >::const_iterator HitIter
Definition: RecHitsSortedInPhi.h:38
SurfaceOrientation::outer
Definition: Surface.h:19
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
event
Definition: event.py:1
OrderedHitPair
Definition: OrderedHitPair.h:6
edm::Event
Definition: Event.h:73
submitPVValidationJobs.t
string t
Definition: submitPVValidationJobs.py:644
HitQuadrupletGeneratorFromLayerPairForPhotonConversion::bubbleSortVsR
void bubbleSortVsR(int n, double *ax, double *ay, double *aey)
Definition: HitQuadrupletGeneratorFromLayerPairForPhotonConversion.cc:365
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
HitQuadrupletGeneratorFromLayerPairForPhotonConversion::verySimpleFit
double verySimpleFit(int size, double *ax, double *ay, double *e2y, double &p0, double &e2p0, double &p1)
Definition: HitQuadrupletGeneratorFromLayerPairForPhotonConversion.cc:327
hit
Definition: SiStripHitEffFromCalibTree.cc:88
Hit
SeedingHitSet::ConstRecHitPointer Hit
Definition: SeedGeneratorFromProtoTracksEDProducer.cc:34
findQualityFiles.size
size
Write out results.
Definition: findQualityFiles.py:443
RecHitsSortedInPhi::Range
std::pair< HitIter, HitIter > Range
Definition: RecHitsSortedInPhi.h:39