#ifndef _ENERGYDATA_HH_ #define _ENERGYDATA_HH_ #ifdef USE_CDFEDM2 ////////////////////////////////////////////////////////////////////////// // // Component: EnergyData.hh // Component: EnergyData.hh // Purpose: This class contains the information necessary // to make physics towers. Energy data can be made from // input sources like SourceHEPG or SourceCalData. // // Created: 18/06/99 Pierre Savard // History: Aug 14, 2002 Jean-Francois Arguin: Add eta member // for allowing creation of PhysicsTower // from CdfTracks // Nov 24, 2002 Matthias Toennesmann: Replace eta member by 4-vector. // ////////////////////////////////////////////////////////////////////////// #include #include #include #include "CalorGeometry/CalConstants.hh" #include "CLHEP/Vector/LorentzVector.h" // namespace calor { class EnergyData { public: // // Memory management // // Default constructor, also full initialization constructor. EnergyData(float emPhi = 0.0, float hadPhi = 0.0, float emEnergy = 0.0, float hadEnergy = 0.0, size_t iEta = 0, size_t iPhi = 0, HepLorentzVector fourMomentum = HepLorentzVector()); // Default copy constructor and assignment operator do the right thing. // default Destructor // // Testing // // Equality test bool operator==(const EnergyData& rhs) const; // // Manipulation and access // // Access methods float emEnergy() const; float hadEnergy() const; float emPhi() const; float hadPhi() const; size_t iEta() const; size_t iPhi() const; HepLorentzVector fourMomentum() const; // // Printing // friend std::ostream& operator<<(std::ostream& os, const EnergyData& t); private: float _emPhi; // EM phi center-of-gravity float _hadPhi; // HAD phi center-of-gravity float _emEnergy; float _hadEnergy; size_t _iEta; size_t _iPhi; HepLorentzVector _fourMomentum; }; // Initialization constructor inline EnergyData::EnergyData(float emPhi, float hadPhi, float emEnergy, float hadEnergy, size_t iEta, size_t iPhi, HepLorentzVector fourMomentum): _emPhi(emPhi), _hadPhi(hadPhi), _emEnergy(emEnergy), _hadEnergy(hadEnergy), _iEta(iEta), _iPhi(iPhi), _fourMomentum(fourMomentum){ } inline float EnergyData::emEnergy() const {return _emEnergy;} inline float EnergyData::hadEnergy() const {return _hadEnergy;} inline float EnergyData::emPhi() const {return _emPhi;} inline float EnergyData::hadPhi() const {return _hadPhi;} inline size_t EnergyData::iEta() const {return _iEta;} inline size_t EnergyData::iPhi() const {return _iPhi;} inline HepLorentzVector EnergyData::fourMomentum() const {return _fourMomentum;} // } // namespace calor #endif // USE_CDFEDM2 #endif // _ENERGYDATA_HH_