CMS 3D CMS Logo

TrajectorySeedProducer.h

Go to the documentation of this file.
00001 #ifndef FastSimulation_Tracking_TrajectorySeedProducer_h
00002 #define FastSimulation_Tracking_TrajectorySeedProducer_h
00003 
00004 #include "FWCore/Framework/interface/EDProducer.h"
00005 #include "FWCore/ParameterSet/interface/InputTag.h"
00006 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
00007 #include "DataFormats/VertexReco/interface/VertexFwd.h"
00008 
00009 #include <vector>
00010 #include <string>
00011 
00012 class TransientInitialStateEstimator;
00013 class MagneticField;
00014 class MagneticFieldMap;
00015 class TrackerGeometry;
00016 class TrajectoryStateOnSurface;
00017 class PTrajectoryStateOnDet;
00018 class ParticlePropagator; 
00019 class PropagatorWithMaterial;
00020 
00021 namespace edm { 
00022   class ParameterSet;
00023   class Event;
00024   class EventSetup;
00025 }
00026 
00027 class TrajectorySeedProducer : public edm::EDProducer
00028 {
00029  public:
00030   
00031   explicit TrajectorySeedProducer(const edm::ParameterSet& conf);
00032   
00033   virtual ~TrajectorySeedProducer();
00034   
00035   virtual void beginRun(edm::Run & run, const edm::EventSetup & es);
00036   
00037   virtual void produce(edm::Event& e, const edm::EventSetup& es);
00038   
00039  private:
00040 
00042   void stateOnDet(const TrajectoryStateOnSurface& ts,
00043                   unsigned int detid,
00044                   PTrajectoryStateOnDet& pts) const;
00045   
00048   bool compatibleWithBeamAxis(GlobalPoint& gpos1, 
00049                               GlobalPoint& gpos2,
00050                               double error,
00051                               bool forward,
00052                               unsigned algo) const;
00053 
00054  private:
00055 
00056   const MagneticField*  theMagField;
00057   const MagneticFieldMap*  theFieldMap;
00058   const TrackerGeometry*  theGeometry;
00059   PropagatorWithMaterial* thePropagator;
00060 
00061   std::vector<double> pTMin;
00062   std::vector<double> maxD0;
00063   std::vector<double> maxZ0;
00064   std::vector<unsigned> minRecHits;
00065   edm::InputTag hitProducer;
00066   edm::InputTag theBeamSpot;
00067 
00068   bool seedCleaning;
00069   bool rejectOverlaps;
00070   unsigned int absMinRecHits;
00071   std::vector<std::string> seedingAlgo;
00072   std::vector<unsigned int> numberOfHits;
00073   std::vector<unsigned int> firstHitSubDetectorNumber;
00074   std::vector<unsigned int> secondHitSubDetectorNumber;
00075   std::vector<unsigned int> thirdHitSubDetectorNumber;
00076   std::vector< std::vector<unsigned int> > firstHitSubDetectors;
00077   std::vector< std::vector<unsigned int> > secondHitSubDetectors;
00078   std::vector< std::vector<unsigned int> > thirdHitSubDetectors;
00079 
00080   std::vector<double> originRadius;
00081   std::vector<double> originHalfLength;
00082   std::vector<double> originpTMin;
00083 
00084   std::vector<edm::InputTag> primaryVertices;
00085   std::vector<double> zVertexConstraint;
00086 
00087   std::vector<const reco::VertexCollection*> vertices;
00088   double x0, y0, z0;
00089 
00090 };
00091 
00092 #endif

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