#ifndef STNTUPLE_TStnMetBlock #define STNTUPLE_TStnMetBlock #ifdef __GNUG__ #pragma interface #endif #include class TStnRun1Event; class TStnMetBlock : public TStnDataBlock { friend Int_t StnRun1InitMetBlock (TStnDataBlock*, TStnRun1Event*, int); friend Int_t StntupleInitMetBlock (TStnDataBlock*, AbsEvent* , int); friend Int_t StntupleMetBlockLinks(TStnDataBlock*, AbsEvent* , int); public: //------------------------------------------------------------------------------ // data members //------------------------------------------------------------------------------ Float_t fMet [5]; Float_t fMetphi[5]; Float_t fMetjt ; Float_t fMetjtphi ; Float_t fMetj1 ; Float_t fMetj1phi ; Float_t fMetc ; Float_t fMetcphi ; Float_t fHtc ; Float_t fMetcf ; Float_t fMetcfphi ; Float_t fHtcf ; Float_t fEtatrks ; Float_t fPhitrks ; Float_t fPttrks ; Float_t fSeedpt ; Float_t fSumet ; Float_t fSumetjet ; Float_t fMetsig ; Float_t fEOR ; //! *** end-of-record mark //----------------------------------------------------------------------------- // transient variables //----------------------------------------------------------------------------- Double_t fZ0 ; // ! Z-coordinate of the vertex at which // we correct MET //------------------------------------------------------------------------------ // functions //------------------------------------------------------------------------------ public: // ****** constructors and destructor TStnMetBlock(); virtual ~TStnMetBlock(); // ****** accessors Float_t Met (Int_t i) { return fMet[i]; } Float_t MetPhi(Int_t i) { return fMetphi[i]; } Float_t MetX (Int_t i) { return fMet[i]*cos(fMetphi[i]); } Float_t MetY (Int_t i) { return fMet[i]*sin(fMetphi[i]); } Float_t MetSig () { return fMetsig; } //----------------------------------------------------------------------------- // this function has to go away //----------------------------------------------------------------------------- Float_t Sumet () { printf(" TStnMetBlock::Sumet() is obsolete, use TStnMetBlock::Sumet(Int I)\n"); return fSumet; } //----------------------------------------------------------------------------- // i=0 : Sum(Et) calculated at Z=0 // i=1 : Sum(Et) calculated at Z of the high-Pt lepton or (if there is no such // in the event) in 1st vertex from VertexBlock // i=2 : Sum(Et) calculated at Z of the highest_pt vertex from ZVertexBlock //----------------------------------------------------------------------------- Float_t Sumet (Int_t I) { if (I == 0) return fSumet; else if (I == 1) return fHtc; else if (I == 2) return fSumetjet; else return -1; } Double_t Z0 () { return fZ0; } //----------------------------------------------------------------------------- // modifiers //----------------------------------------------------------------------------- void SetZ0(Double_t Z0) { fZ0 = Z0; } //----------------------------------------------------------------------------- // overloaded functions of TObject //----------------------------------------------------------------------------- void Clear(Option_t* opt = ""); void Print(Option_t* opt = "") const; //----------------------------------------------------------------------------- // schema evolution // I/O wise V3 is the same as V2, transient-only fZ0 has been added //----------------------------------------------------------------------------- void ReadV1(TBuffer& R__b); ClassDef(TStnMetBlock,3) }; #endif