00001 #ifndef ElectronMCTruth_h 00002 #define ElectronMCTruth_h 00003 00004 #include "DataFormats/GeometryVector/interface/GlobalPoint.h" 00005 #include "SimDataFormats/Track/interface/SimTrack.h" 00006 #include <CLHEP/Matrix/Vector.h> 00007 #include <CLHEP/Vector/LorentzVector.h> 00008 #include <vector> 00009 00020 class ElectronMCTruth { 00021 00022 public: 00023 ElectronMCTruth(); 00024 ElectronMCTruth( CLHEP::HepLorentzVector& v, 00025 int vertIndex, 00026 std::vector<CLHEP::Hep3Vector>& bremPos, 00027 std::vector<CLHEP::HepLorentzVector>& pBrem, 00028 std::vector<float>& xbrem, 00029 CLHEP::HepLorentzVector& pV, 00030 SimTrack& eTrack ); 00031 00032 00033 CLHEP::HepLorentzVector fourMomentum() const {return theElectron_;} 00034 CLHEP::HepLorentzVector primaryVertex() const {return thePrimaryVertex_;} 00035 std::vector<CLHEP::Hep3Vector> bremVertices() const { return theBremPosition_;} 00036 std::vector<CLHEP::HepLorentzVector> bremMomentum() const { return theBremMomentum_;} 00037 std::vector<float> eloss() const {return theELoss_;} 00038 SimTrack simTracks() const {return eTrack_;} 00039 int vertexInd() const {return theVertexIndex_;} 00040 00041 private: 00042 CLHEP::HepLorentzVector theElectron_; 00043 int theVertexIndex_; 00044 std::vector<CLHEP::Hep3Vector> theBremPosition_; 00045 std::vector<CLHEP::HepLorentzVector> theBremMomentum_; 00046 std::vector<float> theELoss_; 00047 CLHEP::HepLorentzVector thePrimaryVertex_; 00048 SimTrack eTrack_; 00049 00050 00051 00052 }; 00053 00054 #endif