File indexing completed on 2024-09-11 04:33:19
0001 #ifndef EcalSimPhotonMCTruth_h
0002 #define EcalSimPhotonMCTruth_h
0003
0004 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
0005 #include "SimDataFormats/Track/interface/SimTrack.h"
0006 #include <vector>
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016 class EcalSimPhotonMCTruth {
0017 public:
0018 EcalSimPhotonMCTruth()
0019 : isAConversion_(0), thePhoton_(0., 0., 0., 0.), theR_(0.), theZ_(0.), theConvVertex_(0., 0., 0., 0.) {}
0020
0021 EcalSimPhotonMCTruth(const math::XYZTLorentzVectorD &v) : thePhoton_(v) {}
0022
0023 EcalSimPhotonMCTruth(int isAConversion,
0024 const math::XYZTLorentzVectorD &v,
0025 float rconv,
0026 float zconv,
0027 const math::XYZTLorentzVectorD &convVertex,
0028 const math::XYZTLorentzVectorD &pV,
0029 const std::vector<const SimTrack *> &tracks);
0030
0031 math::XYZTLorentzVectorD primaryVertex() const { return thePrimaryVertex_; }
0032 int isAConversion() const { return isAConversion_; }
0033 float radius() const { return theR_; }
0034 float z() const { return theZ_; }
0035 math::XYZTLorentzVectorD fourMomentum() const { return thePhoton_; }
0036 math::XYZTLorentzVectorD vertex() const { return theConvVertex_; }
0037 std::vector<const SimTrack *> simTracks() const { return tracks_; }
0038
0039 private:
0040 int isAConversion_;
0041 math::XYZTLorentzVectorD thePhoton_;
0042 float theR_;
0043 float theZ_;
0044 math::XYZTLorentzVectorD theConvVertex_;
0045 math::XYZTLorentzVectorD thePrimaryVertex_;
0046 std::vector<const SimTrack *> tracks_;
0047 };
0048
0049 #endif