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 13 of file HitPairGeneratorFromLayerPairForPhotonConversion.h.

Member Typedef Documentation

Constructor & Destructor Documentation

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

Member Function Documentation

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

Definition at line 225 of file HitPairGeneratorFromLayerPairForPhotonConversion.cc.

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().

225  {
226 
227  if(layer.location() == GeomDetEnumerators::barrel){
228 
229  float minZEndCap=130;
230  if(fabs(convRegion.convPoint().z()) > minZEndCap){
231 #ifdef mydebug_Seed
232  ss << "\tthe conversion seems to be in the endcap. Zconv " << convRegion.convPoint().z() << std::endl;
233  std::cout << ss.str();
234 #endif
235  return false;
236  }
237 
238  float R=getLayerRadius(layer);
239 
240  if(convRegion.convPoint().perp()>R){
241 #ifdef mydebug_Seed
242  ss << "\tthis layer is before the conversion : R layer " << R << " [ Rconv " << convRegion.convPoint().perp() << " Zconv " << convRegion.convPoint().z()<< std::endl;
243  std::cout << ss.str();
244 #endif
245  return false;
246  }
247 
248  if(R - convRegion.convPoint().perp() > maxSearchR ){
249 #ifdef mydebug_Seed
250  ss << "\tthis layer is far from the conversion more than cut " << maxSearchR << " cm. R layer " << R << " [ 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 
258  float Z=getLayerZ(layer);
259  if(
260  (convRegion.convPoint().z()>0 && convRegion.convPoint().z()>Z)
261  ||
262  (convRegion.convPoint().z()<0 && convRegion.convPoint().z()<Z)
263  ) {
264 #ifdef mydebug_Seed
265  ss << "\tthis layer is before the conversion : Z layer " << Z << " [ Rconv " << convRegion.convPoint().perp()<< " Zconv " << convRegion.convPoint().z() << std::endl;
266  std::cout << ss.str();
267 #endif
268  return false;
269  }
270 
271 
272  if(fabs(Z - convRegion.convPoint().z()) > maxSearchZ ){
273 #ifdef mydebug_Seed
274  ss << "\tthis layer is far from the conversion more than cut " << maxSearchZ << " cm. Z layer " << Z << " [ Rconv " << convRegion.convPoint().perp()<< " Zconv " << convRegion.convPoint().z() << std::endl;
275  std::cout << ss.str();
276 #endif
277  return false;
278  }
279 
280  }
281  return true;
282 }
T perp() const
Definition: PV3DBase.h:72
virtual Location location() const =0
Which part of the detector (barrel, endcap)
GlobalPoint convPoint() const
T z() const
Definition: PV3DBase.h:64
bool HitPairGeneratorFromLayerPairForPhotonConversion::checkRZCompatibilityWithSeedTrack ( const RecHitsSortedInPhi::Hit hit,
const DetLayer layer,
const ConversionRegion convRegion 
)

Definition at line 327 of file HitPairGeneratorFromLayerPairForPhotonConversion.cc.

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

Referenced by getPhiRange(), and hitPairs().

327  {
328  static const float nSigmaRZ = std::sqrt(12.f);
329  Range hitCotTheta;
330 
331  double sigmaCotTheta = convRegion.errTheta() * (1+convRegion.cotTheta()*convRegion.cotTheta()); //Error Propagation from sigma theta.
332  Range allowedCotTheta(convRegion.cotTheta()-nSigmaRZ*sigmaCotTheta,convRegion.cotTheta()+nSigmaRZ*sigmaCotTheta);
333 
334  double dz = hit->globalPosition().z()-convRegion.pvtxPoint().z();
335  double r_reduced = std::sqrt( sqr(hit->globalPosition().x()-convRegion.pvtxPoint().x())+sqr(hit->globalPosition().y()-convRegion.pvtxPoint().y()));
336 
337  if (layer.location() == GeomDetEnumerators::barrel){
338  float zErr = nSigmaRZ * hit->errorGlobalZ();
339  hitCotTheta = Range(getCot(dz-zErr,r_reduced),getCot(dz+zErr,r_reduced));
340  }else{
341  float rErr = nSigmaRZ * hit->errorGlobalR();
342  if(dz>0)
343  hitCotTheta = Range(getCot(dz,r_reduced+rErr),getCot(dz,r_reduced-rErr));
344  else
345  hitCotTheta = Range(getCot(dz,r_reduced-rErr), getCot(dz,r_reduced+rErr));
346  }
347 
348  Range crossRange = allowedCotTheta.intersection(hitCotTheta);
349 
350 #ifdef mydebug_Seed
351  ss
352  << "\n\t\t cotTheta allowed Range " << allowedCotTheta.min() << " \t, " << allowedCotTheta.max()
353  << "\n\t\t hitCotTheta Range " << hitCotTheta.min() << " \t, " << hitCotTheta.max()
354  << "\n\t\t Cross Range " << crossRange.min() << " \t, " << crossRange.max()
355  << "\n\t\t the seed track has origin " << convRegion.convPoint() << " \t cotTheta " << convRegion.cotTheta()
356  << std::endl;
357 #endif
358 
359  return crossRange.empty();
360 }
float cotTheta() const
PixelRecoRange< float > Range
GlobalPoint pvtxPoint() const
virtual Location location() const =0
Which part of the detector (barrel, endcap)
T y() const
Definition: PV3DBase.h:63
GlobalPoint convPoint() const
T sqrt(T t)
Definition: SSEVec.h:18
T z() const
Definition: PV3DBase.h:64
double f[11][100]
double errTheta() const
PixelRecoRange< T > intersection(const PixelRecoRange< T > &r) const
Square< F >::type sqr(const F &f)
Definition: Square.h:13
T x() const
Definition: PV3DBase.h:62
double HitPairGeneratorFromLayerPairForPhotonConversion::getCot ( double  dz,
double  dr 
)
private

Definition at line 364 of file HitPairGeneratorFromLayerPairForPhotonConversion.cc.

References funct::abs(), runTauDisplay::dr, MillePedeFileConverter_cfg::e, and f.

Referenced by checkRZCompatibilityWithSeedTrack().

364  {
365  if ( std::abs(dr) > 1.e-4f ) return dz/dr;
366  else
367  if(dz>0) return 99999.f;
368  else return -99999.f;
369 }
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
double f[11][100]
float HitPairGeneratorFromLayerPairForPhotonConversion::getLayerRadius ( const DetLayer layer)

Definition at line 200 of file HitPairGeneratorFromLayerPairForPhotonConversion.cc.

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

Referenced by checkBoundaries(), and getPhiRange().

200  {
201  if (layer.location() == GeomDetEnumerators::barrel){
202  const BarrelDetLayer& bl = static_cast<const BarrelDetLayer&>(layer);
203  float rLayer = bl.specificSurface().radius();
204 
205  // the maximal delta phi will be for the innermost hits
206  float theThickness = layer.surface().bounds().thickness();
207  return rLayer + 0.5f*theThickness;
208  }
209 
210  //Fixme
211  return 0;
212 }
virtual Location location() const =0
Which part of the detector (barrel, endcap)
const Bounds & bounds() const
Definition: Surface.h:120
virtual const BoundCylinder & specificSurface() const final
Extension of the interface.
virtual const BoundSurface & surface() const =0
The surface of the GeometricSearchDet.
virtual float thickness() const =0
float HitPairGeneratorFromLayerPairForPhotonConversion::getLayerZ ( const DetLayer layer)

Definition at line 214 of file HitPairGeneratorFromLayerPairForPhotonConversion.cc.

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

Referenced by checkBoundaries(), and getPhiRange().

214  {
215  if (layer.location() == GeomDetEnumerators::endcap){
216  float layerZ = layer.position().z();
217  float theThickness = layer.surface().bounds().thickness();
218  float layerZmax = layerZ > 0 ? layerZ+0.5f*theThickness: layerZ-0.5f*theThickness;
219  return layerZmax;
220  }else{
221  //Fixme
222  return 0;
223  }
224 }
virtual Location location() const =0
Which part of the detector (barrel, endcap)
const Bounds & bounds() const
Definition: Surface.h:120
T z() const
Definition: PV3DBase.h:64
virtual const BoundSurface & surface() const =0
The surface of the GeometricSearchDet.
virtual float thickness() const =0
virtual const Surface::PositionType & position() const
Returns position of the surface.
bool HitPairGeneratorFromLayerPairForPhotonConversion::getPhiRange ( float &  Phimin,
float &  Phimax,
const DetLayer layer,
const ConversionRegion convRegion,
const edm::EventSetup es 
)

Definition at line 284 of file HitPairGeneratorFromLayerPairForPhotonConversion.cc.

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

Referenced by hitPairs().

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 }
float cotTheta() const
virtual Location location() const =0
Which part of the detector (barrel, endcap)
bool getPhiRange(float &Phimin, float &Phimax, const DetLayer &layer, const ConversionRegion &convRegion, const edm::EventSetup &es)
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.

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

295  {
296  Phimin = reco::deltaPhi(convRegion.convPoint().phi(),0.);
297 
298  float dphi;
299  float ptmin=0.1;
300  float DeltaL=layerR-convRegion.convPoint().perp();
301 
302  if(DeltaL<0){
303  Phimin=0;
304  Phimax=0;
305  return false;
306  }
307 
308  float theRCurvatureMin = PixelRecoUtilities::bendingRadius(ptmin,es);
309 
310  if(theRCurvatureMin<DeltaL)
311  dphi = atan(DeltaL/layerR);
312  else
313  dphi = atan(theRCurvatureMin/layerR * ( 1 - sqrt(1-sqr(DeltaL/theRCurvatureMin)) ) );
314 
315  if(convRegion.charge()>0){
316  Phimax=Phimin;
317  Phimin=Phimax-dphi;
318  }else{
319  Phimax=Phimin+dphi;
320  }
321 
322  //std::cout << dphi << " " << Phimin << " " << Phimax << " " << layerR << " " << DeltaL << " " << convRegion.convPoint().phi() << " " << convRegion.convPoint().perp()<< std::endl;
323  return true;
324 }
constexpr double deltaPhi(double phi1, double phi2)
Definition: deltaPhi.h:22
T perp() const
Definition: PV3DBase.h:72
int charge() const
Geom::Phi< T > phi() const
Definition: PV3DBase.h:69
GlobalPoint convPoint() const
T sqrt(T t)
Definition: SSEVec.h:18
T bendingRadius(T pt, const edm::EventSetup &iSetup)
double ptmin
Definition: HydjetWrapper.h:90
Square< F >::type sqr(const F &f)
Definition: Square.h:13
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 48 of file HitPairGeneratorFromLayerPairForPhotonConversion.cc.

References Reference_intrackfit_cff::barrel, checkBoundaries(), TrackingRegion::checkRZ(), checkRZCompatibilityWithSeedTrack(), ConversionRegion::convPoint(), ConversionRegion::cotTheta(), gather_cfg::cout, SeedingLayerSetsHits::SeedingLayer::detLayer(), RecHitsSortedInPhi::empty(), f, getPhiRange(), RecHitsSortedInPhi::hits(), PixelRecoRange< T >::intersection(), DetLayer::location(), SeedingLayerSetsHits::SeedingLayer::name(), nSigmaRZ, TrackingRegion::origin(), PV3DBase< T, PVType, FrameType >::perp(), PV3DBase< T, PVType, FrameType >::phi(), HitRZCompatibility::range(), OrderedHitPairs::size(), funct::sqr(), mathSSE::sqrt(), ss, theInnerLayer, theLayerCache, theMaxElement, theOuterLayer, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

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

Member Data Documentation

std::stringstream HitPairGeneratorFromLayerPairForPhotonConversion::ss
private
const unsigned int HitPairGeneratorFromLayerPairForPhotonConversion::theInnerLayer
private

Definition at line 48 of file HitPairGeneratorFromLayerPairForPhotonConversion.h.

Referenced by hitPairs().

LayerCacheType& HitPairGeneratorFromLayerPairForPhotonConversion::theLayerCache
private

Definition at line 46 of file HitPairGeneratorFromLayerPairForPhotonConversion.h.

Referenced by hitPairs().

const unsigned int HitPairGeneratorFromLayerPairForPhotonConversion::theMaxElement
private

Definition at line 49 of file HitPairGeneratorFromLayerPairForPhotonConversion.h.

Referenced by hitPairs().

const unsigned int HitPairGeneratorFromLayerPairForPhotonConversion::theOuterLayer
private

Definition at line 47 of file HitPairGeneratorFromLayerPairForPhotonConversion.h.

Referenced by hitPairs().