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,
72  const std::vector<const TrajectorySeedCollection *>& seedsV, reco::ElectronSeedCollection&);
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,
78  const GlobalPoint & vertexPos, const reco::ElectronSeed::CaloClusterRef & cluster, reco::ElectronSeedCollection & out, bool positron ) ;
79  void seedsFromTrajectorySeeds( const std::vector<SeedWithInfo> & elePixelSeeds, const reco::ElectronSeed::CaloClusterRef & cluster,
80  float hoe1, float hoe2, reco::ElectronSeedCollection & out, bool positron ) ;
81  void addSeed( reco::ElectronSeed & seed, const SeedWithInfo * info, bool positron, reco::ElectronSeedCollection & out ) ;
82  bool prepareElTrackSeed( ConstRecHitPointer outerhit,ConstRecHitPointer innerhit, const GlobalPoint & vertexPos) ;
83 
86  // edm::EDGetTokenT<SomeClass> initialSeeds_;
90 
93 
96  float nSigmasDeltaZ1_; // first z window size if not using the reco vertex
97  float deltaZ1WithVertex_; // first z window size when using the reco vertex
99  float phiMin2B_ ;
100  float phiMax2B_ ;
101  float phiMin2F_ ;
102  float phiMax2F_ ;
104  float deltaPhi2B_;
105  float deltaPhi2F_;
106 
107  // so that deltaPhi1 = deltaPhi1Coef1_ + deltaPhi1Coef2_/clusterEnergyT
110 
113 
114  const std::vector<const TrajectorySeedCollection*>* theInitialSeedCollV = nullptr;
115 
118  //edm::ESHandle<GeometricSearchTracker> theGeomSearchTracker;
121 
125 
127 
129 
130 
131  PRecHitContainer recHits_;
133 
134  // keep cacheIds to get records only when necessary
135  unsigned long long cacheIDMagField_;
136 // unsigned long long cacheIDGeom_;
137  unsigned long long cacheIDNavSchool_;
138  unsigned long long cacheIDCkfComp_;
139  unsigned long long cacheIDTrkGeom_;
140 };
141 
142 #endif // ElectronSeedGenerator_H
143 
144 
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:2
unsigned long long cacheIDMagField_
PropagationDirection
edm::Handle< std::vector< reco::Vertex > > theVertices
unsigned long long cacheIDTrkGeom_
edm::OwnVector< TrackingRecHit > PRecHitContainer
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)
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
const std::vector< const TrajectorySeedCollection * > * theInitialSeedCollV
edm::EDGetTokenT< std::vector< reco::Vertex > > token_vtx
void run(edm::Event &, const edm::EventSetup &setup, const reco::SuperClusterRefVector &, const std::vector< float > &hoe1s, const std::vector< float > &hoe2s, const std::vector< const TrajectorySeedCollection * > &seedsV, reco::ElectronSeedCollection &)
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_