#include ClassImp(TStnElectronBlock) //______________________________________________________________________________ void TStnElectronBlock::ReadV1(TBuffer &R__b) { // Read in version 1 of class TStnElectronBlock R__b >> fNElectrons; R__b >> fNHpte; fElectronList->Streamer(R__b); } //______________________________________________________________________________ void TStnElectronBlock::ReadV2(TBuffer &R__b) { // Read in version 2 of class TStnElectronBlock R__b >> fNElectrons; if (fNElectrons > 0) { R__b >> fNHpte; fElectronList->Streamer(R__b); fCprLinkTrk->Streamer(R__b); fCprLinkCes->Streamer(R__b); fTrkLink->Streamer(R__b); } } //______________________________________________________________________________ void TStnElectronBlock::Streamer(TBuffer &R__b) { // Stream an object of class TStnElectronBlock as fast as possible // v3: adds list of tower links if (R__b.IsReading()) { Version_t R__v = R__b.ReadVersion(); if (R__v) { } if (R__v == 1) { ReadV1(R__b); } else if (R__v == 2) { ReadV2(R__b); } else { //----------------------------------------------------------------------------- // read section, current version = 3 //----------------------------------------------------------------------------- R__b >> fNElectrons; if (fNElectrons > 0) { R__b >> fNHpte; fElectronList->Streamer(R__b); fCprLinkTrk->Streamer(R__b); fCprLinkCes->Streamer(R__b); fTrkLink->Streamer(R__b); fTowerLinkList->Streamer(R__b); } } } else { //----------------------------------------------------------------------------- // write section, current version = 3 //----------------------------------------------------------------------------- R__b.WriteVersion(TStnElectronBlock::IsA()); R__b << fNElectrons; if (fNElectrons > 0) { R__b << fNHpte; fElectronList->Streamer(R__b); fCprLinkTrk->Streamer(R__b); fCprLinkCes->Streamer(R__b); fTrkLink->Streamer(R__b); fTowerLinkList->Streamer(R__b); } } } //_____________________________________________________________________________ TStnElectronBlock::TStnElectronBlock() { fNElectrons = 0; fElectronList = new TClonesArray("TStnElectron",10); fElectronList->BypassStreamer(kFALSE); fCprLinkCes = new TStnLinkBlock(); fCprLinkTrk = new TStnLinkBlock(); fTrkLink = new TStnLinkBlock(); fTowerLinkList = new TStnLinkBlock(); } //_____________________________________________________________________________ TStnElectronBlock::~TStnElectronBlock() { fElectronList->Delete(); delete fElectronList; delete fCprLinkCes; delete fCprLinkTrk; delete fTrkLink; delete fTowerLinkList; } //_____________________________________________________________________________ void TStnElectronBlock::Clear(const char* opt) { fLinksInitialized = 0; fNElectrons = 0; fElectronList->Clear(); fCprLinkCes->Clear(opt); fCprLinkTrk->Clear(opt); fTrkLink->Clear(opt); fTowerLinkList->Clear(); } //_____________________________________________________________________________ void TStnElectronBlock::Print(const char* opt) const { // print method int banner_printed = 0; for (int i=0; iPrint("banner"); banner_printed = 1; } e->Print("data"); } }