Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-06 08:18:13

0001 #include "TrkrHitv2.h"
0002 #include <climits>
0003 
0004 void TrkrHitv2::CopyFrom(const TrkrHit& source)
0005 {
0006   // do nothing if copying onto oneself
0007   if (this == &source)
0008   {
0009     return;
0010   }
0011 
0012   // parent class method
0013   TrkrHit::CopyFrom(source);
0014 
0015   // copy adc
0016   setAdc(source.getAdc());
0017 }
0018 
0019 // these set and get the energy before digitization
0020 void TrkrHitv2::addEnergy(const double edep)
0021 {
0022   double max_adc = (double) USHRT_MAX;
0023 
0024   // overflow occurs if (sum of the existing + new ADC values)   > USHRT_MAX
0025   double ein = edep * TrkrDefs::EdepScaleFactor;
0026   if ((double) m_adc + ein > max_adc)
0027   {
0028     m_adc = USHRT_MAX;
0029   }
0030   else
0031   {
0032     m_adc += (unsigned short) (ein);
0033   }
0034 }
0035 
0036 double TrkrHitv2::getEnergy() const
0037 {
0038   return ((double) m_adc) / TrkrDefs::EdepScaleFactor;
0039 }
0040 
0041 void TrkrHitv2::setAdc(const unsigned int adc)
0042 {
0043   if (adc > USHRT_MAX)
0044   {
0045     m_adc = USHRT_MAX;
0046   }
0047   else
0048   {
0049     m_adc = (unsigned short) adc;
0050   }
0051 }
0052 
0053 unsigned int TrkrHitv2::getAdc() const
0054 {
0055   return (unsigned int) m_adc;
0056 }