#include #include using namespace std; #include "Stntuple/data/TStnBeamPosBlock.hh" #include "EdmUtilities/CdfClassImp.hh" CdfClassImp(TStnBeamPosBlock) //------------------------------------------------------------------------------ void TStnBeamPosBlock::Streamer(TBuffer &R__b) { // Stream an object of class TStnBeamPosBlock if (R__b.IsReading()) { Version_t R__v = R__b.ReadVersion(); fName.Streamer(R__b); R__b >> fNBeamPos; fBeamPositions->Clear(); if (fNBeamPos>0) { fBeamPositions->Streamer(R__b); } } else { R__b.WriteVersion(TStnBeamPosBlock::IsA()); fName.Streamer(R__b); R__b << fNBeamPos; if (fNBeamPos>0) { fBeamPositions->Streamer(R__b); } } } //------------------------------------------------------------------------------ TStnBeamPosBlock::TStnBeamPosBlock(const char* Name) : fNBeamPos(0), fName(Name) { fBeamPositions = new TClonesArray("TStnBeamPos",10); fBeamPositions->BypassStreamer(kFALSE); } //------------------------------------------------------------------------------ TStnBeamPosBlock::~TStnBeamPosBlock() { fBeamPositions->Delete(); delete fBeamPositions; } void TStnBeamPosBlock::AverageBeamPos(TStnBeamPos* bp) { if (NBeamPos()>0) bp->CopyC(BeamPos(0)); else { printf("AverageBeamPos - Could not be generated from BeamPosBlock.\n"); printf(" might be ok, check it.\n"); printf(" You are prbnably reading 'old' data ;-).\n"); } } //------------------------------------------------------------------------------ void TStnBeamPosBlock::Clear(const char* opt) { fNBeamPos = 0; fBeamPositions->Clear(); } //------------------------------------------------------------------------------ void TStnBeamPosBlock::Print(const char* opt) const { printf(" *********** print_BeamPos ********* N(BeamPos): %2i\n",fNBeamPos); int banner_printed = 0; TStnBeamPosBlock* block = (TStnBeamPosBlock*) this; for (int i=0; iBeamPos(i); if (! banner_printed) { BeamPos->Print("banner"); banner_printed = 1; } BeamPos->Print("data"); } }