File indexing completed on 2023-03-17 11:17:44
0001 #ifndef ElectronMCTruth_h
0002 #define ElectronMCTruth_h
0003
0004 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
0005 #include "SimDataFormats/Track/interface/SimTrack.h"
0006 #include <CLHEP/Matrix/Vector.h>
0007 #include <CLHEP/Vector/LorentzVector.h>
0008 #include <vector>
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018 class ElectronMCTruth {
0019 public:
0020 ElectronMCTruth();
0021 ElectronMCTruth(CLHEP::HepLorentzVector& v,
0022 int vertIndex,
0023 std::vector<CLHEP::Hep3Vector>& bremPos,
0024 std::vector<CLHEP::HepLorentzVector>& pBrem,
0025 std::vector<float>& xbrem,
0026 CLHEP::HepLorentzVector& pV,
0027 SimTrack& eTrack);
0028
0029 CLHEP::HepLorentzVector fourMomentum() const { return theElectron_; }
0030 CLHEP::HepLorentzVector primaryVertex() const { return thePrimaryVertex_; }
0031 std::vector<CLHEP::Hep3Vector> bremVertices() const { return theBremPosition_; }
0032 std::vector<CLHEP::HepLorentzVector> bremMomentum() const { return theBremMomentum_; }
0033 std::vector<float> eloss() const { return theELoss_; }
0034 SimTrack simTracks() const { return eTrack_; }
0035 int vertexInd() const { return theVertexIndex_; }
0036
0037 private:
0038 CLHEP::HepLorentzVector theElectron_;
0039 int theVertexIndex_;
0040 std::vector<CLHEP::Hep3Vector> theBremPosition_;
0041 std::vector<CLHEP::HepLorentzVector> theBremMomentum_;
0042 std::vector<float> theELoss_;
0043 CLHEP::HepLorentzVector thePrimaryVertex_;
0044 SimTrack eTrack_;
0045 };
0046
0047 #endif