Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:16:08

0001 #include "MicromegasRawHitContainerv2.h"
0002 #include "MicromegasRawHitv2.h"
0003 
0004 #include <TClonesArray.h>
0005 
0006 static constexpr int NHITS = 100;
0007 
0008 MicromegasRawHitContainerv2::MicromegasRawHitContainerv2()
0009   : MicromegasRawHitsTCArray(new TClonesArray("MicromegasRawHitv2", NHITS))
0010 {
0011 }
0012 
0013 MicromegasRawHitContainerv2::~MicromegasRawHitContainerv2()
0014 {
0015   MicromegasRawHitsTCArray->Clear("C");
0016   delete MicromegasRawHitsTCArray;
0017 }
0018 
0019 void MicromegasRawHitContainerv2::Reset()
0020 {
0021   MicromegasRawHitsTCArray->Clear("C");
0022   MicromegasRawHitsTCArray->Expand(NHITS);
0023 }
0024 
0025 void MicromegasRawHitContainerv2::identify(std::ostream &os) const
0026 {
0027   os << "MicromegasRawHitContainerv2" << std::endl;
0028   os << "containing " << MicromegasRawHitsTCArray->GetEntriesFast() << " Micromegas hits" << std::endl;
0029   // NOLINTNEXTLINE(cppcoreguidelines-pro-type-static-cast-downcast)
0030   auto *hit = static_cast<MicromegasRawHit *>(MicromegasRawHitsTCArray->At(0));
0031   if (hit)
0032   {
0033     os << "for beam clock: " << std::hex << hit->get_bco() << std::dec << std::endl;
0034   }
0035 }
0036 
0037 int MicromegasRawHitContainerv2::isValid() const
0038 {
0039   return MicromegasRawHitsTCArray->GetSize();
0040 }
0041 
0042 unsigned int MicromegasRawHitContainerv2::get_nhits()
0043 {
0044   return MicromegasRawHitsTCArray->GetEntriesFast();
0045 }
0046 
0047 MicromegasRawHit *MicromegasRawHitContainerv2::AddHit()
0048 {
0049   MicromegasRawHit *newhit = new ((*MicromegasRawHitsTCArray)[MicromegasRawHitsTCArray->GetLast() + 1]) MicromegasRawHitv2;
0050   return newhit;
0051 }
0052 
0053 MicromegasRawHit *MicromegasRawHitContainerv2::AddHit(MicromegasRawHit *source)
0054 {
0055   auto *newhit = new ((*MicromegasRawHitsTCArray)[MicromegasRawHitsTCArray->GetLast() + 1]) MicromegasRawHitv2(source);
0056   return newhit;
0057 }
0058 
0059 MicromegasRawHit *MicromegasRawHitContainerv2::get_hit(unsigned int index)
0060 {
0061   // NOLINTNEXTLINE(cppcoreguidelines-pro-type-static-cast-downcast)
0062   return static_cast<MicromegasRawHit *>(MicromegasRawHitsTCArray->At(index));
0063 }