CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch9/src/RecoParticleFlow/PFTracking/interface/PFTrackTransformer.h

Go to the documentation of this file.
00001 #ifndef PFTrackTransformer_H
00002 #define PFTrackTransformer_H
00003 
00004 #include "RecoParticleFlow/PFProducer/interface/PFGeometry.h"
00005 #include "DataFormats/GeometrySurface/interface/Surface.h"
00006 #include "FWCore/Framework/interface/Frameworkfwd.h"
00007 #include "FWCore/Framework/interface/EventSetup.h"
00008 #include "FWCore/Framework/interface/Event.h"
00009 #include "FWCore/Framework/interface/MakerMacros.h"
00010 #include "DataFormats/ParticleFlowReco/interface/PFRecTrack.h"
00011 #include "DataFormats/ParticleFlowReco/interface/GsfPFRecTrack.h"
00012 #include "DataFormats/TrackReco/interface/TrackFwd.h"
00013 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h"
00014 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00015 #include "DataFormats/GeometryVector/interface/GlobalVector.h"
00016 #include "DataFormats/Math/interface/Vector3D.h"
00017 #include "TrackingTools/GsfTools/interface/MultiTrajectoryStateTransform.h"
00018 #include "TrackingTools/GsfTools/interface/MultiTrajectoryStateMode.h"
00019 
00020 
00021 
00023 
00036 class Trajectory;
00037 class PFTrackTransformer{
00038 
00039 
00040 
00041  public:
00042   PFTrackTransformer(math::XYZVector);
00043   ~PFTrackTransformer();
00044 
00045 
00047   bool addPoints(reco::PFRecTrack& pftrack, 
00048                  const reco::Track& track,
00049                  const Trajectory& traj) const; 
00050 
00051   bool addPointsAndBrems(reco::GsfPFRecTrack& pftrack, 
00052                          const reco::Track& track,
00053                          const Trajectory& traj,
00054                          const bool& GetMode) const; 
00055   
00056   bool addPointsAndBrems(reco::GsfPFRecTrack& pftrack, 
00057                          const reco::GsfTrack& track,
00058                          const MultiTrajectoryStateTransform& mtjstate) const; 
00059 
00060   void OnlyProp(){
00061     onlyprop_=true;
00062   }
00063   bool  onlyprop_;
00064   
00065  private:
00067    math::XYZVector B_;
00068    const MultiTrajectoryStateMode *mtsMode_;
00069 };
00070 
00071 #endif