#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;
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(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;
}
}
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);
if(R__v==4) {
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;
HGeantRpc_version = 4;
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 {
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;
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);
}
}