CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/RecoEgamma/EgammaElectronAlgos/interface/EgAmbiguityTools.h

Go to the documentation of this file.
00001 
00002 #ifndef EgAmbiguityTools_H
00003 #define EgAmbiguityTools_H
00004 
00005 class MultiTrajectoryStateTransform ;
00006 class MultiTrajectoryStateMode ;
00007 
00008 #include "RecoEgamma/EgammaIsolationAlgos/interface/EgammaTowerIsolation.h"
00009 #include "RecoEgamma/EgammaIsolationAlgos/interface/EgammaRecHitIsolation.h"
00010 #include "RecoEgamma/EgammaIsolationAlgos/interface/ElectronTkIsolation.h"
00011 
00012 #include "MagneticField/Engine/interface/MagneticField.h"
00013 #include "TrackingTools/MaterialEffects/interface/PropagatorWithMaterial.h"
00014 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h"
00015 
00016 #include "RecoTracker/MeasurementDet/interface/MeasurementTracker.h"
00017 #include "Geometry/CaloGeometry/interface/CaloGeometry.h"
00018 #include "Geometry/CaloTopology/interface/CaloTopology.h"
00019 
00020 #include "FWCore/Framework/interface/ESHandle.h"
00021 #include "FWCore/Framework/interface/EventSetup.h"
00022 #include "FWCore/Framework/interface/Event.h"
00023 
00024 #include "DataFormats/EgammaCandidates/interface/GsfElectronFwd.h"
00025 #include "DataFormats/EgammaReco/interface/SuperClusterFwd.h"
00026 #include "DataFormats/CaloRecHit/interface/CaloClusterFwd.h"
00027 #include "DataFormats/GsfTrackReco/interface/GsfTrackFwd.h"
00028 #include "DataFormats/TrackReco/interface/TrackFwd.h"
00029 #include "DataFormats/TrajectorySeed/interface/TrajectorySeedCollection.h"
00030 #include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h"
00031 #include "DataFormats/TrackReco/interface/HitPattern.h"
00032 #include "DataFormats/Common/interface/ValueMap.h"
00033 #include "DataFormats/BeamSpot/interface/BeamSpot.h"
00034 
00035 #include <list>
00036 
00037 namespace EgAmbiguityTools
00038  {
00039   // for clusters
00040   float sharedEnergy
00041    ( const reco::CaloCluster *, const reco::CaloCluster *,
00042          edm::Handle<EcalRecHitCollection> & reducedEBRecHits,
00043          edm::Handle<EcalRecHitCollection> & reducedEERecHits ) ;
00044   float sharedEnergy
00045    ( const reco::SuperClusterRef &, const reco::SuperClusterRef &,
00046          edm::Handle<EcalRecHitCollection> & reducedEBRecHits,
00047          edm::Handle<EcalRecHitCollection> & reducedEERecHits ) ;
00048 
00049   // for tracks
00050   int sharedHits( const reco::GsfTrackRef &, const reco::GsfTrackRef & ) ;
00051   int sharedDets( const reco::GsfTrackRef &, const reco::GsfTrackRef & ) ;
00052 
00053   // electrons comparison
00054   bool isBetter( const reco::GsfElectron *, const reco::GsfElectron * ) ;
00055   struct isInnerMost
00056    {
00057         edm::ESHandle<TrackerGeometry> trackerHandle_ ;
00058         isInnerMost( edm::ESHandle<TrackerGeometry> & geom ) : trackerHandle_(geom) {}
00059         bool operator()( const reco::GsfElectron *, const reco::GsfElectron * ) ;
00060    } ;
00061 
00062  }
00063 
00064 #endif
00065 
00066