ATLAS Offline Software
xAODMuDstarFilter.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 // --------------------------------------------------
5 //
6 // File: GeneratorFilters/xAODMuDstarFilter.h
7 // Description:
8 //
9 // Allows the user to search for (mu D*) combinations
10 // with both same and opposite charges.
11 // For D*+-, the decay D*+ -> D0 pi_s+ is selected
12 // with D0 in the nominal decay mode, D0 -> K- pi+ (Br = 3.947%),
13 // and, if "D0Kpi_only=false", 14 main other decays to 2 or 3 particles (except nu_e and nu_mu)
14 // in case they can immitate the nominal decay:
15 // D0 -> K-mu+nu, K-e+nu, pi-mu+nu, pi-e+nu,
16 // K-mu+nu pi0, K-e+nu pi0, pi-mu+nu pi0, pi-e+nu pi0,
17 // pi-pi+, K-K+, K-pi+pi0, K-K+pi0, pi-pi+pi0, K-pi+gamma
18 // Doubly Cabbibo supressed modes are also considered
19 // Requirements for non-nominal decay modes:
20 // D*+ -> ("K-" "pi+") pi_s+ (+c.c.) charges
21 // mKpiMin < m("K" "pi") < mKpiMax
22 // m("K" "pi" pi_s) - m("K" "pi") < delta_m_Max
23 //
24 // AuthorList:
25 // L K Gladilin (gladilin@mail.cern.ch) March 2023
26 
27 
28 #ifndef GENERATORFILTERSXAODMUDSTARFILTER_H
29 #define GENERATORFILTERSXAODMUDSTARFILTER_H
30 
32 
33 #include "CLHEP/Vector/LorentzVector.h"
34 #include "TLorentzVector.h"
35 
37 
39 public:
40  xAODMuDstarFilter(const std::string& name, ISvcLocator* pSvcLocator);
41  virtual ~xAODMuDstarFilter();
42  virtual StatusCode filterInitialize();
43  virtual StatusCode filterEvent();
44 
45 private:
46  // Setable Properties:-
47  Gaudi::Property<double> m_PtMinMuon{this,"PtMinMuon", 2500.};
48  Gaudi::Property<double> m_PtMaxMuon{this,"PtMaxMuon", 1e9};
49  Gaudi::Property<double> m_EtaRangeMuon{this,"EtaRangeMuon", 2.7};
50  //
51  Gaudi::Property<double> m_PtMinDstar{this,"PtMinDstar", 4500.};
52  Gaudi::Property<double> m_PtMaxDstar{this,"PtMaxDstar", 1e9};
53  Gaudi::Property<double> m_EtaRangeDstar{this, "EtaRangeDstar", 2.7};
54  Gaudi::Property<double> m_RxyMinDstar{this, "RxyMinDstar", -1e9};
55  //
56  Gaudi::Property<double> m_PtMinPis{this, "PtMinPis", 450.};
57  Gaudi::Property<double> m_PtMaxPis{this, "PtMaxPis", 1e9};
58  Gaudi::Property<double> m_EtaRangePis{this, "EtaRangePis", 2.7};
59  //
60  Gaudi::Property<double> m_PtMinKpi{this, "PtMinKpi", 900.};
61  Gaudi::Property<double> m_PtMaxKpi{this, "PtMaxKpi", 1e9};
62  Gaudi::Property<double> m_EtaRangeKpi{this, "EtaRangeKpi", 2.7};
63  //
64  Gaudi::Property<bool> m_D0Kpi_only{this, "D0Kpi_only", false};
65  //
66  Gaudi::Property<double> m_mKpiMin{this, "mKpiMin", 1665.};
67  Gaudi::Property<double> m_mKpiMax{this, "mKpiMax", 2065.};
68  //
69  Gaudi::Property<double> m_delta_m_Max{this, "delta_m_Max", 220.};
70  //
71  Gaudi::Property<double> m_DstarMu_m_Max{this, "DstarMu_m_Max", 12000.};
72 
73  // PDG 2022:
74  const double m_MuonMass = 105.6583755;
75  const double m_PionMass = 139.57039;
76  const double m_KaonMass = 493.677;
77 
78  // ReadHandle for the Gen TruthParticles
79  SG::ReadHandleKey<xAOD::TruthParticleContainer> m_xaodTruthParticleContainerNameGenKey{this, "TruthParticlesKey", "TruthGen", "ReadHandleKey for the xAODTruthParticlesGen"};
80 
81  // Private Methods:=
82 
83 };
84 
85 #endif
86 
87 
xAODMuDstarFilter::m_KaonMass
const double m_KaonMass
Definition: xAODMuDstarFilter.h:76
xAODMuDstarFilter::m_EtaRangePis
Gaudi::Property< double > m_EtaRangePis
Definition: xAODMuDstarFilter.h:58
xAODMuDstarFilter::m_D0Kpi_only
Gaudi::Property< bool > m_D0Kpi_only
Definition: xAODMuDstarFilter.h:64
xAODMuDstarFilter::m_mKpiMax
Gaudi::Property< double > m_mKpiMax
Definition: xAODMuDstarFilter.h:67
xAODMuDstarFilter::m_PtMaxMuon
Gaudi::Property< double > m_PtMaxMuon
Definition: xAODMuDstarFilter.h:48
xAODMuDstarFilter::filterEvent
virtual StatusCode filterEvent()
Definition: xAODMuDstarFilter.cxx:95
xAODMuDstarFilter::m_xaodTruthParticleContainerNameGenKey
SG::ReadHandleKey< xAOD::TruthParticleContainer > m_xaodTruthParticleContainerNameGenKey
Definition: xAODMuDstarFilter.h:79
TruthParticleContainer.h
GenFilter.h
xAODMuDstarFilter::xAODMuDstarFilter
xAODMuDstarFilter(const std::string &name, ISvcLocator *pSvcLocator)
Definition: xAODMuDstarFilter.cxx:49
xAODMuDstarFilter::m_EtaRangeMuon
Gaudi::Property< double > m_EtaRangeMuon
Definition: xAODMuDstarFilter.h:49
xAODMuDstarFilter::m_PtMaxKpi
Gaudi::Property< double > m_PtMaxKpi
Definition: xAODMuDstarFilter.h:61
xAODMuDstarFilter::m_PtMaxDstar
Gaudi::Property< double > m_PtMaxDstar
Definition: xAODMuDstarFilter.h:52
SG::ReadHandleKey< xAOD::TruthParticleContainer >
xAODMuDstarFilter::m_PionMass
const double m_PionMass
Definition: xAODMuDstarFilter.h:75
xAODMuDstarFilter::m_PtMinDstar
Gaudi::Property< double > m_PtMinDstar
Definition: xAODMuDstarFilter.h:51
xAODMuDstarFilter::m_PtMinMuon
Gaudi::Property< double > m_PtMinMuon
Definition: xAODMuDstarFilter.h:47
GenFilter
Base class for event generator filtering modules.
Definition: GenFilter.h:30
xAODMuDstarFilter
Definition: xAODMuDstarFilter.h:38
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
xAODMuDstarFilter::m_delta_m_Max
Gaudi::Property< double > m_delta_m_Max
Definition: xAODMuDstarFilter.h:69
xAODMuDstarFilter::m_mKpiMin
Gaudi::Property< double > m_mKpiMin
Definition: xAODMuDstarFilter.h:66
xAODMuDstarFilter::m_MuonMass
const double m_MuonMass
Definition: xAODMuDstarFilter.h:74
xAODMuDstarFilter::m_DstarMu_m_Max
Gaudi::Property< double > m_DstarMu_m_Max
Definition: xAODMuDstarFilter.h:71
xAODMuDstarFilter::m_EtaRangeDstar
Gaudi::Property< double > m_EtaRangeDstar
Definition: xAODMuDstarFilter.h:53
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
xAODMuDstarFilter::m_EtaRangeKpi
Gaudi::Property< double > m_EtaRangeKpi
Definition: xAODMuDstarFilter.h:62
xAODMuDstarFilter::filterInitialize
virtual StatusCode filterInitialize()
Definition: xAODMuDstarFilter.cxx:58
xAODMuDstarFilter::m_PtMinPis
Gaudi::Property< double > m_PtMinPis
Definition: xAODMuDstarFilter.h:56
xAODMuDstarFilter::m_RxyMinDstar
Gaudi::Property< double > m_RxyMinDstar
Definition: xAODMuDstarFilter.h:54
xAODMuDstarFilter::m_PtMaxPis
Gaudi::Property< double > m_PtMaxPis
Definition: xAODMuDstarFilter.h:57
xAODMuDstarFilter::m_PtMinKpi
Gaudi::Property< double > m_PtMinKpi
Definition: xAODMuDstarFilter.h:60
xAODMuDstarFilter::~xAODMuDstarFilter
virtual ~xAODMuDstarFilter()