Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2022-06-10 01:53:51

0001 #ifndef L1Trigger_Phase2L1ParticleFlow_PuppiAlgo_h
0002 #define L1Trigger_Phase2L1ParticleFlow_PuppiAlgo_h
0003 
0004 #include "L1Trigger/Phase2L1ParticleFlow/interface/PUAlgoBase.h"
0005 
0006 namespace l1tpf_impl {
0007 
0008   class PuppiAlgo : public PUAlgoBase {
0009   public:
0010     PuppiAlgo(const edm::ParameterSet &);
0011     ~PuppiAlgo() override;
0012 
0013     const std::vector<std::string> &puGlobalNames() const override;
0014     void doPUGlobals(const std::vector<Region> &rs, float z0, float npu, std::vector<float> &globals) const override;
0015     void runNeutralsPU(Region &r, float z0, float npu, const std::vector<float> &globals) const override;
0016     void runNeutralsPU(Region &r, std::vector<float> &z0, float npu, const std::vector<float> &globals) const override;
0017 
0018   protected:
0019     virtual void computePuppiMedRMS(
0020         const std::vector<Region> &rs, float &alphaCMed, float &alphaCRms, float &alphaFMed, float &alphaFRms) const;
0021     virtual void fillPuppi(Region &r) const;
0022     virtual void computePuppiAlphas(const Region &r, std::vector<float> &alphaC, std::vector<float> &alphaF) const;
0023     void computePuppiWeights(Region &r,
0024                              const std::vector<float> &alphaC,
0025                              const std::vector<float> &alphaF,
0026                              float alphaCMed,
0027                              float alphaCRms,
0028                              float alphaFMed,
0029                              float alphaFRms) const;
0030 
0031     float puppiDr_, puppiDrMin_, puppiPtMax_;
0032     std::vector<float> puppiEtaCuts_, puppiPtCuts_, puppiPtCutsPhotons_;
0033     std::vector<int16_t> intPuppiEtaCuts_, intPuppiPtCuts_, intPuppiPtCutsPhotons_;
0034     bool puppiUsingBareTracks_;
0035   };
0036 
0037 }  // namespace l1tpf_impl
0038 
0039 #endif