#include "PuppiAlgo.hh" #include "RecoObj2.hh" //#include "external/fastjet/internal/base.hh" #include "external/fastjet/PseudoJet.hh" #include using namespace std; class PuppiContainer{ public: //PuppiContainer(const edm::ParameterSet &iConfig); PuppiContainer(const std::string &iConfig); PuppiContainer(bool iApplyCHS, bool iUseExp,double iPuppiWeightCut,std::vector &iAlgos); ~PuppiContainer(); void initialize(const std::vector &iRecoObjects); std::vector pfParticles(){ return fPFParticles; } std::vector pvParticles(){ return fChargedPV; } const std::vector puppiWeights(); std::vector puppiParticles() { return fPupParticles;} protected: double goodVar (fastjet::PseudoJet &iPart,std::vector &iParts, int iOpt,double iRCone); void getRMSAvg (int iOpt,std::vector &iConstits,std::vector &iParticles,std::vector &iChargeParticles); double getChi2FromdZ(double iDZ); int getPuppiId (const float &iPt,const float &iEta); double var_within_R (int iId, const std::vector & particles, const fastjet::PseudoJet& centre, double R); std::vector fRecoParticles; std::vector fPFParticles; std::vector fChargedPV; std::vector fPupParticles; std::vector fWeights; std::vector fVals; bool fApplyCHS; bool fUseExp; double fNeutralMinPt; double fNeutralSlope; double fPuppiWeightCut; int fNAlgos; int fNPV; double fPVFrac; std::vector fPuppiAlgo; };