#ifndef HKICKTRACK_H
#define HKICKTRACK_H

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

class HKickTrack : public TObject
{
private:
  Float_t pTof;  //Track Momentum using determined by Time Of Flight using inverse kinematics
  Float_t errPTof; // Error in pTof
  Char_t pid;      // Tentative particle Id of the track
  Char_t quality;  // Track Quality. q=0 all reasonable combs, q=1 good ones.
  Float_t z;       // z component of the 'vertex' coordinates
  Float_t r;       // rho component of the 'vertex' coordinates
  Float_t p;       // Track momentum determined from the kickplane
  Float_t theta;   // Polar angle of the track's direction vector
  Float_t phi;     // Azimuthal angle of the track's direction vector
  Float_t mass;    // Track's mass squared. 
  Int_t charge;    // Sign of charge
  HSymMat6 cov;    // Covariance matrix of track params: z,r,p,theta,phi,mass
  Char_t sector;   // Sector where the track was found
  Int_t system;    // Detector which was matched with MDC to form a track
  Float_t tof;     // Track's time of flight
  Float_t metaeloss; // energy loss in Meta
  Float_t beta;    // Track's speed
  Float_t showerSum10; // Shower: sum of 9 charges in post / sum of 9 charges in pre
  Float_t showerSum20; // Shower: sum of 9 charges in post2 / sum of 9 charges in pre
  Short_t segmentId; // Id of the MDC segment used to build the track
  Short_t ringId;    // Id of a RICH ring matching the track 
  Short_t outerHitId; // Id of the hit in META used to build the track
  Float_t pull;       // The variable used for matching
  Float_t flag;       //Undefined
public:
  static const Char_t antiProtonId;
  static const Char_t protonId;
  static const Char_t kPlusId;
  static const Char_t kMinusId;
  static const Char_t piPlusId;
  static const Char_t piMinusId;
  static const Char_t unknownId;
  HKickTrack(void);
  HKickTrack(HKickTrack &aTrack, Int_t vers=0);
  ~HKickTrack(void);
  void setPull(Float_t p) { pull = p; }
  void setSegment(Int_t i) { segmentId = i; }
  void setRingId(Int_t i) { ringId = i; }
  void setOuterHitId(Int_t i) { outerHitId = i; }
  void setTof(Float_t t) { tof = t; }
  void setMetaEloss(Float_t t) { metaeloss = t; }
  void setSystem(Int_t s) { system = s;}
  void setZ(Float_t az,Float_t err) { z=az; cov.setErr(0,err); }
  void setR(Float_t ar,Float_t err) { r=ar; cov.setErr(1,err); }
  void setP(Float_t ap,Float_t err) { p=ap; cov.setErr(2,err); }
  void setTheta(Float_t atheta,Float_t err) {theta=atheta; cov.setErr(3,err); }
  void setPhi(Float_t aphi,Float_t err)     { phi=aphi; cov.setErr(4,err); }
  void setCharge(Int_t c)       { charge=c; }                               
  void setMass(Float_t m,Float_t err) {mass=m; cov.setErr(5,err); }
  void setSector(Int_t s) { sector = s; }
  void setQuality(Char_t q) { quality = q; }
  void setPID(Char_t p) { pid = p;}
  void setPTof(Float_t p) { pTof = p; }
  void setErrPTof(Float_t e) { errPTof = e; }
  void setBeta(Float_t b) { beta = b; }
  void setShowerSum10(Float_t f) { showerSum10 = f; }
  void setShowerSum20(Float_t f) { showerSum20 = f; }
  void setFlag(Float_t f) { flag = f; }
  void setTofFlag(Short_t FLAG) {flag=(Float_t)FLAG;}
  Char_t getPID(void) { return pid; }
  Float_t getPTof(void) { return pTof; }
  Float_t getErrPTof(void) { return errPTof; }
  Float_t getZ(void)        { return z; }
  Float_t getErrZ(void)     { return cov.getErr(0); }
  Float_t getR(void)        { return r; }
  Float_t getErrR(void)     { return cov.getErr(1); }
  Float_t getP(void)        { return p; }
  Float_t getErrP(void)     { return cov.getErr(2); }
  Float_t getTheta(void)    { return theta; }
  Float_t getErrTheta(void) { return cov.getErr(3); }
  Float_t getPhi(void)      { return phi; }
  Float_t getErrPhi(void)   { return cov.getErr(4); }
  Int_t getCharge(void)     { return charge; }
  Float_t getMass(void) { return mass; }
  Float_t getErrMass(void) { return cov.getErr(5); }
  Float_t getShowerSum10(Float_t f) { return showerSum10; }
  Float_t getShowerSum20(Float_t f) { return showerSum20; }
  Int_t getSector(void)     { return sector; }            
  Char_t getQuality(void) { return quality; }
  Float_t getTof(void) { return tof; }
  Float_t getMetaEloss(void) {return metaeloss; }
  Int_t getSystem(void) { return system; }
  Float_t getBeta(void) { return beta; }
  Int_t getSegment(void) { return segmentId; }
  Int_t getRingId(void) { return ringId; }
  Int_t getOuterHitId(void) { return outerHitId; }
  Float_t getPull(void) { return pull; }
  Float_t getFlag(void) { return flag; }
  Short_t getTofFlag(void) const {return (Short_t)flag;}
  HSymMat6& getCov(void) { return cov; }
  ClassDef(HKickTrack,3) //A final tracki (preliminar)
};

#endif /* !HKickTRACK_H */




Last change: Sat May 22 12:58:39 2010
Last generated: 2010-05-22 12:58

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.