00001 #ifndef _VZeroFinder_h_ 00002 #define _VZeroFinder_h_ 00003 00004 #include "DataFormats/TrackReco/interface/Track.h" 00005 #include "DataFormats/TrackReco/interface/TrackFwd.h" 00006 00007 #include "DataFormats/VZero/interface/VZero.h" 00008 #include "DataFormats/VZero/interface/VZeroFwd.h" 00009 #include "DataFormats/VertexReco/interface/VertexFwd.h" 00010 00011 #include "FWCore/Framework/interface/EventSetup.h" 00012 #include "FWCore/Framework/interface/ESHandle.h" 00013 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00014 00015 #include "TrackingTools/TrajectoryState/interface/FreeTrajectoryState.h" 00016 00017 #include "MagneticField/Engine/interface/MagneticField.h" 00018 #include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" 00019 00020 #include "TrackingTools/PatternTools/interface/ClosestApproachInRPhi.h" 00021 00022 class VZeroFinder 00023 { 00024 public: 00025 VZeroFinder(const edm::EventSetup& es, 00026 const edm::ParameterSet& pset); 00027 ~VZeroFinder(); 00028 00029 GlobalVector rotate(const GlobalVector & p, double a); 00030 bool checkTrackPair(const reco::Track& posTrack, 00031 const reco::Track& negTrack, 00032 const reco::VertexCollection* vertices, 00033 reco::VZeroData& data); 00034 00035 private: 00036 GlobalTrajectoryParameters getGlobalTrajectoryParameters(const reco::Track& track); 00037 00038 float maxDca, 00039 minCrossingRadius, 00040 maxCrossingRadius, 00041 maxImpactMother; 00042 00043 const MagneticField * theMagField; 00044 }; 00045 00046 #endif 00047