#ifndef STNTUPLE_TCprCluster #define STNTUPLE_TCprCluster #ifdef __GNUG__ #pragma interface #endif #include #include "TObject.h" #include "TMath.h" class TStnDataBlock; class AbsEvent; class CprCluster; class TCprCluster : public TObject { friend Int_t StntupleInitClusterBlock(TStnDataBlock* block, AbsEvent* event, int mode); protected: //------------------------------------------------------------------------------ // data members //------------------------------------------------------------------------------ Int_t fCode; Float_t fCharge; Float_t fX; Float_t fSigmaX; const CprCluster* fCprp; //! for internal use, finding links //------------------------------------------------------------------------------ // functions //------------------------------------------------------------------------------ public: // ****** constructors and destructor TCprCluster(); virtual ~TCprCluster(); // ****** initialization methods - the same as // constructors, but don't allocate memory // ****** accessors Int_t Side () const { return (fCode ) & 0x1; } Int_t Wedge () const { return (fCode >> 1) & 0x1f; } Int_t NWires () const { return (fCode >> 6) & 0x3f; } Int_t FirstWire() const { return (fCode >> 12) & 0x3f; } Float_t Charge () const { return fCharge; } Float_t X () const { return fX ; } Float_t SigmaX () const { return fSigmaX; } // global CDF phi Float_t Phi () const { float phi = (Wedge()+0.5)*(TMath::Pi()/12.0); return phi + TMath::ATan2(fX,168.29); } const CprCluster* GetCprCluster() { return fCprp; } void SetCode (Int_t i) { fCode = i; } void SetCharge(Float_t x) { fCharge = x; } void SetX (Float_t x) { fX = x; } void SetSigmaX(Float_t x) { fSigmaX = x; } void SetCprCluster(const CprCluster* c) {fCprp = c;} // ****** overloaded methods of TObject void Print(const char* Option="") const; ClassDef(TCprCluster,1) }; #endif