CMS 3D CMS Logo

ElectronSeedGenerator.h
Go to the documentation of this file.
1 #ifndef ElectronSeedGenerator_H
2 #define ElectronSeedGenerator_H
3 
17 
20 
24 
28 //#include "DataFormats/EgammaReco/interface/SuperCluster.h"
34 
40 
41 
43 class KFUpdator;
44 class PixelHitMatcher;
45 class MeasurementTracker;
46 class NavigationSchool;
47 class TrackerTopology;
48 
50 {
51  public:
52 
53  struct Tokens {
57  };
58 
63 
65  const Tokens&);
67 
68  void setupES(const edm::EventSetup& setup);
69  void run(
71  const reco::SuperClusterRefVector &, const std::vector<float> & hoe1s, const std::vector<float> & hoe2s,
73 
74  private:
75 
76  void seedsFromThisCluster( edm::Ref<reco::SuperClusterCollection> seedCluster, float hoe1, float hoe2, reco::ElectronSeedCollection & out, const TrackerTopology *tTopo ) ;
77  void seedsFromRecHits( std::vector<std::pair<RecHitWithDist,ConstRecHitPointer> > & elePixelHits, PropagationDirection & dir, const GlobalPoint & vertexPos, const reco::ElectronSeed::CaloClusterRef & cluster, reco::ElectronSeedCollection & out, bool positron ) ;
78  void seedsFromTrajectorySeeds( const std::vector<SeedWithInfo> & elePixelSeeds, const reco::ElectronSeed::CaloClusterRef & cluster, float hoe1, float hoe2, reco::ElectronSeedCollection & out, bool positron ) ;
79  void addSeed( reco::ElectronSeed & seed, const SeedWithInfo * info, bool positron, reco::ElectronSeedCollection & out ) ;
80  bool prepareElTrackSeed( ConstRecHitPointer outerhit,ConstRecHitPointer innerhit, const GlobalPoint & vertexPos) ;
81 
84  // edm::EDGetTokenT<SomeClass> initialSeeds_;
88 
91 
94  float nSigmasDeltaZ1_; // first z window size if not using the reco vertex
95  float deltaZ1WithVertex_; // first z window size when using the reco vertex
97  float phiMin2B_ ;
98  float phiMax2B_ ;
99  float phiMin2F_ ;
100  float phiMax2F_ ;
102  float deltaPhi2B_;
103  float deltaPhi2F_;
104 
105  // so that deltaPhi1 = deltaPhi1Coef1_ + deltaPhi1Coef2_/clusterEnergyT
108 
111 
112  // edm::Handle<TrajectorySeedCollection> theInitialSeedColl;
114 
117  //edm::ESHandle<GeometricSearchTracker> theGeomSearchTracker;
120 
124 
126 
128 
129 
130  PRecHitContainer recHits_;
132 
133  // keep cacheIds to get records only when necessary
134  unsigned long long cacheIDMagField_;
135 // unsigned long long cacheIDGeom_;
136  unsigned long long cacheIDNavSchool_;
137  unsigned long long cacheIDCkfComp_;
138  unsigned long long cacheIDTrkGeom_;
139 };
140 
141 #endif // ElectronSeedGenerator_H
142 
143 
unsigned long long cacheIDNavSchool_
static const TGPicture * info(bool iBackgroundIsBlack)
edm::EDGetTokenT< reco::BeamSpot > token_bs
PixelHitMatcher * myMatchEle
void setupES(const edm::EventSetup &setup)
TransientTrackingRecHit::ConstRecHitPointer ConstRecHitPointer
const NavigationSchool * theNavigationSchool
edm::EDGetTokenT< MeasurementTrackerEvent > theMeasurementTrackerEventTag
const edm::EventSetup * theSetup
std::vector< ConstRecHitPointer > RecHitContainer
def setup(process, global_tag, zero_tesla=False)
Definition: GeneralSetup.py:1
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
unsigned long long cacheIDTrkGeom_
edm::OwnVector< TrackingRecHit > PRecHitContainer
TrajectorySeedCollection * theInitialSeedColl
edm::EDGetTokenT< MeasurementTrackerEvent > token_measTrkEvt
PTrajectoryStateOnDet pts_
edm::ESHandle< TrackerGeometry > theTrackerGeometry
void seedsFromThisCluster(edm::Ref< reco::SuperClusterCollection > seedCluster, float hoe1, float hoe2, reco::ElectronSeedCollection &out, const TrackerTopology *tTopo)
std::vector< TrajectorySeed > TrajectorySeedCollection
TransientTrackingRecHit::RecHitPointer RecHitPointer
std::shared_ptr< TrackingRecHit const > ConstRecHitPointer
TransientTrackingRecHit::RecHitContainer RecHitContainer
PropagatorWithMaterial * thePropagator
edm::Handle< reco::BeamSpot > theBeamSpot
edm::EDGetTokenT< std::vector< reco::Vertex > > verticesTag_
std::vector< ElectronSeed > ElectronSeedCollection
collection of ElectronSeed objects
PixelHitMatcher * myMatchPos
std::shared_ptr< TrackingRecHit const > RecHitPointer
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)
edm::EDGetTokenT< reco::BeamSpot > beamSpotTag_
void addSeed(reco::ElectronSeed &seed, const SeedWithInfo *info, bool positron, reco::ElectronSeedCollection &out)
ElectronSeedGenerator(const edm::ParameterSet &, const Tokens &)
edm::ESHandle< MagneticField > theMagField
const MeasurementTracker * theMeasurementTracker
dbl *** dir
Definition: mlp_gen.cc:35
edm::EDGetTokenT< std::vector< reco::Vertex > > token_vtx
void seedsFromTrajectorySeeds(const std::vector< SeedWithInfo > &elePixelSeeds, const reco::ElectronSeed::CaloClusterRef &cluster, float hoe1, float hoe2, reco::ElectronSeedCollection &out, bool positron)
unsigned long long cacheIDCkfComp_