ATLAS Offline Software
Loading...
Searching...
No Matches
VRoute.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef VRoute_H
6#define VRoute_H
7
8#include "Route.h"
9#include <vector>
10
11class ServiceVolume;
12
13class VRoute : public Route {
14public:
15
16 typedef std::vector<ServiceVolume*> VolumeContainer;
17
18 VRoute() : Route() {}
19 VRoute( double z, double rmi, double rma, double rexit, const std::string& name):
20 Route(name),
21 m_zPos(z), m_rMin(rmi), m_rMax(rma), m_rExit(rexit), m_next(0){}
22
23 double rMin() const {return m_rMin;}
24 double rMax() const {return m_rMax;}
25 double zPos() const {return m_zPos;}
26 double rExit() const {return m_rExit;}
27
28 virtual double position() const {return zPos();}
29
30 virtual double exit() const {return rExit();}
31
32 virtual Route* nextRoute() {return m_next;}
33
34 virtual const VolumeContainer& volumes() const {return m_volumes;}
35
36 virtual void addVolume( ServiceVolume* vol) {m_volumes.push_back(vol);}
37
38 virtual void setNextRoute( Route* nr) {m_next = nr;}
39 /*
40 virtual ServiceVolume* entryVolume( double pos) const {
41 // FIXME - too simple, for tests only
42 if (volumes().empty()) return 0;
43 if (volumes().front()->contains(pos)) return volumes().front();
44 else if (volumes().back()->contains(pos)) return volumes().back();
45 else {
46 //should iterate to find exit volume
47 return 0; // FIXME
48 }
49 }
50
51 virtual ServiceVolume* exitVolume() const;
52 */
53private:
54
55 double m_zPos{};
56 double m_rMin{};
57 double m_rMax{};
58 double m_rExit{};
60
62};
63
64#endif
#define z
Route()
Definition Route.h:25
const std::string & name() const
Definition Route.h:42
VolumeContainer m_volumes
Definition VRoute.h:61
virtual double exit() const
Definition VRoute.h:30
double rMin() const
Definition VRoute.h:23
virtual const VolumeContainer & volumes() const
Definition VRoute.h:34
double m_rMin
Definition VRoute.h:56
double rExit() const
Definition VRoute.h:26
virtual void setNextRoute(Route *nr)
Definition VRoute.h:38
double m_zPos
Definition VRoute.h:55
std::vector< ServiceVolume * > VolumeContainer
Definition VRoute.h:16
virtual Route * nextRoute()
Definition VRoute.h:32
double m_rExit
Definition VRoute.h:58
virtual double position() const
Definition VRoute.h:28
double m_rMax
Definition VRoute.h:57
double zPos() const
Definition VRoute.h:25
double rMax() const
Definition VRoute.h:24
VRoute()
Definition VRoute.h:18
Route * m_next
Definition VRoute.h:59
VRoute(double z, double rmi, double rma, double rexit, const std::string &name)
Definition VRoute.h:19
virtual void addVolume(ServiceVolume *vol)
Definition VRoute.h:36