Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:24:56

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 /** \class ElectronMCTruth
0011  *       
0012  *  This class stores all the MC truth information needed about the
0013  *  electrons
0014  * 
0015  *  \author N. Marinelli  University of Notre Dame
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