ATLAS Offline Software
ParticleBaseSelector.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 #include "AthenaKernel/Units.h"
7 
9 using namespace std;
10 
11 ParticleBaseSelector::ParticleBaseSelector(const std::string& name, ISvcLocator* pSvcLocator):
13 {
14  // these parameters just for example
15  declareProperty("EMin", m_Emin = 15.0);
16  declareProperty("EMax", m_Emax = 10000.0);
17 }
18 
20 {
21  // print parameters in SelectorBase
23 
24  // print parameters in ParticleBaseSelector
25  ATH_MSG_INFO(", PtMin="<<m_Emin );
26  ATH_MSG_INFO(", PtMax="<<m_Emax );
27  return StatusCode::SUCCESS;
28 }
29 
31  const Contained* cpart=*link;
32  return accept(cpart);
33 }
34 
36 {
37  // kinematic cuts
38  double pt=part->pt()/GeV;
39  double eta=part->eta();
40  if(!pt_eta_range(pt,eta)) return false;
41  double E=part->e()/GeV;
42  if(E>m_Emax || E<m_Emin) return false;
43 
44  return true;
45 }
46 
LArG4FSStartPointFilter.part
part
Definition: LArG4FSStartPointFilter.py:21
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
ParticleBase
Definition: ParticleBase.h:17
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
test_pyathena.pt
pt
Definition: test_pyathena.py:11
SelectorBase
Definition: SelectorBase.h:36
ParticleBaseSelector::m_Emax
double m_Emax
Definition: ParticleBaseSelector.h:77
ParticleBaseSelector
Definition: ParticleBaseSelector.h:46
ParticleBaseSelector::initialize
StatusCode initialize()
Definition: ParticleBaseSelector.cxx:19
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
VP1PartSpect::E
@ E
Definition: VP1PartSpectFlags.h:21
Units.h
Wrapper to avoid constant divisions when using units.
ParticleBaseSelector.h
ParticleBaseSelector::ParticleBaseSelector
ParticleBaseSelector(const std::string &name, ISvcLocator *pSvcLocator)
Definition: ParticleBaseSelector.cxx:11
SelectorBase< ParticleBaseSelector >::pt_eta_range
bool pt_eta_range(double pt, double eta)
Definition: SelectorBase.h:279
ParticleBaseSelector::accept
bool accept(const ParticleBaseLink &link)
Definition: ParticleBaseSelector.cxx:30
GeV
#define GeV
Definition: CaloTransverseBalanceVecMon.cxx:30
ParticleBaseSelector::m_Emin
double m_Emin
Definition: ParticleBaseSelector.h:78