00001 #ifndef DataFormats_PatCandidates_Conversion_h 00002 #define DataFormats_PatCandidates_Conversion_h 00003 00004 #include "DataFormats/EgammaCandidates/interface/GsfElectron.h" 00005 #include "DataFormats/EgammaCandidates/interface/GsfElectronFwd.h" 00006 #include "DataFormats/EgammaCandidates/interface/GsfElectronCore.h" 00007 #include "DataFormats/EgammaCandidates/interface/GsfElectronCoreFwd.h" 00008 #include "DataFormats/GsfTrackReco/interface/GsfTrack.h" 00009 #include "DataFormats/PatCandidates/interface/Lepton.h" 00010 00011 // Define typedefs for convenience 00012 namespace pat { 00013 class Conversion; 00014 typedef std::vector<Conversion> ConversionCollection; 00015 typedef edm::Ref<ConversionCollection> ConversionRef; 00016 typedef edm::RefVector<ConversionCollection> ConversionRefVector; 00017 } 00018 00019 00020 //we use index to match with electron. However, can we do this with gsfTrack instead of index? 00021 namespace pat { 00022 class Conversion { 00023 public: 00024 Conversion () {} 00025 Conversion ( int index ); 00026 virtual ~Conversion() {} 00027 00028 const double vtxProb() const {return vtxProb_;} 00029 void setVtxProb(double vtxProb); 00030 const double lxy() const {return lxy_;} 00031 void setLxy( double lxy ); 00032 const int nHitsMax() const {return nHitsMax_;} 00033 void setNHitsMax( int nHitsMax ); 00034 const int index() const {return index_; } 00035 00036 private: 00037 double vtxProb_; 00038 double lxy_; 00039 int nHitsMax_; 00040 00041 //electron index matched with conversion 00042 int index_; 00043 00044 }; 00045 } 00046 00047 #endif