#ifndef HFRPCCAL_H #define HFRPCCAL_H #include "frpcdef.h" #include "hades.h" #include class HGeomVector; class HFRpcCal : public TObject { protected: Char_t fSector; // module number (0..1 for Rpc modules) Short_t fStrip; Float16_t fTimeN; // time left Float16_t fTimeF; // time right Float16_t fChargeN; // charge left Float16_t fChargeF; // charge right Float16_t fTof; Float16_t fV; Float16_t fX; Float16_t fY; Float16_t fZ; public: HFRpcCal(); void getAddress(Char_t &sec, Char_t &strip) const { sec = fSector; strip = fStrip; } void setAddress(Char_t sec, Char_t strip) { fSector = sec; fStrip = strip; } void setHit(Float_t tl, Float_t tr, Float_t ql, Float_t qr, Float_t tof, Float_t V, Float_t x, Float_t y, Float_t z) { fTimeN = tl; fTimeF = tr; fChargeN = ql; fChargeF = qr; fTof = tof; fV = V; fX = x; fY = y; fZ = z; } void getHit(Float_t &tn, Float_t &tf, Float_t &qn, Float_t &qf) const { tn = fTimeN; tf = fTimeF; qn = fChargeN; qf = fChargeF; } Float_t getTof() const { return fTof; }; Float_t getV() const { return fV; }; Float_t getX() const { return fX; }; Float_t getY() const { return fY; }; Float_t getZ() const { return fZ; }; /** * Reconstruct the hit position in the strip. * \param tl time * \param tr times * \param ql charge * \param qr charge * \param z z-position * \param v signal propagation speed in mm/ns * \param L strip length * \param po position correction offset * \param to tof correction offset * \param pos geometry * \param cosa module rotation cos * \param sina module rotation sina * \param twc0 time walk par 0 * \param twc1 time walk par 1 */ void reconstructHits(Float_t tl, Float_t tr, Float_t ql, Float_t qr, Float_t z, Float_t v, Float_t L, Float_t po, Float_t to, HGeomVector *pos, Float_t cosa, Float_t sina, Float_t twc0, Float_t twc1, Float_t twc2); void print() const; private: ClassDef(HFRpcCal, 1) }; #endif /* !HFRPCCAL_H */