#include "external/fastjet/internal/base.hh" #include "external/fastjet/PseudoJet.hh" #include "AlgoObj.hh" #include class PuppiAlgo{ public: PuppiAlgo(AlgoObj &iAlgoObj); ~PuppiAlgo(); //Computing Mean and RMS void reset(); void add(const fastjet::PseudoJet &iParticle,const double &iVal,const unsigned int iAlgo); void computeMedRMS(const unsigned int &iAlgo,const double &iPVFrac); //Get the Weight double compute(std::vector &iVals,double iChi2); //Helpers double ptMin(); double etaMin(); double etaMax(); int numAlgos (); int algoId (const unsigned int &iAlgo); bool isCharged(const unsigned int &iAlgo); double coneSize (const unsigned int &iAlgo); double neutralPt(int iNPV); private: unsigned int fNAlgos; float fEtaMax; float fEtaMin; float fPtMin ; double fNeutralPtMin; double fNeutralPtSlope; double fRMSEtaSF; double fMedEtaSF; double fEtaMaxExtrap; std::vector fPups; std::vector fPupsPV; std::vector fAlgoId; std::vector fCharged; std::vector fAdjust; std::vector fCombId; std::vector fConeSize; std::vector fRMSPtMin; std::vector fRMSScaleFactor; std::vector fRMS; std::vector fMedian; std::vector fMean; std::vector fNCount; };