ATLAS Offline Software
Select_Bmumu.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 //============================================================================
6 // Select_Bmumu.h
7 //============================================================================
8 //
9 // Author : Wolfgang Walkowiak <Wolfgang.Walkowiak@cern.ch.>
10 // Changes:
11 //
12 // Based on Select_onia2mumu.h.
13 // Original author: Daniel Scheirich <daniel.scheirich@cern.ch>
14 //
15 // Select B candidates for the B(s)mumu analysis including for
16 // the reference channels used.
17 //
18 // For an example see BPHY8.py .
19 //
20 // Job options provided by this class:
21 //
22 //============================================================================
23 //
24 #ifndef DERIVATIONFRAMEWORK_Select_Bmumu_H
25 #define DERIVATIONFRAMEWORK_Select_Bmumu_H
26 
27 #include <string>
28 
29 #include "GaudiKernel/ToolHandle.h"
34 #include "xAODBPhys/BPhysHelper.h"
35 
38 namespace Trk {
39  class V0Tools;
40 }
41 
42 namespace xAOD {
43  class BPhysHypoHelper;
44 }
45 
46 namespace SG {
47  class AuxElement;
48 }
49 
52 namespace DerivationFramework {
53 
55  public:
56  Select_Bmumu(const std::string& t, const std::string& n, const IInterface* p);
57 
60  StatusCode initialize() override;
61  StatusCode finalize() override;
62 
70  virtual StatusCode addBranches() const override;
71 
72  private:
73  void ProcessVertex(xAOD::BPhysHypoHelper&, xAOD::BPhysHelper::pv_type) const;
74  bool massCuts(float mass) const;
75  bool massInBlindedRegion(float mass) const;
76 
77  bool checkAllMuonsTight(const std::vector<const xAOD::Muon*>& muons,
78  int maxMuonsToCheck=-1) const;
79 
80  bool pass(const SG::AuxElement& em, const std::string& hypo) const;
81  bool setPass(const SG::AuxElement& em, const std::string& hypo, bool passVal) const;
82  bool setPassIfNotAvailable(SG::AuxElement& em, const std::string& hypo,
83  bool passVal) const;
84  // std::vector<xAOD::Vertex*> getPrecedingVertices(const xAOD::Vertex* vtx);
85 
88  ToolHandle<Trk::V0Tools> m_v0Tools;
89  ToolHandle<CP::IMuonSelectionTool> m_muSelectionTool;
90 
93  std::string m_hypoName;
95  std::vector<double> m_trkMasses;
96  double m_massHypo;
97  double m_massMax;
98  double m_massMin;
99  double m_chi2Max;
101  bool m_do3d;
102  double m_blindMassMin;
103  double m_blindMassMax;
108 
109  std::vector<std::string> m_subDecVtxContNames;
110  std::vector<std::string> m_subDecVtxHypoCondNames;
111  std::vector<std::string> m_subDecVtxHypoFlagNames;
112  };
113 }
114 
115 #endif // DERIVATIONFRAMEWORK_Select_Bmumu_H
DerivationFramework::Select_Bmumu::m_massHypo
double m_massHypo
vertex mass hypothesis
Definition: Select_Bmumu.h:96
python.tests.PyTestsLib.finalize
def finalize(self)
_info( "content of StoreGate..." ) self.sg.dump()
Definition: PyTestsLib.py:53
DerivationFramework::Select_Bmumu::m_doBlinding
bool m_doBlinding
enable blinding range
Definition: Select_Bmumu.h:104
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
SG
Forward declaration.
Definition: CaloCellPacker_400_500.h:32
DerivationFramework::Select_Bmumu::m_trkMasses
std::vector< double > m_trkMasses
track mass hypotheses
Definition: Select_Bmumu.h:95
ATLAS_NOT_THREAD_SAFE
#define ATLAS_NOT_THREAD_SAFE
getNoisyStrip() Find noisy strips from hitmaps and write out into xml/db formats
Definition: checker_macros.h:212
DerivationFramework::Select_Bmumu::m_do3d
bool m_do3d
add 3d proper time
Definition: Select_Bmumu.h:101
SG::AuxElement
Base class for elements of a container that can have aux data.
Definition: AuxElement.h:446
IAugmentationTool.h
initialize
void initialize()
Definition: run_EoverP.cxx:894
DerivationFramework::Select_Bmumu
Definition: Select_Bmumu.h:54
xAOD
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
Definition: ICaloAffectedTool.h:24
DerivationFramework::Select_Bmumu::m_blindMassMin
double m_blindMassMin
blinding mass range
Definition: Select_Bmumu.h:102
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
dqt_zlumi_pandas.mass
mass
Definition: dqt_zlumi_pandas.py:170
DerivationFramework::IAugmentationTool
Definition: IAugmentationTool.h:24
DerivationFramework::Select_Bmumu::m_muSelectionTool
ToolHandle< CP::IMuonSelectionTool > m_muSelectionTool
Definition: Select_Bmumu.h:89
IMuonSelectionTool.h
xAOD::BPhysHypoHelper
Definition: BPhysHypoHelper.h:73
DerivationFramework::Select_Bmumu::m_useMuCalcMass
bool m_useMuCalcMass
also check against MUCALC mass
Definition: Select_Bmumu.h:107
DerivationFramework::Select_Bmumu::m_massMin
double m_massMin
invariant mass range
Definition: Select_Bmumu.h:98
xAOD::BPhysHelper::pv_type
pv_type
: Enum type of the PV
Definition: BPhysHelper.h:475
DerivationFramework::Select_Bmumu::m_massMax
double m_massMax
invariant mass range
Definition: Select_Bmumu.h:97
beamspotman.n
n
Definition: beamspotman.py:731
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
DerivationFramework::Select_Bmumu::m_chi2Max
double m_chi2Max
max chi2 cut
Definition: Select_Bmumu.h:99
AthAlgTool.h
DerivationFramework::Select_Bmumu::m_doCutBlinded
bool m_doCutBlinded
enable cutting blinded vertices
Definition: Select_Bmumu.h:105
DerivationFramework
THE reconstruction tool.
Definition: ParticleSortingAlg.h:24
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
DerivationFramework::Select_Bmumu::m_subDecVtxHypoFlagNames
std::vector< std::string > m_subDecVtxHypoFlagNames
names of hypo flags set on sub-decays if passing
Definition: Select_Bmumu.h:111
V0Tools
BPhysHelper.h
: B-physics xAOD helpers.
DerivationFramework::Select_Bmumu::m_subDecVtxContNames
std::vector< std::string > m_subDecVtxContNames
names of sub-decay vertex containers
Definition: Select_Bmumu.h:109
DerivationFramework::Select_Bmumu::m_hypoName
std::string m_hypoName
job options
Definition: Select_Bmumu.h:93
DerivationFramework::Select_Bmumu::m_DoVertexType
int m_DoVertexType
Allows user to skip certain vertexes - bitwise test 7==all(111)
Definition: Select_Bmumu.h:100
DerivationFramework::Select_Bmumu::m_blindOnlyAllMuonsTight
bool m_blindOnlyAllMuonsTight
only blind candidates with all tight muons
Definition: Select_Bmumu.h:106
CfAthAlgTool.h
DerivationFramework::Select_Bmumu::m_subDecVtxHypoCondNames
std::vector< std::string > m_subDecVtxHypoCondNames
hypo names for sub-decays to be considered
Definition: Select_Bmumu.h:110
DerivationFramework::Select_Bmumu::m_inputVtxContainerName
std::string m_inputVtxContainerName
name of the input container name
Definition: Select_Bmumu.h:94
DerivationFramework::Select_Bmumu::m_blindMassMax
double m_blindMassMax
blinding mass range
Definition: Select_Bmumu.h:103
DerivationFramework::CfAthAlgTool
Definition: CfAthAlgTool.h:35
DerivationFramework::Select_Bmumu::m_v0Tools
ToolHandle< Trk::V0Tools > m_v0Tools
tools
Definition: Select_Bmumu.h:88