#ifndef STNTUPLE_TStnSiHit #define STNTUPLE_TStnSiHit //----------------------------------------------------------------------------- // This definition of the STNTUPLE silicon hit is a subset of the // information contained in TrackingObjects/SiData/SiHit.hh. // These objects are contained in a TClonesArray in the // TSvxDataBlock. Since there are many silicon hits in an event, you // might not want to make this block during a normal job. // // Author: Aaron Dominguez (CDF/LBNL) // Date: Apr 17 2001 //----------------------------------------------------------------------------- #include "TObject.h" #include "TVector3.h" #include "Stntuple/obj/TStnSiDigiCode.hh" class SiHit; class TStnSiHit: public TObject { public: //------------------------------------------------------------------------------ // data members //------------------------------------------------------------------------------ // For the TVector3 points, the value of the coordinate most closely // parallel to the strip direction is set to the center of the // half-ladder (local origin). // For hits attached to tracks, the global position is corrected for wafer // level alignments based on the 3D track intersection with the wafer. TVector3 fGlobal; // Position of hit in global CDF coordinates Float_t fStripNum; // Position in strip units Float_t fLocal; // Position in local coordinates Float_t fError; // Error of hit in local coordinates (?) Float_t fQtotal; // Total amount of charge in cluster in // pedestal-subtracted-ADC-counts Float_t fNoise; // Total noise in cluster from strips Int_t fNstrip; // Number of strips in cluster Char_t fStatus; // Bits 0: Has bad strips; 1: Neighbor(s) are bad strips TStnSiDigiCode fDigiCode; // The (repacked) SiDigiCode of the detector element SiHit* fCdfSiHit; //! Pointer to parent SiHit for internal use //------------------------------------------------------------------------------ // functions //------------------------------------------------------------------------------ // ****** constructors and destructor TStnSiHit(); virtual ~TStnSiHit(); // ****** accessors TVector3* Global() {return &fGlobal;} Float_t StripNum() const {return fStripNum;} Float_t Local() const {return fLocal;} Float_t LocalError() const {return fError;} Float_t Qtot() const {return fQtotal;} Float_t Noise() const {return fNoise;} Int_t Nstrip() const {return fNstrip;} TStnSiDigiCode* DigiCode() {return &fDigiCode;} Int_t NObsp() const; // Number of particles that produced hit Int_t Obsp(int i) const; // OBSP id of i-th particle (counting from 0) Bool_t Good() const {return (fStatus & 0x1)==0;} Bool_t HasBadNeighbor() const {return ((fStatus>>1) & 0x1)==1;} // ****** modifiers void SetObsp(int i, int id); void Print(Option_t* option = "") const; SiHit* GetCdfSiHit() {return fCdfSiHit;} ClassDef(TStnSiHit,5) }; #endif