#ifndef FIN_FndHdt #define FIN_FndHdt //____________________________________________________________________ // // TFndHdt // // This class gives the Description of the Hit Data Tape event: // it contains a set of pointers to Arrays of hit objects for // different detectors, a pointer to a Header object, a pointer // to the Trigger object and a set of integers giving // the number of hits for each detector and the total number of hits // #include "TObject.h" #include "TObjArray.h" #include "TFile.h" #include "TFndTrig.h" #include "TFndHHdr.h" #include "TFndHSil.h" #include "TFndHTof.h" #include "TFndHLmd.h" #include "TFndHStb.h" class TFndHdt : public TObject { private: Int_t fNevt; // Event Number Int_t fNHTot; // Total Number of Hits in the Event Int_t fNHSil; // Number of Hits on the Silicon Detector Int_t fNHTof; // Number of Hits on the Time of Flight Detector Int_t fNHLmd; // Number of Hits on the Drift Chambers Int_t fNHStb; // Number of Hits on the Straw Tubes TFndHHdr *fHHdr; // Pointer to the Event Header TFndTrig *fTrig; // Pointer to Finuda Trigger TObjArray *fHSil; // Pointer to the array of Silicon Hits TObjArray *fHTof; // Pointer to the array of Time of Flight Hits TObjArray *fHLmd; // Pointer to the array of Drift Chamber Hits TObjArray *fHStb; // Pointer to the array of Straw Tubes Hits public: TFndHdt(Int_t nevt, TFndHHdr *, TFndTrig *); // Constructor (1) TFndHdt(); // Default Constructor TFndHdt(Int_t nevt, TFndHHdr *); // Constructor (2) ~TFndHdt(); // Destructor Int_t GetEvtNmb() const { return fNevt; } // Get Event Number Int_t GetNHTof() const { return fNHTof; } // Get Number of Tof Hits Int_t GetNHSil() const { return fNHSil; } // Get Number of Sil Hits Int_t GetNHLmd() const { return fNHLmd; } // Get Number of Lmd Hits Int_t GetNHStb() const { return fNHStb; } // Get Number of Stb Hits Int_t GetNHTot() const { return fNHTot; } // Get Total Number of Hits void AddHdr(TFndHHdr *hdr) { fHHdr = hdr; } // Append Header to HDT TFndHHdr *GetHdr() { return fHHdr; } // Get Header from HDT void AddHit(TFndHSil *hit) { fHSil->Add(hit); fNHSil++; fNHTot++;} // Append Sil Hit to HDT TFndHSil *GetHSil(Int_t n) { return ((TFndHSil*) fHSil->At(n)); } // Get n-th Sil Hit from HDT TObjArray *GetSil() { return fHSil; } // Get pointer to Sil ObyArray from HDT void AddHit(TFndHTof *hit) { fHTof->Add(hit); fNHTof++; fNHTot++;} // Append Tof Hit to HDT TFndHTof *GetHTof(Int_t n) { return ((TFndHTof*) fHTof->At(n)); } // Get n-th Tof Hit from HDT TObjArray *GetTof() { return fHTof; } // Get pointer to Tof ObyArray from HDT void AddHit(TFndHLmd *hit) { fHLmd->Add(hit); fNHLmd++; fNHTot++;} // Append Lmd Hit to HDT TFndHLmd *GetHLmd(Int_t n) { return ((TFndHLmd*) fHLmd->At(n)); }// Get n-th Lmd Hit from HDT TObjArray *GetLmd() { return fHLmd; } // Get pointer to Lmd ObyArray from HDT void AddHit(TFndHStb *hit) { fHStb->Add(hit); fNHStb++; fNHTot++;} // Append Stb Hit to HDT TFndHStb *GetHStb(Int_t n) { return ((TFndHStb*) fHStb->At(n)); } // Get n-th Stb Hit from HDT TObjArray *GetStb() { return fHStb; } // Get pointer to Stb ObyArray from HDT void AddTrg(TFndTrig *ftrg) { fTrig = ftrg;} // Append Trigger to HDT TFndTrig *GetTrig() { return fTrig; } // Get Trigger pointer void Dump(); // Dump HDT void MzBook(); // Book & fill Off-line ZEBRA banks void PrintHits(); // Print Hits void DrawHits(char *,Float_t); // Draw Hits void UpdateHits(); // Update Hits after reconstruction ClassDef(TFndHdt,4) // The "Hit Data Tape" }; #endif