ATLAS Offline Software
xAODM4MuIntervalFilter.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 #ifndef GENERATORFILTERS_XAODM4MUINTERVALFILTER_H
5 #define GENERATORFILTERS_XAODM4MUINTERVALFILTER_H
6 
7 
9 #include "GaudiKernel/ServiceHandle.h"
11 
12 #include "xAODTruth/TruthEvent.h"
14 
15 // Framework Related Headers:-
16 #include "GaudiKernel/MsgStream.h"
17 
18 
19 namespace CLHEP {
20  class HepRandomEngine;
21 }
22 
23 // Pt High --> Low
24 namespace {
25  class High2LowByPt {
26  public:
27  bool operator () (const HepMC::FourVector &t1, const HepMC::FourVector &t2) {
28  return (t1.perp() > t2.perp());
29  }
30  };
31 } // namespace
32 
34 public:
35 
36  xAODM4MuIntervalFilter(const std::string& name, ISvcLocator* pSvcLocator);
37  virtual ~xAODM4MuIntervalFilter()=default;
38  virtual StatusCode filterInitialize() override;
39  virtual StatusCode filterFinalize() override;
40  virtual StatusCode filterEvent() override;
41 
42 private:
43 
44  CLHEP::HepRandomEngine* getRandomEngine(const std::string& streamName,
45  const EventContext& ctx) const;
46 
47  Gaudi::Property<double> m_maxEta{this,"MaxEta",5.0," "}; // Rapidity acceptance
48  Gaudi::Property<double> m_minPt{this,"MinPt",1000," "};
49 
50  ServiceHandle<IAthRNGSvc> m_rndmSvc{this, "RndmSvc", "AthRNGSvc"};// Random number generator
51 
52  Gaudi::Property<double> m_prob2low{this,"LowM4muProbability",1.0," "};
53  Gaudi::Property<double> m_prob2medium{this,"MediumMj4muProbability",0.5," "};
54  Gaudi::Property<double> m_prob2high{this,"HighM4muProbability",0.1," "};
55  Gaudi::Property<double> m_m4mulow{this,"LowM4mu",11000," "};
56  Gaudi::Property<double> m_m4muhigh{this,"HighM4mu",25000," "};
57  Gaudi::Property<bool> m_ApplyReWeighting{this,"ApplyReWeighting",true," "};
58 public:
59  double getEventWeight(double m) const;
60 
61 };
62 
63 #endif
xAODM4MuIntervalFilter::filterInitialize
virtual StatusCode filterInitialize() override
Definition: xAODM4MuIntervalFilter.cxx:19
python.SystemOfUnits.m
int m
Definition: SystemOfUnits.py:91
xAODM4MuIntervalFilter::m_rndmSvc
ServiceHandle< IAthRNGSvc > m_rndmSvc
Definition: xAODM4MuIntervalFilter.h:50
xAODM4MuIntervalFilter::filterFinalize
virtual StatusCode filterFinalize() override
Definition: xAODM4MuIntervalFilter.cxx:34
GenFilter.h
ALFA_EventTPCnv_Dict::t1
std::vector< ALFA_RawDataCollection_p1 > t1
Definition: ALFA_EventTPCnvDict.h:43
xAODM4MuIntervalFilter::m_prob2high
Gaudi::Property< double > m_prob2high
Definition: xAODM4MuIntervalFilter.h:54
xAODM4MuIntervalFilter
Definition: xAODM4MuIntervalFilter.h:33
xAODM4MuIntervalFilter::m_m4muhigh
Gaudi::Property< double > m_m4muhigh
Definition: xAODM4MuIntervalFilter.h:56
xAODM4MuIntervalFilter::m_maxEta
Gaudi::Property< double > m_maxEta
Definition: xAODM4MuIntervalFilter.h:47
GenFilter
Base class for event generator filtering modules.
Definition: GenFilter.h:30
xAODM4MuIntervalFilter::m_m4mulow
Gaudi::Property< double > m_m4mulow
Definition: xAODM4MuIntervalFilter.h:55
xAODM4MuIntervalFilter::m_ApplyReWeighting
Gaudi::Property< bool > m_ApplyReWeighting
Definition: xAODM4MuIntervalFilter.h:57
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
CLHEP
STD'S.
Definition: IAtRndmGenSvc.h:19
xAODM4MuIntervalFilter::m_prob2low
Gaudi::Property< double > m_prob2low
Definition: xAODM4MuIntervalFilter.h:52
xAODM4MuIntervalFilter::xAODM4MuIntervalFilter
xAODM4MuIntervalFilter(const std::string &name, ISvcLocator *pSvcLocator)
Definition: xAODM4MuIntervalFilter.cxx:13
xAODM4MuIntervalFilter::getEventWeight
double getEventWeight(double m) const
Definition: xAODM4MuIntervalFilter.cxx:132
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
ALFA_EventTPCnv_Dict::t2
std::vector< ALFA_RawDataContainer_p1 > t2
Definition: ALFA_EventTPCnvDict.h:44
AthenaPoolExample_Copy.streamName
string streamName
Definition: AthenaPoolExample_Copy.py:39
xAODM4MuIntervalFilter::~xAODM4MuIntervalFilter
virtual ~xAODM4MuIntervalFilter()=default
xAODM4MuIntervalFilter::m_minPt
Gaudi::Property< double > m_minPt
Definition: xAODM4MuIntervalFilter.h:48
TruthEventContainer.h
xAODM4MuIntervalFilter::getRandomEngine
CLHEP::HepRandomEngine * getRandomEngine(const std::string &streamName, const EventContext &ctx) const
Definition: xAODM4MuIntervalFilter.cxx:148
xAODM4MuIntervalFilter::m_prob2medium
Gaudi::Property< double > m_prob2medium
Definition: xAODM4MuIntervalFilter.h:53
TruthEvent.h
IAthRNGSvc.h
ServiceHandle< IAthRNGSvc >
xAODM4MuIntervalFilter::filterEvent
virtual StatusCode filterEvent() override
Definition: xAODM4MuIntervalFilter.cxx:38