CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
SiStripElectronSeedGenerator.h
Go to the documentation of this file.
1 #ifndef SiStripElectronSeedGenerator_H
2 #define SiStripElectronSeedGenerator_H
3 
19 
24 
30 
36 
42 
46 
50 
55 
58 
60 class KFUpdator;
61 class MeasurementTracker;
62 class NavigationSchool;
63 
65 {
66 public:
67 
72 
74 
76 
77  void setupES(const edm::EventSetup& setup);
78  void run(edm::Event&, const edm::EventSetup& setup,
81 
82 private:
83  double normalPhi(double phi) const {
84  while (phi > 2.* M_PI) { phi -= 2.*M_PI; }
85  while (phi < 0) { phi += 2.*M_PI; }
86  return phi;
87  }
88 
89  double phiDiff(double phi1, double phi2){
90  double result = normalPhi(phi1) - normalPhi(phi2);
91  if(result > M_PI) result -= 2*M_PI;
92  if(result < -M_PI) result += 2*M_PI;
93  return result;
94  }
95 
96  double unwrapPhi(double phi) const {
97  while (phi > M_PI) { phi -= 2.*M_PI; }
98  while (phi < -M_PI) { phi += 2.*M_PI; }
99  return phi;
100  }
101 
104 
105  int whichSubdetector(std::vector<const SiStripMatchedRecHit2D*>::const_iterator hit);
106 
107  bool preselection(GlobalPoint position,GlobalPoint superCluster,double phiVsRSlope, int hitLayer);
108  //hitLayer: 1 = TIB, 2 = TID, 3 = TEC, 4 = Mono
109 
110  bool checkHitsAndTSOS(std::vector<const SiStripMatchedRecHit2D*>::const_iterator hit1,
111  std::vector<const SiStripMatchedRecHit2D*>::const_iterator hit2,
112  double scr,double scz,double pT,double scEta);
113 
114  bool altCheckHitsAndTSOS(std::vector<const SiStripMatchedRecHit2D*>::const_iterator hit1,
115  std::vector<const SiStripRecHit2D*>::const_iterator hit2,
116  double scr,double scz,double pT,double scEta);
117 
120 
121  std::vector<bool> useDetLayer(double scEta);
122 
128 
132 
139 
140  // member vectors to hold the good hits found between hit selection and combinatorics
141  std::vector<const SiStripMatchedRecHit2D*> layer1Hits_;
142  std::vector<const SiStripMatchedRecHit2D*> layer2Hits_;
143  std::vector<const SiStripRecHit2D*> backupLayer2Hits_;
144 
146 
147  unsigned long long cacheIDMagField_;
148  unsigned long long cacheIDCkfComp_;
149  unsigned long long cacheIDTrkGeom_;
150 
166  double tidEtaUsage_;
171 
172 };
173 
174 #endif // SiStripElectronSeedGenerator_H
175 
176 
bool checkHitsAndTSOS(std::vector< const SiStripMatchedRecHit2D * >::const_iterator hit1, std::vector< const SiStripMatchedRecHit2D * >::const_iterator hit2, double scr, double scz, double pT, double scEta)
std::vector< bool > useDetLayer(double scEta)
SiStripElectronSeedGenerator(const edm::ParameterSet &)
const MeasurementTracker * theMeasurementTracker
edm::ESHandle< MagneticField > theMagField
TransientTrackingRecHit::ConstRecHitPointer ConstRecHitPointer
Chi2MeasurementEstimator * theEstimator
const SiStripMatchedRecHit2D * matchedHitConverter(ConstRecHitPointer crhp)
std::vector< ConstRecHitPointer > RecHitContainer
static int position[TOTALCHAMBERS][3]
Definition: ReadPGInfo.cc:509
TransientTrackingRecHit::RecHitPointer RecHitPointer
tuple result
Definition: query.py:137
edm::OwnVector< TrackingRecHit > PRecHitContainer
std::vector< ElectronSeed > ElectronSeedCollection
collection of ElectronSeed objects
edm::ESHandle< TrackerGeometry > trackerGeometryHandle
edm::Handle< reco::BeamSpot > theBeamSpot
int whichSubdetector(std::vector< const SiStripMatchedRecHit2D * >::const_iterator hit)
bool preselection(GlobalPoint position, GlobalPoint superCluster, double phiVsRSlope, int hitLayer)
#define M_PI
Definition: BFit3D.cc:3
const SiStripRecHit2D * backupHitConverter(ConstRecHitPointer crhp)
bool altCheckHitsAndTSOS(std::vector< const SiStripMatchedRecHit2D * >::const_iterator hit1, std::vector< const SiStripRecHit2D * >::const_iterator hit2, double scr, double scz, double pT, double scEta)
void setupES(const edm::EventSetup &setup)
const SiStripRecHitMatcher * theMatcher_
void findSeedsFromCluster(edm::Ref< reco::SuperClusterCollection >, edm::Handle< reco::BeamSpot >, reco::ElectronSeedCollection &)
std::vector< const SiStripMatchedRecHit2D * > layer2Hits_
double phiDiff(double phi1, double phi2)
edm::ESHandle< MeasurementTracker > measurementTrackerHandle
std::vector< const SiStripRecHit2D * > backupLayer2Hits_
void run(edm::Event &, const edm::EventSetup &setup, const edm::Handle< reco::SuperClusterCollection > &, reco::ElectronSeedCollection &)
std::vector< const SiStripMatchedRecHit2D * > layer1Hits_
TransientTrackingRecHit::RecHitContainer RecHitContainer
void setup(std::vector< TH2F > &depth, std::string name, std::string units="")
Definition: DDAxes.h:10