CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_4_5_patch3/src/RecoEgamma/EgammaMCTools/interface/PhotonMCTruth.h

Go to the documentation of this file.
00001 #ifndef PhotonMCTruth_h
00002 #define PhotonMCTruth_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 
00023 class ElectronMCTruth;
00024 class PhotonMCTruth {
00025 public:
00026   PhotonMCTruth() : isAConversion_(0),thePhoton_(0.,0.,0.), 
00027                        theConvVertex_(0.,0.,0.) {};
00028 
00029   PhotonMCTruth(CLHEP::HepLorentzVector v) : thePhoton_(v) {};
00030 
00031 
00032   PhotonMCTruth(int isAConversion,
00033                 CLHEP::HepLorentzVector v,
00034                 int vertIndex,
00035                 int trackId,
00036                 int motherId,
00037                 CLHEP::HepLorentzVector mothMom, 
00038                 CLHEP::HepLorentzVector mothVtx, 
00039                 CLHEP::HepLorentzVector convVertex, 
00040                 CLHEP::HepLorentzVector pV, 
00041                 std::vector<ElectronMCTruth>& electrons );
00042   
00043 
00044  CLHEP::HepLorentzVector primaryVertex() const {return thePrimaryVertex_;}
00045  int isAConversion() const { return isAConversion_;}
00046  CLHEP::HepLorentzVector fourMomentum() const {return thePhoton_;}
00047  int vertexInd() const {return theVertexIndex_;}
00048  CLHEP::HepLorentzVector vertex() const {return theConvVertex_;}
00049  std::vector<ElectronMCTruth> electrons() const {return theElectrons_;} 
00050  int trackId() const {return theTrackId_;}  
00051  int motherType() const {return theMotherId_;}
00052  CLHEP::HepLorentzVector motherMomentum() const {return theMotherMom_;}
00053  CLHEP::HepLorentzVector motherVtx() const {return theMotherVtx_;}
00054 
00055  private:
00056 
00057   int isAConversion_;
00058   CLHEP::HepLorentzVector thePhoton_;
00059   int theVertexIndex_;
00060   int theTrackId_;
00061   int theMotherId_;
00062   CLHEP::HepLorentzVector theMotherMom_;
00063   CLHEP::HepLorentzVector theMotherVtx_;
00064   CLHEP::HepLorentzVector theConvVertex_;
00065   CLHEP::HepLorentzVector thePrimaryVertex_;
00066   std::vector<ElectronMCTruth> theElectrons_;
00067 
00068 };
00069 
00070 #endif
00071