#include <HitQuadrupletGeneratorFromLayerPairForPhotonConversion.h>
Public Types | |
typedef ctfseeding::SeedingLayer | Layer |
typedef CombinedHitPairGenerator::LayerCacheType | LayerCacheType |
Public Member Functions | |
void | bubbleSortVsR (int n, double *ax, double *ay, double *aey) |
virtual HitQuadrupletGeneratorFromLayerPairForPhotonConversion * | clone () const |
bool | failCheckRZCompatibility (const RecHitsSortedInPhi::Hit &hit, const DetLayer &layer, const HitRZCompatibility *checkRZ, const TrackingRegion ®ion) |
bool | failCheckSegmentZCompatibility (double &rInn, double &zInnMin, double &zInnMax, double &rInt, double &zIntMin, double &zIntMax, double &rOut, double &zOutMin, double &zOutMax) |
bool | failCheckSlopeTest (const RecHitsSortedInPhi::Hit &ohit, const RecHitsSortedInPhi::Hit &nohit, const RecHitsSortedInPhi::Hit &ihit, const RecHitsSortedInPhi::Hit &nihit, const TrackingRegion ®ion) |
double | getEffectiveErrorOnZ (const RecHitsSortedInPhi::Hit &hit, const TrackingRegion ®ion) |
double | getSqrEffectiveErrorOnZ (const RecHitsSortedInPhi::Hit &hit, const TrackingRegion ®ion) |
double | getZAtR (double &rInn, double &zInn, double &r, double &rOut, double &zOut) |
virtual void | hitPairs (const TrackingRegion ®, OrderedHitPairs &prs, const edm::Event &ev, const edm::EventSetup &es) |
HitQuadrupletGeneratorFromLayerPairForPhotonConversion (const Layer &inner, const Layer &outer, LayerCacheType *layerCache, unsigned int nSize=30000, unsigned int max=0) | |
const Layer & | innerLayer () const |
const Layer & | outerLayer () const |
double | verySimpleFit (int size, double *ax, double *ay, double *e2y, double &p0, double &e2p0, double &p1) |
virtual | ~HitQuadrupletGeneratorFromLayerPairForPhotonConversion () |
Private Attributes | |
std::stringstream * | ss |
Layer | theInnerLayer |
LayerCacheType & | theLayerCache |
Layer | theOuterLayer |
Definition at line 14 of file HitQuadrupletGeneratorFromLayerPairForPhotonConversion.h.
Definition at line 19 of file HitQuadrupletGeneratorFromLayerPairForPhotonConversion.h.
typedef CombinedHitPairGenerator::LayerCacheType HitQuadrupletGeneratorFromLayerPairForPhotonConversion::LayerCacheType |
Definition at line 18 of file HitQuadrupletGeneratorFromLayerPairForPhotonConversion.h.
HitQuadrupletGeneratorFromLayerPairForPhotonConversion::HitQuadrupletGeneratorFromLayerPairForPhotonConversion | ( | const Layer & | inner, |
const Layer & | outer, | ||
LayerCacheType * | layerCache, | ||
unsigned int | nSize = 30000 , |
||
unsigned int | max = 0 |
||
) |
Definition at line 37 of file HitQuadrupletGeneratorFromLayerPairForPhotonConversion.cc.
References max(), ss, and OrderedHitsGenerator::theMaxElement.
Referenced by clone().
: HitPairGenerator(nSize), theLayerCache(*layerCache), theOuterLayer(outer), theInnerLayer(inner) { theMaxElement=max; ss = new std::stringstream; }
virtual HitQuadrupletGeneratorFromLayerPairForPhotonConversion::~HitQuadrupletGeneratorFromLayerPairForPhotonConversion | ( | ) | [inline, virtual] |
Definition at line 27 of file HitQuadrupletGeneratorFromLayerPairForPhotonConversion.h.
{ }
void HitQuadrupletGeneratorFromLayerPairForPhotonConversion::bubbleSortVsR | ( | int | n, |
double * | ax, | ||
double * | ay, | ||
double * | aey | ||
) |
Definition at line 381 of file HitQuadrupletGeneratorFromLayerPairForPhotonConversion.cc.
Referenced by failCheckSlopeTest().
{ bool swapped = true; int j = 0; double tmpr, tmpz, tmpez; while (swapped) { swapped = false; j++; for (int i = 0; i < n - j; i++) { if ( ar[i] > ar[i+1] ) { tmpr = ar[i]; ar[i] = ar[i + 1]; ar[i + 1] = tmpr; tmpz = az[i]; az[i] = az[i + 1]; az[i + 1] = tmpz; tmpez = aez[i]; aez[i] = aez[i + 1]; aez[i + 1] = tmpez; swapped = true; } } } }
virtual HitQuadrupletGeneratorFromLayerPairForPhotonConversion* HitQuadrupletGeneratorFromLayerPairForPhotonConversion::clone | ( | void | ) | const [inline, virtual] |
Implements HitPairGenerator.
Definition at line 32 of file HitQuadrupletGeneratorFromLayerPairForPhotonConversion.h.
References HitQuadrupletGeneratorFromLayerPairForPhotonConversion().
{ return new HitQuadrupletGeneratorFromLayerPairForPhotonConversion(*this); }
bool HitQuadrupletGeneratorFromLayerPairForPhotonConversion::failCheckRZCompatibility | ( | const RecHitsSortedInPhi::Hit & | hit, |
const DetLayer & | layer, | ||
const HitRZCompatibility * | checkRZ, | ||
const TrackingRegion & | region | ||
) |
Definition at line 223 of file HitQuadrupletGeneratorFromLayerPairForPhotonConversion.cc.
References Reference_intrackfit_cff::barrel, f, PixelRecoRange< T >::intersection(), DetLayer::location(), PixelRecoRange< T >::min(), nSigmaRZ, TrackingRegion::origin(), HitRZCompatibility::range(), funct::sqr(), mathSSE::sqrt(), ss, PV3DBase< T, PVType, FrameType >::x(), and PV3DBase< T, PVType, FrameType >::y().
Referenced by hitPairs().
{ if(!checkRZ) { #ifdef mydebug_QSeed (*ss) << "*******\nNo valid checkRZ\n*******" << std::endl; #endif return true; } static const float nSigmaRZ = std::sqrt(12.f); float r_reduced = std::sqrt( sqr(hit->globalPosition().x()-region.origin().x())+sqr(hit->globalPosition().y()-region.origin().y())); Range allowed; Range hitRZ; if (layer.location() == barrel) { allowed = checkRZ->range(r_reduced); float zErr = nSigmaRZ * hit->errorGlobalZ(); hitRZ = Range(hit->globalPosition().z()-zErr, hit->globalPosition().z()+zErr); } else { allowed = checkRZ->range(hit->globalPosition().z()); float rErr = nSigmaRZ * hit->errorGlobalR(); hitRZ = Range(r_reduced-rErr, r_reduced+rErr); } Range crossRange = allowed.intersection(hitRZ); #ifdef mydebug_QSeed (*ss) << "\n\t\t allowed Range " << allowed.min() << " \t, " << allowed.max() << "\n\t\t hitRz Range " << hitRZ.min() << " \t, " << hitRZ.max() << "\n\t\t Cross Range " << crossRange.min() << " \t, " << crossRange.max() << std::endl; if( !crossRange.empty()) (*ss) << "\n\t\t !!!!ACCEPTED!!! \n\n"; #endif return crossRange.empty(); }
bool HitQuadrupletGeneratorFromLayerPairForPhotonConversion::failCheckSegmentZCompatibility | ( | double & | rInn, |
double & | zInnMin, | ||
double & | zInnMax, | ||
double & | rInt, | ||
double & | zIntMin, | ||
double & | zIntMax, | ||
double & | rOut, | ||
double & | zOutMin, | ||
double & | zOutMax | ||
) |
Definition at line 406 of file HitQuadrupletGeneratorFromLayerPairForPhotonConversion.cc.
References getZAtR().
Referenced by failCheckSlopeTest().
{ // // Check the compatibility in z of an INTermediate segment between an INNer segment and an OUTer segment; // when true is returned zIntMin and zIntMax are replaced with allowed range values //Left side double zLeft = getZAtR(rInn, zInnMin, rInt, rOut, zOutMin); if ( zIntMax < zLeft ) return true; //Right side double zRight = getZAtR(rInn, zInnMax, rInt, rOut, zOutMax); if ( zIntMin > zRight ) return true; if ( zIntMin < zLeft && zIntMax < zRight ) { zIntMax = zLeft; return false; } if ( zIntMin > zLeft && zIntMax > zRight ) { zIntMax = zRight; return false; } //Segment is fully contained return false; }
bool HitQuadrupletGeneratorFromLayerPairForPhotonConversion::failCheckSlopeTest | ( | const RecHitsSortedInPhi::Hit & | ohit, |
const RecHitsSortedInPhi::Hit & | nohit, | ||
const RecHitsSortedInPhi::Hit & | ihit, | ||
const RecHitsSortedInPhi::Hit & | nihit, | ||
const TrackingRegion & | region | ||
) |
Definition at line 262 of file HitQuadrupletGeneratorFromLayerPairForPhotonConversion.cc.
References bubbleSortVsR(), failCheckSegmentZCompatibility(), getEffectiveErrorOnZ(), TrackingRegion::origin(), TrackingRegion::originZBound(), PV3DBase< T, PVType, FrameType >::perp(), csvReporter::r, PV3DBase< T, PVType, FrameType >::z(), and z.
Referenced by hitPairs().
{ double r[5], z[5], ez[5]; // double pr[2], pz[2], e2pz[2], mr[2], mz[2], e2mz[2]; // //Hits r[0] = ohit->globalPosition().perp(); z[0] = ohit->globalPosition().z(); ez[0] = getEffectiveErrorOnZ(ohit, region); // r[1] = nohit->globalPosition().perp(); z[1] = nohit->globalPosition().z(); ez[1] = getEffectiveErrorOnZ(nohit, region); // r[2] = nihit->globalPosition().perp(); z[2] = nihit->globalPosition().z(); ez[2] = getEffectiveErrorOnZ(nihit, region); // r[3] = ihit->globalPosition().perp(); z[3] = ihit->globalPosition().z(); ez[3] = getEffectiveErrorOnZ(ihit, region); // //R (r) ordering of the 4 hit arrays bubbleSortVsR(4, r, z, ez); // //Vertex r[4] = region.origin().perp(); z[4] = region.origin().z(); double vError = region.originZBound(); if ( vError > 15. ) vError = 1.; ez[4] = 3.*vError; // //Sequence of checks // //Inner segment == vertex double rInn = r[4]; double zInnMin = z[4]-ez[4]; double zInnMax = z[4]+ez[4]; // // Int == 2, Out == 3 double rOut = r[3]; double zOutMin = z[3]-ez[3]; double zOutMax = z[3]+ez[3]; double rInt = r[2]; double zIntMin = z[2]-ez[2]; double zIntMax = z[2]+ez[2]; if ( failCheckSegmentZCompatibility(rInn, zInnMin, zInnMax, rInt, zIntMin, zIntMax, rOut, zOutMin, zOutMax) ) return true; // // Int == 1, Out == 2 (with updated limits) rOut = rInt; zOutMin = zIntMin; zOutMax = zIntMax; rInt = r[1]; zIntMin = z[1]-ez[1]; zIntMax = z[1]+ez[1]; if ( failCheckSegmentZCompatibility(rInn, zInnMin, zInnMax, rInt, zIntMin, zIntMax, rOut, zOutMin, zOutMax) ) return true; // // Int == 0, Out == 1 (with updated limits) rOut = rInt; zOutMin = zIntMin; zOutMax = zIntMax; rInt = r[0]; zIntMin = z[0]-ez[0]; zIntMax = z[0]+ez[0]; if ( failCheckSegmentZCompatibility(rInn, zInnMin, zInnMax, rInt, zIntMin, zIntMax, rOut, zOutMin, zOutMax) ) return true; // // Test is ok!!! return false; }
double HitQuadrupletGeneratorFromLayerPairForPhotonConversion::getEffectiveErrorOnZ | ( | const RecHitsSortedInPhi::Hit & | hit, |
const TrackingRegion & | region | ||
) |
Definition at line 361 of file HitQuadrupletGeneratorFromLayerPairForPhotonConversion.cc.
References TrackingRegion::origin(), PV3DBase< T, PVType, FrameType >::perp(), funct::sqr(), mathSSE::sqrt(), and PV3DBase< T, PVType, FrameType >::z().
Referenced by failCheckSlopeTest().
{ // //Fit-wise the effective error on Z is approximately the sum in quadrature of the error on Z //and the error on R correctly projected by using hit-vertex direction double sqrProjFactor = sqr((hit->globalPosition().z()-region.origin().z())/(hit->globalPosition().perp()-region.origin().perp())); double effErr = sqrt(hit->globalPositionError().czz()+sqrProjFactor*hit->globalPositionError().rerr(hit->globalPosition())); if ( effErr>2. ) { effErr*=1.8; //Single Side error is strip length * sqrt( 12.) = 3.46 //empirically found that the error on ss hits value it is already twice as large (two sigmas)! //Multiply by sqrt(12.)/2.=1.73 to have effErr equal to the strip lenght (1.8 to allow for some margin) //effErr*=2.5; //Used in some tests } else { effErr*=2.; //Tight //Double side... allowing for 2 sigma variation //effErr*=5.; //Loose //Double side... allowing for 2 sigma variation } return effErr; }
double HitQuadrupletGeneratorFromLayerPairForPhotonConversion::getSqrEffectiveErrorOnZ | ( | const RecHitsSortedInPhi::Hit & | hit, |
const TrackingRegion & | region | ||
) |
Definition at line 350 of file HitQuadrupletGeneratorFromLayerPairForPhotonConversion.cc.
References TrackingRegion::origin(), PV3DBase< T, PVType, FrameType >::perp(), funct::sqr(), and PV3DBase< T, PVType, FrameType >::z().
{ // //Fit-wise the effective error on Z is approximately the sum in quadrature of the error on Z //and the error on R correctly projected by using hit-vertex direction double sqrProjFactor = sqr((hit->globalPosition().z()-region.origin().z())/(hit->globalPosition().perp()-region.origin().perp())); return (hit->globalPositionError().czz()+sqrProjFactor*hit->globalPositionError().rerr(hit->globalPosition())); }
double HitQuadrupletGeneratorFromLayerPairForPhotonConversion::getZAtR | ( | double & | rInn, |
double & | zInn, | ||
double & | r, | ||
double & | rOut, | ||
double & | zOut | ||
) |
Definition at line 434 of file HitQuadrupletGeneratorFromLayerPairForPhotonConversion.cc.
Referenced by failCheckSegmentZCompatibility().
{ // z - zInn r - rInn r - rInn // ----------- = ----------- ==> z = zInn + (zOut - zInn) * ----------- // zOut - zInn rOut - rInn rOut - rInn return zInn + (zOut - zInn)*(r - rInn)/(rOut - rInn); }
void HitQuadrupletGeneratorFromLayerPairForPhotonConversion::hitPairs | ( | const TrackingRegion & | reg, |
OrderedHitPairs & | prs, | ||
const edm::Event & | ev, | ||
const edm::EventSetup & | es | ||
) | [virtual] |
Implements HitPairGenerator.
Definition at line 50 of file HitQuadrupletGeneratorFromLayerPairForPhotonConversion.cc.
References RecHitsSortedInPhi::all(), TrackingRegion::checkRZ(), gather_cfg::cout, reco::deltaPhi(), Geom::deltaPhi(), ctfseeding::SeedingLayer::detLayer(), RecHitsSortedInPhi::empty(), failCheckRZCompatibility(), failCheckSlopeTest(), RecHitsSortedInPhi::hits(), CommPDSkim_cfg::maxDeltaPhi, ctfseeding::SeedingLayer::name(), PV3DBase< T, PVType, FrameType >::perp(), PV3DBase< T, PVType, FrameType >::phi(), OrderedHitPairs::size(), ss, theInnerLayer, theLayerCache, OrderedHitsGenerator::theMaxElement, theOuterLayer, and PV3DBase< T, PVType, FrameType >::z().
{ ss->str(""); typedef OrderedHitPair::InnerRecHit InnerHit; typedef OrderedHitPair::OuterRecHit OuterHit; typedef RecHitsSortedInPhi::Hit Hit; size_t totCountP2=0, totCountP1=0, totCountM2=0, totCountM1=0, selCount=0; #ifdef mydebug_QSeed (*ss) << "In " << theInnerLayer.name() << " Out " << theOuterLayer.name() << std::endl; #endif /*get hit sorted in phi for each layer: NB: doesn't apply any region cut*/ const RecHitsSortedInPhi & innerHitsMap = theLayerCache(&theInnerLayer, region, event, es); if (innerHitsMap.empty()) return; const RecHitsSortedInPhi& outerHitsMap = theLayerCache(&theOuterLayer, region, event, es); if (outerHitsMap.empty()) return; /*----------------*/ /*This object will check the compatibility of the his in phi among the two layers. */ //InnerDeltaPhi deltaPhi(*theInnerLayer.detLayer(), region, es); vector<RecHitsSortedInPhi::Hit> innerHits; // float outerPhimin, outerPhimax; float innerPhimin, innerPhimax; // float maxDeltaPhi=2.; //sguazz float maxDeltaPhi=1.; RecHitsSortedInPhi::Range outerHits = outerHitsMap.all(); RecHitsSortedInPhi::HitIter nextoh; for (RecHitsSortedInPhi::HitIter oh = outerHits.first; oh!= outerHits.second; ++oh) { RecHitsSortedInPhi::Hit ohit = (*oh).hit(); GlobalPoint oPos = ohit->globalPosition(); totCountP2++; const HitRZCompatibility *checkRZ = region.checkRZ(theOuterLayer.detLayer(), ohit, es); for(nextoh=oh+1;nextoh!=outerHits.second; ++nextoh){ RecHitsSortedInPhi::Hit nohit = (*nextoh).hit(); GlobalPoint noPos = nohit->globalPosition(); #ifdef mydebug_QSeed (*ss) << "\toPos " << oPos << " r " << oPos.perp() << " phi " << oPos.phi() << " cotTheta " << oPos.z()/oPos.perp() << std::endl; (*ss) << "\tnoPos " << noPos << " r " << noPos.perp() << " phi " << noPos.phi() << " cotTheta " << noPos.z()/noPos.perp() << std::endl; (*ss) << "\tDeltaPhi " << reco::deltaPhi(noPos.phi(),oPos.phi()) << std::endl; #endif if(fabs(reco::deltaPhi(noPos.phi(),oPos.phi()))>maxDeltaPhi) break; totCountM2++; /*Check the compatibility of the ohit with the eta of the seeding track*/ if(failCheckRZCompatibility(nohit,*theOuterLayer.detLayer(),checkRZ,region)) continue; /* //Do I need this? it uses a compatibility that probably I wouldn't //Removing for the time being PixelRecoRange<float> phiRange = deltaPhi( oPos.perp(), oPos.phi(), oPos.z(), nSigmaPhi*(ohit->errorGlobalRPhi())); if (phiRange.empty()) continue; */ /*Get only the inner hits compatible with the conversion region*/ innerPhimin=ohit->globalPosition().phi(); innerPhimax=nohit->globalPosition().phi(); // checkPhiRange(innerPhimin,innerPhimax); innerHits.clear(); innerHitsMap.hits(innerPhimin, innerPhimax, innerHits); #ifdef mydebug_QSeed (*ss) << "\tiphimin, iphimax " << innerPhimin << " " << innerPhimax << std::endl; #endif const HitRZCompatibility *checkRZb = region.checkRZ(theInnerLayer.detLayer(), ohit, es); const HitRZCompatibility *checkRZc = region.checkRZ(theInnerLayer.detLayer(), nohit, es); /*Loop on inner hits*/ vector<RecHitsSortedInPhi::Hit>::const_iterator ieh = innerHits.end(); for ( vector<RecHitsSortedInPhi::Hit>::const_iterator ih=innerHits.begin(); ih < ieh; ++ih) { RecHitsSortedInPhi::Hit ihit = *ih; GlobalPoint innPos = (*ih)->globalPosition(); #ifdef mydebug_QSeed (*ss) << "\toPos " << oPos << " r " << oPos.perp() << " phi " << oPos.phi() << " cotTheta " << oPos.z()/oPos.perp() << std::endl; (*ss) << "\tnoPos " << noPos << " r " << noPos.perp() << " phi " << noPos.phi() << " cotTheta " << noPos.z()/noPos.perp() << std::endl; (*ss) << "\tinnPos " << innPos << " r " << innPos.perp() << " phi " << innPos.phi() << " cotTheta " << innPos.z()/innPos.perp() << std::endl; #endif totCountP1++; /*Check the compatibility of the ihit with the two outer hits*/ if(failCheckRZCompatibility(ihit,*theInnerLayer.detLayer(),checkRZb,region) || failCheckRZCompatibility(ihit,*theInnerLayer.detLayer(),checkRZc,region) ) continue; for ( vector<RecHitsSortedInPhi::Hit>::const_iterator nextih=ih+1; nextih != ieh; ++nextih) { RecHitsSortedInPhi::Hit nihit = *nextih; GlobalPoint ninnPos = (*nextih)->globalPosition(); #ifdef mydebug_QSeed (*ss) << "\toPos " << oPos << " r " << oPos.perp() << " phi " << oPos.phi() << " cotTheta " << oPos.z()/oPos.perp() << std::endl; (*ss) << "\tnoPos " << noPos << " r " << noPos.perp() << " phi " << noPos.phi() << " cotTheta " << noPos.z()/noPos.perp() << std::endl; (*ss) << "\tinnPos " << innPos << " r " << innPos.perp() << " phi " << innPos.phi() << " cotTheta " << innPos.z()/innPos.perp() << std::endl; (*ss) << "\tninnPos " << ninnPos << " r " << ninnPos.perp() << " phi " << ninnPos.phi() << " cotTheta " << ninnPos.z()/ninnPos.perp() << std::endl; #endif totCountM1++; /*Check the compatibility of the nihit with the two outer hits*/ if(failCheckRZCompatibility(nihit,*theInnerLayer.detLayer(),checkRZb,region) || failCheckRZCompatibility(nihit,*theInnerLayer.detLayer(),checkRZc,region) ) continue; /*Sguazz modifica qui*/ if(failCheckSlopeTest(ohit,nohit,ihit,nihit,region)) continue; if (theMaxElement!=0 && result.size() >= theMaxElement){ result.clear(); edm::LogError("TooManySeeds")<<"number of pairs exceed maximum, no pairs produced"; delete checkRZ; delete checkRZb; delete checkRZc; #ifdef mydebug_QSeed (*ss) << "In " << theInnerLayer.name() << " Out " << theOuterLayer.name() << "\tP2 " << totCountP2 << "\tM2 " << totCountM2 << "\tP1 " << totCountP1 << "\tM1 " << totCountM1 << "\tsel " << selCount << std::endl; std::cout << (*ss).str(); #endif return; } selCount++; result.push_back( OrderedHitPair( ihit, ohit) ); result.push_back( OrderedHitPair( nihit, nohit) ); //#ifdef mydebug_QSeed //(*ss) << "sizeOfresul " << result.size() << std::endl; //#endif } } delete checkRZb; delete checkRZc; } delete checkRZ; } #ifdef mydebug_QSeed (*ss) << "In " << theInnerLayer.name() << " Out " << theOuterLayer.name() << "\tP2 " << totCountP2 << "\tM2 " << totCountM2 << "\tP1 " << totCountP1 << "\tM1 " << totCountM1 << "\tsel " << selCount << std::endl; std::cout << (*ss).str(); #endif }
const Layer& HitQuadrupletGeneratorFromLayerPairForPhotonConversion::innerLayer | ( | ) | const [inline] |
Definition at line 36 of file HitQuadrupletGeneratorFromLayerPairForPhotonConversion.h.
References theInnerLayer.
{ return theInnerLayer; }
const Layer& HitQuadrupletGeneratorFromLayerPairForPhotonConversion::outerLayer | ( | ) | const [inline] |
Definition at line 37 of file HitQuadrupletGeneratorFromLayerPairForPhotonConversion.h.
References theOuterLayer.
{ return theOuterLayer; }
double HitQuadrupletGeneratorFromLayerPairForPhotonConversion::verySimpleFit | ( | int | size, |
double * | ax, | ||
double * | ay, | ||
double * | e2y, | ||
double & | p0, | ||
double & | e2p0, | ||
double & | p1 | ||
) |
Definition at line 343 of file HitQuadrupletGeneratorFromLayerPairForPhotonConversion.cc.
{ //#include "RecoTracker/ConversionSeedGenerators/interface/verySimpleFit.icc" return 0; }
std::stringstream* HitQuadrupletGeneratorFromLayerPairForPhotonConversion::ss [private] |
Definition at line 58 of file HitQuadrupletGeneratorFromLayerPairForPhotonConversion.h.
Referenced by failCheckRZCompatibility(), hitPairs(), and HitQuadrupletGeneratorFromLayerPairForPhotonConversion().
Definition at line 56 of file HitQuadrupletGeneratorFromLayerPairForPhotonConversion.h.
Referenced by hitPairs(), and innerLayer().
Definition at line 54 of file HitQuadrupletGeneratorFromLayerPairForPhotonConversion.h.
Referenced by hitPairs().
Definition at line 55 of file HitQuadrupletGeneratorFromLayerPairForPhotonConversion.h.
Referenced by hitPairs(), and outerLayer().