CMS 3D CMS Logo

HitPairGeneratorFromLayerPairForPhotonConversion.cc
Go to the documentation of this file.
3 
7 
13 
16 
17 using namespace GeomDetEnumerators;
18 using namespace std;
20 
21 // #define mydebug_Seed
22 
24 
25 namespace {
26  template <class T>
27  inline T sqr(T t) {
28  return t * t;
29  }
30 } // namespace
31 
38 
40  unsigned int inner, unsigned int outer, LayerCacheType* layerCache, unsigned int nSize, unsigned int max)
41  : theLayerCache(*layerCache), theOuterLayer(outer), theInnerLayer(inner), theMaxElement(max) {}
42 
44  const TrackingRegion& region,
46  const Layers& layers,
47  const edm::Event& event,
48  const edm::EventSetup& es) {
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 }
196 
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 }
210 
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 }
223  const ConversionRegion& convRegion,
224  float maxSearchR,
225  float maxSearchZ) {
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 }
279 
281  float& Phimax,
282  const DetLayer& layer,
283  const ConversionRegion& convRegion,
284  const edm::EventSetup& es) {
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 }
294 
296  float& Phimin, float& Phimax, const float& layerR, const ConversionRegion& convRegion, const edm::EventSetup& es) {
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 }
326 
328  const RecHitsSortedInPhi::Hit& hit, const DetLayer& layer, const ConversionRegion& convRegion) {
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 }
363 
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 }
nSigmaRZ
constexpr double nSigmaRZ
Definition: PixelTripletLargeTipGenerator.cc:43
ConversionRegion
Definition: ConversionRegion.h:8
OrderedHitPairs
Definition: OrderedHitPairs.h:8
Reference_intrackfit_cff.barrel
list barrel
Definition: Reference_intrackfit_cff.py:37
MessageLogger.h
TrackerGeometry.h
hit::y
double y
Definition: SiStripHitEffFromCalibTree.cc:90
ESHandle.h
DetLayer
Definition: DetLayer.h:21
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
deltaPhi.h
HitPairGeneratorFromLayerPairForPhotonConversion::theOuterLayer
const unsigned int theOuterLayer
Definition: HitPairGeneratorFromLayerPairForPhotonConversion.h:55
HitPairGeneratorFromLayerPairForPhotonConversion::ss
std::stringstream ss
Definition: HitPairGeneratorFromLayerPairForPhotonConversion.h:59
TransientRecHitRecord.h
HitPairGeneratorFromLayerPairForPhotonConversion::theInnerLayer
const unsigned int theInnerLayer
Definition: HitPairGeneratorFromLayerPairForPhotonConversion.h:56
SeedingLayerSetsHits::SeedingLayer::detLayer
const DetLayer * detLayer() const
Definition: SeedingLayerSetsHits.h:50
gather_cfg.cout
cout
Definition: gather_cfg.py:144
TrackerRecoGeometryRecord.h
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
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)
LayerHitMapCache
Definition: LayerHitMapCache.h:14
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
HitRZCompatibility.h
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
HitPairGeneratorFromLayerPairForPhotonConversion::getLayerRadius
float getLayerRadius(const DetLayer &layer)
Definition: HitPairGeneratorFromLayerPairForPhotonConversion.cc:197
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
OrderedHitPairs.h
hit::z
double z
Definition: SiStripHitEffFromCalibTree.cc:91
phase1PixelTopology::layer
constexpr std::array< uint8_t, layerIndexSize > layer
Definition: phase1PixelTopology.h:99
InnerDeltaPhi.h
ConversionRegion::convPoint
GlobalPoint convPoint() const
Definition: ConversionRegion.h:15
RecHitsSortedInPhi
Definition: RecHitsSortedInPhi.h:17
PixelRecoRange< float >
HitPairGeneratorFromLayerPairForPhotonConversion::getLayerZ
float getLayerZ(const DetLayer &layer)
Definition: HitPairGeneratorFromLayerPairForPhotonConversion.cc:211
Event.h
SeedingLayerSetsHits::SeedingLayer::name
const std::string & name() const
Definition: SeedingLayerSetsHits.h:49
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
GeomDetEnumerators::endcap
Definition: GeomDetEnumerators.h:9
HitPairGeneratorFromLayerPairForPhotonConversion::hitPairs
void hitPairs(const ConversionRegion &convRegion, const TrackingRegion &reg, OrderedHitPairs &prs, const Layers &layers, const edm::Event &ev, const edm::EventSetup &es)
Definition: HitPairGeneratorFromLayerPairForPhotonConversion.cc:43
RecHitsSortedInPhi::empty
bool empty() const
Definition: RecHitsSortedInPhi.h:45
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
HLT_FULL_cff.region
region
Definition: HLT_FULL_cff.py:88286
BarrelDetLayer.h
edm::EventSetup
Definition: EventSetup.h:58
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
BarrelDetLayer
Definition: BarrelDetLayer.h:22
SeedingLayerSetsHits::SeedingLayer
Definition: SeedingLayerSetsHits.h:37
TrackingRegionBase.h
GeomDetEnumerators
Definition: GeomDetEnumerators.h:8
HitPairGeneratorFromLayerPairForPhotonConversion.h
std
Definition: JetResolutionObject.h:76
RecHitsSortedInPhi::hits
std::vector< Hit > hits(float phiMin, float phiMax) const
Definition: RecHitsSortedInPhi.cc:93
HitPairGeneratorFromLayerPairForPhotonConversion::HitPairGeneratorFromLayerPairForPhotonConversion
HitPairGeneratorFromLayerPairForPhotonConversion(unsigned int inner, unsigned int outer, LayerCacheType *layerCache, unsigned int nSize=30000, unsigned int max=0)
Definition: HitPairGeneratorFromLayerPairForPhotonConversion.cc:39
PVValHelper::dz
Definition: PVValidationHelpers.h:51
T
long double T
Definition: Basic3DVectorLD.h:48
ForwardDetLayer.h
flavorHistoryFilter_cfi.dr
dr
Definition: flavorHistoryFilter_cfi.py:37
SeedingLayerSetsHits::SeedingLayerSet
Definition: SeedingLayerSetsHits.h:65
OrderedHitPair::InnerRecHit
SeedingHitSet::ConstRecHitPointer InnerRecHit
Definition: OrderedHitPair.h:9
ptmin
double ptmin
Definition: HydjetWrapper.h:84
DetLayer.h
EventSetup.h
TrackingRegion
Definition: TrackingRegion.h:41
dataAnalyzerFineBiningParameters_cff.Phimax
Phimax
Definition: dataAnalyzerFineBiningParameters_cff.py:7
TransientTrackingRecHitBuilder.h
mps_fire.result
result
Definition: mps_fire.py:311
TrackingRegion.h
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
HitPairGeneratorFromLayerPairForPhotonConversion::theMaxElement
const unsigned int theMaxElement
Definition: HitPairGeneratorFromLayerPairForPhotonConversion.h:57
BeamSpotPI::Z
Definition: BeamSpotPayloadInspectorHelper.h:33
SurfaceOrientation::outer
Definition: Surface.h:19
dataAnalyzerFineBiningParameters_cff.Phimin
Phimin
Definition: dataAnalyzerFineBiningParameters_cff.py:8
event
Definition: event.py:1
OrderedHitPair
Definition: OrderedHitPair.h:6
edm::Event
Definition: Event.h:73
submitPVValidationJobs.t
string t
Definition: submitPVValidationJobs.py:644
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