ATLAS Offline Software
VBFMjjIntervalFilter.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef GENERATORFILTERSVBFMJJINTERVALFILTER_H
6 #define GENERATORFILTERSVBFMJJINTERVALFILTER_H
7 
9 #include "GaudiKernel/ServiceHandle.h"
11 
12 #include "xAODJet/JetContainer.h"
13 
14 namespace CLHEP {
15  class HepRandomEngine;
16 }
17 
18 
20 public:
21 
22  VBFMjjIntervalFilter(const std::string& name, ISvcLocator* pSvcLocator);
23  virtual StatusCode filterInitialize();
24  virtual StatusCode filterEvent();
25 
26 private:
27 
28  CLHEP::HepRandomEngine* getRandomEngine(const std::string& streamName,
29  const EventContext& ctx) const;
30 
31  double m_olapPt;
32  double m_yMax; // Rapidity acceptance
33  double m_pTavgMin; // Required average dijet pT
34  std::string m_TruthJetContainerName; // Name of the truth jet container
35 
36  ServiceHandle<IAthRNGSvc> m_rndmSvc{this, "RndmSvc", "AthRNGSvc"};// Random number generator
37 
38  //long m_total; // Total number of events tested
39  //long m_passed; // Number of events passing all cuts
40  //long m_outsideAcceptance; // Number of events failing rapidity acceptance cuts
41 
42  double m_norm; // Normalization for weights
43  //double m_high; // High-side function level
44  //bool m_doShape; // Attempt to flatten the dY distribution
45  double m_prob0;
46  double m_prob1;
47  double m_prob2low;
48  double m_prob2high;
49  double m_mjjlow;
51  double m_mjjhigh;
56  double m_alpha;
57  bool m_ApplyNjet;
58  unsigned int m_NJetsMin;
59  unsigned int m_NJetsMax;
61  bool m_applyDphi;
62  double m_dphijj;
63 
64 
65  bool checkOverlap(double, double, const std::vector<HepMC::ConstGenParticlePtr>&) const;
66  bool checkOverlap(double, double, const std::vector<TLorentzVector>&) const;
67  TLorentzVector sumDaughterNeutrinos(const HepMC::ConstGenParticlePtr& ) const;
68 
69 public:
70 
71  bool ApplyMassDphi(const xAOD::JetContainer *jets) const;
72  double getEventWeight(const xAOD::JetContainer *jets) const;
73 };
74 
75 #endif
VBFMjjIntervalFilter::m_applyDphi
bool m_applyDphi
Definition: VBFMjjIntervalFilter.h:61
VBFMjjIntervalFilter::m_TruthJetContainerName
std::string m_TruthJetContainerName
Definition: VBFMjjIntervalFilter.h:34
VBFMjjIntervalFilter::m_NJetsMax
unsigned int m_NJetsMax
Definition: VBFMjjIntervalFilter.h:59
VBFMjjIntervalFilter
Definition: VBFMjjIntervalFilter.h:19
VBFMjjIntervalFilter::m_ApplyWeighting
bool m_ApplyWeighting
Definition: VBFMjjIntervalFilter.h:60
VBFMjjIntervalFilter::m_rndmSvc
ServiceHandle< IAthRNGSvc > m_rndmSvc
Definition: VBFMjjIntervalFilter.h:36
VBFMjjIntervalFilter::filterInitialize
virtual StatusCode filterInitialize()
Definition: VBFMjjIntervalFilter.cxx:54
VBFMjjIntervalFilter::m_prob0
double m_prob0
Definition: VBFMjjIntervalFilter.h:45
VBFMjjIntervalFilter::m_truncatelowmjj
bool m_truncatelowmjj
Definition: VBFMjjIntervalFilter.h:50
VBFMjjIntervalFilter::m_prob2high
double m_prob2high
Definition: VBFMjjIntervalFilter.h:48
GenFilter.h
VBFMjjIntervalFilter::m_taujetoverlap
bool m_taujetoverlap
Definition: VBFMjjIntervalFilter.h:55
VBFMjjIntervalFilter::m_photonjetoverlap
bool m_photonjetoverlap
Definition: VBFMjjIntervalFilter.h:53
VBFMjjIntervalFilter::m_electronjetoverlap
bool m_electronjetoverlap
Definition: VBFMjjIntervalFilter.h:54
VBFMjjIntervalFilter::m_olapPt
double m_olapPt
Definition: VBFMjjIntervalFilter.h:31
VBFMjjIntervalFilter::m_norm
double m_norm
Definition: VBFMjjIntervalFilter.h:42
VBFMjjIntervalFilter::m_alpha
double m_alpha
Definition: VBFMjjIntervalFilter.h:56
GenFilter
Base class for event generator filtering modules.
Definition: GenFilter.h:30
VBFMjjIntervalFilter::filterEvent
virtual StatusCode filterEvent()
Definition: VBFMjjIntervalFilter.cxx:65
VBFMjjIntervalFilter::m_pTavgMin
double m_pTavgMin
Definition: VBFMjjIntervalFilter.h:33
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
CLHEP
STD'S.
Definition: IAtRndmGenSvc.h:19
VBFMjjIntervalFilter::checkOverlap
bool checkOverlap(double, double, const std::vector< HepMC::ConstGenParticlePtr > &) const
Definition: VBFMjjIntervalFilter.cxx:218
VBFMjjIntervalFilter::getRandomEngine
CLHEP::HepRandomEngine * getRandomEngine(const std::string &streamName, const EventContext &ctx) const
Definition: VBFMjjIntervalFilter.cxx:316
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
VBFMjjIntervalFilter::getEventWeight
double getEventWeight(const xAOD::JetContainer *jets) const
Definition: VBFMjjIntervalFilter.cxx:265
VBFMjjIntervalFilter::m_prob2low
double m_prob2low
Definition: VBFMjjIntervalFilter.h:47
VBFMjjIntervalFilter::m_truncatehighmjj
bool m_truncatehighmjj
Definition: VBFMjjIntervalFilter.h:52
HepMC::ConstGenParticlePtr
const GenParticle * ConstGenParticlePtr
Definition: GenParticle.h:38
VBFMjjIntervalFilter::sumDaughterNeutrinos
TLorentzVector sumDaughterNeutrinos(const HepMC::ConstGenParticlePtr &) const
Definition: VBFMjjIntervalFilter.cxx:298
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
VBFMjjIntervalFilter::m_ApplyNjet
bool m_ApplyNjet
Definition: VBFMjjIntervalFilter.h:57
AthenaPoolExample_Copy.streamName
string streamName
Definition: AthenaPoolExample_Copy.py:39
JetContainer.h
VBFMjjIntervalFilter::ApplyMassDphi
bool ApplyMassDphi(const xAOD::JetContainer *jets) const
Definition: VBFMjjIntervalFilter.cxx:252
VBFMjjIntervalFilter::m_mjjhigh
double m_mjjhigh
Definition: VBFMjjIntervalFilter.h:51
VBFMjjIntervalFilter::m_mjjlow
double m_mjjlow
Definition: VBFMjjIntervalFilter.h:49
defineDB.jets
list jets
Definition: JetTagCalibration/share/defineDB.py:24
VBFMjjIntervalFilter::m_NJetsMin
unsigned int m_NJetsMin
Definition: VBFMjjIntervalFilter.h:58
VBFMjjIntervalFilter::VBFMjjIntervalFilter
VBFMjjIntervalFilter(const std::string &name, ISvcLocator *pSvcLocator)
Definition: VBFMjjIntervalFilter.cxx:23
VBFMjjIntervalFilter::m_prob1
double m_prob1
Definition: VBFMjjIntervalFilter.h:46
VBFMjjIntervalFilter::m_dphijj
double m_dphijj
Definition: VBFMjjIntervalFilter.h:62
IAthRNGSvc.h
ServiceHandle< IAthRNGSvc >
VBFMjjIntervalFilter::m_yMax
double m_yMax
Definition: VBFMjjIntervalFilter.h:32