ATLAS Offline Software
xAODJetFilter.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef GENERATORFILTERS_xAODJetFilter_H
6 #define GENERATORFILTERS_xAODJetFilter_H
7 
9 #include "CLHEP/Vector/LorentzVector.h"
10 #include "xAODTruth/TruthEvent.h"
12 #include <cmath>
13 
14 
17 class xAODJetFilter : public GenFilter {
18 public:
19 
20  xAODJetFilter(const std::string& name, ISvcLocator* pSvcLocator);
21  virtual StatusCode filterInitialize() override;
22  virtual StatusCode filterEvent() override;
23 
24  Gaudi::Property<double> m_userEta{this, "EtaRange", 2.7, " "}; //range over which triggers are searched for
25  Gaudi::Property<double> m_userThresh{this, "JetThreshold", 17000., " "}; // lowest et jet
26  Gaudi::Property<double> m_stop{this, "SeedThreshold", 1000., " "}; //seed tower threshold
27  Gaudi::Property<double> m_cone{this, "ConeSize", 0.4, " "}; //cone sixe
28  Gaudi::Property<int> m_gride{this, "GridSizeEta",2, " "}; //how many cells in eta
29  Gaudi::Property<int> m_gridp{this, "GridSizePhi",2, " "}; //how many cells in phi
30  Gaudi::Property<int> m_userNumber{this, "JetNumber",1, " "}; //how many are we looking for
31  Gaudi::Property<bool> m_type{this, "JetType",true, " "}; // cone or grid to define jet
32 
33 
34  struct McObj {
35  // Constructors and destructor
36  McObj();
37  McObj(CLHEP::HepLorentzVector& p)
38  : m_p (p),
39  m_Nobj (0)
40  { }
41  ~McObj() {}
42 
43  // Get functions
44  CLHEP::HepLorentzVector& P() {return m_p;}
45  double P(int i) {return m_p[i];}
46  int Nobj() {return m_Nobj;}
47 
48  // Set functions
49  void SetP(const CLHEP::HepLorentzVector& p) {m_p=p;}
50  void SetP(const double&,const double&,const double&,const double&);
51  void SetXYZM(const double&,const double&,const double&, const double&);
52  void SetNobj(int& nn) {m_Nobj = nn;}
53 
54  // Overloaded operators for sorting on Pt
55  bool operator<(const McObj& rhs) const {return m_p.perp()<rhs.m_p.perp();}
56  bool operator>(const McObj& rhs) const {return m_p.perp()>rhs.m_p.perp();}
57 
58  protected:
59  CLHEP::HepLorentzVector m_p;
60  int m_Nobj;
61  };
62 
63 
64 private:
65 
66  static const int m_grphi = 105 ; // -CLHEP::pi to CLHEP::pi in units of 0.06 (approx)
67  static const int m_greta = 200 ; // -6.0 to 6.0 in units 0.06 {approx}
68 
69  // Internal parameters
70  double m_etaRange{}; //range over which search runs
71  double m_emaxeta{}; // largest eta of bins
72  double m_edeta{}; // size of eta bins
73  double m_edphi{}; //size of phi bins
74  int m_nphicell{}; // number of phi cells inside half cone
75  int m_netacell{}; // number of eta cells inside half cone
76  int m_nphicell2{}; // number of phi cells inside full cone
77  int m_netacell2{}; // number of eta cells inside full cone
78  std::vector<McObj> m_Jets; //store jets
79 
80 
81 
82 };
83 
84 #endif
85 
xAODJetFilter::m_userNumber
Gaudi::Property< int > m_userNumber
Definition: xAODJetFilter.h:30
xAODJetFilter::McObj::~McObj
~McObj()
Definition: xAODJetFilter.h:41
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
xAODJetFilter::McObj::operator>
bool operator>(const McObj &rhs) const
Definition: xAODJetFilter.h:56
xAODJetFilter::m_edeta
double m_edeta
Definition: xAODJetFilter.h:72
GenFilter.h
xAODJetFilter::McObj::McObj
McObj()
xAODJetFilter::m_userEta
Gaudi::Property< double > m_userEta
Definition: xAODJetFilter.h:24
xAODJetFilter::m_Jets
std::vector< McObj > m_Jets
Definition: xAODJetFilter.h:78
xAODJetFilter::filterEvent
virtual StatusCode filterEvent() override
Definition: xAODJetFilter.cxx:54
xAODJetFilter::m_nphicell
int m_nphicell
Definition: xAODJetFilter.h:74
xAODJetFilter::m_netacell
int m_netacell
Definition: xAODJetFilter.h:75
xAODJetFilter::McObj::P
CLHEP::HepLorentzVector & P()
Definition: xAODJetFilter.h:44
xAODJetFilter::McObj::P
double P(int i)
Definition: xAODJetFilter.h:45
xAODJetFilter::m_netacell2
int m_netacell2
Definition: xAODJetFilter.h:77
xAODJetFilter::m_cone
Gaudi::Property< double > m_cone
Definition: xAODJetFilter.h:27
xAODJetFilter::McObj
Definition: xAODJetFilter.h:34
GenFilter
Base class for event generator filtering modules.
Definition: GenFilter.h:30
xAODJetFilter::McObj::SetNobj
void SetNobj(int &nn)
Definition: xAODJetFilter.h:52
lumiFormat.i
int i
Definition: lumiFormat.py:92
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
xAODJetFilter::McObj::SetP
void SetP(const CLHEP::HepLorentzVector &p)
Definition: xAODJetFilter.h:49
xAODJetFilter::McObj::m_p
CLHEP::HepLorentzVector m_p
Definition: xAODJetFilter.h:59
xAODJetFilter::m_edphi
double m_edphi
Definition: xAODJetFilter.h:73
xAODJetFilter::McObj::operator<
bool operator<(const McObj &rhs) const
Definition: xAODJetFilter.h:55
xAODJetFilter::McObj::SetXYZM
void SetXYZM(const double &, const double &, const double &, const double &)
xAODJetFilter::m_grphi
static const int m_grphi
Definition: xAODJetFilter.h:66
xAODJetFilter::m_gride
Gaudi::Property< int > m_gride
Definition: xAODJetFilter.h:28
xAODJetFilter::filterInitialize
virtual StatusCode filterInitialize() override
Definition: xAODJetFilter.cxx:19
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
xAODJetFilter::m_nphicell2
int m_nphicell2
Definition: xAODJetFilter.h:76
xAODJetFilter::McObj::McObj
McObj(CLHEP::HepLorentzVector &p)
Definition: xAODJetFilter.h:37
xAODJetFilter::m_stop
Gaudi::Property< double > m_stop
Definition: xAODJetFilter.h:26
xAODJetFilter::McObj::SetP
void SetP(const double &, const double &, const double &, const double &)
xAODJetFilter::m_emaxeta
double m_emaxeta
Definition: xAODJetFilter.h:71
xAODJetFilter::xAODJetFilter
xAODJetFilter(const std::string &name, ISvcLocator *pSvcLocator)
Definition: xAODJetFilter.cxx:16
xAODJetFilter::m_userThresh
Gaudi::Property< double > m_userThresh
Definition: xAODJetFilter.h:25
xAODJetFilter::McObj::m_Nobj
int m_Nobj
Definition: xAODJetFilter.h:60
xAODJetFilter::m_type
Gaudi::Property< bool > m_type
Definition: xAODJetFilter.h:31
xAODJetFilter::m_gridp
Gaudi::Property< int > m_gridp
Definition: xAODJetFilter.h:29
xAODJetFilter
Applies the generator level filter for jet candidates.
Definition: xAODJetFilter.h:17
xAODJetFilter::McObj::Nobj
int Nobj()
Definition: xAODJetFilter.h:46
TruthEventContainer.h
TruthEvent.h
xAODJetFilter::m_greta
static const int m_greta
Definition: xAODJetFilter.h:67
xAODJetFilter::m_etaRange
double m_etaRange
Definition: xAODJetFilter.h:70