#ifndef HBASETRACK_H
#define HBASETRACK_H

#include "TObject.h"
#include "hsymmat.h"

class HBaseTrack:public TObject
{
  protected:
   Float_t z;            // From HMdcSeg               (in Lab.?)
   Float_t r;            // From HMdcSeg
   Float_t theta;        // From HMdcSeg
   Float_t phi;          // From HMdcSeg
   Short_t tofHitInd;    // Index of HTofHit or HTofCluster
   Short_t showerHitInd; // Index of HShowerHitTof
   Float_t p;            // Momentum of particle
   Float_t beta;         // speed of paricle
   Float_t mass2;        // mass squared
   Float_t tof;          // time of flight
   Char_t polarity;      // polarity (+1 or -1)
   Char_t sector;        // Sector number
   HSymMat6 cov;         // covariance matrix of size 6
   Float_t metaEloss;    // corrected energy loss in TOF or TOFINO
   Float_t tarDist;
   Double_t tofdist;     // Track length from Target-to-META detector
   Float_t qIOMatch;     //Matching quality if inner and outer segments
 public:
  HBaseTrack();
  HBaseTrack(HBaseTrack &);
  virtual ~HBaseTrack(){;};
  void setIOMatching(Float_t _qIOMatch) {qIOMatch=_qIOMatch;}
  void setZ(Float_t Z,Float_t err) {z=Z; cov.setErr(0,err);}
  void setR(Float_t R,Float_t err) {r=R; cov.setErr(1,err);}
  void setP (Float_t P,Float_t err) {p=P; cov.setErr(2,err);}
  void setTheta(Float_t THETA, Float_t err) {
    theta=THETA; cov.setErr(3,err);}
  void setPhi (Float_t PHI,Float_t err) {
    phi=PHI; cov.setErr(4,err);}
  void setTofHitInd(Short_t tof) {tofHitInd=tof;}
  void setShowerHitInd(Short_t shower) {showerHitInd=shower;}
  void setMetaHitInd(Short_t shower, Short_t tof){
     showerHitInd=shower; tofHitInd=tof;}
  void setMass2(Float_t MASS2,Float_t err) {mass2=MASS2; cov.setErr(5,err);}
  void setTof(Float_t TOF) {tof=TOF;}
  void setPolarity(Char_t POLARYTY) {polarity=POLARYTY;}
  void setSector(Char_t SECTOR) {sector=SECTOR;}
  void setBeta (Float_t BETA) {beta=BETA;}
  void setMetaEloss( Float_t e) {metaEloss=e;}
  void setTofFlag( Short_t FLAG) {tofHitInd=(tofHitInd+1)%10000-1+10000*FLAG;}
  void setTarDist(Float_t _tarDist) {tarDist=_tarDist;}
  void setTofDist(Double_t d) {tofdist = d; }
  Float_t getIOMatch(void) const {return qIOMatch;}
  Float_t getIOMatching(void) const {return qIOMatch;}
  Float_t getZ(void) const {return z;}
  Float_t getErrZ(void) {return cov.getErr(0);}
  Float_t getR(void) const {return r;}
  Float_t getErrR(void) {return cov.getErr(1);}
  Float_t getTheta(void) const {return theta;}
  Float_t getErrTheta(void) {return cov.getErr(3);}
  Float_t getPhi(void) const {return phi;}
  Float_t getErrPhi(void) {return cov.getErr(4);}
  Bool_t isOverlap(void) const {
    return (showerHitInd>-1 && getTofHitInd()>-1) ? kTRUE:kFALSE; }
  Short_t getMetaHitInd(void) const {
    return (getSystem()==1) ? tofHitInd:showerHitInd;} //???
  Int_t getSystem(void) const {
    return (getTofHitInd()>-1) ? 1 : ((showerHitInd>-1) ? 0:-1); } //???
  Short_t getShowerHitInd(void) const {return showerHitInd;}
  Short_t getTofHitInd(void) const {return (((tofHitInd+1)%10000)-1);}
  Float_t getP(void) const {return p;}
  Float_t getErrP(void) {return cov.getErr(2);}
  Float_t getMass2(void) {return mass2;}
  Float_t getErrMass2(void) {return cov.getErr(5);}
  Float_t getTof(void) const {return tof;}
  Char_t getPolarity(void) const {return polarity;}
  Char_t getSector(void) const {return sector;}
  Float_t getBeta(void) const {return beta;}
  Float_t getMetaEloss(void) const {return metaEloss;}
  Short_t getTofFlag(void) const {return ((tofHitInd+1)/10000);}
  HSymMat &getCovariance(void) { return cov; } 
  Float_t getTarDist(void) const {return tarDist;}
  Double_t getTofDist(void) { return tofdist; }
   
  ClassDef(HBaseTrack,4)
};
#endif

Last change: Sat May 22 12:53:42 2010
Last generated: 2010-05-22 12:53

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.