1 #ifndef RecoParticleFlow_Benchmark_GenericBenchmark_h 2 #define RecoParticleFlow_Benchmark_GenericBenchmark_h 30 bool PlotAgainstReco_ =
true,
40 bool startFromGen =
false,
41 bool PlotAgainstReco =
true,
43 double recPt_cut = -1.,
44 double minEta_cut = -1.,
45 double maxEta_cut = -1.,
46 double deltaR_cut = -1.);
132 bool PlotAgainstReco,
152 assert(particle !=
nullptr);
153 if (!
accepted(particle, recPt_cut, minEta_cut, maxEta_cut))
158 unsigned highJets = 0;
161 if (
j !=
i && otherParticle->
pt() > particle->
pt())
170 if (gen_particle ==
nullptr)
174 fillHistos(gen_particle, particle, deltaR_cut, PlotAgainstReco);
186 for (
unsigned int i = 0;
i < GenCollection->size();
i++) {
189 if (!
accepted(gen_particle, recPt_cut, minEta_cut, maxEta_cut)) {
206 if (
deltaR > deltaR_cut && deltaR_cut != -1.)
221 if (gen_particle->
et() != 0.0)
225 fillHistos(gen_particle, rec_particle, deltaR_cut, PlotAgainstReco);
230 #endif // RecoParticleFlow_Benchmark_GenericBenchmark_h void fillHistos(const reco::Candidate *genParticle, const reco::Candidate *recParticle, double deltaR_cut, bool plotAgainstReco)
void fill(const C *RecoCollection, const C *GenCollection, bool startFromGen=false, bool PlotAgainstReco=true, bool onlyTwoJets=false, double recPt_cut=-1., double minEta_cut=-1., double maxEta_cut=-1., double deltaR_cut=-1.)
virtual double et() const =0
transverse energy
virtual double pt() const =0
transverse momentum
void setfile(TFile *file)
dqm::legacy::DQMStore DQMStore
virtual ~GenericBenchmark() noexcept(false)
TH2F * hDeltaEtOverEtvsEt
TH2F * hRecSetOverTrueSetvsTrueSet
static double deltaR(const T *, const U *)
TH2F * hDeltaEtOverEtvsDeltaR
def template(fileName, svg, replaceme="REPLACEME")
virtual double py() const =0
y coordinate of momentum vector
virtual double px() const =0
x coordinate of momentum vector
bool accepted(const reco::Candidate *particle, double ptCut, double minEtaCut, double maxEtaCut) const
static const Collection::value_type * matchByDeltaR(const T *, const Collection *)
TH2F * hDeltaSetOverSetvsSet
TH2F * hEtRecOverTrueEtvsTrueEt
void write(std::string Filename)
dqm::legacy::MonitorElement MonitorElement
TH2F * hDeltaEtOverEtvsPhi
virtual double phi() const =0
momentum azimuthal angle
virtual double eta() const =0
momentum pseudorapidity
void setup(DQMStore *DQM=nullptr, bool PlotAgainstReco_=true, float minDeltaEt=-100., float maxDeltaEt=50., float minDeltaPhi=-0.5, float maxDeltaPhi=0.5, bool doMetPlots=false)
TH2F * hDeltaEtOverEtvsEta