//*-- Author : RafaƂ Lalik //*-- Created : 01.06.2016 //_HADES_CLASS_DESCRIPTION ///////////////////////////////////////////////////////////// // HStsCal // // This class contains Forward Straw detector Cal data // // Containing calibrated Time and energy loss // ///////////////////////////////////////////////////////////// #include "hstscal.h" #include "stsdef.h" ClassImp(HStsCal); HStsCal::HStsCal() { fModule = -1; fLayer = -1; fStraw = -1; fUpDown = 0; fTime = -100.; fTot = -100.; fU = 0; fZ = 0; } Int_t HStsCal::getVPlane(Int_t m, Int_t l, Int_t p) { return (m * STS_MAX_LAYERS + l) * STS_MAX_PLANES + p; } void HStsCal::print() const { printf("STS cal: mod=%d lay=%d straw=%03d ud=%d time=%6.2f tot=%6.2f u=%7.2f z=%7.2f\n", fModule, fLayer, fStraw, fUpDown, fTime, fTot, fU, fZ); } void HStsCal::getAddress(Char_t &m, Char_t &l, Int_t &s, Char_t &ud) const { m = fModule; l = fLayer; s = fStraw; ud = fUpDown; } void HStsCal::setAddress(Char_t m, Char_t l, Int_t s, Char_t ud) { fModule = m; fLayer = l; fStraw = s; fUpDown = ud; } void HStsCal::getHit(Float_t &time, Float_t &q, Float_t &u, Float_t &z) const { time = fTime; q = fTot; u = fU; z = fZ; } void HStsCal::setHit(Float_t time, Float_t q, Float_t u, Float_t z) { fTime = time; fTot = q; fU = u; fZ = z; } Float_t HStsCal::calcRadius(Float_t tof, Float_t p[11]) const { Float_t dt = fTime - (tof - p[3]) * p[2]; Float_t x2 = dt * dt; Float_t x3 = x2 * dt; Float_t x4 = x3 * dt; return p[4] + p[5] * dt + p[6] * x2 + p[7] * x3 + p[8] * x4; }