File indexing completed on 2023-03-17 11:18:11
0001 #ifndef __ParametrizedSubtractor_h_
0002 #define __ParametrizedSubtractor_h_
0003
0004 #include <vector>
0005
0006 #include "RecoJets/JetProducers/interface/PileUpSubtractor.h"
0007 #include "DataFormats/HeavyIonEvent/interface/Centrality.h"
0008 #include "TH1D.h"
0009
0010 #include "TF1.h"
0011
0012 class CentralityBins;
0013
0014 class ParametrizedSubtractor : public PileUpSubtractor {
0015 public:
0016 ParametrizedSubtractor(const edm::ParameterSet& iConfig, edm::ConsumesCollector&& iC);
0017 void setupGeometryMap(edm::Event& iEvent, const edm::EventSetup& iSetup) override;
0018 void calculatePedestal(std::vector<fastjet::PseudoJet> const& coll) override;
0019 void subtractPedestal(std::vector<fastjet::PseudoJet>& coll) override;
0020 void calculateOrphanInput(std::vector<fastjet::PseudoJet>& orphanInput) override;
0021 void offsetCorrectJets() override;
0022 double getMeanAtTower(const reco::CandidatePtr& in) const override;
0023 double getSigmaAtTower(const reco::CandidatePtr& in) const override;
0024 double getPileUpAtTower(const reco::CandidatePtr& in) const override;
0025 double getEt(const reco::CandidatePtr& in) const;
0026 double getEta(const reco::CandidatePtr& in) const;
0027
0028 void rescaleRMS(double s);
0029 double getPU(int ieta, bool addMean, bool addSigma) const;
0030 ~ParametrizedSubtractor() override { ; }
0031
0032 bool sumRecHits_;
0033 bool interpolate_;
0034 bool dropZeroTowers_;
0035 int bin_;
0036 double centrality_;
0037 const CentralityBins* cbins_;
0038 edm::EDGetTokenT<reco::Centrality> centTag_;
0039 std::vector<TH1D*> hEta;
0040 std::vector<TH1D*> hEtaMean;
0041 std::vector<TH1D*> hEtaRMS;
0042
0043 TF1* fPU;
0044 TF1* fMean;
0045 TF1* fRMS;
0046 TH1D* hC;
0047 };
0048
0049 #endif