ATLAS Offline Software
QCDTruthJetFilter.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_QCDTRUTHJETFILTER_H
6 #define GENERATORFILTERS_QCDTRUTHJETFILTER_H
7 
9 #include "GaudiKernel/ServiceHandle.h"
11 #include <string>
12 
13 namespace CLHEP {
14  class HepRandomEngine;
15 }
16 
17 class QCDTruthJetFilter : public GenFilter {
18 public:
19 
20  QCDTruthJetFilter(const std::string& name, ISvcLocator* pSvcLocator);
24 
25 private:
26 
27  CLHEP::HepRandomEngine* getRandomEngine(const std::string& streamName,
28  const EventContext& ctx) const;
29 
30  double m_MinPt;
31  double m_MaxPt;
32  double m_MinEta;
33  double m_MaxEta;
34  double m_StartMinEta;
35  double m_MinPhi;
36  double m_MaxPhi;
37  bool m_SymEta;
38 
40 
41  ServiceHandle<IAthRNGSvc> m_rndmSvc{this, "RndmSvc", "AthRNGSvc"};
42 
43  long m_total;
44  long m_passed;
45  long m_ptfailed;
46 
47  double m_norm;
48  double m_high;
49 
50  bool m_doShape;
51 
52 public:
53 
55  static double fitFnR(const double * x , const double *) {
56  static const double p[7] = //{100000,-5,0.0004,0.0000001,1./3600.,23,0.8};
57  { 1000000, -5.5, 0.0001, 0.00000012, 1./4150., 23, 0.4 };
58  return p[0]*std::pow(x[0],p[1]+p[2]*x[0]+p[3]*pow(x[0],2))*pow(1-x[0]*p[4],p[5])*pow(x[0],p[6]);
59  }
60 
62  static double fitFn(const double x ) {
63  static const double p[7] = //{100000,-5,0.0004,0.0000001,1./3600.,23,0.8};
64  { 1000000, -5.5, 0.0001, 0.00000012, 1./4150., 23, 0.4 };
65  return p[0]*std::pow(x,p[1]+p[2]*x+p[3]*pow(x,2))*pow(1-x*p[4],p[5])*pow(x,p[6]);
66  }
67 
68 };
69 
70 #endif
QCDTruthJetFilter::fitFnR
static double fitFnR(const double *x, const double *)
Definition: QCDTruthJetFilter.h:55
QCDTruthJetFilter::fitFn
static double fitFn(const double x)
Definition: QCDTruthJetFilter.h:62
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
QCDTruthJetFilter::filterInitialize
StatusCode filterInitialize()
Definition: QCDTruthJetFilter.cxx:35
QCDTruthJetFilter::m_MinPhi
double m_MinPhi
Min phi for the lead truth jet.
Definition: QCDTruthJetFilter.h:35
QCDTruthJetFilter
Definition: QCDTruthJetFilter.py:1
conifer::pow
constexpr int pow(int x)
Definition: conifer.h:20
GenFilter.h
QCDTruthJetFilter::m_high
double m_high
High-side function level.
Definition: QCDTruthJetFilter.h:48
QCDTruthJetFilter::QCDTruthJetFilter
QCDTruthJetFilter(const std::string &name, ISvcLocator *pSvcLocator)
Definition: QCDTruthJetFilter.cxx:13
QCDTruthJetFilter::m_MaxPhi
double m_MaxPhi
Definition: QCDTruthJetFilter.h:36
QCDTruthJetFilter::m_MaxEta
double m_MaxEta
Max eta for the truth jets.
Definition: QCDTruthJetFilter.h:33
QCDTruthJetFilter::m_MinEta
double m_MinEta
Min eta for the truth jets.
Definition: QCDTruthJetFilter.h:32
QCDTruthJetFilter::m_rndmSvc
ServiceHandle< IAthRNGSvc > m_rndmSvc
Definition: QCDTruthJetFilter.h:41
x
#define x
QCDTruthJetFilter::m_MaxPt
double m_MaxPt
Max pT for the truth jets.
Definition: QCDTruthJetFilter.h:31
GenFilter
Base class for event generator filtering modules.
Definition: GenFilter.h:30
QCDTruthJetFilter::getRandomEngine
CLHEP::HepRandomEngine * getRandomEngine(const std::string &streamName, const EventContext &ctx) const
Definition: QCDTruthJetFilter.cxx:167
QCDTruthJetFilter::m_total
long m_total
Total number of events tested.
Definition: QCDTruthJetFilter.h:43
QCDTruthJetFilter::filterEvent
StatusCode filterEvent()
Definition: QCDTruthJetFilter.cxx:75
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
CLHEP
STD'S.
Definition: IAtRndmGenSvc.h:19
QCDTruthJetFilter::m_SymEta
bool m_SymEta
Use symmetric cut for min eta? (Default false for p-Pb run filters)
Definition: QCDTruthJetFilter.h:37
QCDTruthJetFilter::filterFinalize
StatusCode filterFinalize()
Definition: QCDTruthJetFilter.cxx:69
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
QCDTruthJetFilter::m_ptfailed
long m_ptfailed
Number of events failing the pT cuts.
Definition: QCDTruthJetFilter.h:45
AthenaPoolExample_Copy.streamName
string streamName
Definition: AthenaPoolExample_Copy.py:39
QCDTruthJetFilter::m_passed
long m_passed
Number of events passing all cuts.
Definition: QCDTruthJetFilter.h:44
QCDTruthJetFilter::m_norm
double m_norm
Normalization for weights.
Definition: QCDTruthJetFilter.h:47
QCDTruthJetFilter::m_TruthJetContainerName
std::string m_TruthJetContainerName
Name of the truth jet container.
Definition: QCDTruthJetFilter.h:39
QCDTruthJetFilter::m_MinPt
double m_MinPt
Min pT for the truth jets.
Definition: QCDTruthJetFilter.h:30
QCDTruthJetFilter::m_doShape
bool m_doShape
Attempt to flatten the pT distribution.
Definition: QCDTruthJetFilter.h:50
QCDTruthJetFilter::m_StartMinEta
double m_StartMinEta
Default start value for min eta.
Definition: QCDTruthJetFilter.h:34
IAthRNGSvc.h
ServiceHandle< IAthRNGSvc >