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