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 
51 
56 
59 
61 class KFUpdator;
62 class MeasurementTracker;
63 class NavigationSchool;
64 
66 {
67 public:
68 
73 
75 
77 
78  void setupES(const edm::EventSetup& setup);
79  void run(edm::Event&, const edm::EventSetup& setup,
82 
83 private:
84  double normalPhi(double phi) const {
85  while (phi > 2.* M_PI) { phi -= 2.*M_PI; }
86  while (phi < 0) { phi += 2.*M_PI; }
87  return phi;
88  }
89 
90  double phiDiff(double phi1, double phi2){
91  double result = normalPhi(phi1) - normalPhi(phi2);
92  if(result > M_PI) result -= 2*M_PI;
93  if(result < -M_PI) result += 2*M_PI;
94  return result;
95  }
96 
97  double unwrapPhi(double phi) const {
98  while (phi > M_PI) { phi -= 2.*M_PI; }
99  while (phi < -M_PI) { phi += 2.*M_PI; }
100  return phi;
101  }
102 
105 
106  int whichSubdetector(std::vector<const SiStripMatchedRecHit2D*>::const_iterator hit);
107 
108  bool preselection(GlobalPoint position,GlobalPoint superCluster,double phiVsRSlope, int hitLayer);
109  //hitLayer: 1 = TIB, 2 = TID, 3 = TEC, 4 = Mono
110 
111  bool checkHitsAndTSOS(std::vector<const SiStripMatchedRecHit2D*>::const_iterator hit1,
112  std::vector<const SiStripMatchedRecHit2D*>::const_iterator hit2,
113  double scr,double scz,double pT,double scEta);
114 
115  bool altCheckHitsAndTSOS(std::vector<const SiStripMatchedRecHit2D*>::const_iterator hit1,
116  std::vector<const SiStripRecHit2D*>::const_iterator hit2,
117  double scr,double scz,double pT,double scEta);
118 
119  const SiStripMatchedRecHit2D* matchedHitConverter(ConstRecHitPointer crhp);
120  const SiStripRecHit2D* backupHitConverter(ConstRecHitPointer crhp);
121 
122  std::vector<bool> useDetLayer(double scEta);
123 
129 
133 
137 
140 
141  // member vectors to hold the good hits found between hit selection and combinatorics
142  std::vector<const SiStripMatchedRecHit2D*> layer1Hits_;
143  std::vector<const SiStripMatchedRecHit2D*> layer2Hits_;
144  std::vector<const SiStripRecHit2D*> backupLayer2Hits_;
145 
147 
148  unsigned long long cacheIDMagField_;
149  unsigned long long cacheIDCkfComp_;
150  unsigned long long cacheIDTrkGeom_;
151 
167  double tidEtaUsage_;
172 
173 };
174 
175 #endif // SiStripElectronSeedGenerator_H
176 
177 
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