ROOT logo
//*-- Author   : 08/06/2006 D. Gonzalez-Diaz
//*-- Modified : 10/08/2007 D. Gonzalez-Diaz
//*-- Modified : 27/11/2012 A.Mangiarotti Added special get function
//*-- Modified :            getHitDigi optimised for the digitizer.
//*-- Modified : 09/03/2013 A.Mangiarotti Restructured to reorganise all
//*-- Modified :            the four gaps into a single cell wise object
//*-- Modified :            without loss of important information but
//*-- Modified :            with an overall reduction in size. Part of
//*-- Modified :            the structure is dictated by the requirement
//*-- Modified :            of being able to correctly read old
//*-- Modified :            simulation files. For the same reason of
//*-- Modified :            backward compatibility the addressing scheme
//*-- Modified :            sector-cell-column-gap has not been changed.
//*-- Modified :            In the new cell wise object the gap is always
//*-- Modified :            zero. Access methods reorganised to provide
//*-- Modified :            more options to retrieve only the information
//*-- Modified :            needed.
////////////////////////////////////////////////////////////////////////////
//  HGeantRpc
//  GEANT RPC hit data
////////////////////////////////////////////////////////////////////////////

#include "hgeantrpc.h"

#include "TBuffer.h"

ClassImp(HGeantRpc)

HGeantRpc::HGeantRpc(void) {
  trackNumber       = 0;
  trackLength       = 0.0;
  loctrackLength    = 0.0;
  eHit              = 0.0;
  xHit              = 0.0;
  yHit              = 0.0;
  zHit              = 0.0;
  tofHit            = 0.0;
  momHit            = 0.0;
  thetaHit          = 0.0;
  phiHit            = 0.0;
  detectorID        = -999;
  // New after Jan 2013.
  loctrackLength1   = 0.0;
  eHit1             = 0.0;
  xHit1             = 0.0;
  yHit1             = 0.0;
  momHit1           = 0.0;
  loctrackLength2   = 0.0;
  eHit2             = 0.0;
  xHit2             = 0.0;
  yHit2             = 0.0;
  momHit2           = 0.0;
  loctrackLength3   = 0.0;
  eHit3             = 0.0;
  xHit3             = 0.0;
  yHit3             = 0.0;
  momHit3           = 0.0;
  HGeantRpc_version = -999;
}
/*
HGeantRpc::HGeantRpc(HGeantRpc &aRpc) {
  trackNumber       = aRpc.trackNumber;
  trackLength       = aRpc.trackLength;
  loctrackLength    = aRpc.loctrackLength;
  eHit              = aRpc.eHit;
  xHit              = aRpc.xHit;
  yHit              = aRpc.yHit;
  zHit              = aRpc.zHit;
  tofHit            = aRpc.tofHit;
  momHit            = aRpc.momHit;
  thetaHit          = aRpc.thetaHit;
  phiHit            = aRpc.phiHit;
  detectorID        = aRpc.detectorID;
  // New after Jan 2013.
  loctrackLength1   = aRpc.loctrackLength1;
  eHit1             = aRpc.eHit1;
  xHit1             = aRpc.xHit1;
  yHit1             = aRpc.yHit1;
  momHit1           = aRpc.momHit1;
  loctrackLength2   = aRpc.loctrackLength2;
  eHit2             = aRpc.eHit2;
  xHit2             = aRpc.xHit2;
  yHit2             = aRpc.yHit2;
  momHit2           = aRpc.momHit2;
  loctrackLength3   = aRpc.loctrackLength3;
  eHit3             = aRpc.eHit3;
  xHit3             = aRpc.xHit3;
  yHit3             = aRpc.yHit3;
  momHit3           = aRpc.momHit3;
  HGeantRpc_version = aRpc.HGeantRpc_version;
}
*/
HGeantRpc::~HGeantRpc(void) {
}

void HGeantRpc::setIncidence(Float_t athetaHit, Float_t aphiHit)
{
  thetaHit = athetaHit;
  phiHit   = aphiHit;
}

void HGeantRpc:: getIncidence(Float_t& athetaHit, Float_t& aphiHit)
{
  athetaHit = thetaHit;
  aphiHit   = phiHit;
}

void HGeantRpc:: setTLength(Float_t atrackLength, Float_t aloctrackLength)
{
  trackLength    = atrackLength;
  loctrackLength = aloctrackLength;
}

void HGeantRpc:: getTLength(Float_t& atrackLength, Float_t& aloctrackLength)
{
  atrackLength    = trackLength;
  aloctrackLength = loctrackLength;
}

void HGeantRpc::setHit(Float_t axHit, Float_t ayHit, Float_t azHit,
                       Float_t atofHit, Float_t amomHit, Float_t aeHit,
                       Float_t aloctrackLength)
{
  eHit           = aeHit;
  xHit           = axHit;
  yHit           = ayHit;
  zHit           = azHit;
  tofHit         = atofHit;
  momHit         = amomHit;
  loctrackLength = aloctrackLength;
}

void HGeantRpc::setHit(Float_t axHit, Float_t ayHit, Float_t azHit,
                       Float_t atofHit, Float_t amomHit, Float_t aeHit)
{
  eHit   = aeHit;
  xHit   = axHit;
  yHit   = ayHit;
  zHit   = azHit;
  tofHit = atofHit;
  momHit = amomHit;
}

void HGeantRpc:: getHit(Float_t& axHit, Float_t& ayHit, Float_t& azHit,
                        Float_t& atofHit, Float_t& amomHit, Float_t& aeHit)
{
  aeHit   = eHit;
  axHit   = xHit;
  ayHit   = yHit;
  azHit   = zHit;
  atofHit = tofHit;
  amomHit = momHit;
}

Float_t HGeantRpc::getlocTLengthGap(Int_t nGap)
{
  if(nGap==0) {
    return loctrackLength;
  } else if(nGap==1) {
    return loctrackLength1;
  } else if(nGap==2) {
    return loctrackLength2;
  } else if(nGap==3) {
    return loctrackLength3;
  }
  return 0.0;
}

void HGeantRpc::setGap(Int_t nGap, Float_t axHit, Float_t ayHit, Float_t amomHit,
                       Float_t aeHit, Float_t aloctrackLength)
{
  if(nGap==0) {
    loctrackLength  = aloctrackLength;
    eHit            = aeHit;
    xHit            = axHit;
    yHit            = ayHit;
    momHit          = amomHit;
  } else if(nGap==1) {
    xHit1           = axHit;
    yHit1           = ayHit;
    momHit1         = amomHit;
    eHit1           = aeHit;
    loctrackLength1 = aloctrackLength;
  } else if(nGap==2) {
    loctrackLength2 = aloctrackLength;
    eHit2           = aeHit;
    xHit2           = axHit;
    yHit2           = ayHit;
    momHit2         = amomHit;
  } else if(nGap==3) {
    loctrackLength3 = aloctrackLength;
    eHit3           = aeHit;
    xHit3           = axHit;
    yHit3           = ayHit;
    momHit3         = amomHit;
  }
}

void HGeantRpc::getGap(Int_t nGap, Float_t& axHit, Float_t& ayHit, Float_t& amomHit,
                       Float_t& aeHit, Float_t& aloctrackLength)
{
  if(nGap==0) {
    aloctrackLength = loctrackLength;
    aeHit           = eHit;
    axHit           = xHit;
    ayHit           = yHit;
    amomHit         = momHit;
  } else if(nGap==1) {
    aloctrackLength = loctrackLength1;
    aeHit           = eHit1;
    axHit           = xHit1;
    ayHit           = yHit1;
    amomHit         = momHit1;
  } else if(nGap==2) {
    aloctrackLength = loctrackLength2;
    aeHit           = eHit2;
    axHit           = xHit2;
    ayHit           = yHit2;
    amomHit         = momHit2;
  } else if(nGap==3) {
    aloctrackLength = loctrackLength3;
    aeHit           = eHit3;
    axHit           = xHit3;
    ayHit           = yHit3;
    amomHit         = momHit3;
  }
}

void HGeantRpc::getGap(Int_t nGap, Float_t& axHit, Float_t& ayHit, Float_t& amomHit,
                       Float_t& aeHit)
{
  if(nGap==0) {
    aeHit   = eHit;
    axHit   = xHit;
    ayHit   = yHit;
    amomHit = momHit;
  } else if(nGap==1) {
    aeHit   = eHit1;
    axHit   = xHit1;
    ayHit   = yHit1;
    amomHit = momHit1;
  } else if(nGap==2) {
    aeHit   = eHit2;
    axHit   = xHit2;
    ayHit   = yHit2;
    amomHit = momHit2;
  } else if(nGap==3) {
    aeHit   = eHit3;
    axHit   = xHit3;
    ayHit   = yHit3;
    amomHit = momHit3;
  }
}

void HGeantRpc::getGap(Int_t nGap, Float_t& axHit, Float_t& ayHit, Float_t& amomHit)
{
  if(nGap==0) {
    axHit   = xHit;
    ayHit   = yHit;
    amomHit = momHit;
  } else if(nGap==1) {
    axHit   = xHit1;
    ayHit   = yHit1;
    amomHit = momHit1;
  } else if(nGap==2) {
    axHit   = xHit2;
    ayHit   = yHit2;
    amomHit = momHit2;
  } else if(nGap==3) {
    axHit   = xHit3;
    ayHit   = yHit3;
    amomHit = momHit3;
  }
}

void HGeantRpc::getHit(Float_t& axHit, Float_t& ayHit, Float_t& azHit,
                       Float_t& atofHit, Float_t& amomHit, Float_t& aeHit,
                       Float_t& aloctrackLength)
{
  aloctrackLength = loctrackLength;
  aeHit           = eHit;
  axHit           = xHit;
  ayHit           = yHit;
  azHit           = zHit;
  atofHit         = tofHit;
  amomHit         = momHit;
}

void HGeantRpc::getHit(Float_t& axHit, Float_t& ayHit, Float_t& azHit,
                       Float_t& atofHit, Float_t& amomHit)
{
  axHit   = xHit;
  ayHit   = yHit;
  azHit   = zHit;
  atofHit = tofHit;
  amomHit = momHit;
}

void HGeantRpc::getHit(Float_t& axHit, Float_t& ayHit, Float_t& azHit,
                       Float_t& atofHit)
{
  axHit   = xHit;
  ayHit   = yHit;
  azHit   = zHit;
  atofHit = tofHit;
}

void HGeantRpc::getHitDigi(Float_t& axHit, Float_t& atofHit,
                           Float_t& amomHit, Float_t& aloctrackLength)
{
  aloctrackLength = loctrackLength;
  axHit           = xHit;
  atofHit         = tofHit;
  amomHit         = momHit;
}

void HGeantRpc::getCellAverage(Float_t gap, Float_t& axHit, Float_t& ayHit, Float_t& azHit,
                               Float_t& atofHit, Float_t& amomHit, Float_t& aeHit,
                               Float_t& aloctrackLength)
{
  aloctrackLength = 0.0;
  aeHit           = 0.0;
  axHit           = 0.0;
  ayHit           = 0.0;
  azHit           = zHit;
  atofHit         = tofHit;
  amomHit         = 0.0;
  UInt_t ii=0;
  if((momHit>0.)||(eHit!=0.)) {
    if(loctrackLength>=0.) {
      aloctrackLength += loctrackLength;
    } else {
      aloctrackLength += gap;
    }
    aeHit             += eHit;
    axHit             += xHit;
    ayHit             += yHit;
    amomHit           += momHit;
    ii++;
  }
  if((momHit1>0.)||(eHit1!=0.)) {
    if(loctrackLength1>=0.) {
      aloctrackLength += loctrackLength1;
    } else {
      aloctrackLength += gap;
    }
    aeHit             += eHit1;
    axHit             += xHit1;
    ayHit             += yHit1;
    amomHit           += momHit1;
    ii++;
  }
  if((momHit2>0.)||(eHit2!=0.)) {
    if(loctrackLength2>=0.) {
      aloctrackLength += loctrackLength2;
    } else {
      aloctrackLength += gap;
    }
    aeHit             += eHit2;
    axHit             += xHit2;
    ayHit             += yHit2;
    amomHit           += momHit2;
    ii++;
  }
  if((momHit3>0.)||(eHit3!=0.)) {
    if(loctrackLength3>=0.) {
      aloctrackLength += loctrackLength3;
    } else {
      aloctrackLength += gap;
    }
    aeHit             += eHit3;
    axHit             += xHit3;
    ayHit             += yHit3;
    amomHit           += momHit3;
    ii++;
  }
  if(ii>0) {
    Float_t aii=(Float_t)ii;
    axHit           /= aii;
    ayHit           /= aii;
    amomHit         /= aii;
    aeHit           /= aii;
    aloctrackLength /= aii;
  }
}

void HGeantRpc::getCellAverage(Float_t& axHit, Float_t& ayHit, Float_t& azHit,
                               Float_t& atofHit, Float_t& amomHit, Float_t& aeHit)
{
  aeHit      = 0.0;
  axHit      = 0.0;
  ayHit      = 0.0;
  azHit      = zHit;
  atofHit    = tofHit;
  amomHit    = 0.0;
  UInt_t ii=0;
  if((momHit>0.)||(eHit!=0.)) {
    aeHit   += eHit;
    axHit   += xHit;
    ayHit   += yHit;
    amomHit += momHit;
    ii++;
  }
  if((momHit1>0.)||(eHit1!=0.)) {
    aeHit   += eHit1;
    axHit   += xHit1;
    ayHit   += yHit1;
    amomHit += momHit1;
    ii++;
  }
  if((momHit2>0.)||(eHit2!=0.)) {
    aeHit   += eHit2;
    axHit   += xHit2;
    ayHit   += yHit2;
    amomHit += momHit2;
    ii++;
  }
  if((momHit3>0.)||(eHit3!=0.)) {
    aeHit   += eHit3;
    axHit   += xHit3;
    ayHit   += yHit3;
    amomHit += momHit3;
    ii++;
  }
  if(ii>0) {
    Float_t aii=(Float_t)ii;
    aeHit   /= aii;
    axHit   /= aii;
    ayHit   /= aii;
    amomHit /= aii;
  }
}

void HGeantRpc::getCellAverage(Float_t& axHit, Float_t& ayHit, Float_t& azHit,
                               Float_t& atofHit, Float_t& amomHit)
{
  axHit   = 0.0;
  ayHit   = 0.0;
  azHit   = zHit;
  atofHit = tofHit;
  amomHit = 0.0;
  UInt_t ii=0;
  if((momHit>0.)||(eHit!=0.)) {
    axHit   += xHit;
    ayHit   += yHit;
    amomHit += momHit;
    ii++;
  }
  if((momHit1>0.)||(eHit1!=0.)) {
    axHit   += xHit1;
    ayHit   += yHit1;
    amomHit += momHit1;
    ii++;
  }
  if((momHit2>0.)||(eHit2!=0.)) {
    axHit   += xHit2;
    ayHit   += yHit2;
    amomHit += momHit2;
    ii++;
  }
  if((momHit3>0.)||(eHit3!=0.)) {
    axHit   += xHit3;
    ayHit   += yHit3;
    amomHit += momHit3;
    ii++;
  }
  if(ii>0) {
    Float_t aii=(Float_t)ii;
    axHit   /= aii;
    ayHit   /= aii;
    amomHit /= aii;
  }
}

void HGeantRpc::getCellAverage(Float_t& axHit, Float_t& ayHit, Float_t& azHit,
                               Float_t& atofHit)
{
  axHit      = 0.0;
  ayHit      = 0.0;
  azHit      = zHit;
  atofHit    = tofHit;
  UInt_t ii=0;
  if((momHit>0.)||(eHit>0.)) {
    axHit   += xHit;
    ayHit   += yHit;
    ii++;
  }
  if((momHit1>0.)||(eHit1!=0.)) {
    axHit   += xHit1;
    ayHit   += yHit1;
    ii++;
  }
  if((momHit2>0.)||(eHit2!=0.)) {
    axHit   += xHit2;
    ayHit   += yHit2;
    ii++;
  }
  if((momHit3>0.)||(eHit3!=0.)) {
    axHit   += xHit3;
    ayHit   += yHit3;
    ii++;
  }
  if(ii>0) {
    Float_t aii=(Float_t)ii;
    axHit             /= aii;
    ayHit             /= aii;
  }
}

void HGeantRpc::getCellAverageDigi(Float_t gap, Float_t& axHit, Float_t& atofHit,
                                   Float_t& amomHit, Float_t& aloctrackLength)
{
  aloctrackLength      = 0.0;
  axHit                = 0.0;
  atofHit              = tofHit;
  amomHit              = 0.0;
  UInt_t ii=0;
  if((momHit>0.)||(eHit!=0.)) {
    if(loctrackLength>=0.) {
      aloctrackLength += loctrackLength;
    } else {
      aloctrackLength += gap;
    }
    axHit             += xHit;
    amomHit           += momHit;
    ii++;
  }
  if((momHit1>0.)||(eHit1!=0.)) {
    if(loctrackLength1>=0.) {
      aloctrackLength += loctrackLength1;
    } else {
      aloctrackLength += gap;
    }
    axHit             += xHit1;
    amomHit           += momHit1;
    ii++;
  }
  if((momHit2>0.)||(eHit2!=0.)) {
    if(loctrackLength2>=0.) {
      aloctrackLength += loctrackLength2;
    } else {
      aloctrackLength += gap;
    }
    axHit             += xHit2;
    amomHit           += momHit2;
    ii++;
  }
  if((momHit3>0.)||(eHit3!=0.)) {
    if(loctrackLength3>=0.) {
      aloctrackLength += loctrackLength3;
    } else {
      aloctrackLength += gap;
    }
    axHit             += xHit3;
    amomHit           += momHit3;
    ii++;
  }
  if(ii>0) {
    Float_t aii=(Float_t)ii;
    aloctrackLength   /= aii;
    axHit             /= aii;
    amomHit           /= aii;
  }
}

// Stream an object of class HGeantRpc.
void HGeantRpc::Streamer(TBuffer &R__b)
{
   UInt_t R__s, R__c;
   if (R__b.IsReading()) {
      Version_t R__v = R__b.ReadVersion(&R__s, &R__c); if (R__v) { }
      HLinkedDataObject::Streamer(R__b);
      //
      // Handling of backward compatibility before Jan 2013
      // for READING.
      //
      if(R__v==4) {
        //
        // Version 4 before Jan 2013.
        //
        R__b >> trackNumber;
        R__b >> trackLength;
        R__b >> loctrackLength;
        R__b >> eHit;
        R__b >> xHit;
        R__b >> yHit;
        R__b >> zHit;
        R__b >> tofHit;
        R__b >> momHit;
        R__b >> thetaHit;
        R__b >> phiHit;
        R__b >> detectorID;
        // Set version.
        HGeantRpc_version = 4;
        // Zero all other unused variables.
        loctrackLength1 = 0.0;
        eHit1           = 0.0;
        xHit1           = 0.0;
        yHit1           = 0.0;
        momHit1         = 0.0;
        loctrackLength2 = 0.0;
        eHit2           = 0.0;
        xHit2           = 0.0;
        yHit2           = 0.0;
        momHit2         = 0.0;
        loctrackLength3 = 0.0;
        eHit3           = 0.0;
        xHit3           = 0.0;
        yHit3           = 0.0;
        momHit3         = 0.0;
      } else {
        //
        // Version 5 after Jan 2013.
        //
        R__b >> trackNumber;
        R__b >> trackLength;
        R__b >> loctrackLength;
        R__b >> eHit;
        R__b >> xHit;
        R__b >> yHit;
        R__b >> zHit;
        R__b >> tofHit;
        R__b >> momHit;
        R__b >> thetaHit;
        R__b >> phiHit;
        R__b >> detectorID;
        R__b >> loctrackLength1;
        R__b >> eHit1;
        R__b >> xHit1;
        R__b >> yHit1;
        R__b >> momHit1;
        R__b >> loctrackLength2;
        R__b >> eHit2;
        R__b >> xHit2;
        R__b >> yHit2;
        R__b >> momHit2;
        R__b >> loctrackLength3;
        R__b >> eHit3;
        R__b >> xHit3;
        R__b >> yHit3;
        R__b >> momHit3;
        // Set version.
        HGeantRpc_version = 5;
      }
      R__b.CheckByteCount(R__s, R__c, HGeantRpc::IsA());
   } else {
      R__c = R__b.WriteVersion(HGeantRpc::IsA(), kTRUE);
      HLinkedDataObject::Streamer(R__b);
      R__b << trackNumber;
      R__b << trackLength;
      R__b << loctrackLength;
      R__b << eHit;
      R__b << xHit;
      R__b << yHit;
      R__b << zHit;
      R__b << tofHit;
      R__b << momHit;
      R__b << thetaHit;
      R__b << phiHit;
      R__b << detectorID;
      R__b << loctrackLength1;
      R__b << eHit1;
      R__b << xHit1;
      R__b << yHit1;
      R__b << momHit1;
      R__b << loctrackLength2;
      R__b << eHit2;
      R__b << xHit2;
      R__b << yHit2;
      R__b << momHit2;
      R__b << loctrackLength3;
      R__b << eHit3;
      R__b << xHit3;
      R__b << yHit3;
      R__b << momHit3;
      R__b.SetByteCount(R__c, kTRUE);
   }
}
 hgeantrpc.cc:1
 hgeantrpc.cc:2
 hgeantrpc.cc:3
 hgeantrpc.cc:4
 hgeantrpc.cc:5
 hgeantrpc.cc:6
 hgeantrpc.cc:7
 hgeantrpc.cc:8
 hgeantrpc.cc:9
 hgeantrpc.cc:10
 hgeantrpc.cc:11
 hgeantrpc.cc:12
 hgeantrpc.cc:13
 hgeantrpc.cc:14
 hgeantrpc.cc:15
 hgeantrpc.cc:16
 hgeantrpc.cc:17
 hgeantrpc.cc:18
 hgeantrpc.cc:19
 hgeantrpc.cc:20
 hgeantrpc.cc:21
 hgeantrpc.cc:22
 hgeantrpc.cc:23
 hgeantrpc.cc:24
 hgeantrpc.cc:25
 hgeantrpc.cc:26
 hgeantrpc.cc:27
 hgeantrpc.cc:28
 hgeantrpc.cc:29
 hgeantrpc.cc:30
 hgeantrpc.cc:31
 hgeantrpc.cc:32
 hgeantrpc.cc:33
 hgeantrpc.cc:34
 hgeantrpc.cc:35
 hgeantrpc.cc:36
 hgeantrpc.cc:37
 hgeantrpc.cc:38
 hgeantrpc.cc:39
 hgeantrpc.cc:40
 hgeantrpc.cc:41
 hgeantrpc.cc:42
 hgeantrpc.cc:43
 hgeantrpc.cc:44
 hgeantrpc.cc:45
 hgeantrpc.cc:46
 hgeantrpc.cc:47
 hgeantrpc.cc:48
 hgeantrpc.cc:49
 hgeantrpc.cc:50
 hgeantrpc.cc:51
 hgeantrpc.cc:52
 hgeantrpc.cc:53
 hgeantrpc.cc:54
 hgeantrpc.cc:55
 hgeantrpc.cc:56
 hgeantrpc.cc:57
 hgeantrpc.cc:58
 hgeantrpc.cc:59
 hgeantrpc.cc:60
 hgeantrpc.cc:61
 hgeantrpc.cc:62
 hgeantrpc.cc:63
 hgeantrpc.cc:64
 hgeantrpc.cc:65
 hgeantrpc.cc:66
 hgeantrpc.cc:67
 hgeantrpc.cc:68
 hgeantrpc.cc:69
 hgeantrpc.cc:70
 hgeantrpc.cc:71
 hgeantrpc.cc:72
 hgeantrpc.cc:73
 hgeantrpc.cc:74
 hgeantrpc.cc:75
 hgeantrpc.cc:76
 hgeantrpc.cc:77
 hgeantrpc.cc:78
 hgeantrpc.cc:79
 hgeantrpc.cc:80
 hgeantrpc.cc:81
 hgeantrpc.cc:82
 hgeantrpc.cc:83
 hgeantrpc.cc:84
 hgeantrpc.cc:85
 hgeantrpc.cc:86
 hgeantrpc.cc:87
 hgeantrpc.cc:88
 hgeantrpc.cc:89
 hgeantrpc.cc:90
 hgeantrpc.cc:91
 hgeantrpc.cc:92
 hgeantrpc.cc:93
 hgeantrpc.cc:94
 hgeantrpc.cc:95
 hgeantrpc.cc:96
 hgeantrpc.cc:97
 hgeantrpc.cc:98
 hgeantrpc.cc:99
 hgeantrpc.cc:100
 hgeantrpc.cc:101
 hgeantrpc.cc:102
 hgeantrpc.cc:103
 hgeantrpc.cc:104
 hgeantrpc.cc:105
 hgeantrpc.cc:106
 hgeantrpc.cc:107
 hgeantrpc.cc:108
 hgeantrpc.cc:109
 hgeantrpc.cc:110
 hgeantrpc.cc:111
 hgeantrpc.cc:112
 hgeantrpc.cc:113
 hgeantrpc.cc:114
 hgeantrpc.cc:115
 hgeantrpc.cc:116
 hgeantrpc.cc:117
 hgeantrpc.cc:118
 hgeantrpc.cc:119
 hgeantrpc.cc:120
 hgeantrpc.cc:121
 hgeantrpc.cc:122
 hgeantrpc.cc:123
 hgeantrpc.cc:124
 hgeantrpc.cc:125
 hgeantrpc.cc:126
 hgeantrpc.cc:127
 hgeantrpc.cc:128
 hgeantrpc.cc:129
 hgeantrpc.cc:130
 hgeantrpc.cc:131
 hgeantrpc.cc:132
 hgeantrpc.cc:133
 hgeantrpc.cc:134
 hgeantrpc.cc:135
 hgeantrpc.cc:136
 hgeantrpc.cc:137
 hgeantrpc.cc:138
 hgeantrpc.cc:139
 hgeantrpc.cc:140
 hgeantrpc.cc:141
 hgeantrpc.cc:142
 hgeantrpc.cc:143
 hgeantrpc.cc:144
 hgeantrpc.cc:145
 hgeantrpc.cc:146
 hgeantrpc.cc:147
 hgeantrpc.cc:148
 hgeantrpc.cc:149
 hgeantrpc.cc:150
 hgeantrpc.cc:151
 hgeantrpc.cc:152
 hgeantrpc.cc:153
 hgeantrpc.cc:154
 hgeantrpc.cc:155
 hgeantrpc.cc:156
 hgeantrpc.cc:157
 hgeantrpc.cc:158
 hgeantrpc.cc:159
 hgeantrpc.cc:160
 hgeantrpc.cc:161
 hgeantrpc.cc:162
 hgeantrpc.cc:163
 hgeantrpc.cc:164
 hgeantrpc.cc:165
 hgeantrpc.cc:166
 hgeantrpc.cc:167
 hgeantrpc.cc:168
 hgeantrpc.cc:169
 hgeantrpc.cc:170
 hgeantrpc.cc:171
 hgeantrpc.cc:172
 hgeantrpc.cc:173
 hgeantrpc.cc:174
 hgeantrpc.cc:175
 hgeantrpc.cc:176
 hgeantrpc.cc:177
 hgeantrpc.cc:178
 hgeantrpc.cc:179
 hgeantrpc.cc:180
 hgeantrpc.cc:181
 hgeantrpc.cc:182
 hgeantrpc.cc:183
 hgeantrpc.cc:184
 hgeantrpc.cc:185
 hgeantrpc.cc:186
 hgeantrpc.cc:187
 hgeantrpc.cc:188
 hgeantrpc.cc:189
 hgeantrpc.cc:190
 hgeantrpc.cc:191
 hgeantrpc.cc:192
 hgeantrpc.cc:193
 hgeantrpc.cc:194
 hgeantrpc.cc:195
 hgeantrpc.cc:196
 hgeantrpc.cc:197
 hgeantrpc.cc:198
 hgeantrpc.cc:199
 hgeantrpc.cc:200
 hgeantrpc.cc:201
 hgeantrpc.cc:202
 hgeantrpc.cc:203
 hgeantrpc.cc:204
 hgeantrpc.cc:205
 hgeantrpc.cc:206
 hgeantrpc.cc:207
 hgeantrpc.cc:208
 hgeantrpc.cc:209
 hgeantrpc.cc:210
 hgeantrpc.cc:211
 hgeantrpc.cc:212
 hgeantrpc.cc:213
 hgeantrpc.cc:214
 hgeantrpc.cc:215
 hgeantrpc.cc:216
 hgeantrpc.cc:217
 hgeantrpc.cc:218
 hgeantrpc.cc:219
 hgeantrpc.cc:220
 hgeantrpc.cc:221
 hgeantrpc.cc:222
 hgeantrpc.cc:223
 hgeantrpc.cc:224
 hgeantrpc.cc:225
 hgeantrpc.cc:226
 hgeantrpc.cc:227
 hgeantrpc.cc:228
 hgeantrpc.cc:229
 hgeantrpc.cc:230
 hgeantrpc.cc:231
 hgeantrpc.cc:232
 hgeantrpc.cc:233
 hgeantrpc.cc:234
 hgeantrpc.cc:235
 hgeantrpc.cc:236
 hgeantrpc.cc:237
 hgeantrpc.cc:238
 hgeantrpc.cc:239
 hgeantrpc.cc:240
 hgeantrpc.cc:241
 hgeantrpc.cc:242
 hgeantrpc.cc:243
 hgeantrpc.cc:244
 hgeantrpc.cc:245
 hgeantrpc.cc:246
 hgeantrpc.cc:247
 hgeantrpc.cc:248
 hgeantrpc.cc:249
 hgeantrpc.cc:250
 hgeantrpc.cc:251
 hgeantrpc.cc:252
 hgeantrpc.cc:253
 hgeantrpc.cc:254
 hgeantrpc.cc:255
 hgeantrpc.cc:256
 hgeantrpc.cc:257
 hgeantrpc.cc:258
 hgeantrpc.cc:259
 hgeantrpc.cc:260
 hgeantrpc.cc:261
 hgeantrpc.cc:262
 hgeantrpc.cc:263
 hgeantrpc.cc:264
 hgeantrpc.cc:265
 hgeantrpc.cc:266
 hgeantrpc.cc:267
 hgeantrpc.cc:268
 hgeantrpc.cc:269
 hgeantrpc.cc:270
 hgeantrpc.cc:271
 hgeantrpc.cc:272
 hgeantrpc.cc:273
 hgeantrpc.cc:274
 hgeantrpc.cc:275
 hgeantrpc.cc:276
 hgeantrpc.cc:277
 hgeantrpc.cc:278
 hgeantrpc.cc:279
 hgeantrpc.cc:280
 hgeantrpc.cc:281
 hgeantrpc.cc:282
 hgeantrpc.cc:283
 hgeantrpc.cc:284
 hgeantrpc.cc:285
 hgeantrpc.cc:286
 hgeantrpc.cc:287
 hgeantrpc.cc:288
 hgeantrpc.cc:289
 hgeantrpc.cc:290
 hgeantrpc.cc:291
 hgeantrpc.cc:292
 hgeantrpc.cc:293
 hgeantrpc.cc:294
 hgeantrpc.cc:295
 hgeantrpc.cc:296
 hgeantrpc.cc:297
 hgeantrpc.cc:298
 hgeantrpc.cc:299
 hgeantrpc.cc:300
 hgeantrpc.cc:301
 hgeantrpc.cc:302
 hgeantrpc.cc:303
 hgeantrpc.cc:304
 hgeantrpc.cc:305
 hgeantrpc.cc:306
 hgeantrpc.cc:307
 hgeantrpc.cc:308
 hgeantrpc.cc:309
 hgeantrpc.cc:310
 hgeantrpc.cc:311
 hgeantrpc.cc:312
 hgeantrpc.cc:313
 hgeantrpc.cc:314
 hgeantrpc.cc:315
 hgeantrpc.cc:316
 hgeantrpc.cc:317
 hgeantrpc.cc:318
 hgeantrpc.cc:319
 hgeantrpc.cc:320
 hgeantrpc.cc:321
 hgeantrpc.cc:322
 hgeantrpc.cc:323
 hgeantrpc.cc:324
 hgeantrpc.cc:325
 hgeantrpc.cc:326
 hgeantrpc.cc:327
 hgeantrpc.cc:328
 hgeantrpc.cc:329
 hgeantrpc.cc:330
 hgeantrpc.cc:331
 hgeantrpc.cc:332
 hgeantrpc.cc:333
 hgeantrpc.cc:334
 hgeantrpc.cc:335
 hgeantrpc.cc:336
 hgeantrpc.cc:337
 hgeantrpc.cc:338
 hgeantrpc.cc:339
 hgeantrpc.cc:340
 hgeantrpc.cc:341
 hgeantrpc.cc:342
 hgeantrpc.cc:343
 hgeantrpc.cc:344
 hgeantrpc.cc:345
 hgeantrpc.cc:346
 hgeantrpc.cc:347
 hgeantrpc.cc:348
 hgeantrpc.cc:349
 hgeantrpc.cc:350
 hgeantrpc.cc:351
 hgeantrpc.cc:352
 hgeantrpc.cc:353
 hgeantrpc.cc:354
 hgeantrpc.cc:355
 hgeantrpc.cc:356
 hgeantrpc.cc:357
 hgeantrpc.cc:358
 hgeantrpc.cc:359
 hgeantrpc.cc:360
 hgeantrpc.cc:361
 hgeantrpc.cc:362
 hgeantrpc.cc:363
 hgeantrpc.cc:364
 hgeantrpc.cc:365
 hgeantrpc.cc:366
 hgeantrpc.cc:367
 hgeantrpc.cc:368
 hgeantrpc.cc:369
 hgeantrpc.cc:370
 hgeantrpc.cc:371
 hgeantrpc.cc:372
 hgeantrpc.cc:373
 hgeantrpc.cc:374
 hgeantrpc.cc:375
 hgeantrpc.cc:376
 hgeantrpc.cc:377
 hgeantrpc.cc:378
 hgeantrpc.cc:379
 hgeantrpc.cc:380
 hgeantrpc.cc:381
 hgeantrpc.cc:382
 hgeantrpc.cc:383
 hgeantrpc.cc:384
 hgeantrpc.cc:385
 hgeantrpc.cc:386
 hgeantrpc.cc:387
 hgeantrpc.cc:388
 hgeantrpc.cc:389
 hgeantrpc.cc:390
 hgeantrpc.cc:391
 hgeantrpc.cc:392
 hgeantrpc.cc:393
 hgeantrpc.cc:394
 hgeantrpc.cc:395
 hgeantrpc.cc:396
 hgeantrpc.cc:397
 hgeantrpc.cc:398
 hgeantrpc.cc:399
 hgeantrpc.cc:400
 hgeantrpc.cc:401
 hgeantrpc.cc:402
 hgeantrpc.cc:403
 hgeantrpc.cc:404
 hgeantrpc.cc:405
 hgeantrpc.cc:406
 hgeantrpc.cc:407
 hgeantrpc.cc:408
 hgeantrpc.cc:409
 hgeantrpc.cc:410
 hgeantrpc.cc:411
 hgeantrpc.cc:412
 hgeantrpc.cc:413
 hgeantrpc.cc:414
 hgeantrpc.cc:415
 hgeantrpc.cc:416
 hgeantrpc.cc:417
 hgeantrpc.cc:418
 hgeantrpc.cc:419
 hgeantrpc.cc:420
 hgeantrpc.cc:421
 hgeantrpc.cc:422
 hgeantrpc.cc:423
 hgeantrpc.cc:424
 hgeantrpc.cc:425
 hgeantrpc.cc:426
 hgeantrpc.cc:427
 hgeantrpc.cc:428
 hgeantrpc.cc:429
 hgeantrpc.cc:430
 hgeantrpc.cc:431
 hgeantrpc.cc:432
 hgeantrpc.cc:433
 hgeantrpc.cc:434
 hgeantrpc.cc:435
 hgeantrpc.cc:436
 hgeantrpc.cc:437
 hgeantrpc.cc:438
 hgeantrpc.cc:439
 hgeantrpc.cc:440
 hgeantrpc.cc:441
 hgeantrpc.cc:442
 hgeantrpc.cc:443
 hgeantrpc.cc:444
 hgeantrpc.cc:445
 hgeantrpc.cc:446
 hgeantrpc.cc:447
 hgeantrpc.cc:448
 hgeantrpc.cc:449
 hgeantrpc.cc:450
 hgeantrpc.cc:451
 hgeantrpc.cc:452
 hgeantrpc.cc:453
 hgeantrpc.cc:454
 hgeantrpc.cc:455
 hgeantrpc.cc:456
 hgeantrpc.cc:457
 hgeantrpc.cc:458
 hgeantrpc.cc:459
 hgeantrpc.cc:460
 hgeantrpc.cc:461
 hgeantrpc.cc:462
 hgeantrpc.cc:463
 hgeantrpc.cc:464
 hgeantrpc.cc:465
 hgeantrpc.cc:466
 hgeantrpc.cc:467
 hgeantrpc.cc:468
 hgeantrpc.cc:469
 hgeantrpc.cc:470
 hgeantrpc.cc:471
 hgeantrpc.cc:472
 hgeantrpc.cc:473
 hgeantrpc.cc:474
 hgeantrpc.cc:475
 hgeantrpc.cc:476
 hgeantrpc.cc:477
 hgeantrpc.cc:478
 hgeantrpc.cc:479
 hgeantrpc.cc:480
 hgeantrpc.cc:481
 hgeantrpc.cc:482
 hgeantrpc.cc:483
 hgeantrpc.cc:484
 hgeantrpc.cc:485
 hgeantrpc.cc:486
 hgeantrpc.cc:487
 hgeantrpc.cc:488
 hgeantrpc.cc:489
 hgeantrpc.cc:490
 hgeantrpc.cc:491
 hgeantrpc.cc:492
 hgeantrpc.cc:493
 hgeantrpc.cc:494
 hgeantrpc.cc:495
 hgeantrpc.cc:496
 hgeantrpc.cc:497
 hgeantrpc.cc:498
 hgeantrpc.cc:499
 hgeantrpc.cc:500
 hgeantrpc.cc:501
 hgeantrpc.cc:502
 hgeantrpc.cc:503
 hgeantrpc.cc:504
 hgeantrpc.cc:505
 hgeantrpc.cc:506
 hgeantrpc.cc:507
 hgeantrpc.cc:508
 hgeantrpc.cc:509
 hgeantrpc.cc:510
 hgeantrpc.cc:511
 hgeantrpc.cc:512
 hgeantrpc.cc:513
 hgeantrpc.cc:514
 hgeantrpc.cc:515
 hgeantrpc.cc:516
 hgeantrpc.cc:517
 hgeantrpc.cc:518
 hgeantrpc.cc:519
 hgeantrpc.cc:520
 hgeantrpc.cc:521
 hgeantrpc.cc:522
 hgeantrpc.cc:523
 hgeantrpc.cc:524
 hgeantrpc.cc:525
 hgeantrpc.cc:526
 hgeantrpc.cc:527
 hgeantrpc.cc:528
 hgeantrpc.cc:529
 hgeantrpc.cc:530
 hgeantrpc.cc:531
 hgeantrpc.cc:532
 hgeantrpc.cc:533
 hgeantrpc.cc:534
 hgeantrpc.cc:535
 hgeantrpc.cc:536
 hgeantrpc.cc:537
 hgeantrpc.cc:538
 hgeantrpc.cc:539
 hgeantrpc.cc:540
 hgeantrpc.cc:541
 hgeantrpc.cc:542
 hgeantrpc.cc:543
 hgeantrpc.cc:544
 hgeantrpc.cc:545
 hgeantrpc.cc:546
 hgeantrpc.cc:547
 hgeantrpc.cc:548
 hgeantrpc.cc:549
 hgeantrpc.cc:550
 hgeantrpc.cc:551
 hgeantrpc.cc:552
 hgeantrpc.cc:553
 hgeantrpc.cc:554
 hgeantrpc.cc:555
 hgeantrpc.cc:556
 hgeantrpc.cc:557
 hgeantrpc.cc:558
 hgeantrpc.cc:559
 hgeantrpc.cc:560
 hgeantrpc.cc:561
 hgeantrpc.cc:562
 hgeantrpc.cc:563
 hgeantrpc.cc:564
 hgeantrpc.cc:565
 hgeantrpc.cc:566
 hgeantrpc.cc:567
 hgeantrpc.cc:568
 hgeantrpc.cc:569
 hgeantrpc.cc:570
 hgeantrpc.cc:571
 hgeantrpc.cc:572
 hgeantrpc.cc:573
 hgeantrpc.cc:574
 hgeantrpc.cc:575
 hgeantrpc.cc:576
 hgeantrpc.cc:577
 hgeantrpc.cc:578
 hgeantrpc.cc:579
 hgeantrpc.cc:580
 hgeantrpc.cc:581
 hgeantrpc.cc:582
 hgeantrpc.cc:583
 hgeantrpc.cc:584
 hgeantrpc.cc:585
 hgeantrpc.cc:586
 hgeantrpc.cc:587
 hgeantrpc.cc:588
 hgeantrpc.cc:589
 hgeantrpc.cc:590
 hgeantrpc.cc:591
 hgeantrpc.cc:592
 hgeantrpc.cc:593
 hgeantrpc.cc:594
 hgeantrpc.cc:595
 hgeantrpc.cc:596
 hgeantrpc.cc:597
 hgeantrpc.cc:598
 hgeantrpc.cc:599
 hgeantrpc.cc:600
 hgeantrpc.cc:601
 hgeantrpc.cc:602
 hgeantrpc.cc:603
 hgeantrpc.cc:604
 hgeantrpc.cc:605
 hgeantrpc.cc:606
 hgeantrpc.cc:607
 hgeantrpc.cc:608
 hgeantrpc.cc:609
 hgeantrpc.cc:610
 hgeantrpc.cc:611
 hgeantrpc.cc:612
 hgeantrpc.cc:613
 hgeantrpc.cc:614
 hgeantrpc.cc:615
 hgeantrpc.cc:616
 hgeantrpc.cc:617
 hgeantrpc.cc:618
 hgeantrpc.cc:619
 hgeantrpc.cc:620
 hgeantrpc.cc:621
 hgeantrpc.cc:622
 hgeantrpc.cc:623
 hgeantrpc.cc:624
 hgeantrpc.cc:625
 hgeantrpc.cc:626
 hgeantrpc.cc:627
 hgeantrpc.cc:628
 hgeantrpc.cc:629
 hgeantrpc.cc:630
 hgeantrpc.cc:631
 hgeantrpc.cc:632
 hgeantrpc.cc:633
 hgeantrpc.cc:634
 hgeantrpc.cc:635
 hgeantrpc.cc:636
 hgeantrpc.cc:637
 hgeantrpc.cc:638
 hgeantrpc.cc:639
 hgeantrpc.cc:640
 hgeantrpc.cc:641
 hgeantrpc.cc:642
 hgeantrpc.cc:643
 hgeantrpc.cc:644
 hgeantrpc.cc:645
 hgeantrpc.cc:646
 hgeantrpc.cc:647
 hgeantrpc.cc:648
 hgeantrpc.cc:649
 hgeantrpc.cc:650
 hgeantrpc.cc:651
 hgeantrpc.cc:652
 hgeantrpc.cc:653
 hgeantrpc.cc:654
 hgeantrpc.cc:655
 hgeantrpc.cc:656
 hgeantrpc.cc:657
 hgeantrpc.cc:658
 hgeantrpc.cc:659
 hgeantrpc.cc:660
 hgeantrpc.cc:661
 hgeantrpc.cc:662
 hgeantrpc.cc:663
 hgeantrpc.cc:664
 hgeantrpc.cc:665
 hgeantrpc.cc:666
 hgeantrpc.cc:667
 hgeantrpc.cc:668
 hgeantrpc.cc:669
 hgeantrpc.cc:670
 hgeantrpc.cc:671
 hgeantrpc.cc:672
 hgeantrpc.cc:673
 hgeantrpc.cc:674
 hgeantrpc.cc:675
 hgeantrpc.cc:676
 hgeantrpc.cc:677
 hgeantrpc.cc:678