ATLAS Offline Software
Loading...
Searching...
No Matches
BeamlineSetup.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3*/
4
13
14namespace ForwardTracker {
15
16 Beamline BeamlineSetup(const ConfigData& cData, const Side& side) {
17
18 Magnet::Container_t magnets = MagnetSet (cData, side);
19 Collimator::Container_t collimators = CollimatorSet(cData, side);
20 Plane::ConstPtr_t endPlane(new Plane(cData.endMarker, side));
21
22 IBeamElement::List_t elements;
23
24 elements.assign(magnets.begin(), magnets.end());
25 elements.insert(elements.end(), collimators.begin(), collimators.end());
26 elements.push_back(endPlane);
28
29 IBeamElement::ListIter_t current = elements.begin();
30 IBeamElement::ListIter_t last = elements.end();
31
32 elements.push_front(Spacer::ConstPtr_t(new Spacer(0., (*current)->frontFace(), (*current)->side())));
33
34 ++current;
35
36 for(; current != last; ++current) {
37
38 IBeamElement::ListIter_t previous = current;
39
40 --previous;
41
42 elements.insert(current, Spacer::ConstPtr_t(new Spacer(*previous, *current)));
43 }
44
45 Beamline beamline(elements.begin(), elements.end());
46
47 return beamline;
48 }
49}
std::shared_ptr< const Plane > ConstPtr_t
bool absZGreater(const PtrType rhs, const PtrType lhs)
Beamline BeamlineSetup(const ConfigData &, const Side &)
Magnet::Container_t MagnetSet(const ConfigData &, const Side &)
Definition MagnetSet.cxx:18
Collimator::Container_t CollimatorSet(const ConfigData &, const Side &side)