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