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
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