ATLAS Offline Software
Loading...
Searching...
No Matches
MuDstarFilter Class Reference

#include <MuDstarFilter.h>

Inheritance diagram for MuDstarFilter:
Collaboration diagram for MuDstarFilter:

Public Member Functions

 MuDstarFilter (const std::string &name, ISvcLocator *pSvcLocator)
virtual ~MuDstarFilter ()
virtual StatusCode filterInitialize ()
virtual StatusCode filterFinalize ()
virtual StatusCode filterEvent (const EventContext &ctx)
virtual StatusCode sysInitialize () override
 Override sysInitialize.
virtual bool isClonable () const override
 Specify if the algorithm is clonable.
virtual StatusCode sysExecute (const EventContext &ctx) override
 Execute an algorithm.
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies.
virtual bool filterPassed (const EventContext &ctx) const
 Get filter decision:
virtual void setFilterPassed (bool state, const EventContext &ctx) const
 Set filter decision:
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const
Event loop algorithm methods: not to be overloaded
StatusCode initialize ()
StatusCode execute (const EventContext &ctx)
 Execute method.
StatusCode finalize ()
Counters
int nPassed () const
int nFailed () const
int nNeeded () const
bool keepAll () const
Event collection accessors (const and non-const)
HepMC::GenEvent *event ATLAS_NOT_CONST_THREAD_SAFE ()
 Access the current signal event (first in the McEventCollection).
McEventCollection *events ATLAS_NOT_CONST_THREAD_SAFE ()
 Access the current event's McEventCollection.
const HepMC::GenEventevent_const (const EventContext &ctx) const
 Access the current signal event (const).
const McEventCollectionevents_const (const EventContext &ctx) const
 Access the current event's McEventCollection (const).
Particle data accessors
const ServiceHandle< IPartPropSvc > partPropSvc () const
 Access the particle property service.
const HepPDT::ParticleDataTable & particleTable () const
 Get a particle data table.
const HepPDT::ParticleDataTable & pdt () const
 Shorter alias to get a particle data table.
const HepPDT::ParticleData * particleData (int pid) const
 Access an element in the particle data table.

Public Attributes

 PtMinMuon
 Default cut params.
 PtMaxMuon
 EtaRangeMuon
 PtMinDstar
 PtMaxDstar
 EtaRangeDstar
 RxyMinDstar
 PtMinPis
 PtMaxPis
 EtaRangePis
 D0Kpi_only
 PtMinKpi
 PtMaxKpi
 EtaRangeKpi
 mKpiMin
 mKpiMax
 delta_m_Max
 DstarMu_m_Max

Protected Member Functions

virtual bool isReEntrant () const override final
 Legacy algorithms are not thread-safe.
void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed.

Protected Attributes

Counters and requirements
int m_nPass
int m_nFail
int m_nNeeded
bool m_keepAll

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

double m_PtMinMuon
double m_PtMaxMuon
double m_EtaRangeMuon
double m_PtMinDstar
double m_PtMaxDstar
double m_EtaRangeDstar
double m_RxyMinDstar
double m_PtMinPis
double m_PtMaxPis
double m_EtaRangePis
double m_PtMinKpi
double m_PtMaxKpi
double m_EtaRangeKpi
bool m_D0Kpi_only
double m_mKpiMin
double m_mKpiMax
double m_delta_m_Max
double m_DstarMu_m_Max
const double m_MuonMass = ParticleConstants::muonMassInMeV
const double m_PionMass = ParticleConstants::chargedPionMassInMeV
const double m_KaonMass = ParticleConstants::chargedKaonMassInMeV
DataObjIDColl m_extendedExtraObjects
 Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default).
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default).
std::vector< SG::VarHandleKeyArray * > m_vhka
bool m_varHandleArraysDeclared

Properties

ServiceHandle< IPartPropSvc > m_ppSvc {this, "PartPropSvc", "PartPropSvc"}
 Handle on the particle property service.
SG::ReadHandleKey< McEventCollectionm_mcevents_const { this, "McEventKey", "GEN_EVENT", "StoreGate key of the MC event collection" }
 Const handle to the MC event collection.
std::string m_mcEventKey {}
 StoreGate key for the MC event collection (defaults to GEN_EVENT).
BooleanProperty m_mkMcEvent {this, "MakeMcEvent", false, "Create a new MC event collection if it doesn't exist"}
 Flag to determine if a new MC event collection should be made if it doesn't exist.

Detailed Description

Definition at line 38 of file MuDstarFilter.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ MuDstarFilter()

MuDstarFilter::MuDstarFilter ( const std::string & name,
ISvcLocator * pSvcLocator )

Definition at line 49 of file MuDstarFilter.cxx.

50 : GenFilter(name, pSvcLocator) {
51 //--------------------------------------------------------------------------
52 declareProperty("PtMinMuon", m_PtMinMuon = 2500.);
53 declareProperty("PtMaxMuon", m_PtMaxMuon = 1e9);
54 declareProperty("EtaRangeMuon", m_EtaRangeMuon = 2.7);
55 //
56 declareProperty("PtMinDstar", m_PtMinDstar = 4500.);
57 declareProperty("PtMaxDstar", m_PtMaxDstar = 1e9);
58 declareProperty("EtaRangeDstar", m_EtaRangeDstar = 2.7);
59 declareProperty("RxyMinDstar", m_RxyMinDstar = -1e9);
60 //
61 declareProperty("PtMinPis", m_PtMinPis = 450.);
62 declareProperty("PtMaxPis", m_PtMaxPis = 1e9);
63 declareProperty("EtaRangePis", m_EtaRangePis = 2.7);
64 //
65 declareProperty("PtMinKpi", m_PtMinKpi = 900.);
66 declareProperty("PtMaxKpi", m_PtMaxKpi = 1e9);
67 declareProperty("EtaRangeKpi", m_EtaRangeKpi = 2.7);
68 //
69 declareProperty("D0Kpi_only", m_D0Kpi_only = false);
70 //
71 declareProperty("mKpiMin", m_mKpiMin = 1665.);
72 declareProperty("mKpiMax", m_mKpiMax = 2065.);
73 //
74 declareProperty("delta_m_Max", m_delta_m_Max = 220.);
75 //
76 declareProperty("DstarMu_m_Max", m_DstarMu_m_Max = 12000.);
77}
Base class for event generator filtering modules.
Definition GenFilter.h:30

◆ ~MuDstarFilter()

MuDstarFilter::~MuDstarFilter ( )
virtual

Definition at line 80 of file MuDstarFilter.cxx.

80 {
81 //--------------------------------------------------------------------------
82
83}

Member Function Documentation

◆ ATLAS_NOT_CONST_THREAD_SAFE() [1/2]

McEventCollection *events GenBase::ATLAS_NOT_CONST_THREAD_SAFE ( )
inherited

Access the current event's McEventCollection.

Note
This function will make a new McEventCollection if there is not already a valid one and MakeMcEvent=True.

◆ ATLAS_NOT_CONST_THREAD_SAFE() [2/2]

HepMC::GenEvent *event GenBase::ATLAS_NOT_CONST_THREAD_SAFE ( )
inlineinherited

Access the current signal event (first in the McEventCollection).

Note
This function will make a new McEventCollection if there is not already a valid one and MakeMcEvent=True.

Definition at line 76 of file GenBase.h.

76 {
77 if (events()->empty())
78 ATH_MSG_ERROR("McEventCollection is empty during first event access");
79 return *(events()->begin());
80 }
#define ATH_MSG_ERROR(x)
static const Attributes_t empty

◆ declareGaudiProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareGaudiProperty ( Gaudi::Property< T, V, H > & hndl,
const SG::VarHandleKeyType &  )
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158 {
160 hndl.value(),
161 hndl.documentation());
162
163 }
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)

◆ declareProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareProperty ( Gaudi::Property< T, V, H > & t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145 {
146 typedef typename SG::HandleClassifier<T>::type htype;
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>

◆ detStore()

const ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

◆ event_const()

const HepMC::GenEvent * GenBase::event_const ( const EventContext & ctx) const
inlineinherited

Access the current signal event (const).

Definition at line 83 of file GenBase.h.

83 {
84 const McEventCollection* coll = events_const(ctx);
85 if (coll->empty())
86 ATH_MSG_ERROR("Const McEventCollection is empty during first event access");
87 return *(coll->begin());
88 }
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
bool empty() const noexcept
Returns true if the collection is empty.
const McEventCollection * events_const(const EventContext &ctx) const
Access the current event's McEventCollection (const).
Definition GenBase.h:97

◆ events_const()

const McEventCollection * GenBase::events_const ( const EventContext & ctx) const
inlineinherited

Access the current event's McEventCollection (const).

Definition at line 97 of file GenBase.h.

97 {
98 SG::ReadHandle<McEventCollection> ret = SG::makeHandle(m_mcevents_const, ctx);
99 if (!ret.isValid())
100 ATH_MSG_ERROR("No McEventCollection found in StoreGate with key " << m_mcevents_const.key());
101 return ret.cptr();
102 }
SG::ReadHandleKey< McEventCollection > m_mcevents_const
Const handle to the MC event collection.
Definition GenBase.h:145
virtual bool isValid() override final
Can the handle be successfully dereferenced?
const_pointer_type cptr()
Dereference the pointer.
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())

◆ evtStore()

ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

◆ execute()

StatusCode GenFilter::execute ( const EventContext & ctx)
virtualinherited

Execute method.

Todo
Probably the filter should only look at the first event... right?

Reimplemented from GenBase.

Definition at line 27 of file GenFilter.cxx.

27 {
28 if (events_const(ctx)->empty()) {
29 ATH_MSG_ERROR("No events found in McEventCollection");
30 return StatusCode::FAILURE;
31 } else if (events_const(ctx)->size() > 1) {
33 ATH_MSG_WARNING("More than one event in current McEventCollection -- which is valid?");
34 }
36 if (filterPassed(ctx) || m_keepAll ) {
37 ATH_MSG_DEBUG("Event passed filter");
38 m_nPass += 1;
39 } else {
40 ATH_MSG_DEBUG("Event failed filter");
41 m_nFail += 1;
42 }
43 // Bail out once we have enough events
44 if (m_nPass >= m_nNeeded && m_nNeeded > 0)
45 sc = StatusCode::FAILURE;
46 return sc;
47}
#define ATH_MSG_WARNING(x)
#define ATH_MSG_DEBUG(x)
static Double_t sc
size_t size() const
Number of registered mappings.
virtual bool filterPassed(const EventContext &ctx) const
bool m_keepAll
Definition GenFilter.h:66
int m_nPass
Definition GenFilter.h:63
int m_nNeeded
Definition GenFilter.h:65
virtual StatusCode filterEvent(const EventContext &ctx)=0
int m_nFail
Definition GenFilter.h:64
::StatusCode StatusCode
StatusCode definition for legacy code.

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase & ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ extraOutputDeps()

const DataObjIDColl & AthCommonAlgorithm< Gaudi::Algorithm >::extraOutputDeps ( ) const
overridevirtualinherited

Return the list of extra output dependencies.

This list is extended to include symlinks implied by inheritance relations.

Definition at line 89 of file AthCommonAlgorithm.cxx.

54{
55 // If we didn't find any symlinks to add, just return the collection
56 // from the base class. Otherwise, return the extended collection.
57 if (!m_extendedExtraObjects.empty()) {
59 }
61}
Common base class for algorithms.

◆ filterEvent()

StatusCode MuDstarFilter::filterEvent ( const EventContext & ctx)
virtual

Implements GenFilter.

Definition at line 126 of file MuDstarFilter.cxx.

126 {
127 //---------------------------------------------------------------------------
128
129 // Loop over all events in McEventCollection
131
132 ATH_MSG_DEBUG(" MuDstarFilter filtering ");
133
134 for (itr = events_const(ctx) -> begin(); itr != events_const(ctx) -> end(); ++itr) {
135
136 double primx = 0.;
137 double primy = 0.;
138
139 HepMC::ConstGenVertexPtr vprim = * (( * itr) -> vertices().begin());
140
141 primx = vprim -> position().x();
142 primy = vprim -> position().y();
143
144 ATH_MSG_DEBUG("MuDstarFilter: PV x, y = " << primx << " , " << primy);
145
146 int NumMuons = 0;
147 int NumDstars = 0;
148
149 std::vector < HepMC::ConstGenParticlePtr > Muons;
150
151 // Loop over all particles in the event
152 const HepMC::GenEvent * genEvt = ( * itr);
153 for (const auto & pitr: * genEvt) {
154
155 if (!MC::isPhysical(pitr)) continue; // photos history line
156
157 // muons
158 if (MC::isMuon(pitr)) {
159 if ((pitr -> momentum().perp() >= m_PtMinMuon) &&
160 (pitr -> momentum().perp() < m_PtMaxMuon) &&
161 (std::abs(pitr -> momentum().eta()) < m_EtaRangeMuon)) {
162 ++NumMuons;
163 Muons.push_back(pitr);
164 }
165 }
166 }
167
168 ATH_MSG_DEBUG( "MuDstarFilter: NumMuons = " << NumMuons);
169
170 if (NumMuons == 0) break;
171 for (const auto & pitr: * genEvt) {
172
173 if (!MC::isPhysical(pitr)) continue; // photos history line
174
175 // Dstars
176 if (std::abs(pitr -> pdg_id()) == MC::DSTAR) {
177 if ((pitr -> momentum().perp() >= m_PtMinDstar) &&
178 (pitr -> momentum().perp() < m_PtMaxDstar) &&
179 (std::abs(pitr -> momentum().eta()) < m_EtaRangeDstar)) {
180
181 //Check if has end_vertex
182 if (!(pitr -> end_vertex())) continue;
183
184 double Rxy = std::sqrt(pow(pitr -> end_vertex() -> position().x() - primx, 2) + pow(pitr -> end_vertex() -> position().y() - primy, 2));
185
186 ATH_MSG_DEBUG("MuDstarFilter: R_xy(Dstar) = " << Rxy);
187
188 if (Rxy < m_RxyMinDstar) continue;
189
190 // Child
191 auto firstChild = pitr -> end_vertex() -> particles_out().begin();
192 auto endChild = pitr -> end_vertex() -> particles_out().end();
193 auto thisChild = firstChild;
194
195 if (( * firstChild) -> pdg_id() == pitr -> pdg_id()) continue;
196
197 TLorentzVector p4_K;
198 TLorentzVector p4_pi;
199 TLorentzVector p4_pis;
200 TLorentzVector p4_D0;
201 TLorentzVector p4_Dstar;
202 TLorentzVector p4_Mu;
203 TLorentzVector p4_DstarMu;
204
205 int pis_pdg = 0;
206 int K_pdg = 0;
207
208 int NumD0 = 0;
209 int NumPis = 0;
210
211 for (; thisChild != endChild; ++thisChild) {
212
213 if (!MC::isPhysical(*thisChild)) continue; // photos history line
214
215 if (std::abs(( * thisChild) -> pdg_id()) == MC::PIPLUS) {
216 if ((( * thisChild) -> momentum().perp() >= m_PtMinPis) &&
217 (( * thisChild) -> momentum().perp() < m_PtMaxPis) &&
218 (std::abs(( * thisChild) -> momentum().eta()) < m_EtaRangePis)) {
219 ++NumPis;
220
221 p4_pis.SetPtEtaPhiM(( * thisChild) -> momentum().perp(), ( * thisChild) -> momentum().eta(), ( * thisChild) -> momentum().phi(), m_PionMass);
222 pis_pdg = ( * thisChild) -> pdg_id();
223 }
224 }
225 } // thisChild
226
227 ATH_MSG_DEBUG("MuDstarFilter: NumPis = " << NumPis );
228
229 if (NumPis != 1) continue;
230
231 HepMC::ConstGenParticlePtr D0Child1 = 0;
232 HepMC::ConstGenParticlePtr D0Child2 = 0;
233 HepMC::ConstGenParticlePtr D0ChildMu = 0;
234
235 int NumChildD0 = 0;
236 int NumChildD0Charged = 0;
237 int NumChildD0neutrinos = 0;
238 int NumChildD0gammas = 0;
239 int ChargeD0Child1 = 0;
240 int ChargeD0Child2 = 0;
241 int NumChildD0K = 0;
242 int NumChildD0pi = 0;
243 int NumChildD0mu = 0;
244
245 for (thisChild = firstChild; thisChild != endChild; ++thisChild) {
246
247 if (!MC::isPhysical(*thisChild)) continue; // photos history line
248
249 if (std::abs(( * thisChild) -> pdg_id()) == MC::D0) {
250 if ((( * thisChild) -> end_vertex())) {
251 auto firstChild1 = ( * thisChild) -> end_vertex() -> particles_out().begin();
252 auto endChild1 = ( * thisChild) -> end_vertex() -> particles_out().end();
253 auto thisChild1 = firstChild1;
254
255 for (; thisChild1 != endChild1; ++thisChild1) {
256
257 if (!MC::isPhysical(*thisChild1)) continue; // photos history line
258
259 if (std::abs(( * thisChild1) -> pdg_id()) == MC::ELECTRON || std::abs(( * thisChild1) -> pdg_id()) == MC::MUON ||
260 std::abs(( * thisChild1) -> pdg_id()) == MC::PIPLUS || std::abs(( * thisChild1) -> pdg_id()) == MC::KPLUS) {
261
262 ++NumChildD0;
263
264 if ((( * thisChild1) -> momentum().perp() >= m_PtMinKpi) &&
265 (( * thisChild1) -> momentum().perp() < m_PtMaxKpi) &&
266 (std::abs(( * thisChild1) -> momentum().eta()) < m_EtaRangeKpi)) {
267 ++NumChildD0Charged;
268
269 if (NumChildD0Charged == 1) {
270 D0Child1 = ( * thisChild1);
271 if (( * thisChild1) -> pdg_id() == -MC::ELECTRON || ( * thisChild1) -> pdg_id() == -MC::MUON ||
272 ( * thisChild1) -> pdg_id() == MC::PIPLUS || ( * thisChild1) -> pdg_id() == MC::KPLUS) {
273 ChargeD0Child1 = +1;
274 } else {
275 ChargeD0Child1 = -1;
276 }
277 }
278 if (NumChildD0Charged == 2) {
279 D0Child2 = ( * thisChild1);
280 if (( * thisChild1) -> pdg_id() == -MC::ELECTRON || ( * thisChild1) -> pdg_id() == -MC::MUON ||
281 ( * thisChild1) -> pdg_id() == MC::PIPLUS || ( * thisChild1) -> pdg_id() == MC::KPLUS) {
282 ChargeD0Child2 = +1;
283 } else {
284 ChargeD0Child2 = -1;
285 }
286 }
287 if (std::abs(( * thisChild1) -> pdg_id()) == MC::MUON) {
288 ++NumChildD0mu;
289 D0ChildMu = ( * thisChild1);
290 }
291 if (std::abs(( * thisChild1) -> pdg_id()) == MC::PIPLUS) ++NumChildD0pi;
292 if (std::abs(( * thisChild1) -> pdg_id()) == MC::KPLUS) {
293 ++NumChildD0K;
294 K_pdg = ( * thisChild1) -> pdg_id();
295 }
296 }
297
298 } else if (std::abs(( * thisChild1) -> pdg_id()) == MC::PI0) {
299 ++NumChildD0;
300 } else if (std::abs(( * thisChild1) -> pdg_id()) == MC::NU_E || std::abs(( * thisChild1) -> pdg_id()) == MC::NU_MU) {
301 ++NumChildD0neutrinos;
302 } else if (std::abs(( * thisChild1) -> pdg_id()) == MC::PHOTON) {
303 ++NumChildD0gammas;
304 } else if (std::abs(( * thisChild1) -> pdg_id()) == MC::K0 || std::abs(( * thisChild1) -> pdg_id()) == MC::K0L ||
305 std::abs(( * thisChild1) -> pdg_id()) == MC::K0S) {
306 ++NumChildD0;
307 ++NumChildD0;
308 } else if ((( * thisChild1) -> end_vertex())) {
309
310 //
311 auto firstChild2 = ( * thisChild1) -> end_vertex() -> particles_out().begin();
312 auto endChild2 = ( * thisChild1) -> end_vertex() -> particles_out().end();
313 auto thisChild2 = firstChild2;
314 for (; thisChild2 != endChild2; ++thisChild2) {
315
316 if (!MC::isPhysical(*thisChild2)) continue; // photos history line
317
318 if (std::abs(( * thisChild2) -> pdg_id()) == MC::ELECTRON || std::abs(( * thisChild2) -> pdg_id()) == MC::MUON ||
319 std::abs(( * thisChild2) -> pdg_id()) == MC::PIPLUS || std::abs(( * thisChild2) -> pdg_id()) == MC::KPLUS) {
320
321 ++NumChildD0;
322
323 if ((( * thisChild2) -> momentum().perp() >= m_PtMinKpi) &&
324 (( * thisChild2) -> momentum().perp() < m_PtMaxKpi) &&
325 (std::abs(( * thisChild2) -> momentum().eta()) < m_EtaRangeKpi)) {
326 ++NumChildD0Charged;
327
328 if (NumChildD0Charged == 1) {
329 D0Child1 = ( * thisChild2);
330 if (( * thisChild2) -> pdg_id() == -MC::ELECTRON || ( * thisChild2) -> pdg_id() == -MC::MUON ||
331 ( * thisChild2) -> pdg_id() == MC::PIPLUS || ( * thisChild2) -> pdg_id() == MC::KPLUS) {
332 ChargeD0Child1 = +1;
333 } else {
334 ChargeD0Child1 = -1;
335 }
336 }
337 if (NumChildD0Charged == 2) {
338 D0Child2 = ( * thisChild2);
339 if (( * thisChild2) -> pdg_id() == -MC::ELECTRON || ( * thisChild2) -> pdg_id() == -MC::MUON ||
340 ( * thisChild2) -> pdg_id() == MC::PIPLUS || ( * thisChild2) -> pdg_id() == MC::KPLUS) {
341 ChargeD0Child2 = +1;
342 } else {
343 ChargeD0Child2 = -1;
344 }
345 }
346 if (std::abs(( * thisChild2) -> pdg_id()) == MC::MUON) {
347 ++NumChildD0mu;
348 D0ChildMu = ( * thisChild2);
349 }
350 }
351
352 } else if (std::abs(( * thisChild2) -> pdg_id()) == MC::PI0) {
353 ++NumChildD0;
354 } else if (std::abs(( * thisChild2) -> pdg_id()) == MC::NU_E || std::abs(( * thisChild2) -> pdg_id()) == MC::NU_MU) {
355 ++NumChildD0neutrinos;
356 } else if (std::abs(( * thisChild2) -> pdg_id()) == MC::PHOTON) {
357 ++NumChildD0gammas;
358 } else if (std::abs(( * thisChild2) -> pdg_id()) == MC::K0 || std::abs(( * thisChild2) -> pdg_id()) == MC::K0L ||
359 std::abs(( * thisChild2) -> pdg_id()) == MC::K0S) {
360 ++NumChildD0;
361 ++NumChildD0;
362 } else if ((( * thisChild2) -> end_vertex())) {
363 ++NumChildD0;
364 ++NumChildD0;
365 } else {
366 ++NumChildD0;
367 ++NumChildD0;
368 ATH_MSG_DEBUG("MuDstarFilter: unexpected D0 granddaughter = " << (*thisChild2)->pdg_id() );
369 }
370 } // thisChild2
371
372 } else {
373 ++NumChildD0;
374 ++NumChildD0;
375 ATH_MSG_DEBUG("MuDstarFilter: unexpected D0 daughter = " << (*thisChild1)->pdg_id() );
376 }
377 } // thisChild1
378
379 ATH_MSG_DEBUG("MuDstarFilter: NumChildD0, NumChildD0Charged = " << NumChildD0 << " , " << NumChildD0Charged);
380
381 if (NumChildD0 <= 3 && NumChildD0Charged == 2 && ChargeD0Child1 * ChargeD0Child2 < 0) {
382 if (m_D0Kpi_only) {
383 if (NumChildD0 == 2 && NumChildD0K == 1 && NumChildD0pi == 1) ++NumD0;
384 } else {
385 ++NumD0;
386 }
387 }
388 } // enVertex
389 } // D0
390
391 ATH_MSG_DEBUG("MuDstarFilter: NumD0 = " << NumD0 );
392
393 if (NumD0 == 1) {
394
395 if (pis_pdg * ChargeD0Child1 < 0) {
396
397 p4_K.SetPtEtaPhiM(D0Child1 -> momentum().perp(), D0Child1 -> momentum().eta(), D0Child1 -> momentum().phi(), m_KaonMass);
398 p4_pi.SetPtEtaPhiM(D0Child2 -> momentum().perp(), D0Child2 -> momentum().eta(), D0Child2 -> momentum().phi(), m_PionMass);
399
400 } else {
401
402 p4_K.SetPtEtaPhiM(D0Child2 -> momentum().perp(), D0Child2 -> momentum().eta(), D0Child2 -> momentum().phi(), m_KaonMass);
403 p4_pi.SetPtEtaPhiM(D0Child1 -> momentum().perp(), D0Child1 -> momentum().eta(), D0Child1 -> momentum().phi(), m_PionMass);
404 }
405
406 p4_D0 = p4_K + p4_pi;
407 double mKpi = p4_D0.M();
408
409 ATH_MSG_DEBUG("MuDstarFilter: mKpi = " << mKpi );
410
411 if (mKpi >= m_mKpiMin && mKpi <= m_mKpiMax) {
412
413 p4_Dstar = p4_D0 + p4_pis;
414
415 double delta_m = p4_Dstar.M() - mKpi;
416
417 ATH_MSG_DEBUG("MuDstarFilter: delta_m = " << delta_m );
418
419 if (delta_m <= m_delta_m_Max) {
420 ++NumDstars;
421
422 ATH_MSG_DEBUG("MuDstarFilter: NumDstars = " << NumDstars );
423
424 for (size_t i = 0; i < Muons.size(); ++i) {
425
426 if (NumChildD0mu == 1) {
427 ATH_MSG_DEBUG("MuDstarFilter: Mu(pT), D0Mu(pT) = " << Muons[i]->momentum().perp() << " , " << D0ChildMu->momentum().perp());
428 if (std::fabs(Muons[i] -> momentum().perp() - D0ChildMu -> momentum().perp())< std::numeric_limits<double>::epsilon()) continue;
429 ATH_MSG_DEBUG("MuDstarFilter: Mu(pT), D0Mu(pT) = " << Muons[i]->momentum().perp() << " , " << D0ChildMu->momentum().perp() ) ;
430 }
431
432 p4_Mu.SetPtEtaPhiM(Muons[i] -> momentum().perp(), Muons[i] -> momentum().eta(), Muons[i] -> momentum().phi(), m_MuonMass);
433
434 p4_DstarMu = p4_Dstar + p4_Mu;
435
436 ATH_MSG_DEBUG("MuDstarFilter: p4_DstarMu.M() = " << p4_DstarMu.M());
437
438 if (p4_DstarMu.M() <= m_DstarMu_m_Max) {
439
440 ATH_MSG_INFO("MuDstarFilter: MuDstar candidate found" );
441 ATH_MSG_INFO("MuDstarFilter: p4_DstarMu.M() = " << p4_DstarMu.M() );
442 ATH_MSG_INFO("MuDstarFilter: NumChildD0, NumChildD0Charged = " << NumChildD0 << " , " << NumChildD0Charged );
443 ATH_MSG_INFO("MuDstarFilter: NumChildD0K, NumChildD0pi, NumChildD0mu = " << NumChildD0K << " , " << NumChildD0pi << " , " << NumChildD0mu );
444
445 if (NumChildD0mu == 1) {
446
447 ATH_MSG_DEBUG("MuDstarFilter: Mu(pT), D0Mu(pT) = " << Muons[i]->momentum().perp() << " , " << D0ChildMu->momentum().perp() );
448 }
449
450 ATH_MSG_INFO("MuDstarFilter: NumChildD0neutrinos, NumChildD0gammas = " << NumChildD0neutrinos << " , " << NumChildD0gammas );
451 ATH_MSG_INFO("MuDstarFilter: pis_pdg, K_pdg, ChargeD0Child1, ChargeD0Child2 = " << pis_pdg << " , " << K_pdg << " , " << ChargeD0Child1 << " , " << ChargeD0Child2 );
452
453 setFilterPassed(true, ctx);
454 return StatusCode::SUCCESS;
455 }
456 } // for i
457
458 } //delta_m
459 } // mKpi
460 } // NumD0
461 } // thisChild
462 } // PtMinDstar
463 } // DSTAR
464 } // pitr
465 } // itr
466
467 //
468 // if we get here we have failed
469 //
470 setFilterPassed(false, ctx);
471 return StatusCode::SUCCESS;
472}
Scalar eta() const
pseudorapidity method
Scalar perp() const
perp method - perpendicular length
Scalar phi() const
phi method
#define ATH_MSG_INFO(x)
#define y
#define x
virtual void setFilterPassed(bool state, const EventContext &ctx) const
DataModel_detail::const_iterator< DataVector > const_iterator
Definition DataVector.h:838
HepMC3::ConstGenParticlePtr ConstGenParticlePtr
Definition GenParticle.h:20
HepMC3::ConstGenVertexPtr ConstGenVertexPtr
Definition GenVertex.h:24
HepMC3::GenEvent GenEvent
Definition GenEvent.h:39
static const int PI0
static const int KPLUS
static const int MUON
static const int K0
static const int PHOTON
static const int ELECTRON
static const int K0L
static const int K0S
static const int DSTAR
static const int PIPLUS
bool isMuon(const T &p)
static const int NU_MU
static const int NU_E
static const int D0
bool isPhysical(const T &p)
Identify if the particle is physical, i.e. is stable or decayed.
Definition Muons.py:1
const Amg::Vector3D & position() const
Method to retrieve the position of the Intersection.
constexpr int pow(int x)
Definition conifer.h:27

◆ filterFinalize()

StatusCode MuDstarFilter::filterFinalize ( )
virtual

Reimplemented from GenFilter.

Definition at line 120 of file MuDstarFilter.cxx.

120 {
121 //---------------------------------------------------------------------------
122 return StatusCode::SUCCESS;
123}

◆ filterInitialize()

StatusCode MuDstarFilter::filterInitialize ( )
virtual

Reimplemented from GenFilter.

Definition at line 86 of file MuDstarFilter.cxx.

86 {
87 //---------------------------------------------------------------------------
88 ATH_MSG_INFO( "MuDstarFilter v1.02 INITIALISING " );
89
90 ATH_MSG_INFO( "PtMinMuon = " << m_PtMinMuon );
91 ATH_MSG_INFO( "PtMaxMuon = " << m_PtMaxMuon );
92 ATH_MSG_INFO( "EtaRangeMuon = " << m_EtaRangeMuon );
93
94 ATH_MSG_INFO( "PtMinDstar = " << m_PtMinDstar );
95 ATH_MSG_INFO( "PtMaxDstar = " << m_PtMaxDstar );
96 ATH_MSG_INFO( "EtaRangeDstar = " << m_EtaRangeDstar );
97
98 ATH_MSG_INFO( "RxyMinDstar = " << m_RxyMinDstar );
99
100 ATH_MSG_INFO( "PtMinPis = " << m_PtMinPis );
101 ATH_MSG_INFO( "PtMaxPis = " << m_PtMaxPis );
102 ATH_MSG_INFO( "EtaRangePis = " << m_EtaRangePis );
103
104 ATH_MSG_INFO( "D0Kpi_only = " << m_D0Kpi_only );
105 ATH_MSG_INFO( "PtMinKpi = " << m_PtMinKpi );
106 ATH_MSG_INFO( "PtMaxKpi = " << m_PtMaxKpi );
107 ATH_MSG_INFO( "EtaRangeKpi = " << m_EtaRangeKpi );
108
109 ATH_MSG_INFO( "mKpiMin = " << m_mKpiMin );
110 ATH_MSG_INFO( "mKpiMax = " << m_mKpiMax );
111
112 ATH_MSG_INFO( "delta_m_Max = " << m_delta_m_Max );
113
114 ATH_MSG_INFO( "DstarMu_m_Max = " << m_DstarMu_m_Max );
115
116 return StatusCode::SUCCESS;
117}

◆ filterPassed()

virtual bool AthCommonAlgorithm< Gaudi::Algorithm >::filterPassed ( const EventContext & ctx) const
inlinevirtualinherited

Get filter decision:

Definition at line 93 of file AthCommonAlgorithm.h.

93 {
94 return execState( ctx ).filterPassed();
95 }

◆ finalize()

StatusCode GenFilter::finalize ( )
inherited

Definition at line 50 of file GenFilter.cxx.

50 {
51 ATH_MSG_INFO("Events passed = " << m_nPass << " Events failed = " << m_nFail);
53 return StatusCode::SUCCESS;
54}
#define CHECK(...)
Evaluate an expression and check for errors.
virtual StatusCode filterFinalize()
Definition GenFilter.h:47

◆ initialize()

StatusCode GenFilter::initialize ( )
virtualinherited

Reimplemented from GenBase.

Definition at line 18 of file GenFilter.cxx.

18 {
20 m_nPass = 0;
21 m_nFail = 0;
23 return StatusCode::SUCCESS;
24}
virtual StatusCode initialize() override
Definition GenBase.cxx:17
virtual StatusCode filterInitialize()
Definition GenFilter.h:45

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ isClonable()

virtual bool AthCommonAlgorithm< Gaudi::Algorithm >::isClonable ( ) const
inlineoverridevirtualinherited

Specify if the algorithm is clonable.

Only relevant for non-reentrant algorithms. Actual number of clones needs to be set via the "Cardinality" property.

Reimplemented in AFP_DigiTop, AlgB, AlgT, BCM_Digitization, CscDigitBuilder, CscDigitToCscRDO, G4AtlasAlg, G4RunAlg, HGTD_Digitization, HiveAlgBase, InDet::GNNSeedingTrackMaker, InDet::SCT_Clusterization, InDet::SiSPGNNTrackMaker, InDet::SiSPSeededTrackFinder, InDet::SiTrackerSpacePointFinder, ISF::SimKernelMT, ITk::StripDigitization, ITkPixelCablingAlg, ITkStripCablingAlg, LArHitEMapMaker, LArTTL1Maker, LUCID_DigiTop, LVL1::L1TopoSimulation, MergeCalibHits, MergeGenericMuonSimHitColl, MergeHijingPars, MergeMcEventCollection, MergeTrackRecordCollection, MergeTruthJets, MergeTruthParticles, MuonDigitizer, PileUpMTAlg, PixelDigitization, RoIBResultToxAOD, SCT_ByteStreamErrorsTestAlg, SCT_CablingCondAlgFromCoraCool, SCT_CablingCondAlgFromText, SCT_ConditionsParameterTestAlg, SCT_ConditionsSummaryTestAlg, SCT_ConfigurationConditionsTestAlg, SCT_Digitization, SCT_FlaggedConditionTestAlg, SCT_LinkMaskingTestAlg, SCT_MajorityConditionsTestAlg, SCT_ModuleVetoTestAlg, SCT_MonitorConditionsTestAlg, SCT_PrepDataToxAOD, SCT_RawDataToxAOD, SCT_ReadCalibChipDataTestAlg, SCT_ReadCalibDataTestAlg, SCT_RODVetoTestAlg, SCT_SensorsTestAlg, SCT_SiliconConditionsTestAlg, SCT_StripVetoTestAlg, SCT_TdaqEnabledTestAlg, SCT_TestCablingAlg, SCTEventFlagWriter, SCTRawDataProvider, SCTSiLorentzAngleTestAlg, SCTSiPropertiesTestAlg, SGInputLoader, Simulation::BeamEffectsAlg, TileHitVecToCnt, TileMuonFitter, TilePulseForTileMuonReceiver, TileRawChannelMaker, TRTDigitization, and ZDC_DigiTop.

Definition at line 68 of file AthCommonAlgorithm.h.

68 {
69 return true;
70 }

◆ isReEntrant()

virtual bool AthAlgorithm::isReEntrant ( ) const
inlinefinaloverrideprotectedvirtualinherited

Legacy algorithms are not thread-safe.

Definition at line 47 of file AthAlgorithm.h.

47{ return false; }

◆ keepAll()

bool GenFilter::keepAll ( ) const
inlineinherited

Definition at line 55 of file GenFilter.h.

55{return m_keepAll; }

◆ msg()

MsgStream & AthCommonMsg< Gaudi::Algorithm >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24 {
25 return this->msgStream();
26 }

◆ msgLvl()

bool AthCommonMsg< Gaudi::Algorithm >::msgLvl ( const MSG::Level lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30 {
31 return this->msgLevel(lvl);
32 }

◆ nFailed()

int GenFilter::nFailed ( ) const
inlineinherited

Definition at line 53 of file GenFilter.h.

53{ return m_nFail; }

◆ nNeeded()

int GenFilter::nNeeded ( ) const
inlineinherited

Definition at line 54 of file GenFilter.h.

54{ return m_nNeeded; }

◆ nPassed()

int GenFilter::nPassed ( ) const
inlineinherited

Definition at line 52 of file GenFilter.h.

52{ return m_nPass; }

◆ outputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ particleData()

const HepPDT::ParticleData * GenBase::particleData ( int pid) const
inlineinherited

Access an element in the particle data table.

Definition at line 124 of file GenBase.h.

124 {
125 return pdt().particle(HepPDT::ParticleID(std::abs(pid)));
126 }
const HepPDT::ParticleDataTable & pdt() const
Shorter alias to get a particle data table.
Definition GenBase.h:121

◆ particleTable()

const HepPDT::ParticleDataTable & GenBase::particleTable ( ) const
inlineinherited

Get a particle data table.

Definition at line 116 of file GenBase.h.

116 {
117 return *(m_ppSvc->PDT());
118 }
ServiceHandle< IPartPropSvc > m_ppSvc
Handle on the particle property service.
Definition GenBase.h:142

◆ partPropSvc()

const ServiceHandle< IPartPropSvc > GenBase::partPropSvc ( ) const
inlineinherited

Access the particle property service.

Definition at line 111 of file GenBase.h.

111 {
112 return m_ppSvc;
113 }

◆ pdt()

const HepPDT::ParticleDataTable & GenBase::pdt ( ) const
inlineinherited

Shorter alias to get a particle data table.

Definition at line 121 of file GenBase.h.

121{ return particleTable(); }
const HepPDT::ParticleDataTable & particleTable() const
Get a particle data table.
Definition GenBase.h:116

◆ renounce()

std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::renounce ( T & h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381 {
382 h.renounce();
384 }
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce(T &h)

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::renounceArray ( SG::VarHandleKeyArray & handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ setFilterPassed()

virtual void AthCommonAlgorithm< Gaudi::Algorithm >::setFilterPassed ( bool state,
const EventContext & ctx ) const
inlinevirtualinherited

Set filter decision:

Reimplemented in AthFilterAlgorithm.

Definition at line 99 of file AthCommonAlgorithm.h.

99 {
101 }

◆ sysExecute()

StatusCode AthCommonAlgorithm< Gaudi::Algorithm >::sysExecute ( const EventContext & ctx)
overridevirtualinherited

Execute an algorithm.

We override this in order to work around an issue with the Algorithm base class storing the event context in a member variable that can cause crashes in MT jobs.

Reimplemented in AthAnalysisAlgorithm.

Definition at line 80 of file AthCommonAlgorithm.cxx.

41{
42 return BaseAlg::sysExecute (ctx);
43}

◆ sysInitialize()

StatusCode AthCommonAlgorithm< Gaudi::Algorithm >::sysInitialize ( )
overridevirtualinherited

Override sysInitialize.

Override sysInitialize from the base class.

Loop through all output handles, and if they're WriteCondHandles, automatically register them and this Algorithm with the CondSvc

Scan through all outputHandles, and if they're WriteCondHandles, register them with the CondSvc

Reimplemented from AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >.

Reimplemented in AthAnalysisAlgorithm, AthFilterAlgorithm, AthHistogramAlgorithm, HypoBase, InputMakerBase, and PyAthena::Alg.

Definition at line 60 of file AthCommonAlgorithm.cxx.

71 {
73
74 if (sc.isFailure()) {
75 return sc;
76 }
77
78 ServiceHandle<ICondSvc> cs("CondSvc",name());
79 for (auto h : outputHandles()) {
80 if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
81 // do this inside the loop so we don't create the CondSvc until needed
82 if ( cs.retrieve().isFailure() ) {
83 ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
85 }
86 if (cs->regHandle(this,*h).isFailure()) {
88 ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
89 << " with CondSvc");
90 }
91 }
92 }
93 return sc;
94}
virtual StatusCode sysInitialize() override
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::updateVHKA ( Gaudi::Details::PropertyBase & )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308 {
309 // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310 // << " size: " << m_vhka.size() << endmsg;
311 for (auto &a : m_vhka) {
313 for (auto k : keys) {
314 k->setOwner(this);
315 }
316 }
317 }

Member Data Documentation

◆ D0Kpi_only

MuDstarFilter.D0Kpi_only

Definition at line 16 of file MuDstarFilter.py.

◆ delta_m_Max

MuDstarFilter.delta_m_Max

Definition at line 22 of file MuDstarFilter.py.

◆ DstarMu_m_Max

MuDstarFilter.DstarMu_m_Max

Definition at line 23 of file MuDstarFilter.py.

◆ EtaRangeDstar

MuDstarFilter.EtaRangeDstar

Definition at line 11 of file MuDstarFilter.py.

◆ EtaRangeKpi

MuDstarFilter.EtaRangeKpi

Definition at line 19 of file MuDstarFilter.py.

◆ EtaRangeMuon

MuDstarFilter.EtaRangeMuon

Definition at line 8 of file MuDstarFilter.py.

◆ EtaRangePis

MuDstarFilter.EtaRangePis

Definition at line 15 of file MuDstarFilter.py.

◆ m_D0Kpi_only

bool MuDstarFilter::m_D0Kpi_only
private

Definition at line 67 of file MuDstarFilter.h.

◆ m_delta_m_Max

double MuDstarFilter::m_delta_m_Max
private

Definition at line 72 of file MuDstarFilter.h.

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default).

Definition at line 393 of file AthCommonDataStore.h.

◆ m_DstarMu_m_Max

double MuDstarFilter::m_DstarMu_m_Max
private

Definition at line 74 of file MuDstarFilter.h.

◆ m_EtaRangeDstar

double MuDstarFilter::m_EtaRangeDstar
private

Definition at line 56 of file MuDstarFilter.h.

◆ m_EtaRangeKpi

double MuDstarFilter::m_EtaRangeKpi
private

Definition at line 65 of file MuDstarFilter.h.

◆ m_EtaRangeMuon

double MuDstarFilter::m_EtaRangeMuon
private

Definition at line 52 of file MuDstarFilter.h.

◆ m_EtaRangePis

double MuDstarFilter::m_EtaRangePis
private

Definition at line 61 of file MuDstarFilter.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default).

Definition at line 390 of file AthCommonDataStore.h.

◆ m_extendedExtraObjects

DataObjIDColl AthCommonAlgorithm< Gaudi::Algorithm >::m_extendedExtraObjects
privateinherited

Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.

Empty if no symlinks were found.

Definition at line 108 of file AthCommonAlgorithm.h.

◆ m_KaonMass

const double MuDstarFilter::m_KaonMass = ParticleConstants::chargedKaonMassInMeV
private

Definition at line 79 of file MuDstarFilter.h.

◆ m_keepAll

bool GenFilter::m_keepAll
protectedinherited

Definition at line 66 of file GenFilter.h.

◆ m_mcEventKey

std::string GenBase::m_mcEventKey {}
protectedinherited

StoreGate key for the MC event collection (defaults to GEN_EVENT).

Definition at line 134 of file GenBase.h.

134{};

◆ m_mcevents_const

SG::ReadHandleKey<McEventCollection> GenBase::m_mcevents_const { this, "McEventKey", "GEN_EVENT", "StoreGate key of the MC event collection" }
privateinherited

Const handle to the MC event collection.

Definition at line 145 of file GenBase.h.

145{ this, "McEventKey", "GEN_EVENT", "StoreGate key of the MC event collection" };

◆ m_mkMcEvent

BooleanProperty GenBase::m_mkMcEvent {this, "MakeMcEvent", false, "Create a new MC event collection if it doesn't exist"}
protectedinherited

Flag to determine if a new MC event collection should be made if it doesn't exist.

Definition at line 136 of file GenBase.h.

136{this, "MakeMcEvent", false, "Create a new MC event collection if it doesn't exist"};

◆ m_mKpiMax

double MuDstarFilter::m_mKpiMax
private

Definition at line 70 of file MuDstarFilter.h.

◆ m_mKpiMin

double MuDstarFilter::m_mKpiMin
private

Definition at line 69 of file MuDstarFilter.h.

◆ m_MuonMass

const double MuDstarFilter::m_MuonMass = ParticleConstants::muonMassInMeV
private

Definition at line 77 of file MuDstarFilter.h.

◆ m_nFail

int GenFilter::m_nFail
protectedinherited

Definition at line 64 of file GenFilter.h.

◆ m_nNeeded

int GenFilter::m_nNeeded
protectedinherited

Definition at line 65 of file GenFilter.h.

◆ m_nPass

int GenFilter::m_nPass
protectedinherited

Definition at line 63 of file GenFilter.h.

◆ m_PionMass

const double MuDstarFilter::m_PionMass = ParticleConstants::chargedPionMassInMeV
private

Definition at line 78 of file MuDstarFilter.h.

◆ m_ppSvc

ServiceHandle<IPartPropSvc> GenBase::m_ppSvc {this, "PartPropSvc", "PartPropSvc"}
privateinherited

Handle on the particle property service.

Definition at line 142 of file GenBase.h.

142{this, "PartPropSvc", "PartPropSvc"};

◆ m_PtMaxDstar

double MuDstarFilter::m_PtMaxDstar
private

Definition at line 55 of file MuDstarFilter.h.

◆ m_PtMaxKpi

double MuDstarFilter::m_PtMaxKpi
private

Definition at line 64 of file MuDstarFilter.h.

◆ m_PtMaxMuon

double MuDstarFilter::m_PtMaxMuon
private

Definition at line 51 of file MuDstarFilter.h.

◆ m_PtMaxPis

double MuDstarFilter::m_PtMaxPis
private

Definition at line 60 of file MuDstarFilter.h.

◆ m_PtMinDstar

double MuDstarFilter::m_PtMinDstar
private

Definition at line 54 of file MuDstarFilter.h.

◆ m_PtMinKpi

double MuDstarFilter::m_PtMinKpi
private

Definition at line 63 of file MuDstarFilter.h.

◆ m_PtMinMuon

double MuDstarFilter::m_PtMinMuon
private

Definition at line 50 of file MuDstarFilter.h.

◆ m_PtMinPis

double MuDstarFilter::m_PtMinPis
private

Definition at line 59 of file MuDstarFilter.h.

◆ m_RxyMinDstar

double MuDstarFilter::m_RxyMinDstar
private

Definition at line 57 of file MuDstarFilter.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.

◆ mKpiMax

MuDstarFilter.mKpiMax

Definition at line 21 of file MuDstarFilter.py.

◆ mKpiMin

MuDstarFilter.mKpiMin

Definition at line 20 of file MuDstarFilter.py.

◆ PtMaxDstar

MuDstarFilter.PtMaxDstar

Definition at line 10 of file MuDstarFilter.py.

◆ PtMaxKpi

MuDstarFilter.PtMaxKpi

Definition at line 18 of file MuDstarFilter.py.

◆ PtMaxMuon

MuDstarFilter.PtMaxMuon

Definition at line 7 of file MuDstarFilter.py.

◆ PtMaxPis

MuDstarFilter.PtMaxPis

Definition at line 14 of file MuDstarFilter.py.

◆ PtMinDstar

MuDstarFilter.PtMinDstar

Definition at line 9 of file MuDstarFilter.py.

◆ PtMinKpi

MuDstarFilter.PtMinKpi

Definition at line 17 of file MuDstarFilter.py.

◆ PtMinMuon

MuDstarFilter.PtMinMuon

Default cut params.

Definition at line 6 of file MuDstarFilter.py.

◆ PtMinPis

MuDstarFilter.PtMinPis

Definition at line 13 of file MuDstarFilter.py.

◆ RxyMinDstar

MuDstarFilter.RxyMinDstar

Definition at line 12 of file MuDstarFilter.py.


The documentation for this class was generated from the following files: