ATLAS Offline Software
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 
9 #include "ForwardTracker/Plane.h"
10 #include "ForwardTracker/Spacer.h"
13 
14 namespace 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);
27  elements.sort(absZGreater<IBeamElement::ConstPtr_t>);
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 
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 }
fillPileUpNoiseLumi.current
current
Definition: fillPileUpNoiseLumi.py:52
ForwardTracker::Collimator::Container_t
std::vector< ConstPtr_t > Container_t
Definition: ForwardTracker/ForwardTracker/Collimator.h:37
ForwardTracker::Beamline
Definition: ForwardTracker/ForwardTracker/Beamline.h:16
Plane.h
STLHelpers.h
ForwardTracker::Plane
Definition: ForwardTracker/ForwardTracker/Plane.h:16
TRT::Hit::side
@ side
Definition: HitInfo.h:83
ForwardTracker::Magnet::Container_t
std::vector< ConstPtr_t > Container_t
Definition: ForwardTracker/ForwardTracker/Magnet.h:39
MagnetSet.h
Side
Definition: WaferTree.h:36
ForwardTracker::IBeamElement::List_t
std::list< ConstPtr_t > List_t
Definition: ForwardTracker/ForwardTracker/IBeamElement.h:43
ForwardTracker::Plane::ConstPtr_t
std::shared_ptr< const Plane > ConstPtr_t
Definition: ForwardTracker/ForwardTracker/Plane.h:33
ForwardTracker::CollimatorSet
Collimator::Container_t CollimatorSet(const ConfigData &, const Side &side)
Definition: CollimatorSet.cxx:14
CollimatorSet.h
BeamlineSetup.h
ForwardTracker::BeamlineSetup
Beamline BeamlineSetup(const ConfigData &, const Side &)
Definition: BeamlineSetup.cxx:16
TwissFile.h
Spacer.h
ForwardTracker::Spacer
Definition: ForwardDetectors/ForwardTracker/ForwardTracker/Spacer.h:19
ForwardTracker::IBeamElement::ListIter_t
List_t::iterator ListIter_t
Definition: ForwardTracker/ForwardTracker/IBeamElement.h:44
ForwardTracker::MagnetSet
Magnet::Container_t MagnetSet(const ConfigData &, const Side &)
Definition: MagnetSet.cxx:18
ForwardTracker
Definition: ForwardTracker/ForwardTracker/Beamline.h:12
ForwardTracker::ConfigData::endMarker
double endMarker
Definition: ForwardTracker/ForwardTracker/ConfigData.h:21
ForwardTracker::ConfigData
Definition: ForwardTracker/ForwardTracker/ConfigData.h:12
ForwardTracker::Spacer::ConstPtr_t
std::shared_ptr< const Spacer > ConstPtr_t
Definition: ForwardDetectors/ForwardTracker/ForwardTracker/Spacer.h:38
Beamline.h
Trk::previous
@ previous
Definition: BinningData.h:32