1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
|
#include "TTree.h"
#include "Riostream.h"
class TUsrHit:public TObject {
public:
TUsrHit(Int_t ev=0);
virtual ~TUsrHit() {}
protected:
Int_t fEventNumber; // internal event number
Int_t fModuleNumber; // module serial number
Int_t fChannel; // module channel
UShort_t fEventTime[3]; // time stamp generated by dgf clock bus (48 bits unsigned!)
ClassDef(TUsrHit, 1) // [Analyze] Hit
};
//______________________________________________________
class TUsrHitBuffer:public TObject {
public:
// TUsrHitBuffer(){};
TUsrHitBuffer(Int_t maxent = 10);
virtual ~TUsrHitBuffer() {
cout << "~~~~~~dtor TUsrHitBuffer " << this << endl;
delete fHits;
}
TUsrHit *AddHit(Int_t ev);
Int_t GetBufSize() { return fHits->GetSize();}
TClonesArray *GetCA() { return (fHits);}
void Clear(Option_t *opt="");
protected:
Int_t fNofEntries; // max number of entries
Int_t fNofHits; // current number of hits
TClonesArray *fHits; // array containing hit data
ClassDef(TUsrHitBuffer, 1) // [Analyze] Hit buffer
};
//______________________________________________________
class TMrbSubevent_Caen:public TObject {
public:
TMrbSubevent_Caen() {cout << "ctor TMrbSubevent_Caen" << this << endl;}
virtual ~TMrbSubevent_Caen() {}
void Clear(Option_t * /* opt */ ="") {fHitBuffer.Clear();};
TUsrHitBuffer * GetHitBuffer() {return &fHitBuffer;};
protected:
Int_t fTimeStamp; // time stamp, same as fUniqueID
TUsrHitBuffer fHitBuffer; // hit buffer to store subevent data
ClassDef(TMrbSubevent_Caen, 1) // [Analyze] Base class for subevents: CAEN data stored in hit buffer
};
//______________________________________________________
class TUsrSevtData1:public TMrbSubevent_Caen {
public:
TUsrSevtData1() {SetEvent(0);}
virtual ~TUsrSevtData1() {}
void SetEvent(Int_t ev);
Int_t GetPileup() {return fPileup; };
protected:
TString fSevtName; // subevent name
Int_t fMer; // data2.mer
Int_t fPileup; // data2.mpileup
ClassDef(TUsrSevtData1, 1) // [Analyze] Store CAEN data in hit buffer
};
//______________________________________________________
class TUsrSevtData2:public TMrbSubevent_Caen {
public:
TUsrSevtData2() {SetEvent(0);}
virtual ~TUsrSevtData2() {}
void SetEvent(Int_t ev);
Int_t GetPileup() {return fPileup; };
protected:
TString fSevtName; // subevent name
Int_t fMer; // data2.mer
Int_t fPileup; // data2.mpileup
ClassDef(TUsrSevtData2, 1) // [Analyze] Store CAEN data in hit buffer
};
|