#ifndef DelphesLHEFReader_h #define DelphesLHEFReader_h /** \class DelphesLHEFReader * * Reads LHEF file * * * $Date: 2013-08-16 14:29:25 +0000 (Fri, 16 Aug 2013) $ * $Revision: 1265 $ * * * \author P. Demin - UCL, Louvain-la-Neuve * */ #include #include class TObjArray; class TStopwatch; class TDatabasePDG; class ExRootTreeBranch; class DelphesFactory; class DelphesLHEFReader { public: DelphesLHEFReader(); ~DelphesLHEFReader(); void SetInputFile(FILE *inputFile); void Clear(); bool EventReady(); bool ReadBlock(DelphesFactory *factory, TObjArray *allParticleOutputArray, TObjArray *stableParticleOutputArray, TObjArray *partonOutputArray); void AnalyzeEvent(ExRootTreeBranch *branch, long long eventNumber, TStopwatch *readStopWatch, TStopwatch *procStopWatch); void AnalyzeRwgt(ExRootTreeBranch *branch); private: void AnalyzeParticle(DelphesFactory *factory, TObjArray *allParticleOutputArray, TObjArray *stableParticleOutputArray, TObjArray *partonOutputArray); FILE *fInputFile; char *fBuffer; TDatabasePDG *fPDG; bool fEventReady; int fEventCounter; int fParticleCounter, fProcessID; double fWeight, fScalePDF, fAlphaQCD, fAlphaQED; int fPID, fStatus, fM1, fM2, fC1, fC2; double fPx, fPy, fPz, fE, fMass; std::vector fRwgtList; }; #endif // DelphesLHEFReader_h