#include "hparticlemdc.h"
#include "hmdcseg.h"
#include "hmdctrkcand.h"
ClassImp(HParticleMdc)
HParticleMdc::HParticleMdc() :
fIndex(0),
fMdcFlag(0),
fMdc1x(0),
fMdc1y(0),
fMdc2x(0),
fMdc2y(0),
fMdc3x(0),
fMdc3y(0),
fMdc4x(0),
fMdc4y(0),
dedxInner(-1),
dedxSigmaInner(-1),
dedxOuter(-1),
dedxSigmaOuter(-1),
dedxCombined(-1),
dedxSigmaCombined(-1),
dedxNWireCutCombined(0),
dedxNWireCutInner(0),
dedxNWireCutOuter(0)
{
for(Int_t i=0;i<4;i++){
dedx [i] = -1;
dedxSigma [i] = -1;
dedxNWire [i] = 0;
dedxNWireCut[i] = 0;
}
}
HParticleMdc::~HParticleMdc()
{
}
Int_t HParticleMdc::getNRemovedCellsInnerSeg()
{
return getNCellsClus() - (dedxNWire[0]+dedxNWire[1]);
}
Float_t HParticleMdc::getdedxSeg(Int_t seg)
{
if(seg==0) { return dedxInner;}
else if(seg==1){ return dedxOuter;}
else if(seg==2){ return dedxCombined;}
else {return -1;}
}
Float_t HParticleMdc::getSigmadedxSeg(Int_t seg)
{
if(seg==0) {return dedxSigmaInner;}
else if(seg==1){return dedxSigmaOuter;}
else if(seg==2){return dedxSigmaCombined;}
else {return -1;}
}
UChar_t HParticleMdc::getNWireCutdedxSeg(Int_t seg)
{
if(seg==0) { return dedxNWireCutInner;}
else if(seg==1){ return dedxNWireCutOuter;}
else if(seg==2){ return dedxNWireCutCombined;}
else {return 0;}
}
void HParticleMdc::fill(HMdcSeg* seg)
{
if(!seg) return;
if(seg->getIOSeg() == 0)
{
fMdcFlag = seg->getFlag();
fMdc1x = seg->getX1Sh();
fMdc1y = seg->getY1Sh();
fMdc2x = seg->getX2Sh();
fMdc2y = seg->getY2Sh();
} else {
fMdc3x = seg->getX1Sh();
fMdc3y = seg->getY1Sh();
fMdc4x = seg->getX2Sh();
fMdc4y = seg->getY2Sh();
}
}
void HParticleMdc::fill(HMdcTrkCand* trk)
{
if(!trk) return;
dedxInner = trk->getdedxInnerSeg();
dedxSigmaInner = trk->getSigmadedxInnerSeg();
dedxNWireCutInner = trk->getNWireCutdedxInnerSeg();
dedxOuter = trk->getdedxOuterSeg();
dedxSigmaOuter = trk->getSigmadedxOuterSeg();
dedxNWireCutOuter = trk->getNWireCutdedxOuterSeg();
dedxCombined = trk->getdedxCombinedSeg();
dedxSigmaCombined = trk->getSigmadedxCombinedSeg();
dedxNWireCutCombined = trk->getNWireCutdedxCombinedSeg();
for(Int_t i=0;i<4;i++){
dedx [i] = trk->getdedx(i);
dedxSigma [i] = trk->getSigmadedx(i);
dedxNWire [i] = trk->getNWirededx(i);
dedxNWireCut[i] = trk->getNWireCutdedx(i);
}
}