00001 00002 // NtpSREventSummary 00003 // 00004 // NtpSREventSummary is an ntuple class to hold event summary data 00005 // 00006 // Based on Roy Lee's CandEventSR/EventSRHeader 00007 // EventSRHeader data members run,subrun,runtype,snarl,trigsrc,errorcode, etc. 00008 // are stored in the NtpSRRecord base class RecRecordImp's fHeader data member. 00010 00011 #ifndef NTPSREVENTSUMMARY_H 00012 #define NTPSREVENTSUMMARY_H 00013 00014 #include "TObject.h" // base class 00015 #include "CandNtupleSR/NtpSRPulseHeight.h" 00016 #include "CandNtupleSR/NtpSRPlane.h" 00017 #include "CandNtupleSR/NtpSRDate.h" 00018 00019 class NtpSREventSummary; 00020 std::ostream &operator << (std::ostream& os, const NtpSREventSummary& es); 00021 00022 class NtpSREventSummary : public TObject { 00023 00024 public: 00025 // Constructors & Destructors 00026 NtpSREventSummary(): ndigit(0),nstrip(0),nslice(0),ncluster(0),ntrack(0), 00027 nshower(0),nevent(0),trigtime(0),litime(-1) {} 00028 virtual ~NtpSREventSummary() {} 00029 00030 // State testing methods 00031 virtual std::ostream& Print(std::ostream& os) const; 00032 virtual void Print(Option_t* option = "") const; 00033 00034 public: 00035 // Ntuple is treated like a C-struct with public data members and 00036 // rule-breaking field data members not prefaced by "f" and all 00037 // lowercase, by popular demand. 00038 00039 UInt_t ndigit; // number of digits 00040 UInt_t nstrip; // number of strips 00041 UShort_t nslice; // number of slices 00042 UShort_t ncluster; // number of clusters 00043 UShort_t ntrack; // number of tracks 00044 UShort_t nshower; // number of showers 00045 UShort_t nevent; // number of events 00046 Double_t trigtime; // fractional second 00047 // The litime is the time of the last LI digit in the snarl (-1 if none), 00048 // where an LI digit is a RawDigit on a channel with readout type 00049 // kFlashTrigPMT and an adc count > 100. 00050 Double_t litime; // time of last li digit in snarl (-1 if none) 00051 NtpSRPulseHeight ph; // summed digit pulse height 00052 // planeall.beg/end is determined as the min/max planes with non-zero 00053 // readout from either end. planeall.n is determined as the number of 00054 // planes within this range with non-zero readout from either end. 00055 NtpSRPlane planeall; // range of planes all digits 00056 // plane.beg/end is determined by first testing for 4 contiguous planes 00057 // with a summed ph > 3 pe across both ends. The minimum plane of the first 00058 // such group and the maximum plane of the last such group form plane.beg 00059 // and plane.end respectively. plane.n is the number of planes between 00060 // plane.beg and plane.end with non-zero readout from either end. 00061 // Within these boundaries, the u/v plane boundaries are set according 00062 // to the min/max u/v planes with non-zero readout from either end. 00063 NtpSRPlane plane; // digits above threshold (nominally 3 pe) 00064 // date.sec is filled with (the vldtimestamp->GetSec() + 00065 // the digitlisthandle -> GetAbsTime()) 00066 NtpSRDate date; // utc date/time of event 00067 00068 ClassDef(NtpSREventSummary,3) 00069 }; 00070 00071 00072 #endif // NTPSREVENTSUMMARY_H
1.3.9.1