CMS 3D CMS Logo

/data/git/CMSSW_5_3_11_patch5/src/RecoTracker/ConversionSeedGenerators/interface/SeedForPhotonConversion1Leg.h

Go to the documentation of this file.
00001 #ifndef SeedForPhotonConversion1Leg_H
00002 #define SeedForPhotonConversion1Leg_H
00003 
00004 #include "RecoTracker/TkSeedGenerator/interface/SeedCreator.h"
00005 #include "RecoTracker/TkSeedingLayers/interface/SeedingHitSet.h"
00006 #include "RecoTracker/ConversionSeedGenerators/interface/PrintRecoObjects.h"
00007 class FreeTrajectoryState;
00008 
00009 class SeedForPhotonConversion1Leg : public SeedCreator {
00010 public:
00011   static const int cotTheta_Max=99999;
00012   
00013   SeedForPhotonConversion1Leg( const edm::ParameterSet & cfg):
00014     thePropagatorLabel(cfg.getParameter<std::string>("propagator")),
00015     theBOFFMomentum(cfg.existsAs<double>("SeedMomentumForBOFF") ? cfg.getParameter<double>("SeedMomentumForBOFF") : 5.0)
00016       {}
00017 
00018   SeedForPhotonConversion1Leg( 
00019       const std::string & propagator = "PropagatorWithMaterial", double seedMomentumForBOFF = -5.0) 
00020    : thePropagatorLabel(propagator), theBOFFMomentum(seedMomentumForBOFF) { }
00021 
00022   //dtor
00023   virtual ~SeedForPhotonConversion1Leg(){}
00024 
00025   virtual const TrajectorySeed * trajectorySeed( TrajectorySeedCollection & seedCollection,
00026                                                  const SeedingHitSet & hits,
00027                                                  const GlobalPoint & vertex,
00028                                                  const GlobalVector & vertexBounds,
00029                                                  float ptmin,
00030                                                  const edm::EventSetup& es,
00031                                                  float cotTheta,
00032                                                  std::stringstream& ss);
00033 
00034   virtual const TrajectorySeed *trajectorySeed(
00035                                                TrajectorySeedCollection & seedCollection,
00036                                                const SeedingHitSet & hits,
00037                                                const TrackingRegion & region,
00038                                                const edm::EventSetup& es,
00039                                                const SeedComparitor *filter){ return 0;}
00040   
00041  protected:
00042 
00043   virtual bool checkHit(
00044                         const TrajectoryStateOnSurface &,
00045                         const TransientTrackingRecHit::ConstRecHitPointer &hit,
00046                         const edm::EventSetup& es) const { return true; }
00047 
00048   virtual GlobalTrajectoryParameters initialKinematic(
00049                                                       const SeedingHitSet & hits, 
00050                                                       const GlobalPoint & vertexPos, 
00051                                                       const edm::EventSetup& es,
00052                                                       const float cotTheta) const;
00053   
00054   virtual CurvilinearTrajectoryError initialError(
00055                                                   const GlobalVector& vertexBounds, 
00056                                                   float ptMin,  
00057                                                   float sinTheta) const;
00058   
00059   virtual const TrajectorySeed * buildSeed(
00060                                            TrajectorySeedCollection & seedCollection,
00061                                            const SeedingHitSet & hits,
00062                                            const FreeTrajectoryState & fts,
00063                                            const edm::EventSetup& es) const;
00064 
00065   virtual TransientTrackingRecHit::RecHitPointer refitHit(
00066                                                           const TransientTrackingRecHit::ConstRecHitPointer &hit, 
00067                                                           const TrajectoryStateOnSurface &state) const;
00068   
00069 protected:
00070   std::string thePropagatorLabel;
00071   double theBOFFMomentum;
00072 
00073   std::stringstream * pss;
00074   PrintRecoObjects po;
00075 };
00076 #endif