CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
ElectronSeedGenerator.h
Go to the documentation of this file.
1 #ifndef ElectronSeedGenerator_H
2 #define ElectronSeedGenerator_H
3 
17 
21 
25 
29 //#include "DataFormats/EgammaReco/interface/SuperCluster.h"
35 
40 
41 
43 class KFUpdator;
44 class PixelHitMatcher;
45 class MeasurementTracker;
46 class NavigationSchool;
47 
49 {
50  public:
51 
56 
59 
60  void setupES(const edm::EventSetup& setup);
61  void run(
63  const reco::SuperClusterRefVector &, const std::vector<float> & hoe1s, const std::vector<float> & hoe2s,
65 
66  private:
67 
69  void seedsFromRecHits( std::vector<std::pair<RecHitWithDist,ConstRecHitPointer> > & elePixelHits, PropagationDirection & dir, const GlobalPoint & vertexPos, const reco::ElectronSeed::CaloClusterRef & cluster, reco::ElectronSeedCollection & out, bool positron ) ;
70  void seedsFromTrajectorySeeds( const std::vector<SeedWithInfo> & elePixelSeeds, const reco::ElectronSeed::CaloClusterRef & cluster, float hoe1, float hoe2, reco::ElectronSeedCollection & out, bool positron ) ;
71  void addSeed( reco::ElectronSeed & seed, const SeedWithInfo * info, bool positron, reco::ElectronSeedCollection & out ) ;
72  bool prepareElTrackSeed( ConstRecHitPointer outerhit,ConstRecHitPointer innerhit, const GlobalPoint & vertexPos) ;
73 
76  // edm::InputTag initialSeeds_;
80 
83 
86  float nSigmasDeltaZ1_; // first z window size if not using the reco vertex
87  float deltaZ1WithVertex_; // first z window size when using the reco vertex
89  float phiMin2B_ ;
90  float phiMax2B_ ;
91  float phiMin2F_ ;
92  float phiMax2F_ ;
94  float deltaPhi2B_;
95  float deltaPhi2F_;
96 
97  // so that deltaPhi1 = deltaPhi1Coef1_ + deltaPhi1Coef2_/clusterEnergyT
98  double deltaPhi1Coef1_ ;
99  double deltaPhi1Coef2_ ;
100 
103 
104  // edm::Handle<TrajectorySeedCollection> theInitialSeedColl;
106 
109  //edm::ESHandle<GeometricSearchTracker> theGeomSearchTracker;
112 
116 
118 
119 
122 
123  // keep cacheIds to get records only when necessary
124  unsigned long long cacheIDMagField_;
125 // unsigned long long cacheIDGeom_;
126  unsigned long long cacheIDNavSchool_;
127  unsigned long long cacheIDCkfComp_;
128  unsigned long long cacheIDTrkGeom_;
129 };
130 
131 #endif // ElectronSeedGenerator_H
132 
133 
unsigned long long cacheIDNavSchool_
PixelHitMatcher * myMatchEle
void setupES(const edm::EventSetup &setup)
TransientTrackingRecHit::ConstRecHitPointer ConstRecHitPointer
const NavigationSchool * theNavigationSchool
const edm::EventSetup * theSetup
unsigned long long cacheIDMagField_
PropagationDirection
void run(edm::Event &, const edm::EventSetup &setup, const reco::SuperClusterRefVector &, const std::vector< float > &hoe1s, const std::vector< float > &hoe2s, TrajectorySeedCollection *seeds, reco::ElectronSeedCollection &)
edm::Handle< std::vector< reco::Vertex > > theVertices
std::vector< ConstRecHitPointer > RecHitContainer
unsigned long long cacheIDTrkGeom_
edm::OwnVector< TrackingRecHit > PRecHitContainer
TrajectorySeedCollection * theInitialSeedColl
PTrajectoryStateOnDet pts_
edm::ESHandle< TrackerGeometry > theTrackerGeometry
std::vector< TrajectorySeed > TrajectorySeedCollection
TransientTrackingRecHit::RecHitPointer RecHitPointer
TransientTrackingRecHit::RecHitContainer RecHitContainer
PropagatorWithMaterial * thePropagator
edm::Handle< reco::BeamSpot > theBeamSpot
std::vector< ElectronSeed > ElectronSeedCollection
collection of ElectronSeed objects
ElectronSeedGenerator(const edm::ParameterSet &)
PixelHitMatcher * myMatchPos
tuple out
Definition: dbtoconf.py:99
void seedsFromRecHits(std::vector< std::pair< RecHitWithDist, ConstRecHitPointer > > &elePixelHits, PropagationDirection &dir, const GlobalPoint &vertexPos, const reco::ElectronSeed::CaloClusterRef &cluster, reco::ElectronSeedCollection &out, bool positron)
bool prepareElTrackSeed(ConstRecHitPointer outerhit, ConstRecHitPointer innerhit, const GlobalPoint &vertexPos)
void addSeed(reco::ElectronSeed &seed, const SeedWithInfo *info, bool positron, reco::ElectronSeedCollection &out)
void seedsFromThisCluster(edm::Ref< reco::SuperClusterCollection > seedCluster, float hoe1, float hoe2, reco::ElectronSeedCollection &out)
edm::ESHandle< MagneticField > theMagField
const MeasurementTracker * theMeasurementTracker
dbl *** dir
Definition: mlp_gen.cc:35
void seedsFromTrajectorySeeds(const std::vector< SeedWithInfo > &elePixelSeeds, const reco::ElectronSeed::CaloClusterRef &cluster, float hoe1, float hoe2, reco::ElectronSeedCollection &out, bool positron)
void setup(std::vector< TH2F > &depth, std::string name, std::string units="")
unsigned long long cacheIDCkfComp_