CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_4_5_patch3/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,
00050                  bool msgwarning = true) const; 
00051   
00052   bool addPointsAndBrems(reco::GsfPFRecTrack& pftrack, 
00053                          const reco::Track& track,
00054                          const Trajectory& traj,
00055                          const bool& GetMode) const; 
00056   
00057   bool addPointsAndBrems(reco::GsfPFRecTrack& pftrack, 
00058                          const reco::GsfTrack& track,
00059                          const MultiTrajectoryStateTransform& mtjstate) const; 
00060 
00061   void OnlyProp(){
00062     onlyprop_=true;
00063   }
00064   bool  onlyprop_;
00065   
00066  private:
00068    math::XYZVector B_;
00069    const MultiTrajectoryStateMode *mtsMode_;
00070 };
00071 
00072 #endif