Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-12-02 23:44:59

0001 #ifndef SimDataFormats_MtdCaloParticle_h
0002 #define SimDataFormats_MtdCaloParticle_h
0003 
0004 #include "SimDataFormats/CaloAnalysis/interface/CaloParticle.h"
0005 #include "SimDataFormats/CaloAnalysis/interface/MtdSimClusterFwd.h"
0006 #include "SimDataFormats/TrackingHit/interface/PSimHit.h"
0007 
0008 #include <vector>
0009 
0010 class SimTrack;
0011 class EncodedEventId;
0012 
0013 class MtdCaloParticle : public CaloParticle {
0014   friend std::ostream &operator<<(std::ostream &s, MtdCaloParticle const &tp);
0015 
0016 public:
0017   typedef MtdSimClusterRefVector::iterator mtdsc_iterator;
0018 
0019   MtdCaloParticle();
0020 
0021   MtdCaloParticle(const SimTrack &simtrk);
0022   MtdCaloParticle(EncodedEventId eventID, uint32_t particleID);  // for PU
0023 
0024   // destructor
0025   ~MtdCaloParticle();
0026 
0027   void addSimCluster(const MtdSimClusterRef &ref) { mtdsimClusters_.push_back(ref); }
0028 
0029   /// iterators
0030   mtdsc_iterator simCluster_begin() const { return mtdsimClusters_.begin(); }
0031   mtdsc_iterator simCluster_end() const { return mtdsimClusters_.end(); }
0032 
0033   const MtdSimClusterRefVector &simClusters() const { return mtdsimClusters_; }
0034   void clearSimClusters() { mtdsimClusters_.clear(); }
0035 
0036   /** @brief add simhit's energy to cluster */
0037   void addSimHit(PSimHit &hit) {
0038     simhit_energy_ += hit.energyLoss();
0039     ++nsimhits_;
0040   }
0041 
0042 private:
0043   MtdSimClusterRefVector mtdsimClusters_;
0044 };
0045 
0046 #endif  // SimDataFormats_MtdCaloParticle_H