ATLAS Offline Software
TrigJetHypoToolConfig_conditionfilter.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 
7 #include "GaudiKernel/StatusCode.h"
8 #include "./RepeatedCondition.h"
9 
11  const std::string& name,
12  const IInterface* parent) :
13  base_class(type, name, parent){
14 }
15 
16 
18 }
19 
21  ATH_MSG_DEBUG("initialising " << name());
22  return StatusCode::SUCCESS;
23 }
24 
25 
28 
29  ConditionPtrs conditions;
30 
31  // collect the Conditions objects from the various sources
32 
33  for(const auto& cm : m_conditionMakers){
34  conditions.push_back(cm->getRepeatedCondition());
35  }
36 
37  return conditions;
38 }
39 
40 
43 
44  /* set up the prefilter by looping over the precondition
45  Condition maker AlgTools to obtain the elemental Conditions,
46  place these in a single compound Condition, and warp this in a
47  CondtionInverter. This is passed to the ConditionFilter object.
48  */
49 
50  // if no conditions the filter will apply n inverter to an empty
51  // Compound Condition, which will kill all events.
52  if (m_conditionMakers.empty()) {
53  return std::unique_ptr<ConditionFilter>(nullptr);
54  }
55 
56  auto makeElementalFilterCondition = [](auto& conditionMaker)->ConditionPtr {
57  return conditionMaker->getRepeatedCondition();
58  };
59 
60  // fill a container with pointers to an elemental condition
61  // note: IRepeatedCondition derives from ICondition
62  ConditionPtrs prefilterConditions{};
64  m_conditionMakers.end(),
65  std::back_inserter(prefilterConditions),
66  makeElementalFilterCondition);
67 
68  // create an filter from the vector containing the inverted condition.
69  return std::make_unique<ConditionFilter>(std::move(prefilterConditions));
70 }
71 
TrigJetHypoToolConfig_conditionfilter::TrigJetHypoToolConfig_conditionfilter
TrigJetHypoToolConfig_conditionfilter(const std::string &type, const std::string &name, const IInterface *parent)
Definition: TrigJetHypoToolConfig_conditionfilter.cxx:10
FilterPtr
std::unique_ptr< IHypoJetVectorFilter > FilterPtr
Definition: ITrigHypoJetVectorFilterConfig.h:10
TrigJetHypoToolConfig_conditionfilter.h
cm
const double cm
Definition: Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/tools/FCAL_ChannelMap.cxx:25
TrigJetHypoToolConfig_conditionfilter::getRepeatedConditions
ConditionPtrs getRepeatedConditions() const
Definition: TrigJetHypoToolConfig_conditionfilter.cxx:27
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
Amg::transform
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
Definition: GeoPrimitivesHelpers.h:156
TrigJetHypoToolConfig_conditionfilter::~TrigJetHypoToolConfig_conditionfilter
virtual ~TrigJetHypoToolConfig_conditionfilter()
Definition: TrigJetHypoToolConfig_conditionfilter.cxx:17
test_pyathena.parent
parent
Definition: test_pyathena.py:15
ConditionPtr
std::unique_ptr< IRepeatedCondition > ConditionPtr
Definition: RepeatedConditionsDefs.h:19
TrigJetHypoToolConfig_conditionfilter::m_conditionMakers
ToolHandleArray< ITrigJetRepeatedConditionConfig > m_conditionMakers
Definition: TrigJetHypoToolConfig_conditionfilter.h:48
TrigJetHypoToolConfig_conditionfilter::getHypoJetVectorFilter
virtual FilterPtr getHypoJetVectorFilter() const override
Definition: TrigJetHypoToolConfig_conditionfilter.cxx:42
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
ConditionPtrs
std::vector< ConditionPtr > ConditionPtrs
Definition: RepeatedConditionsDefs.h:20
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
TrigJetHypoToolConfig_conditionfilter::initialize
virtual StatusCode initialize() override
Definition: TrigJetHypoToolConfig_conditionfilter.cxx:20
RepeatedCondition.h