#ifndef HKICKCANDIDATE_H
#define HKICKCANDIDATE_H

#include "TObject.h"
#include "hgeomvector.h"

class HKickImpact;

class HKickCandidate : public TObject{
protected:
  Int_t fSector;
  Float_t fP;      //momentum
  Float_t fPolarity;    //Polarity 
  Float_t fErrP; //Error in p
  Float_t fPTof;
  Float_t fPTofErr;
  Bool_t fAssigned; //Candidate was accepted?
  Float_t fMass; //Assigned mass in MeV/c^2 or -1.
  Float_t fX,fY,fZ; //Position before magnet
  Float_t fXPull; //DeltaX / SigmaX
  Char_t fPID; 
  Double_t fDenomin; //Deniminator.
  Float_t fDist,fKickDist;
  Int_t fFlag;
  Float_t fTof;
  Float_t fEloss;
  Int_t fSystem;
  Float_t beta;
  HGeomVector fMETAdir;
  Bool_t fClAccept; //if kTRUE then candidate was accepted by ToF hits clustering.
  Bool_t fMETAoverlap; // If kTRUE then candidate is not accepted. It is set 
                       // as kTRUE only in candidates built from Shower hits 
                       // in case when appropriate ToF candidate exists.   
  TObject *fShowerHit; // shower hit which marked as markMETAoverlap() for this
                       // ToF hit
  TObject *fOuterHit; //!
  HKickImpact *fInnerHit; //!
 public:
  HKickCandidate(void);
  HKickCandidate(HKickCandidate &can);
  ~HKickCandidate(void) {}
  void setOuterHit(TObject *obj) { fOuterHit = obj; }
  void setInnerHit(HKickImpact *im) { fInnerHit = im; }
  HKickImpact *getInnerHit(void) { return fInnerHit; }
  TObject *getOuterHit(void) { return fOuterHit; }
  Float_t getBeta(void) { return beta; }
  void setBeta(Float_t b) { beta = b; }
  Float_t getTof(void) { return fTof; }
  void setTof(Float_t tof) {fTof = tof; }
  Float_t getMetaEloss(void) { return fEloss; }
  void setMetaEloss(Float_t eloss) {fEloss = eloss; }
  Int_t getSystem(void) { return fSystem; }
  void setSystem(Int_t s) { fSystem = s;}
  Float_t getMomentum(void)      const { return fP; }
  Float_t getPolarity(void)      const { return fPolarity; }
  Float_t getMomentumError(void) const { return fErrP; }
  Float_t getPTof(void)                { return fPTof; }
  Float_t getPTofErr(void)             { return fPTofErr; }
  Float_t getMass(void)                { return fMass; }
  Float_t getPos1X(void)               { return fX; }
  Float_t getPos1Y(void)               { return fY; }
  Float_t getPos1Z(void)               { return fZ; }
  Float_t getDist(void)                { return fDist; }
  Float_t getKickDist(void)            { return fKickDist; }
  Float_t getXPull(void)               { return fXPull; }
  Double_t getDenominator(void)        {return fDenomin; }
  Char_t getPID(void)                  { return fPID; }
  HGeomVector getMETAdir(void)         { return fMETAdir; }
  Bool_t isAssigned(void)              { return fAssigned; }
  Bool_t isClAccepted(void)            { return fClAccept; }
  Bool_t isMETAoverlap(void)           { return fMETAoverlap; } 
  Int_t getSector(void)                { return fSector; }
  Int_t getFlag(void)                  { return fFlag; }
  void setFlag(Int_t f)                { fFlag = f; }
  void setPID(Char_t pd)               { fPID= pd; }
  void setPTof(Float_t p)              { fPTof = p; }
  void setPTofErr(Float_t err)         { fPTofErr = err; }
  void setMomentum(Float_t ff)         { fP=ff; }
  void setPolarity(Float_t ff)         { fPolarity=ff; }
  void setMomentumError(Float_t ff)    { fErrP=ff; }
  void markAssigned(void)              { fAssigned=kTRUE; }
  void unmarkClAccept(void)              { fClAccept=kFALSE; }
  void markMETAoverlap(void)           { fMETAoverlap=kTRUE; }
  void setMass(Float_t m)              { fMass = m; }
  void setSector(Int_t s)              { fSector=s; }
  void setPosition1(Float_t x,Float_t y,Float_t z) { 
    fX=x; fY=y; fZ=z;
  }
  void getPosition1(Float_t &x,Float_t &y,Float_t &z) {
    x=fX; y=fY; z=fZ;
  }
  void getPosition1(HGeomVector &v) {
    v.setX(fX); v.setY(fY); v.setZ(fZ);
  }
  void setXPull(Float_t x) { fXPull=x; }
  void setDenominator(Double_t d) { fDenomin = d; }
  void setDist(Float_t f) { fDist = f; }
  void setMETAdir(HGeomVector vec) {fMETAdir = vec;}
  void setKickDist(Float_t f) { fKickDist = f; }
  void setShowerHit(TObject *sh) {fShowerHit=sh;}
  TObject *getShowerHit(void) const {return fShowerHit;}
  
  ClassDef(HKickCandidate,0) //Evaluated combination of hits in MDC1,2 and TOF/SHOWER
};

#endif

Last change: Sat May 22 12:58:12 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.