ATLAS Offline Software
JetFilter.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 GENERATORFILTERS_JETFILTER_H
6 #define GENERATORFILTERS_JETFILTER_H
7 
9 #include "CLHEP/Vector/LorentzVector.h"
10 #include <cmath>
11 
12 
15 class JetFilter : public GenFilter {
16 public:
17 
18  JetFilter(const std::string& name, ISvcLocator* pSvcLocator);
19  virtual StatusCode filterInitialize();
20  virtual StatusCode filterEvent();
21 
22 
23  struct McObj {
24  // Constructors and destructor
25  McObj();
26  McObj(CLHEP::HepLorentzVector& p)
27  : m_p (p),
28  m_Nobj (0)
29  { }
30  ~McObj() {}
31 
32  // Get functions
33  CLHEP::HepLorentzVector& P() {return m_p;}
34  double P(int i) {return m_p[i];}
35  int Nobj() {return m_Nobj;}
36 
37  // Set functions
38  void SetP(const CLHEP::HepLorentzVector& p) {m_p=p;}
39  void SetP(const double&,const double&,const double&,const double&);
40  void SetXYZM(const double&,const double&,const double&, const double&);
41  void SetNobj(int& nn) {m_Nobj = nn;}
42 
43  // Overloaded operators for sorting on Pt
44  bool operator<(const McObj& rhs) const {return m_p.perp()<rhs.m_p.perp();}
45  bool operator>(const McObj& rhs) const {return m_p.perp()>rhs.m_p.perp();}
46 
47  protected:
48  CLHEP::HepLorentzVector m_p;
49  int m_Nobj;
50  };
51 
52 
53 private:
54 
55  static const int m_grphi = 105 ; // -CLHEP::pi to CLHEP::pi in units of 0.06 (approx)
56  static const int m_greta = 200 ; // -6.0 to 6.0 in units 0.06 {approx}
57 
58  double m_UserEta; //range over which triggers are searched for
59  int m_UserNumber; // how many are we looking for
60  double m_UserThresh; // lowest et jet
61  double m_Stop; //seed tower threshold
62  double m_Cone; //cone sixe
63  int m_Gride; //how many cells in eta
64  int m_Gridp; //how many cells in phi
65  bool m_Type; // cone or grid to define jet
66 
67  // Internal parameters
68  double m_EtaRange; //range over which search runs
69  double m_emaxeta; // largest eta of bins
70  double m_edeta; // size of eta bins
71  double m_edphi; //size of phi bins
72  int m_nphicell; // number of phi cells inside half cone
73  int m_netacell; // number of eta cells inside half cone
74  int m_nphicell2; // number of phi cells inside full cone
75  int m_netacell2; // number of eta cells inside full cone
76  std::vector<McObj> m_Jets; //store jets
77 
78 };
79 
80 #endif
81 
JetFilter::m_netacell
int m_netacell
Definition: JetFilter.h:73
JetFilter::McObj::P
double P(int i)
Definition: JetFilter.h:34
JetFilter
Applies the generator level filter for jet candidates.
Definition: JetFilter.h:15
JetFilter::m_grphi
static const int m_grphi
Definition: JetFilter.h:55
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
JetFilter::m_edphi
double m_edphi
Definition: JetFilter.h:71
JetFilter::m_EtaRange
double m_EtaRange
Definition: JetFilter.h:68
JetFilter::McObj::SetXYZM
void SetXYZM(const double &, const double &, const double &, const double &)
JetFilter::McObj::m_p
CLHEP::HepLorentzVector m_p
Definition: JetFilter.h:48
JetFilter::m_emaxeta
double m_emaxeta
Definition: JetFilter.h:69
JetFilter::m_UserThresh
double m_UserThresh
Definition: JetFilter.h:60
GenFilter.h
JetFilter::McObj::SetNobj
void SetNobj(int &nn)
Definition: JetFilter.h:41
JetFilter::McObj::~McObj
~McObj()
Definition: JetFilter.h:30
JetFilter::McObj::operator<
bool operator<(const McObj &rhs) const
Definition: JetFilter.h:44
JetFilter::m_netacell2
int m_netacell2
Definition: JetFilter.h:75
JetFilter::m_edeta
double m_edeta
Definition: JetFilter.h:70
JetFilter::McObj::SetP
void SetP(const double &, const double &, const double &, const double &)
JetFilter::McObj::McObj
McObj(CLHEP::HepLorentzVector &p)
Definition: JetFilter.h:26
JetFilter::McObj
Definition: JetFilter.h:23
JetFilter::m_Jets
std::vector< McObj > m_Jets
Definition: JetFilter.h:76
GenFilter
Base class for event generator filtering modules.
Definition: GenFilter.h:30
JetFilter::filterEvent
virtual StatusCode filterEvent()
Definition: JetFilter.cxx:66
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
JetFilter::filterInitialize
virtual StatusCode filterInitialize()
Definition: JetFilter.cxx:35
JetFilter::m_Gride
int m_Gride
Definition: JetFilter.h:63
JetFilter::m_Cone
double m_Cone
Definition: JetFilter.h:62
JetFilter::m_nphicell
int m_nphicell
Definition: JetFilter.h:72
JetFilter::m_Gridp
int m_Gridp
Definition: JetFilter.h:64
JetFilter::m_Type
bool m_Type
Definition: JetFilter.h:65
JetFilter::McObj::operator>
bool operator>(const McObj &rhs) const
Definition: JetFilter.h:45
JetFilter::m_Stop
double m_Stop
Definition: JetFilter.h:61
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
JetFilter::m_nphicell2
int m_nphicell2
Definition: JetFilter.h:74
JetFilter::m_UserNumber
int m_UserNumber
Definition: JetFilter.h:59
JetFilter::McObj::P
CLHEP::HepLorentzVector & P()
Definition: JetFilter.h:33
JetFilter::McObj::Nobj
int Nobj()
Definition: JetFilter.h:35
JetFilter::m_greta
static const int m_greta
Definition: JetFilter.h:56
JetFilter::JetFilter
JetFilter(const std::string &name, ISvcLocator *pSvcLocator)
Definition: JetFilter.cxx:12
JetFilter::McObj::McObj
McObj()
JetFilter::m_UserEta
double m_UserEta
Definition: JetFilter.h:58
JetFilter::McObj::SetP
void SetP(const CLHEP::HepLorentzVector &p)
Definition: JetFilter.h:38
JetFilter::McObj::m_Nobj
int m_Nobj
Definition: JetFilter.h:49