// access and set functions for binary tags for Tracker and VXD hits
// Version 1.0 17 Dec 1998 Rob creation

#ifndef TKID_H
#define TKID_H

#include "TMath.h"
#include "TObject.h"

class TkID : public TObject {

private:
    UInt_t m_tag; // Binary tag  for hit

public:

    TkID();
    TkID(UInt_t tag);
    ~TkID();

    UInt_t tag() const;
    Int_t system() const;
    Int_t layer() const;
    Int_t barrelEndcap() const;
    Int_t northSouth() const;

    void setSystem(Int_t sysVal);
    void setTag(UInt_t tagVal);
    void setLayer(Int_t layerVal);
    void setBarrelEndcap(Int_t barrelEndcapVal);
    void setNorthSouth(Int_t northSouthVal);

// 2 routines that ROOT requires
ULong_t Hash(){ return  m_tag;};
Bool_t IsEqual(TObject *obj){ return m_tag == ((TkID*)obj)->m_tag;};

const    static Int_t systemOn;
const    static Int_t systemOff;

const    static Int_t layerOn;
const    static Int_t layerOff;

const    static Int_t barrelEndcapOn;
const    static Int_t barrelEndcapOff;

const    static Int_t northSouthOn;
const    static Int_t northSouthOff;

ClassDef(TkID,1)// Tag descriptor for hit
};

#endif
