CMS 3D CMS Logo

PixelHitMatcher.h
Go to the documentation of this file.
1 #ifndef PIXELHITMATCHER_H
2 #define PIXELHITMATCHER_H
3 
4 // -*- C++ -*-
5 //
6 // Package: EgammaElectronAlgos
7 // Class: PixelHitMatcher
8 //
17 //
18 // Original Author: Ursula Berthon, Claude Charlot
19 // Created: Mon Mar 27 13:22:06 CEST 2006
20 //
21 //
22 
25 
30 class TrackerGeometry;
31 class MagneticField;
32 
33 struct SeedWithInfo {
35  const unsigned char hitsMask;
36  const int subDet2;
37  const float dRz2;
38  const float dPhi2;
39  const int subDet1;
40  const float dRz1;
41  const float dPhi1;
42 };
43 
45 public:
46  PixelHitMatcher(float phi1min,
47  float phi1max,
48  float phi2minB,
49  float phi2maxB,
50  float phi2minF,
51  float phi2maxF,
52  float z2maxB,
53  float r2maxF,
54  float rMaxI,
55  bool useRecoVertex);
56 
57  void setES(MagneticField const&, TrackerGeometry const& trackerGeometry);
58 
59  std::vector<SeedWithInfo> operator()(const std::vector<const TrajectorySeedCollection*>& seedsV,
60  const GlobalPoint& xmeas,
61  const GlobalPoint& vprim,
62  float energy,
63  int charge) const;
64 
65  void set1stLayer(float dummyphi1min, float dummyphi1max);
66  void set1stLayerZRange(float zmin1, float zmax1);
67  void set2ndLayer(float dummyphi2minB, float dummyphi2maxB, float dummyphi2minF, float dummyphi2maxF);
68 
69 private:
71  bool operator()(const GlobalPoint& vprim, const TrajectoryStateOnSurface&, const GlobalPoint&, int charge) const;
72 
73  float thePhiMin;
74  float thePhiMax;
75  float theZMin;
76  float theZMax;
77  };
78 
80  bool operator()(const GlobalPoint& vprim, const TrajectoryStateOnSurface&, const GlobalPoint&, int charge) const;
81 
82  float thePhiMin;
83  float thePhiMax;
84  float theRMin;
85  float theRMax;
86  const float theRMinI;
87  const float theRMaxI;
88  };
89 
94  std::unique_ptr<PropagatorWithMaterial> prop1stLayer = nullptr;
95  std::unique_ptr<PropagatorWithMaterial> prop2ndLayer = nullptr;
98  const bool useRecoVertex_;
99 };
100 
101 #endif
BarrelMeasurementEstimator meas2ndBLayer
const int subDet1
BarrelMeasurementEstimator meas1stBLayer
std::unique_ptr< PropagatorWithMaterial > prop2ndLayer
void set2ndLayer(float dummyphi2minB, float dummyphi2maxB, float dummyphi2minF, float dummyphi2maxF)
std::unique_ptr< PropagatorWithMaterial > prop1stLayer
void set1stLayerZRange(float zmin1, float zmax1)
const MagneticField * theMagField
bool operator()(const GlobalPoint &vprim, const TrajectoryStateOnSurface &, const GlobalPoint &, int charge) const
const float dPhi1
const float dRz1
const float dRz2
const float dPhi2
void set1stLayer(float dummyphi1min, float dummyphi1max)
ForwardMeasurementEstimator meas2ndFLayer
bool operator()(const GlobalPoint &vprim, const TrajectoryStateOnSurface &, const GlobalPoint &, int charge) const
ForwardMeasurementEstimator meas1stFLayer
const bool useRecoVertex_
const int subDet2
const TrajectorySeed seed
std::vector< SeedWithInfo > operator()(const std::vector< const TrajectorySeedCollection *> &seedsV, const GlobalPoint &xmeas, const GlobalPoint &vprim, float energy, int charge) const
const TrackerGeometry * theTrackerGeometry
const unsigned char hitsMask
PixelHitMatcher(float phi1min, float phi1max, float phi2minB, float phi2maxB, float phi2minF, float phi2maxF, float z2maxB, float r2maxF, float rMaxI, bool useRecoVertex)
void setES(MagneticField const &, TrackerGeometry const &trackerGeometry)