#ifndef STNTUPLE_TStnSiGeantIsect #define STNTUPLE_TStnSiGeantIsect //----------------------------------------------------------------------------- // This is a pared down version of the CDF object // SimulationObjects/PropagatedSiParticle. It contains the // information from the simulation in one intersection of a particle // as GEANT tracked it through an active detector volume. // // The OBSP number of the particle that made the intersection is // stored in the fUniqueID, as is done in Stntuple/obj/TObspParticle. // Because the TObspBlock is made such that the OBSP number is the // index into the TClonesArray of TObspParticle's, it is easy to find // the correct particle from the unique id of the TStnSiGeantIsect. // See TSiGeantIsectBlock for more info. // // Since there are many such silicon intersections in an event, you // might not want to make this block during a normal job. // // Author: Aaron Dominguez (CDF/LBNL) // Date: June 6 2001 //----------------------------------------------------------------------------- #include "TObject.h" #include "TVector3.h" #include "TLorentzVector.h" #include "Stntuple/obj/TStnSiDigiCode.hh" #include "Stntuple/base/TBitset.hh" class TStnSiGeantIsect: public TObject { public: //------------------------------------------------------------------------------ // data members //------------------------------------------------------------------------------ TStnSiDigiCode fDigiCode; // The (repacked) SiDigiCode of the detector element TLorentzVector fEntryMomentum; // The momentum of the particle at the // entrance to the detector element TLorentzVector fExitMomentum; // The momentum of the particle at the // exit from the detector element TVector3 fEntry, fExit; // The entry and exit point in global CDF coords. TBitset fActiveRegion; // Did the particle pass thru the active // region(s) of the detector element? // Bit =1 -> Yes // --- ------------------------------ // 0 Entrance in Phi area of side 0 // 1 Entrance in Z area of side 0 // 2 Entrance in Z area of side 1 // 4 Entrance in Phi area of side 1 // 5 Exit in Phi area of side 0 // 6 Exit in Z area of side 0 // 7 Exit in Z area of side 1 // 8 Exit in Phi area of side 1 Float_t fDE; // The total energy loss in GeV in this // detector element. Float_t fRadLen; // Fraction of radiation length traversed // in this detector element. Float_t fPhiStrip; // Axial strip num of (exit-entrance)/2 Float_t fZStrip; // Same for stereo side (=0, if no // stereo). Int_t fInitPhi; // Initial hit phi strip Int_t fFinalPhi; // Final hit phi strip Int_t fInitZ; // Initial hit stereo strip (=0 if no stereo) Int_t fFinalZ; // Final hit stereo strip //------------------------------------------------------------------------------ // functions //------------------------------------------------------------------------------ // ****** constructors and destructor TStnSiGeantIsect(); virtual ~TStnSiGeantIsect(); // ****** accessors TStnSiDigiCode* DigiCode() {return &fDigiCode;} TLorentzVector* EntryMomentum(){return &fEntryMomentum;} TLorentzVector* ExitMomentum() {return &fExitMomentum;} TVector3* Entry() {return &fEntry;} TVector3* Exit() {return &fExit;} Float_t DE() {return fDE;} Float_t RadLen() {return fRadLen;} TBitset* ActiveRegion() {return &fActiveRegion;} Float_t PhiStrip() {return fPhiStrip;} Float_t ZStrip() {return fZStrip;} Int_t InitPhi() {return fInitPhi;} Int_t FinalPhi() {return fFinalPhi;} Int_t InitZ() {return fInitZ;} Int_t FinalZ() {return fFinalZ;} void Print(Option_t* option = "") const; ClassDef(TStnSiGeantIsect,5) }; #endif