ATLAS Offline Software
xAODLeptonPairFilter.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 // --------------------------------------------------
6 //
7 // File: GeneratorFilters/xAODLeptonPairFilter.h
8 // Description:
9 // Classify Pairs of leptons according to their flavor and sign combinations
10 // and filter on these classifications
11 // Same-Flavor Opposite-Sign (SFOS)
12 // Same-Flavor Same-Sign (SFSS)
13 // Opposite-Flavor Opposite-Sign (OFOS)
14 // Opposite-Flavor Same-Sign(OFSS)
15 // AuthorList:
16 // A Long: May 2014
17 
18 
19 #ifndef GENERATORFILTERSXAODLEPTONPAIRFILTER_H
20 #define GENERATORFILTERSXAODLEPTONPAIRFILTER_H
21 
23 
26 
27 #include "xAODTruth/TruthEvent.h"
29 
30 
31 
32 
34 public:
35  xAODLeptonPairFilter(const std::string& name, ISvcLocator* pSvcLocator);
36  virtual ~xAODLeptonPairFilter();
37  virtual StatusCode filterInitialize();
38  virtual StatusCode filterFinalize();
39  virtual StatusCode filterEvent();
40 
41 private:
42  // Setable Properties:-
43  //--------------------------------------------------------------------------
44  // //by default the filter demands that there are exactly 0 SFOS lepton pairs
45  // //if both Maximum and Minimum are negative, then no requirements
46  // //are made on that pair type
47 
48  // //Same-Flavor Opposite-Sign (SFOS)
49  Gaudi::Property<int> m_nSFOS_Max{this,"NSFOS_Max",0,"Number of Same Flavor Opposite Sign Max"};
50  Gaudi::Property<int> m_nSFOS_Min{this,"NSFOS_Min",0,"Number of Same Flavor Opposite Sign Min"};
51 
52  // //Same-Flavor Same-Sign (SFSS)
53  Gaudi::Property<int> m_nSFSS_Max{this,"NSFSS_Max",-1,"Number of Same Flavor Same Sign Max"};
54  Gaudi::Property<int> m_nSFSS_Min{this,"NSFSS_Min",-1,"Number of Same Flavor Same Sign Min"};
55 
56  // //Opposite-Flavor Opposite-Sign (OFOS)
57  Gaudi::Property<int> m_nOFOS_Max{this,"NOFOS_Max",-1,"Number of Opposite Flavor Opposite Sign Max"};
58  Gaudi::Property<int> m_nOFOS_Min{this,"NOFOS_Min",-1,"Number of Opposite Flavor Opposite Sign Min"};
59 
60  // //Opposite-Flavor Same-Sign (OFSS)
61  Gaudi::Property<int> m_nOFSS_Max{this,"NOFSS_Max",-1,"Number of Opposite Flavor Same Sign Max"};
62  Gaudi::Property<int> m_nOFSS_Min{this,"NOFSS_Min",-1,"Number of Opposite Flavor Same Sign Min"};
63 
64  // //Pair Sum (ask for some combination of different
65  // //lepton pairs based on configuration)
66  Gaudi::Property<int> m_nPairSum_Max{this,"NPairSum_Max",-1,"Number of Pair sum Max"};
67  Gaudi::Property<int> m_nPairSum_Min{this,"NPairSum_Min",-1,"Number of Pair sum Min"};
68 
69  // //configure which pairs to consider in sum
70  // //by default don't consider any
71  Gaudi::Property<bool> m_bUseSFOSInSum{this,"UseSFOSInSum",false,"SFOS to be considered in sum"};
72  Gaudi::Property<bool> m_bUseSFSSInSum{this,"UseSFSSInSum",false,"SFSS to be considered in sum"};
73  Gaudi::Property<bool> m_bUseOFOSInSum{this,"UseOFOSInSum",false,"OFOS to be considered in sum"};
74  Gaudi::Property<bool> m_bUseOFSSInSum{this,"UseOFSSInSum",false,"OFSS to be considered in sum"};
75 
76  // // only count leptons with a parent with M>20 GeV
77  // declareProperty("OnlyMassiveParents",m_onlyMassiveParents = false);
78  Gaudi::Property<bool> m_onlyMassiveParents{this,"OnlyMassiveParents",false,"only count leptons with a parent with M>20 GeV"};
79 
80  // //kinematic requirements on leptons to consider
81  // //this is NOT a veto on the leptons outside the requirements
82  Gaudi::Property<double> m_Ptmin{this,"Ptcut",10000.,"min Pt"};
83  Gaudi::Property<double> m_EtaRange{this,"Etacut",10.,"Eta range max"};
84 
85  // //the filter is only applied if the
86  // //if the number of leptons falls within this range
87  // //otherwise the filter automatically passes
88  // //if max < 0 it is ignored
89  Gaudi::Property<int> m_nLeptons_Max{this,"NLeptons_Max",-1," max num leptons"};
90  Gaudi::Property<int> m_nLeptons_Min{this,"NLeptons_Min",0," min num leptons"};
91 
92 
93 };
94 
95 #endif
xAODLeptonPairFilter::m_nOFSS_Min
Gaudi::Property< int > m_nOFSS_Min
Definition: xAODLeptonPairFilter.h:62
xAODLeptonPairFilter::filterEvent
virtual StatusCode filterEvent()
Definition: xAODLeptonPairFilter.cxx:58
xAODLeptonPairFilter::m_EtaRange
Gaudi::Property< double > m_EtaRange
Definition: xAODLeptonPairFilter.h:83
xAODLeptonPairFilter::m_bUseSFOSInSum
Gaudi::Property< bool > m_bUseSFOSInSum
Definition: xAODLeptonPairFilter.h:71
TruthParticleContainer.h
GenFilter.h
xAODLeptonPairFilter::m_onlyMassiveParents
Gaudi::Property< bool > m_onlyMassiveParents
Definition: xAODLeptonPairFilter.h:78
xAODLeptonPairFilter::filterFinalize
virtual StatusCode filterFinalize()
Definition: xAODLeptonPairFilter.cxx:51
xAODLeptonPairFilter::m_bUseSFSSInSum
Gaudi::Property< bool > m_bUseSFSSInSum
Definition: xAODLeptonPairFilter.h:72
xAODLeptonPairFilter::m_nSFOS_Max
Gaudi::Property< int > m_nSFOS_Max
Definition: xAODLeptonPairFilter.h:49
GenFilter
Base class for event generator filtering modules.
Definition: GenFilter.h:30
xAODLeptonPairFilter::m_nSFOS_Min
Gaudi::Property< int > m_nSFOS_Min
Definition: xAODLeptonPairFilter.h:50
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
xAODLeptonPairFilter::m_nOFOS_Max
Gaudi::Property< int > m_nOFOS_Max
Definition: xAODLeptonPairFilter.h:57
xAODLeptonPairFilter::m_nLeptons_Min
Gaudi::Property< int > m_nLeptons_Min
Definition: xAODLeptonPairFilter.h:90
xAODLeptonPairFilter::filterInitialize
virtual StatusCode filterInitialize()
Definition: xAODLeptonPairFilter.cxx:45
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
xAODLeptonPairFilter
Definition: xAODLeptonPairFilter.h:33
xAODLeptonPairFilter::m_nPairSum_Min
Gaudi::Property< int > m_nPairSum_Min
Definition: xAODLeptonPairFilter.h:67
xAODLeptonPairFilter::m_nOFOS_Min
Gaudi::Property< int > m_nOFOS_Min
Definition: xAODLeptonPairFilter.h:58
xAODLeptonPairFilter::m_nSFSS_Max
Gaudi::Property< int > m_nSFSS_Max
Definition: xAODLeptonPairFilter.h:53
xAODLeptonPairFilter::m_bUseOFOSInSum
Gaudi::Property< bool > m_bUseOFOSInSum
Definition: xAODLeptonPairFilter.h:73
xAODLeptonPairFilter::xAODLeptonPairFilter
xAODLeptonPairFilter(const std::string &name, ISvcLocator *pSvcLocator)
Definition: xAODLeptonPairFilter.cxx:34
xAODLeptonPairFilter::m_Ptmin
Gaudi::Property< double > m_Ptmin
Definition: xAODLeptonPairFilter.h:82
TruthParticle.h
TruthEventContainer.h
xAODLeptonPairFilter::m_bUseOFSSInSum
Gaudi::Property< bool > m_bUseOFSSInSum
Definition: xAODLeptonPairFilter.h:74
xAODLeptonPairFilter::m_nLeptons_Max
Gaudi::Property< int > m_nLeptons_Max
Definition: xAODLeptonPairFilter.h:89
xAODLeptonPairFilter::m_nSFSS_Min
Gaudi::Property< int > m_nSFSS_Min
Definition: xAODLeptonPairFilter.h:54
xAODLeptonPairFilter::m_nOFSS_Max
Gaudi::Property< int > m_nOFSS_Max
Definition: xAODLeptonPairFilter.h:61
xAODLeptonPairFilter::~xAODLeptonPairFilter
virtual ~xAODLeptonPairFilter()
Definition: xAODLeptonPairFilter.cxx:39
TruthEvent.h
xAODLeptonPairFilter::m_nPairSum_Max
Gaudi::Property< int > m_nPairSum_Max
Definition: xAODLeptonPairFilter.h:66