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

#include <xAODMuDstarFilter.h>

Inheritance diagram for xAODMuDstarFilter:
Collaboration diagram for xAODMuDstarFilter:

Public Member Functions

 xAODMuDstarFilter (const std::string &name, ISvcLocator *pSvcLocator)
virtual ~xAODMuDstarFilter ()
virtual StatusCode filterInitialize ()
virtual StatusCode filterEvent ()
virtual StatusCode sysInitialize () override
 Override sysInitialize.
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies.
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 ()
StatusCode finalize ()
Gen-specific event loop methods: to be overloaded!
virtual StatusCode filterFinalize ()
Counters
int nPassed () const
int nFailed () const
int nNeeded () 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::GenEvent * event_const () const
 Access the current signal event (const)
const McEventCollectionevents_const () const
 Access the current event's McEventCollection (const)
const McEventCollectionevents_const (const EventContext &ctx) 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.

Protected Member Functions

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
Properties
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.

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

Gaudi::Property< double > m_PtMinMuon {this,"PtMinMuon", 2500.}
Gaudi::Property< double > m_PtMaxMuon {this,"PtMaxMuon", 1e9}
Gaudi::Property< double > m_EtaRangeMuon {this,"EtaRangeMuon", 2.7}
Gaudi::Property< double > m_PtMinDstar {this,"PtMinDstar", 4500.}
Gaudi::Property< double > m_PtMaxDstar {this,"PtMaxDstar", 1e9}
Gaudi::Property< double > m_EtaRangeDstar {this, "EtaRangeDstar", 2.7}
Gaudi::Property< double > m_RxyMinDstar {this, "RxyMinDstar", -1e9}
Gaudi::Property< double > m_PtMinPis {this, "PtMinPis", 450.}
Gaudi::Property< double > m_PtMaxPis {this, "PtMaxPis", 1e9}
Gaudi::Property< double > m_EtaRangePis {this, "EtaRangePis", 2.7}
Gaudi::Property< double > m_PtMinKpi {this, "PtMinKpi", 900.}
Gaudi::Property< double > m_PtMaxKpi {this, "PtMaxKpi", 1e9}
Gaudi::Property< double > m_EtaRangeKpi {this, "EtaRangeKpi", 2.7}
Gaudi::Property< bool > m_D0Kpi_only {this, "D0Kpi_only", false}
Gaudi::Property< double > m_mKpiMin {this, "mKpiMin", 1665.}
Gaudi::Property< double > m_mKpiMax {this, "mKpiMax", 2065.}
Gaudi::Property< double > m_delta_m_Max {this, "delta_m_Max", 220.}
Gaudi::Property< double > m_DstarMu_m_Max {this, "DstarMu_m_Max", 12000.}
const double m_MuonMass = ParticleConstants::muonMassInMeV
const double m_PionMass = ParticleConstants::chargedPionMassInMeV
const double m_KaonMass = ParticleConstants::chargedKaonMassInMeV
SG::ReadHandleKey< xAOD::TruthParticleContainerm_xaodTruthParticleContainerNameGenKey {this, "TruthParticlesKey", "TruthGen", "ReadHandleKey for the xAODTruthParticlesGen"}
DataObjIDColl m_extendedExtraObjects
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

Utility event-mangling functions

Todo
Replace with HepMC units when available
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.
void GeVToMeV (HepMC::GenEvent *evt)
 Scale event energies/momenta by x 1000.
void MeVToGeV (HepMC::GenEvent *evt)
 Scale event energies/momenta by x 1/1000.
void cmTomm (HepMC::GenEvent *evt)
 Scale event lengths by x 10.
void mmTocm (HepMC::GenEvent *evt)
 Scale event lengths by x 1/10.

Detailed Description

Definition at line 39 of file xAODMuDstarFilter.h.

Member Typedef Documentation

◆ StoreGateSvc_t

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

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ xAODMuDstarFilter()

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

Definition at line 49 of file xAODMuDstarFilter.cxx.

50 : GenFilter(name, pSvcLocator)
51{
52 //--------------------------------------------------------------------------
53}
GenFilter(const std::string &name, ISvcLocator *pSvcLocator)
Definition GenFilter.cxx:8

◆ ~xAODMuDstarFilter()

xAODMuDstarFilter::~xAODMuDstarFilter ( )
virtualdefault

Member Function Documentation

◆ ATLAS_NOT_CONST_THREAD_SAFE() [1/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

◆ ATLAS_NOT_CONST_THREAD_SAFE() [2/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.

◆ cmTomm()

void GenBase::cmTomm ( HepMC::GenEvent * evt)
protectedinherited

Scale event lengths by x 10.

Definition at line 78 of file GenBase.cxx.

78 {
79 for (HepMC::GenEvent::vertex_iterator vtx = evt->vertices_begin(); vtx != evt->vertices_end(); ++vtx) {
80 const HepMC::FourVector fv((*vtx)->position().x() * 10,
81 (*vtx)->position().y() * 10,
82 (*vtx)->position().z() * 10,
83 (*vtx)->position().t() * 10);
84 (*vtx)->set_position(fv);
85 }
86}

◆ declareGaudiProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< 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< 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< 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
inlineinherited

Access the current signal event (const)

Definition at line 83 of file GenBase.h.

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

◆ events_const() [1/2]

const McEventCollection * GenBase::events_const ( ) const
inlineinherited

Access the current event's McEventCollection (const)

Definition at line 96 of file GenBase.h.

96 {
97 return events_const( getContext() );
98 }

◆ events_const() [2/2]

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

Definition at line 99 of file GenBase.h.

99 {
100 SG::ReadHandle<McEventCollection> ret = SG::makeHandle(m_mcevents_const, ctx);
101 if (!ret.isValid())
102 ATH_MSG_ERROR("No McEventCollection found in StoreGate with key " << m_mcevents_const.key());
103 return ret.cptr();
104 }
SG::ReadHandleKey< McEventCollection > m_mcevents_const
Const handle to the MC event collection.
Definition GenBase.h:163
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< 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 ( )
virtualinherited
Todo
Probably the filter should only look at the first event... right?

Reimplemented from GenBase.

Definition at line 29 of file GenFilter.cxx.

29 {
30 if (events_const()->empty()) {
31 ATH_MSG_ERROR("No events found in McEventCollection");
32 return StatusCode::FAILURE;
33 } else if (events_const()->size() > 1) {
35 ATH_MSG_WARNING("More than one event in current McEventCollection -- which is valid?");
36 }
38#ifdef HEPMC3
39 if (filterPassed() || m_keepAll ) {
40#else
41 if (filterPassed() ) {
42#endif
43 ATH_MSG_DEBUG("Event passed filter");
44 m_nPass += 1;
45 } else {
46 ATH_MSG_DEBUG("Event failed filter");
47 m_nFail += 1;
48 }
49 // Bail out once we have enough events
50 if (m_nPass >= m_nNeeded && m_nNeeded > 0)
51 sc = StatusCode::FAILURE;
52 return sc;
53}
#define ATH_MSG_WARNING(x)
#define ATH_MSG_DEBUG(x)
static Double_t sc
int m_nPass
Definition GenFilter.h:65
int m_nNeeded
Definition GenFilter.h:67
int m_nFail
Definition GenFilter.h:66
virtual StatusCode filterEvent()=0
::StatusCode StatusCode
StatusCode definition for legacy code.

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< 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 & AthAlgorithm::extraOutputDeps ( ) const
overridevirtualinherited

Return the list of extra output dependencies.

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

Definition at line 50 of file AthAlgorithm.cxx.

51{
52 // If we didn't find any symlinks to add, just return the collection
53 // from the base class. Otherwise, return the extended collection.
54 if (!m_extendedExtraObjects.empty()) {
56 }
57 return Algorithm::extraOutputDeps();
58}
DataObjIDColl m_extendedExtraObjects

◆ filterEvent()

StatusCode xAODMuDstarFilter::filterEvent ( )
virtual

Implements GenFilter.

Definition at line 95 of file xAODMuDstarFilter.cxx.

96{
97 //---------------------------------------------------------------------------
98
99// Retrieve TruthGen container from xAODTruthParticleSlimmerGen, contains all particles witout barcode_zero and
100// duplicated barcode ones
101 const EventContext& context = Gaudi::Hive::currentContext();
102 SG::ReadHandle<xAOD::TruthParticleContainer>
103 xTruthParticleContainer(
105 if (!xTruthParticleContainer.isValid()) {
106 ATH_MSG_ERROR("Could not retrieve xAOD::TruthParticleGenContainer with key:"
108
109 return StatusCode::FAILURE;
110 }
111
112 ATH_MSG_DEBUG(" xAODMuDstarFilter filtering ");
113 double primx = 0.;
114 double primy = 0.;
115 int NumMuons = 0;
116 int NumDstars = 0;
117
118 std::vector<const xAOD::TruthParticle *> Muons;
119
120 unsigned int nPart = xTruthParticleContainer->size();
121 ATH_MSG_DEBUG("xAODMuDstarFilter:number of particles " << nPart);
122
123 // Loop over all particles in the event
124 for (const xAOD::TruthParticle* pitr : *xTruthParticleContainer) {
125
126 if (MC::isBeam(pitr)){
127 const xAOD::TruthVertex *vprim = (pitr)->decayVtx();
128 primx = vprim->x();
129 primy = vprim->y();
130
131 ATH_MSG_DEBUG("xAODMuDstarFilter: PV x, y = " << primx << " , " << primy);
132 }
133
134 if (!MC::isPhysical(pitr))
135 continue; // photos history line
136
137 // muons
138 if (pitr->isMuon())
139 {
140 if ((pitr->pt() >= m_PtMinMuon) &&
141 (pitr->pt() < m_PtMaxMuon) &&
142 (std::abs(pitr->eta()) < m_EtaRangeMuon))
143 {
144 NumMuons++;
145 Muons.push_back(pitr);
146 }
147 }
148 }
149
150 if (NumMuons == 0){
151 setFilterPassed(false);
152 return StatusCode::SUCCESS;
153 }
154
155 ATH_MSG_DEBUG("xAODMuDstarFilter: NumMuons = " << NumMuons );
156
157 for (const xAOD::TruthParticle* pitr : *xTruthParticleContainer) {
158 if (!MC::isPhysical(pitr))
159 continue; // photos history line
160
161 // Dstars
162 if (std::abs(pitr->pdgId()) == MC::DSTAR)
163 {
164 if ((pitr->pt() >= m_PtMinDstar) &&
165 (pitr->pt() < m_PtMaxDstar) &&
166 (std::abs(pitr->eta()) < m_EtaRangeDstar))
167 {
168
169 //Check if has end_vertex
170 if (!(pitr->decayVtx()))
171 continue;
172 double Rxy = std::hypot(pitr->decayVtx()->x() - primx, pitr->decayVtx()->y() - primy);
173
174 ATH_MSG_DEBUG("xAODMuDstarFilter: R_xy(Dstar) = " << Rxy);
175
176 if (Rxy < m_RxyMinDstar)
177 continue;
178
179 auto firstChild = pitr->decayVtx()->outgoingParticle(0);
180 if (firstChild->pdgId() == pitr->pdgId())
181 continue;
182
183 TLorentzVector p4_pis;
184
185 int pis_pdg = 0;
186 int K_pdg = 0;
187
188 int NumD0 = 0;
189 int NumPis = 0;
190
191 for (size_t thisChild_id = 0; thisChild_id < pitr->decayVtx()->nOutgoingParticles(); thisChild_id++)
192 {
193
194 auto thisChild = pitr->decayVtx()->outgoingParticle(thisChild_id);
195 if (!MC::isPhysical(thisChild))
196 continue; // photos history line
197
198 if (std::abs(thisChild->pdgId()) == MC::PIPLUS)
199 {
200 if ((thisChild->pt() >= m_PtMinPis) &&
201 (thisChild->pt() < m_PtMaxPis) &&
202 (std::abs(thisChild->eta()) < m_EtaRangePis))
203 {
204 NumPis++;
205
206 p4_pis.SetPtEtaPhiM(thisChild->pt(), thisChild->eta(), thisChild->phi(), m_PionMass);
207 pis_pdg = thisChild->pdgId();
208 }
209 }
210 } // thisChild
211
212 if (NumPis == 0)
213 continue;
214
215 ATH_MSG_DEBUG("xAODMuDstarFilter: NumPis = " << NumPis);
216
217 const xAOD::TruthParticle *D0Child1{nullptr}, *D0Child2{nullptr}, *D0ChildMu{nullptr};
218
219 int NumChildD0 = 0;
220 int NumChildD0Charged = 0;
221 int NumChildD0neutrinos = 0;
222 int NumChildD0gammas = 0;
223 int ChargeD0Child1 = 0;
224 int ChargeD0Child2 = 0;
225 int NumChildD0K = 0;
226 int NumChildD0pi = 0;
227 int NumChildD0mu = 0;
228
229 for (size_t thisChild_id = 0; thisChild_id < pitr->decayVtx()->nOutgoingParticles(); thisChild_id++)
230 {
231 auto thisChild = pitr->decayVtx()->outgoingParticle(thisChild_id);
232 if (!MC::isPhysical(thisChild))
233 continue; // photos history line
234
235 if (std::abs(thisChild->pdgId()) == MC::D0)
236 {
237 if (! thisChild->decayVtx()) continue;
238
239 for (size_t thisChild1_id = 0; thisChild1_id < thisChild->decayVtx()->nOutgoingParticles(); thisChild1_id++)
240 {
241 auto thisChild1 = thisChild->decayVtx()->outgoingParticle(thisChild1_id);
242 if (!MC::isPhysical(thisChild1))
243 continue; // photos history line
244
245 if (thisChild1->isElectron() || thisChild1->isMuon() ||
246 std::abs(thisChild1->pdgId()) == MC::PIPLUS || std::abs(thisChild1->pdgId()) == MC::KPLUS)
247 {
248
249 NumChildD0++;
250 if ((thisChild1->pt() >= m_PtMinKpi) &&
251 (thisChild1->pt() < m_PtMaxKpi) &&
252 (std::abs(thisChild1->eta()) < m_EtaRangeKpi))
253 {
254 NumChildD0Charged++;
255
256 if (NumChildD0Charged == 1)
257 {
258 D0Child1 = thisChild1;
259 ChargeD0Child1 = D0Child1->charge();
260 }
261 if (NumChildD0Charged == 2)
262 {
263 D0Child2 = thisChild1;
264 ChargeD0Child2 = D0Child2->charge();
265 }
266 if (thisChild1->isMuon())
267 {
268 NumChildD0mu++;
269 D0ChildMu = thisChild1;
270 }
271 if (std::abs(thisChild1->pdgId()) == MC::PIPLUS)
272 NumChildD0pi++;
273 if (std::abs(thisChild1->pdgId()) == MC::KPLUS)
274 {
275 NumChildD0K++;
276 K_pdg = thisChild1->pdgId();
277 }
278 }
279 }
280 else if (std::abs(thisChild1->pdgId()) == MC::PI0)
281 {
282 NumChildD0++;
283 }
284 else if (thisChild1->isNeutrino())
285 {
286 NumChildD0neutrinos++;
287 }
288 else if (thisChild1->isPhoton())
289 {
290 NumChildD0gammas++;
291 }
292 else if (std::abs(thisChild1->pdgId()) == MC::K0 || std::abs(thisChild1->pdgId()) == MC::K0L ||
293 std::abs(thisChild1->pdgId()) == MC::K0S)
294 {
295 NumChildD0++;
296 NumChildD0++;
297 }
298 else if (thisChild1->decayVtx())
299 {
300 for (size_t thisChild2_id = 0; thisChild2_id < thisChild1->decayVtx()->nOutgoingParticles(); thisChild2_id++)
301 {
302
303 auto thisChild2 = thisChild1->decayVtx()->outgoingParticle(thisChild2_id);
304 if (!MC::isPhysical(thisChild2))
305 continue; // photos history line
306
307 if (thisChild2->isElectron() || thisChild2->isMuon() ||
308 std::abs(thisChild2->pdgId()) == MC::PIPLUS || std::abs(thisChild2->pdgId()) == MC::KPLUS)
309 {
310 NumChildD0++;
311
312 if ((thisChild2->pt() >= m_PtMinKpi) &&
313 (thisChild2->pt() < m_PtMaxKpi) &&
314 (std::abs(thisChild2->eta()) < m_EtaRangeKpi))
315 {
316 NumChildD0Charged++;
317
318 if (NumChildD0Charged == 1)
319 {
320 D0Child1 = thisChild2;
321 ChargeD0Child2 = D0Child1->charge();
322 }
323 if (NumChildD0Charged == 2)
324 {
325 D0Child2 = thisChild2;
326 ChargeD0Child2 = D0Child2->charge();
327 }
328 if (thisChild2->isMuon())
329 {
330 NumChildD0mu++;
331 D0ChildMu = thisChild2;
332 }
333 }
334 }
335 else if (std::abs(thisChild2->pdgId()) == MC::PI0)
336 {
337 NumChildD0++;
338 }
339 else if (thisChild2->isNeutrino())
340 {
341 NumChildD0neutrinos++;
342 }
343 else if (thisChild2->isPhoton())
344 {
345 NumChildD0gammas++;
346 }
347 else if (std::abs(thisChild2->pdgId()) == MC::K0 || std::abs(thisChild2->pdgId()) == MC::K0L ||
348 std::abs(thisChild2->pdgId()) == MC::K0S)
349 {
350 NumChildD0++;
351 NumChildD0++;
352 }
353 else if (thisChild2->decayVtx())
354 {
355 NumChildD0++;
356 NumChildD0++;
357 }
358 else
359 {
360 NumChildD0++;
361 NumChildD0++;
362 ATH_MSG_DEBUG("xAODMuDstarFilter: unexpected D0 granddaughter = " << thisChild2->pdgId());
363 }
364 } // thisChild2
365 }
366 else
367 {
368 NumChildD0++;
369 NumChildD0++;
370 ATH_MSG_DEBUG("xAODMuDstarFilter: unexpected D0 daughter = " << thisChild1->pdgId());
371 }
372 } // thisChild1
373
374 ATH_MSG_DEBUG("xAODMuDstarFilter: NumChildD0, NumChildD0Charged = " << NumChildD0 << " , " << NumChildD0Charged);
375
376 if (NumChildD0 <= 3 && NumChildD0Charged == 2 && ChargeD0Child1 * ChargeD0Child2 < 0)
377 {
378 if (m_D0Kpi_only)
379 {
380 if (NumChildD0 == 2 && NumChildD0K == 1 && NumChildD0pi == 1){
381 NumD0++;
382 }
383 }
384 else
385 {
386 NumD0++;
387 }
388 }
389 } // D0
390
391 ATH_MSG_DEBUG("xAODMuDstarFilter: NumD0 = " << NumD0);
392
393 if (NumD0 == 1)
394 {
395
396 if (pis_pdg * ChargeD0Child1 > 0) std::swap(D0Child1, D0Child2);
397 TLorentzVector p4_K;
398 p4_K.SetPtEtaPhiM(D0Child1->pt(), D0Child1->eta(), D0Child1->phi(), m_KaonMass);
399 TLorentzVector p4_pi;
400 p4_pi.SetPtEtaPhiM(D0Child2->pt(), D0Child2->eta(), D0Child2->phi(), m_PionMass);
401
402 TLorentzVector p4_D0 = p4_K + p4_pi;
403 double mKpi = p4_D0.M();
404
405 ATH_MSG_DEBUG("xAODMuDstarFilter: mKpi = " << mKpi);
406
407 if (mKpi >= m_mKpiMin && mKpi <= m_mKpiMax)
408 {
409
410 TLorentzVector p4_Dstar = p4_D0 + p4_pis;
411
412 double delta_m = p4_Dstar.M() - mKpi;
413
414 ATH_MSG_DEBUG("xAODMuDstarFilter: delta_m = " << delta_m);
415
416 if (delta_m <= m_delta_m_Max)
417 {
418 NumDstars++;
419
420 ATH_MSG_DEBUG("xAODMuDstarFilter: NumDstars = " << NumDstars);
421
422 for (size_t i = 0; i < Muons.size(); ++i)
423 {
424
425 if (NumChildD0mu == 1)
426 {
427 if (std::fabs(Muons[i]->pt() - D0ChildMu->pt()) < std::numeric_limits<double>::epsilon())
428 continue;
429 ATH_MSG_DEBUG("xAODMuDstarFilter: Mu(pT), D0Mu(pT) = " << Muons[i]->pt() << " , " << D0ChildMu->pt());
430 }
431
432 TLorentzVector p4_Mu;
433 p4_Mu.SetPtEtaPhiM(Muons[i]->pt(), Muons[i]->eta(), Muons[i]->phi(), m_MuonMass);
434
435 TLorentzVector p4_DstarMu = p4_Dstar + p4_Mu;
436
437 ATH_MSG_DEBUG("xAODMuDstarFilter: p4_DstarMu.M() = " << p4_DstarMu.M());
438
439 if (p4_DstarMu.M() <= m_DstarMu_m_Max)
440 {
441
442 ATH_MSG_DEBUG("xAODMuDstarFilter: MuDstar candidate found");
443 ATH_MSG_DEBUG("xAODMuDstarFilter: p4_DstarMu.M() = " << p4_DstarMu.M());
444 ATH_MSG_DEBUG("xAODMuDstarFilter: NumChildD0, NumChildD0Charged = " << NumChildD0 << " , " << NumChildD0Charged);
445 ATH_MSG_DEBUG("xAODMuDstarFilter: NumChildD0K, NumChildD0pi, NumChildD0mu = " << NumChildD0K << " , " << NumChildD0pi << " , " << NumChildD0mu);
446
447 if (NumChildD0mu == 1)
448 {
449
450 ATH_MSG_DEBUG("xAODMuDstarFilter: Mu(pT), D0Mu(pT) = " << Muons[i]->pt() << " , " << D0ChildMu->pt());
451 }
452
453 ATH_MSG_DEBUG("xAODMuDstarFilter: NumChildD0neutrinos, NumChildD0gammas = " << NumChildD0neutrinos << " , " << NumChildD0gammas);
454 ATH_MSG_DEBUG("xAODMuDstarFilter: pis_pdg, K_pdg, ChargeD0Child1, ChargeD0Child2 = " << pis_pdg << " , " << K_pdg << " , " << ChargeD0Child1 << " , " << ChargeD0Child2);
455
456 setFilterPassed(true);
457 return StatusCode::SUCCESS;
458 }
459 } // for i
460
461 } //delta_m
462 } // mKpi
463 } // NumD0
464 } // thisChild
465 } // PtMinDstar
466
467 } // DSTAR
468
469 } // pitr
470
471
472
473 //
474 // if we get here we have failed
475 //
476 setFilterPassed(false);
477 return StatusCode::SUCCESS;
478}
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
Gaudi::Property< double > m_EtaRangeKpi
Gaudi::Property< double > m_EtaRangeDstar
const double m_KaonMass
Gaudi::Property< double > m_delta_m_Max
Gaudi::Property< double > m_EtaRangePis
Gaudi::Property< double > m_PtMinKpi
Gaudi::Property< double > m_DstarMu_m_Max
Gaudi::Property< double > m_PtMinMuon
Gaudi::Property< double > m_mKpiMin
Gaudi::Property< double > m_PtMaxMuon
Gaudi::Property< bool > m_D0Kpi_only
SG::ReadHandleKey< xAOD::TruthParticleContainer > m_xaodTruthParticleContainerNameGenKey
Gaudi::Property< double > m_RxyMinDstar
const double m_PionMass
Gaudi::Property< double > m_PtMaxPis
Gaudi::Property< double > m_EtaRangeMuon
Gaudi::Property< double > m_mKpiMax
Gaudi::Property< double > m_PtMinDstar
Gaudi::Property< double > m_PtMaxKpi
Gaudi::Property< double > m_PtMaxDstar
Gaudi::Property< double > m_PtMinPis
const double m_MuonMass
virtual double pt() const override final
The transverse momentum ( ) of the particle.
double charge() const
Physical charge.
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
virtual double phi() const override final
The azimuthal angle ( ) of the particle.
float y() const
Vertex y displacement.
float x() const
Vertex x displacement.
static const int PI0
static const int KPLUS
static const int K0
static const int K0L
static const int K0S
static const int DSTAR
static const int PIPLUS
bool isBeam(const T &p)
Identify if the particle is beam particle.
static const int D0
bool isPhysical(const T &p)
Identify if the particle is physical, i.e. is stable or decayed.
void swap(ElementLinkVector< DOBJ > &lhs, ElementLinkVector< DOBJ > &rhs)
TruthVertex_v1 TruthVertex
Typedef to implementation.
Definition TruthVertex.h:15
TruthParticle_v1 TruthParticle
Typedef to implementation.

◆ filterFinalize()

◆ filterInitialize()

StatusCode xAODMuDstarFilter::filterInitialize ( )
virtual

Reimplemented from GenFilter.

Definition at line 58 of file xAODMuDstarFilter.cxx.

59{
60 //---------------------------------------------------------------------------
61 ATH_MSG_INFO("xAODMuDstarFilter v1.02 INITIALISING ");
62
63 ATH_MSG_INFO("PtMinMuon = " << m_PtMinMuon);
64 ATH_MSG_INFO("PtMaxMuon = " << m_PtMaxMuon);
65 ATH_MSG_INFO("EtaRangeMuon = " << m_EtaRangeMuon);
66
67 ATH_MSG_INFO("PtMinDstar = " << m_PtMinDstar);
68 ATH_MSG_INFO("PtMaxDstar = " << m_PtMaxDstar);
69 ATH_MSG_INFO("EtaRangeDstar = " << m_EtaRangeDstar);
70
71 ATH_MSG_INFO("RxyMinDstar = " << m_RxyMinDstar);
72
73 ATH_MSG_INFO("PtMinPis = " << m_PtMinPis);
74 ATH_MSG_INFO("PtMaxPis = " << m_PtMaxPis);
75 ATH_MSG_INFO("EtaRangePis = " << m_EtaRangePis);
76
77 ATH_MSG_INFO("D0Kpi_only = " << m_D0Kpi_only);
78 ATH_MSG_INFO("PtMinKpi = " << m_PtMinKpi);
79 ATH_MSG_INFO("PtMaxKpi = " << m_PtMaxKpi);
80 ATH_MSG_INFO("EtaRangeKpi = " << m_EtaRangeKpi);
81
82 ATH_MSG_INFO("mKpiMin = " << m_mKpiMin);
83 ATH_MSG_INFO("mKpiMax = " << m_mKpiMax);
84
85 ATH_MSG_INFO("delta_m_Max = " << m_delta_m_Max);
86
87 ATH_MSG_INFO("DstarMu_m_Max = " << m_DstarMu_m_Max);
88
90
91 return StatusCode::SUCCESS;
92}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_INFO(x)

◆ finalize()

StatusCode GenFilter::finalize ( )
inherited

Definition at line 56 of file GenFilter.cxx.

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

◆ GeVToMeV()

void GenBase::GeVToMeV ( HepMC::GenEvent * evt)
protectedinherited

Scale event energies/momenta by x 1000.

Todo
Add HepMC units awareness and do it differently when HepMC provides this functionality directly (and reference-based FourVector accessors)

Definition at line 58 of file GenBase.cxx.

58 {
59 for (HepMC::GenEvent::particle_iterator p = evt->particles_begin(); p != evt->particles_end(); ++p) {
60 const HepMC::FourVector fv((*p)->momentum().px() * 1000,
61 (*p)->momentum().py() * 1000,
62 (*p)->momentum().pz() * 1000,
63 (*p)->momentum().e() * 1000);
64 (*p)->set_momentum(fv);
65 (*p)->set_generated_mass(1000 * (*p)->generated_mass());
66 }
67}

◆ initialize()

StatusCode GenFilter::initialize ( )
virtualinherited

Reimplemented from GenBase.

Definition at line 20 of file GenFilter.cxx.

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

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< 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.

◆ MeVToGeV()

void GenBase::MeVToGeV ( HepMC::GenEvent * evt)
protectedinherited

Scale event energies/momenta by x 1/1000.

Definition at line 68 of file GenBase.cxx.

68 {
69 for (HepMC::GenEvent::particle_iterator p = evt->particles_begin(); p != evt->particles_end(); ++p) {
70 const HepMC::FourVector fv((*p)->momentum().px() / 1000,
71 (*p)->momentum().py() / 1000,
72 (*p)->momentum().pz() / 1000,
73 (*p)->momentum().e() / 1000);
74 (*p)->set_momentum(fv);
75 (*p)->set_generated_mass((*p)->generated_mass() / 1000);
76 }
77}

◆ mmTocm()

void GenBase::mmTocm ( HepMC::GenEvent * evt)
protectedinherited

Scale event lengths by x 1/10.

Definition at line 87 of file GenBase.cxx.

87 {
88 for (HepMC::GenEvent::vertex_iterator vtx = evt->vertices_begin(); vtx != evt->vertices_end(); ++vtx) {
89 const HepMC::FourVector fv((*vtx)->position().x() / 10,
90 (*vtx)->position().y() / 10,
91 (*vtx)->position().z() / 10,
92 (*vtx)->position().t() / 10);
93 (*vtx)->set_position(fv);
94 }
95}

◆ msg()

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ msgLvl()

bool AthCommonMsg< 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< 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 126 of file GenBase.h.

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

◆ particleTable()

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

Get a particle data table.

Definition at line 118 of file GenBase.h.

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

◆ partPropSvc()

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

Access the particle property service.

Definition at line 113 of file GenBase.h.

113 {
114 return m_ppSvc;
115 }

◆ pdt()

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

Shorter alias to get a particle data table.

Definition at line 123 of file GenBase.h.

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

◆ 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< 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< Algorithm > >::renounceArray ( SG::VarHandleKeyArray & handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ sysInitialize()

StatusCode AthAlgorithm::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< Algorithm > >.

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

Definition at line 66 of file AthAlgorithm.cxx.

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

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< 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< 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 }
std::vector< SG::VarHandleKeyArray * > m_vhka

Member Data Documentation

◆ m_D0Kpi_only

Gaudi::Property<bool> xAODMuDstarFilter::m_D0Kpi_only {this, "D0Kpi_only", false}
private

Definition at line 65 of file xAODMuDstarFilter.h.

65{this, "D0Kpi_only", false};

◆ m_delta_m_Max

Gaudi::Property<double> xAODMuDstarFilter::m_delta_m_Max {this, "delta_m_Max", 220.}
private

Definition at line 70 of file xAODMuDstarFilter.h.

70{this, "delta_m_Max", 220.};

◆ m_detStore

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

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_DstarMu_m_Max

Gaudi::Property<double> xAODMuDstarFilter::m_DstarMu_m_Max {this, "DstarMu_m_Max", 12000.}
private

Definition at line 72 of file xAODMuDstarFilter.h.

72{this, "DstarMu_m_Max", 12000.};

◆ m_EtaRangeDstar

Gaudi::Property<double> xAODMuDstarFilter::m_EtaRangeDstar {this, "EtaRangeDstar", 2.7}
private

Definition at line 54 of file xAODMuDstarFilter.h.

54{this, "EtaRangeDstar", 2.7};

◆ m_EtaRangeKpi

Gaudi::Property<double> xAODMuDstarFilter::m_EtaRangeKpi {this, "EtaRangeKpi", 2.7}
private

Definition at line 63 of file xAODMuDstarFilter.h.

63{this, "EtaRangeKpi", 2.7};

◆ m_EtaRangeMuon

Gaudi::Property<double> xAODMuDstarFilter::m_EtaRangeMuon {this,"EtaRangeMuon", 2.7}
private

Definition at line 50 of file xAODMuDstarFilter.h.

50{this,"EtaRangeMuon", 2.7};

◆ m_EtaRangePis

Gaudi::Property<double> xAODMuDstarFilter::m_EtaRangePis {this, "EtaRangePis", 2.7}
private

Definition at line 59 of file xAODMuDstarFilter.h.

59{this, "EtaRangePis", 2.7};

◆ m_evtStore

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

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_extendedExtraObjects

DataObjIDColl AthAlgorithm::m_extendedExtraObjects
privateinherited

Definition at line 79 of file AthAlgorithm.h.

◆ m_KaonMass

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

Definition at line 76 of file xAODMuDstarFilter.h.

◆ m_mcEventKey

std::string GenBase::m_mcEventKey {}
protectedinherited

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

Definition at line 137 of file GenBase.h.

137{};

◆ 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 163 of file GenBase.h.

163{ 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 139 of file GenBase.h.

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

◆ m_mKpiMax

Gaudi::Property<double> xAODMuDstarFilter::m_mKpiMax {this, "mKpiMax", 2065.}
private

Definition at line 68 of file xAODMuDstarFilter.h.

68{this, "mKpiMax", 2065.};

◆ m_mKpiMin

Gaudi::Property<double> xAODMuDstarFilter::m_mKpiMin {this, "mKpiMin", 1665.}
private

Definition at line 67 of file xAODMuDstarFilter.h.

67{this, "mKpiMin", 1665.};

◆ m_MuonMass

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

Definition at line 74 of file xAODMuDstarFilter.h.

◆ m_nFail

int GenFilter::m_nFail
protectedinherited

Definition at line 66 of file GenFilter.h.

◆ m_nNeeded

int GenFilter::m_nNeeded
protectedinherited

Definition at line 67 of file GenFilter.h.

◆ m_nPass

int GenFilter::m_nPass
protectedinherited

Definition at line 65 of file GenFilter.h.

◆ m_PionMass

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

Definition at line 75 of file xAODMuDstarFilter.h.

◆ m_ppSvc

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

Handle on the particle property service.

Definition at line 160 of file GenBase.h.

160{this, "PartPropSvc", "PartPropSvc"};

◆ m_PtMaxDstar

Gaudi::Property<double> xAODMuDstarFilter::m_PtMaxDstar {this,"PtMaxDstar", 1e9}
private

Definition at line 53 of file xAODMuDstarFilter.h.

53{this,"PtMaxDstar", 1e9};

◆ m_PtMaxKpi

Gaudi::Property<double> xAODMuDstarFilter::m_PtMaxKpi {this, "PtMaxKpi", 1e9}
private

Definition at line 62 of file xAODMuDstarFilter.h.

62{this, "PtMaxKpi", 1e9};

◆ m_PtMaxMuon

Gaudi::Property<double> xAODMuDstarFilter::m_PtMaxMuon {this,"PtMaxMuon", 1e9}
private

Definition at line 49 of file xAODMuDstarFilter.h.

49{this,"PtMaxMuon", 1e9};

◆ m_PtMaxPis

Gaudi::Property<double> xAODMuDstarFilter::m_PtMaxPis {this, "PtMaxPis", 1e9}
private

Definition at line 58 of file xAODMuDstarFilter.h.

58{this, "PtMaxPis", 1e9};

◆ m_PtMinDstar

Gaudi::Property<double> xAODMuDstarFilter::m_PtMinDstar {this,"PtMinDstar", 4500.}
private

Definition at line 52 of file xAODMuDstarFilter.h.

52{this,"PtMinDstar", 4500.};

◆ m_PtMinKpi

Gaudi::Property<double> xAODMuDstarFilter::m_PtMinKpi {this, "PtMinKpi", 900.}
private

Definition at line 61 of file xAODMuDstarFilter.h.

61{this, "PtMinKpi", 900.};

◆ m_PtMinMuon

Gaudi::Property<double> xAODMuDstarFilter::m_PtMinMuon {this,"PtMinMuon", 2500.}
private

Definition at line 48 of file xAODMuDstarFilter.h.

48{this,"PtMinMuon", 2500.};

◆ m_PtMinPis

Gaudi::Property<double> xAODMuDstarFilter::m_PtMinPis {this, "PtMinPis", 450.}
private

Definition at line 57 of file xAODMuDstarFilter.h.

57{this, "PtMinPis", 450.};

◆ m_RxyMinDstar

Gaudi::Property<double> xAODMuDstarFilter::m_RxyMinDstar {this, "RxyMinDstar", -1e9}
private

Definition at line 55 of file xAODMuDstarFilter.h.

55{this, "RxyMinDstar", -1e9};

◆ m_varHandleArraysDeclared

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

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

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

Definition at line 398 of file AthCommonDataStore.h.

◆ m_xaodTruthParticleContainerNameGenKey

SG::ReadHandleKey<xAOD::TruthParticleContainer> xAODMuDstarFilter::m_xaodTruthParticleContainerNameGenKey {this, "TruthParticlesKey", "TruthGen", "ReadHandleKey for the xAODTruthParticlesGen"}
private

Definition at line 79 of file xAODMuDstarFilter.h.

79{this, "TruthParticlesKey", "TruthGen", "ReadHandleKey for the xAODTruthParticlesGen"};

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