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