CMS 3D CMS Logo

CMSSW_4_4_3_patch1/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){ return 0;}
00039   
00040  protected:
00041 
00042   virtual bool checkHit(
00043                         const TrajectoryStateOnSurface &,
00044                         const TransientTrackingRecHit::ConstRecHitPointer &hit,
00045                         const edm::EventSetup& es) const { return true; }
00046 
00047   virtual GlobalTrajectoryParameters initialKinematic(
00048                                                       const SeedingHitSet & hits, 
00049                                                       const GlobalPoint & vertexPos, 
00050                                                       const edm::EventSetup& es,
00051                                                       const float cotTheta) const;
00052   
00053   virtual CurvilinearTrajectoryError initialError(
00054                                                   const GlobalVector& vertexBounds, 
00055                                                   float ptMin,  
00056                                                   float sinTheta) const;
00057   
00058   virtual const TrajectorySeed * buildSeed(
00059                                            TrajectorySeedCollection & seedCollection,
00060                                            const SeedingHitSet & hits,
00061                                            const FreeTrajectoryState & fts,
00062                                            const edm::EventSetup& es) const;
00063 
00064   virtual TransientTrackingRecHit::RecHitPointer refitHit(
00065                                                           const TransientTrackingRecHit::ConstRecHitPointer &hit, 
00066                                                           const TrajectoryStateOnSurface &state) const;
00067   
00068 protected:
00069   std::string thePropagatorLabel;
00070   double theBOFFMomentum;
00071 
00072   std::stringstream * pss;
00073   PrintRecoObjects po;
00074 };
00075 #endif