#ifndef STNTUPLE_TStnBeamPosBlock #define STNTUPLE_TStnBeamPosBlock //------------------------------------------------------------------------------ // Definition of the STNTUPLE beam position block (BeamPos) // Author: Christoph Paus (MIT) // Date: Jul 03 2005 //------------------------------------------------------------------------------ #include "TObject.h" #include "TString.h" #include "TClonesArray.h" #include "Stntuple/data/TStnBeamPos.hh" class TStnBeamPosBlock: public TObject { public: //---------------------------------------------------------------------------- // Constructors and Destructor //---------------------------------------------------------------------------- //TStnBeamPosBlock() {} TStnBeamPosBlock(const char* Name = "TStnBeamPosBlock"); virtual ~TStnBeamPosBlock(); //---------------------------------------------------------------------------- // Accessors //---------------------------------------------------------------------------- Int_t NBeamPos () { return fNBeamPos; } TClonesArray* BeamPositions() { return fBeamPositions; } TStnBeamPos* BeamPos (int i) { return (TStnBeamPos*) fBeamPositions->UncheckedAt(i); } TStnBeamPos* NewBeamPos () { return new ((*fBeamPositions)[fNBeamPos++]) TStnBeamPos(); } void AverageBeamPos(TStnBeamPos* bp); //---------------------------------------------------------------------------- // Overloaded methods of TObject //---------------------------------------------------------------------------- void Clear (Option_t* opt = ""); const char* GetName() const { return fName.Data(); } void Print (Option_t* opt = "") const; void SetNBeamPos(Int_t n) {fNBeamPos = n;} protected: //---------------------------------------------------------------------------- // Data members //---------------------------------------------------------------------------- TString fName; // name: COT vs SVX int fNBeamPos; // # of BeamPositons in the block TClonesArray* fBeamPositions; // list of BeamPosition data ClassDef(TStnBeamPosBlock,1) }; #endif