#include "Stntuple/obj/TStnSiDigiCode.hh" #include "TClass.h" #include ClassImp(TStnSiDigiCode) // Use custom streamer until version 1 declared dead void TStnSiDigiCode::Streamer(TBuffer &R__b) { if (R__b.IsReading()) { UInt_t R__s, R__c; Version_t R__v = R__b.ReadVersion(&R__s, &R__c); if (R__v > 1) { // TStnSiDigiCode::Class()->ReadBuffer(R__b, this); R__b >> fDigiCode; } else { UInt_t temp; R__b >> temp; fDigiCode = (UShort_t)temp; // R__b.CheckByteCount(R__s, R__c, TStnSiDigiCode::IsA()); } } else { // TStnSiDigiCode::Class()->WriteBuffer(R__b, this); R__b.WriteVersion(TStnSiDigiCode::IsA()); R__b << fDigiCode; } } TStnSiDigiCode::TStnSiDigiCode() : fDigiCode(0) { Class()->IgnoreTObjectStreamer(true); } TStnSiDigiCode::TStnSiDigiCode(UShort_t code) : fDigiCode(code) { Class()->IgnoreTObjectStreamer(true); } TStnSiDigiCode::TStnSiDigiCode(Int_t barrel, Int_t ladderSeg, Int_t phiWedge, Int_t layer, Int_t side) : fDigiCode(0) { SetBarrel(barrel); SetLadderSeg(ladderSeg); SetPhiWedge(phiWedge); SetLayer(layer); SetSide(side); Class()->IgnoreTObjectStreamer(true); } TStnSiDigiCode::~TStnSiDigiCode() {} void TStnSiDigiCode::Print(Option_t* opt) const{ std::cout << "DigiCode " << fDigiCode << ", Barrel " << Barrel() << ", LadderSeg " << LadderSeg() << ", PhiWedge " << PhiWedge() << ", Layer " << Layer() << ", Side " << Side() << std::endl; } // Override the Hash(), IsEqual(), & Compare() functions to use as an index in containers ULong_t TStnSiDigiCode::Hash() const { return fDigiCode; } Bool_t TStnSiDigiCode::IsEqual(const TObject *obj) const { if (!obj) return false; if ( ((TStnSiDigiCode*)obj)->fDigiCode == fDigiCode ) { return true; } else { return false; } } Int_t TStnSiDigiCode::Compare(const TObject *obj) const { const TStnSiDigiCode *digi=(TStnSiDigiCode*)obj; if (!digi) return -1; if (digi->fDigiCode < fDigiCode) { return -1; } else if (digi->fDigiCode > fDigiCode) { return +1; } else { return 0; } }