CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_13_patch3/src/FastSimulation/EgammaElectronAlgos/interface/FastElectronSeedGenerator.h

Go to the documentation of this file.
00001 #ifndef FastElectronSeedGenerator_H
00002 #define FastElectronSeedGenerator_H
00003 
00013 //UB added
00014 #include "DataFormats/EgammaReco/interface/ElectronSeed.h"
00015 #include "DataFormats/EgammaReco/interface/ElectronSeedFwd.h"
00016 #include "DataFormats/EgammaReco/interface/SuperCluster.h"
00017 #include "DataFormats/EgammaReco/interface/SuperClusterFwd.h"
00018 //UB added
00019 #include "DataFormats/TrajectorySeed/interface/TrajectorySeedCollection.h"
00020 #include "FWCore/Utilities/interface/InputTag.h"
00021 
00022 #include "DataFormats/TrackerRecHit2D/interface/SiTrackerGSMatchedRecHit2DCollection.h"
00023 
00024 #include "DataFormats/Math/interface/Point3D.h"
00025 #include "SimDataFormats/Track/interface/SimTrackContainer.h"
00026 
00027 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateTransform.h"
00028 
00029 #include "TrackingTools/TransientTrackingRecHit/interface/GenericTransientTrackingRecHit.h"
00030 
00031 namespace edm {
00032   class EventSetup;
00033   class ParameterSet;
00034   class Event;
00035 }
00036 
00037 class TrackerGeometry;
00038 class MagneticField;
00039 class MagneticFieldMap;
00040 class GeometricSearchTracker;
00041 class TrackerInteractionGeometry;
00042 
00043 class PropagatorWithMaterial;
00044 class KFUpdator;
00045 class FastPixelHitMatcher;
00046 class TrackerRecHit;
00047 class TrajectorySeed;
00048 
00049 //UB changed
00050 //class FastElectronSeedGenerator : public ElectronSeedGenerator
00051 class FastElectronSeedGenerator
00052 {
00053 public:
00054 
00055   //RC
00056   typedef edm::OwnVector<TrackingRecHit> PRecHitContainer;
00057   typedef TransientTrackingRecHit::ConstRecHitPointer   ConstRecHitPointer;
00058   typedef TransientTrackingRecHit::RecHitPointer        RecHitPointer;
00059   typedef TransientTrackingRecHit::RecHitContainer      RecHitContainer;
00060 
00061 
00062   enum mode{HLT, offline, unknown};  //to be used later
00063 
00064   FastElectronSeedGenerator(const edm::ParameterSet &pset,
00065                                double pTMin,
00066                                const edm::InputTag& beamSpot);
00067 
00068   ~FastElectronSeedGenerator();
00069 
00070   void setup(bool);
00071 
00072   void setupES(const edm::EventSetup& setup);
00073 
00074   //UB changed
00075 /*  void run(edm::Event&,  */
00076 /*         // const edm::Handle<reco::SuperClusterCollection>& clusters,   */
00077 /*         const reco::SuperClusterRefVector &sclRefs, */
00078 /*         const SiTrackerGSMatchedRecHit2DCollection*, */
00079 /*         const edm::SimTrackContainer*, */
00080 /*         reco::ElectronSeedCollection&); */
00081   void  run(edm::Event& e,
00082             const reco::SuperClusterRefVector &sclRefs,
00083             const SiTrackerGSMatchedRecHit2DCollection* theGSRecHits,
00084             const edm::SimTrackContainer* theSimTracks,
00085             TrajectorySeedCollection *seeds,
00086             reco::ElectronSeedCollection & out);
00087 
00088  private:
00089 
00090   void addASeedToThisCluster(edm::Ref<reco::SuperClusterCollection> seedCluster,
00091                              std::vector<TrackerRecHit>& theHits,
00092                              const TrajectorySeed& theTrackerSeed,
00093                              std::vector<reco::ElectronSeed>& result);
00094 
00095   bool prepareElTrackSeed(ConstRecHitPointer outerhit,
00096                           ConstRecHitPointer innerhit,
00097                           const GlobalPoint& vertexPos);
00098 
00099   bool dynamicphiroad_;
00100 
00101   float lowPtThreshold_;
00102   float highPtThreshold_;
00103   float sizeWindowENeg_;
00104   float phimin2_,phimax2_;
00105   float deltaPhi1Low_, deltaPhi1High_;
00106   float deltaPhi2_;
00107   bool searchInTIDTEC;
00108 
00109   double zmin1_, zmax1_;
00110   double pTMin2;
00111   math::XYZPoint BSPosition_;
00112 
00113   FastPixelHitMatcher *myGSPixelMatcher;
00114 
00115   //UB added
00116   TrajectorySeedCollection* theInitialSeedColl;
00117   bool fromTrackerSeeds_;
00118 
00119   const MagneticField* theMagField;
00120   const MagneticFieldMap* theMagneticFieldMap;
00121   const TrackerGeometry*  theTrackerGeometry;
00122   const GeometricSearchTracker* theGeomSearchTracker;
00123   const TrackerInteractionGeometry* theTrackerInteractionGeometry;
00124 
00125   KFUpdator * theUpdator;
00126   PropagatorWithMaterial * thePropagator;
00127 
00128   const edm::EventSetup *theSetup;
00129   const edm::InputTag theBeamSpot;
00130   
00131   PRecHitContainer recHits_;
00132   PTrajectoryStateOnDet pts_;
00133 
00134 };
00135 
00136 #endif // FastElectronSeedGenerator_H
00137 
00138