CMS 3D CMS Logo

ElectronPixelSeedGenerator.h

Go to the documentation of this file.
00001 #ifndef ElectronPixelSeedGenerator_H
00002 #define ElectronPixelSeedGenerator_H
00003 
00016 #include "DataFormats/EgammaReco/interface//ElectronPixelSeed.h"  
00017 #include "DataFormats/EgammaReco/interface/ElectronPixelSeedFwd.h"  
00018 #include "DataFormats/EgammaReco/interface/SuperClusterFwd.h"  
00019 //#include "DataFormats/EgammaReco/interface/SuperCluster.h"
00020 #include "DataFormats/TrackerRecHit2D/interface/SiPixelRecHitCollection.h"
00021 #include "DataFormats/TrajectorySeed/interface/TrajectorySeedCollection.h"
00022 #include "DataFormats/BeamSpot/interface/BeamSpot.h"
00023 
00024 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateTransform.h"
00025 #include "TrackingTools/PatternTools/interface/TrajectoryStateUpdator.h"
00026 #include "TrackingTools/DetLayers/interface/NavigationSetter.h"
00027 
00028 #include "RecoTracker/TransientTrackingRecHit/interface/TSiPixelRecHit.h"
00029 #include "RecoTracker/TkDetLayers/interface/GeometricSearchTracker.h"
00030 
00031 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00032 #include "FWCore/Framework/interface/EventSetup.h"
00033 #include "FWCore/Framework/interface/Event.h"
00034 #include "FWCore/Framework/interface/ESHandle.h"
00035 
00036 
00037 class PropagatorWithMaterial;
00038 class KFUpdator;
00039 class PixelHitMatcher;
00040 class MeasurementTracker;
00041 class NavigationSchool;
00042 
00043 class ElectronPixelSeedGenerator
00044 {
00045  public:
00046 
00047   typedef edm::OwnVector<TrackingRecHit> PRecHitContainer;
00048   typedef TransientTrackingRecHit::ConstRecHitPointer   ConstRecHitPointer;
00049   typedef TransientTrackingRecHit::RecHitPointer        RecHitPointer;
00050   typedef TransientTrackingRecHit::RecHitContainer      RecHitContainer;
00051   
00052   ElectronPixelSeedGenerator(const edm::ParameterSet&);
00053   ~ElectronPixelSeedGenerator();
00054 
00055   void setupES(const edm::EventSetup& setup);
00056   void run(edm::Event&, const edm::EventSetup& setup, const reco::SuperClusterRefVector &, TrajectorySeedCollection *seeds, reco::ElectronPixelSeedCollection&);
00057 
00058  private:
00059 
00060   void seedsFromThisCluster(edm::Ref<reco::SuperClusterCollection> seedCluster, reco::ElectronPixelSeedCollection & out);
00061   bool prepareElTrackSeed(ConstRecHitPointer outerhit,ConstRecHitPointer innerhit, const GlobalPoint& vertexPos);
00062 
00063   bool dynamicphiroad_;
00064   bool fromTrackerSeeds_;
00065   //  edm::InputTag initialSeeds_;
00066   
00067   float lowPtThreshold_;
00068   float highPtThreshold_;
00069   float sizeWindowENeg_;   
00070   float phimin2_,phimax2_;
00071   float deltaPhi1Low_, deltaPhi1High_;
00072   float deltaPhi2_;
00073   
00074   double zmin1_, zmax1_;
00075   edm::Handle<reco::BeamSpot> theBeamSpot;
00076 
00077   PixelHitMatcher *myMatchEle;
00078   PixelHitMatcher *myMatchPos;
00079 
00080   //  edm::Handle<TrajectorySeedCollection> theInitialSeedColl;
00081   TrajectorySeedCollection* theInitialSeedColl;
00082 
00083   edm::ESHandle<MagneticField>                theMagField;
00084   edm::ESHandle<GeometricSearchTracker>       theGeomSearchTracker;
00085   KFUpdator * theUpdator;
00086   PropagatorWithMaterial * thePropagator;
00087 
00088   const MeasurementTracker*     theMeasurementTracker;
00089   const NavigationSchool*       theNavigationSchool;
00090 
00091   const edm::EventSetup *theSetup; 
00092   TrajectoryStateTransform transformer_; 
00093 
00094   PRecHitContainer recHits_; 
00095   PTrajectoryStateOnDet* pts_; 
00096 
00097   // keep cacheIds to get records only when necessary
00098   unsigned long long cacheIDMagField_;
00099   unsigned long long cacheIDGeom_;
00100   unsigned long long cacheIDNavSchool_;
00101   unsigned long long cacheIDCkfComp_;
00102   unsigned long long cacheIDTrkGeom_;
00103 };
00104 
00105 #endif // ElectronPixelSeedGenerator_H
00106 
00107 

Generated on Tue Jun 9 17:43:16 2009 for CMSSW by  doxygen 1.5.4