CMS 3D CMS Logo

InOutConversionSeedFinder.h

Go to the documentation of this file.
00001 #ifndef RecoEGAMMA_ConversionSeed_InOutConversionSeedFinder_h
00002 #define RecoEGAMMA_ConversionSeed_InOutConversionSeedFinder_h
00003 
00013 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00014 #include "DataFormats/CaloRecHit/interface/CaloClusterFwd.h"
00015 #include "DataFormats/Common/interface/View.h"
00016 
00017 #include "DataFormats/TrajectorySeed/interface/TrajectorySeedCollection.h"
00018 #include "DataFormats/TrackCandidate/interface/TrackCandidateCollection.h"
00019 
00020 #include "RecoEgamma/EgammaPhotonAlgos/interface/ConversionSeedFinder.h"
00021 
00022 #include "RecoTracker/TkDetLayers/interface/GeometricSearchTracker.h"
00023 #include "RecoTracker/MeasurementDet/interface/MeasurementTracker.h"
00024 #include "TrackingTools/PatternTools/interface/MeasurementEstimator.h"
00025 #include "TrackingTools/PatternTools/interface/Trajectory.h"
00026 #include "TrackingTools/MeasurementDet/interface/LayerMeasurements.h"
00027 #include "Geometry/CommonDetUnit/interface/TrackingGeometry.h"
00028 #include <string>
00029 #include <vector>
00030 
00031 
00032 
00033 class MagneticField;
00034 class FreeTrajectoryState;
00035 class TrajectoryStateOnSurface;
00036 class TrajectoryMeasurement;
00037 
00038 class InOutConversionSeedFinder : public ConversionSeedFinder {
00039   
00040   
00041  private:
00042   
00043   typedef FreeTrajectoryState FTS;
00044   typedef TrajectoryStateOnSurface TSOS;
00045   
00046   
00047   public :
00048     
00049     
00050     
00051     InOutConversionSeedFinder( const edm::ParameterSet& config );
00052   
00053   
00054   
00055   virtual ~InOutConversionSeedFinder();
00056   
00057   
00058   virtual void  makeSeeds(  const edm::Handle<edm::View<reco::CaloCluster> > & allBc) const;
00059   
00060   
00061   
00062   void setTracks(std::vector<Trajectory> in) { theOutInTracks_.clear(); theOutInTracks_ = in;}
00063   
00064   
00065   private :
00066 
00067   edm::ParameterSet conf_;
00068   virtual void fillClusterSeeds(  ) const ;
00069   void startSeed(FreeTrajectoryState * fts, const TrajectoryStateOnSurface & stateAtPreviousLayer, int charge, int layer) const ;
00070   virtual void findSeeds(const TrajectoryStateOnSurface & startingState,
00071                          float signedpt, unsigned int startingLayer) const ;
00072   
00073   std::vector<const reco::CaloCluster*> getSecondCaloClusters(const GlobalPoint & conversionPosition, float charge) const;
00074   void completeSeed(const TrajectoryMeasurement & m1,FreeTrajectoryState & fts, const Propagator* propagator, int ilayer) const;
00075   void createSeed(const TrajectoryMeasurement & m1,  const TrajectoryMeasurement & m2) const ;
00076 
00077 
00078  private:
00079   float  the2ndHitdphi_;
00080   float  the2ndHitdzConst_;    
00081   float  the2ndHitdznSigma_;
00082   mutable int track2Charge_;
00083   mutable GlobalVector track2InitialMomentum_; 
00084   mutable int nSeedsPerInputTrack_;
00085   int maxNumberOfInOutSeedsPerInputTrack_;
00086      
00087 
00088 
00089   
00090   std::vector<Trajectory> inputTracks_;
00091   std::vector<Trajectory> theOutInTracks_;
00092   mutable std::vector<TrajectoryMeasurement> theFirstMeasurements_;
00093 
00094   mutable reco::CaloCluster theSecondBC_;
00095   mutable edm::Handle<edm::View<reco::CaloCluster> >  bcCollection_;
00096 
00097   
00098 };
00099 
00100 #endif

Generated on Tue Jun 9 17:43:26 2009 for CMSSW by  doxygen 1.5.4