Back to home page

Project CMSSW displayed by LXR

 
 

    


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 /** \class EcalSimPhotonMCTruth
0009  *
0010  *  This class stores all the MC truth information needed about the
0011  *  conversion for containment correction
0012  *  original code: PhotonMCTruth (N.Marinelli)
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