Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-03-17 11:17:44

0001 #ifndef PhotonMCTruth_h
0002 #define PhotonMCTruth_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 "RecoEgamma/EgammaMCTools/interface/ElectronMCTruth.h"
0009 #include <vector>
0010 
0011 /** \class PhotonMCTruth
0012  *       
0013  *  This class stores all the MC truth information needed about the
0014  *  conversion
0015  * 
0016  *  \author N. Marinelli  University of Notre Dame
0017  *
0018  */
0019 
0020 class PhotonMCTruth {
0021 public:
0022   PhotonMCTruth() : isAConversion_(0), thePhoton_(0., 0., 0.), theConvVertex_(0., 0., 0.){};
0023 
0024   PhotonMCTruth(CLHEP::HepLorentzVector v) : thePhoton_(v){};
0025 
0026   PhotonMCTruth(int isAConversion,
0027                 CLHEP::HepLorentzVector v,
0028                 int vertIndex,
0029                 int trackId,
0030                 int motherId,
0031                 CLHEP::HepLorentzVector mothMom,
0032                 CLHEP::HepLorentzVector mothVtx,
0033                 CLHEP::HepLorentzVector convVertex,
0034                 CLHEP::HepLorentzVector pV,
0035                 std::vector<ElectronMCTruth>& electrons);
0036 
0037   CLHEP::HepLorentzVector primaryVertex() const { return thePrimaryVertex_; }
0038   int isAConversion() const { return isAConversion_; }
0039   CLHEP::HepLorentzVector fourMomentum() const { return thePhoton_; }
0040   int vertexInd() const { return theVertexIndex_; }
0041   CLHEP::HepLorentzVector vertex() const { return theConvVertex_; }
0042   std::vector<ElectronMCTruth> electrons() const { return theElectrons_; }
0043   int trackId() const { return theTrackId_; }
0044   int motherType() const { return theMotherId_; }
0045   CLHEP::HepLorentzVector motherMomentum() const { return theMotherMom_; }
0046   CLHEP::HepLorentzVector motherVtx() const { return theMotherVtx_; }
0047 
0048 private:
0049   int isAConversion_;
0050   CLHEP::HepLorentzVector thePhoton_;
0051   int theVertexIndex_;
0052   int theTrackId_;
0053   int theMotherId_;
0054   CLHEP::HepLorentzVector theMotherMom_;
0055   CLHEP::HepLorentzVector theMotherVtx_;
0056   CLHEP::HepLorentzVector theConvVertex_;
0057   CLHEP::HepLorentzVector thePrimaryVertex_;
0058   std::vector<ElectronMCTruth> theElectrons_;
0059 };
0060 
0061 #endif