CMS 3D CMS Logo

ElectronGSPixelSeedGenerator.h

Go to the documentation of this file.
00001 #ifndef ElectronGSPixelSeedGenerator_H
00002 #define ElectronGSPixelSeedGenerator_H
00003 
00013 //UB added
00014 #include "DataFormats/EgammaReco/interface//ElectronPixelSeed.h"
00015 #include "DataFormats/EgammaReco/interface/ElectronPixelSeedFwd.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/ParameterSet/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 GSPixelHitMatcher;
00046 class TrackerRecHit;
00047 class TrajectorySeed;
00048 
00049 //UB changed
00050 //class ElectronGSPixelSeedGenerator : public ElectronSeedGenerator
00051 class ElectronGSPixelSeedGenerator 
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   ElectronGSPixelSeedGenerator(const edm::ParameterSet &pset,
00065                                double pTMin,
00066                                const edm::InputTag& beamSpot);
00067 
00068   ~ElectronGSPixelSeedGenerator();
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::ElectronPixelSeedCollection&); */
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::ElectronPixelSeedCollection & 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::ElectronPixelSeed>& 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   GSPixelHitMatcher *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   TrajectoryStateTransform transformer_; 
00131   PRecHitContainer recHits_; 
00132   PTrajectoryStateOnDet* pts_; 
00133 
00134 };
00135 
00136 #endif // ElectronGSPixelSeedGenerator_H
00137 
00138 

Generated on Tue Jun 9 17:35:05 2009 for CMSSW by  doxygen 1.5.4