File indexing completed on 2024-04-06 12:29:40
0001 #ifndef SimDataFormats_CaloHit_MaterialInformation_H
0002 #define SimDataFormats_CaloHit_MaterialInformation_H
0003
0004 #include <string>
0005 #include <vector>
0006
0007
0008
0009 class MaterialInformation {
0010 public:
0011 MaterialInformation(
0012 std::string vname, int id = 0, float eta = 0, float phi = 0, float length = 0, float radlen = 0, float intlen = 0)
0013 : vname_(vname), id_(id), eta_(eta), phi_(phi), length_(length), radlen_(radlen), intlen_(intlen) {}
0014 MaterialInformation() : vname_(""), id_(0), eta_(0), phi_(0), length_(0), radlen_(0), intlen_(0) {}
0015
0016
0017 static const char *name() { return "MaterialInformation"; }
0018 const char *getName() const { return name(); }
0019 std::string vname() const { return vname_; }
0020 int id() const { return id_; }
0021 void setID(int i) { id_ = i; }
0022
0023
0024 double trackEta() const { return eta_; }
0025 void setTrackEta(double e) { eta_ = e; }
0026 double trackPhi() const { return phi_; }
0027 void setTrackPhi(double f) { phi_ = f; }
0028
0029
0030 double stepLength() const { return length_; }
0031 void setStepLength(double l) { length_ = l; }
0032 double radiationLength() const { return radlen_; }
0033 void setRadiationLength(double r) { radlen_ = r; }
0034 double interactionLength() const { return intlen_; }
0035 void setInteractionLength(double i) { intlen_ = i; }
0036
0037 protected:
0038 std::string vname_;
0039 int id_;
0040 float eta_;
0041 float phi_;
0042 float length_;
0043 float radlen_;
0044 float intlen_;
0045 };
0046
0047 namespace edm {
0048 typedef std::vector<MaterialInformation> MaterialInformationContainer;
0049 }
0050
0051 #include <iosfwd>
0052 std::ostream &operator<<(std::ostream &, const MaterialInformation &);
0053
0054 #endif