ATLAS Offline Software
ParticleRemoverAlg.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef EVENTUTILS_PARTICLEREMOVERALG_H
6 #define EVENTUTILS_PARTICLEREMOVERALG_H 1
7 
9 
11 
12 
13 
15  public:
17  ParticleRemoverAlg( const std::string& name, ISvcLocator* pSvcLocator );
18 
20  virtual ~ParticleRemoverAlg();
21 
23  virtual StatusCode initialize();
24 
26  virtual StatusCode execute();
27 
29  virtual StatusCode finalize();
30 
31  private:
33  template<class CONT>
34  StatusCode removeParticles( const std::vector<bool>& keepParticleVec );
35 
36  private:
37 
40 
42  StringProperty m_inCont;
43 
45  StringProperty m_separator;
46 
48  StringProperty m_outCont;
49 
51  StringArrayProperty m_suffixes;
52 
54  StringArrayProperty m_viewContNames;
55 
57  BooleanProperty m_resetViewConts;
58 
60  StringProperty m_outPrefix;
61 
63 
64 
67 
69  std::vector<std::string> m_inContNameList;
70 
72  std::vector<std::string> m_outContNameList;
73 
75  std::vector< const xAOD::IParticleContainer* > m_inContList;
76 
78  std::vector< xAOD::IParticleContainer* > m_outContList;
79 
81  std::vector< std::vector<std::string> > m_inViewContNameListList;
82 
84  std::vector< std::vector<std::string> > m_outViewContNameListList;
85 
86 
88  enum contType_t {
93  TAU,
94  JET,
102  };
103 
106 
108 
109 };
110 
111 // Include the templated code here. This must be done from this header file.
112 #include "ParticleRemoverAlg.icc"
113 
114 #endif //> !EVENTUTILS_PARTICLEREMOVERALG_H
ParticleRemoverAlg.icc
ParticleRemoverAlg::m_outContNameList
std::vector< std::string > m_outContNameList
Vector of all output container names.
Definition: ParticleRemoverAlg.h:72
ParticleRemoverAlg::PARITCLEFLOW
@ PARITCLEFLOW
Definition: ParticleRemoverAlg.h:95
ParticleRemoverAlg::m_outViewContNameListList
std::vector< std::vector< std::string > > m_outViewContNameListList
Vector of all output view container names.
Definition: ParticleRemoverAlg.h:84
ParticleRemoverAlg::m_contType
contType_t m_contType
The variable that holds the value that we find for the input container.
Definition: ParticleRemoverAlg.h:105
ParticleRemoverAlg::m_suffixes
StringArrayProperty m_suffixes
The names of all suffixes for the input and output container names.
Definition: ParticleRemoverAlg.h:51
ParticleRemoverAlg::UNKNOWN
@ UNKNOWN
Definition: ParticleRemoverAlg.h:89
ParticleRemoverAlg::removeParticles
StatusCode removeParticles(const std::vector< bool > &keepParticleVec)
Private function to perform the actualy work.
ParticleRemoverAlg::PHOTON
@ PHOTON
Definition: ParticleRemoverAlg.h:90
ParticleRemoverAlg::NEUTRALPARTICLE
@ NEUTRALPARTICLE
Definition: ParticleRemoverAlg.h:96
ParticleRemoverAlg::COMPOSITEPARTICLE
@ COMPOSITEPARTICLE
Definition: ParticleRemoverAlg.h:99
AthAlgorithm.h
ParticleRemoverAlg::TAU
@ TAU
Definition: ParticleRemoverAlg.h:93
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
IParticleContainer.h
ParticleRemoverAlg::m_resetViewConts
BooleanProperty m_resetViewConts
Boolean to decide if the existing view containers should be re-mapped (default: true)
Definition: ParticleRemoverAlg.h:57
ParticleRemoverAlg::m_viewContNames
StringArrayProperty m_viewContNames
The names of all view containers that contain particles that we want to retain.
Definition: ParticleRemoverAlg.h:54
ParticleRemoverAlg
Definition: ParticleRemoverAlg.h:14
ParticleRemoverAlg::m_inContNameList
std::vector< std::string > m_inContNameList
Vector of all input container names.
Definition: ParticleRemoverAlg.h:69
ParticleRemoverAlg::JET
@ JET
Definition: ParticleRemoverAlg.h:94
ParticleRemoverAlg::ELECTRON
@ ELECTRON
Definition: ParticleRemoverAlg.h:91
ParticleRemoverAlg::initialize
virtual StatusCode initialize()
Standard Gaudi initialize method called once before the event loop.
Definition: ParticleRemoverAlg.cxx:72
AthAlgorithm
Definition: AthAlgorithm.h:47
ParticleRemoverAlg::m_outCont
StringProperty m_outCont
The output container name.
Definition: ParticleRemoverAlg.h:48
ParticleRemoverAlg::ParticleRemoverAlg
ParticleRemoverAlg(const std::string &name, ISvcLocator *pSvcLocator)
Standard constructor.
Definition: ParticleRemoverAlg.cxx:28
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
ParticleRemoverAlg::m_inViewContNameListList
std::vector< std::vector< std::string > > m_inViewContNameListList
Vector of all input view container names.
Definition: ParticleRemoverAlg.h:81
ParticleRemoverAlg::CALOCLUSTER
@ CALOCLUSTER
Definition: ParticleRemoverAlg.h:101
ParticleRemoverAlg::execute
virtual StatusCode execute()
Standard Gaudi execute method called once for every event.
Definition: ParticleRemoverAlg.cxx:210
ParticleRemoverAlg::m_inContList
std::vector< const xAOD::IParticleContainer * > m_inContList
Vector of all input containers.
Definition: ParticleRemoverAlg.h:75
ParticleRemoverAlg::PARTICLE
@ PARTICLE
Definition: ParticleRemoverAlg.h:100
ParticleRemoverAlg::m_outContList
std::vector< xAOD::IParticleContainer * > m_outContList
Vector of all output containers.
Definition: ParticleRemoverAlg.h:78
ParticleRemoverAlg::m_separator
StringProperty m_separator
The string separator between the output container name and the sytematic variation (default="___")
Definition: ParticleRemoverAlg.h:45
ParticleRemoverAlg::m_outPrefix
StringProperty m_outPrefix
Prefix to be used for all created output view containers.
Definition: ParticleRemoverAlg.h:60
ParticleRemoverAlg::contType_t
contType_t
An enumaration for the actual container type.
Definition: ParticleRemoverAlg.h:88
ParticleRemoverAlg::TRACKPARTICLE
@ TRACKPARTICLE
Definition: ParticleRemoverAlg.h:97
ParticleRemoverAlg::MUON
@ MUON
Definition: ParticleRemoverAlg.h:92
ParticleRemoverAlg::~ParticleRemoverAlg
virtual ~ParticleRemoverAlg()
Standard destructor.
Definition: ParticleRemoverAlg.cxx:69
ParticleRemoverAlg::TRUTHPARTICLE
@ TRUTHPARTICLE
Definition: ParticleRemoverAlg.h:98
ParticleRemoverAlg::m_inCont
StringProperty m_inCont
The input container name.
Definition: ParticleRemoverAlg.h:42
ParticleRemoverAlg::finalize
virtual StatusCode finalize()
Standard Gaudi finalize method called once after the event loop.
Definition: ParticleRemoverAlg.cxx:201