ATLAS Offline Software
SCT_FSIHelper.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 SCT_GEOMODEL_SCT_FSIHELPER_H
6 #define SCT_GEOMODEL_SCT_FSIHELPER_H
7 
8 #include <map>
9 #include <memory>
10 #include <string>
11 #include <vector>
12 
13 class SCT_DataBase;
14 
16 {
17 public:
18  FSILocation(const std::string& name,
19  double radius,
20  double phi,
21  int side);
22 
23  const std::string & name() const {return m_name;}
24  double radius() const {return m_radius;}
25  double phi() const {return m_phi;}
26  int side() const {return m_side;}
27 
28 
29 private:
30  std::string m_name;
31  double m_radius;
32  double m_phi;
33  int m_side;
34 };
35 
37 {
38 
39 public:
41  int simType,
42  const std::string & simTypeString,
43  const std::string & locationType,
44  const std::string & actualType);
45  const FSILocation & location() const {return *m_location;}
46  int simType() const {return m_simType;}
47  const std::string & simTypeString() const {return m_simTypeStr;}
48  const std::string & locationType() const {return m_locType;}
49  const std::string & actualType() const {return m_actualType;}
50 
51 private:
53  int m_simType;
54  std::string m_simTypeStr;
55  std::string m_locType;
56  std::string m_actualType;
57 
58 };
59 
60 
61 class FSIHelper
62 {
63 public:
64  FSIHelper(SCT_DataBase * rdb);
65  ~FSIHelper();
66 
67  // Gte vector of FSI details for a given wheel
68  const std::vector<const FSIDetails *> & fsiVector(int wheel) const;
69 
70 private:
71  void fill();
72 
73  std::vector<std::vector<std::unique_ptr<FSIDetails>>> m_wheelLocMap;
74  std::vector<std::vector<const FSIDetails *>> m_wheelLocMapConst;
75  std::map<std::string, std::unique_ptr<FSILocation>> m_locationTypes;
76 
78 
79 };
80 
81 #endif // SCT_GEOMODEL_SCT_FSIHELPER_H
FSIDetails::FSIDetails
FSIDetails(const FSILocation *location, int simType, const std::string &simTypeString, const std::string &locationType, const std::string &actualType)
Definition: SCT_FSIHelper.cxx:24
FSIDetails::m_locType
std::string m_locType
Definition: SCT_FSIHelper.h:55
FSIHelper::m_locationTypes
std::map< std::string, std::unique_ptr< FSILocation > > m_locationTypes
Definition: SCT_FSIHelper.h:75
FSILocation::radius
double radius() const
Definition: SCT_FSIHelper.h:24
FSILocation::m_phi
double m_phi
Definition: SCT_FSIHelper.h:32
FSILocation::m_side
int m_side
Definition: SCT_FSIHelper.h:33
FSIHelper::fill
void fill()
Definition: SCT_FSIHelper.cxx:52
FSILocation::m_radius
double m_radius
Definition: SCT_FSIHelper.h:31
FSIHelper::m_wheelLocMapConst
std::vector< std::vector< const FSIDetails * > > m_wheelLocMapConst
Definition: SCT_FSIHelper.h:74
FSIDetails::m_simType
int m_simType
Definition: SCT_FSIHelper.h:53
FSIHelper::m_rdb
SCT_DataBase * m_rdb
Definition: SCT_FSIHelper.h:77
FSILocation::name
const std::string & name() const
Definition: SCT_FSIHelper.h:23
FSIDetails::m_actualType
std::string m_actualType
Definition: SCT_FSIHelper.h:56
FSIHelper::fsiVector
const std::vector< const FSIDetails * > & fsiVector(int wheel) const
Definition: SCT_FSIHelper.cxx:89
FSILocation
Definition: SCT_FSIHelper.h:16
SCT_DataBase
Definition: SCT_DataBase.h:17
FSIDetails
Definition: SCT_FSIHelper.h:37
FSILocation::FSILocation
FSILocation(const std::string &name, double radius, double phi, int side)
Definition: SCT_FSIHelper.cxx:13
FSILocation::side
int side() const
Definition: SCT_FSIHelper.h:26
FSIHelper::FSIHelper
FSIHelper(SCT_DataBase *rdb)
Definition: SCT_FSIHelper.cxx:37
FSILocation::m_name
std::string m_name
Definition: SCT_FSIHelper.h:30
FSIDetails::m_simTypeStr
std::string m_simTypeStr
Definition: SCT_FSIHelper.h:54
FSILocation::phi
double phi() const
Definition: SCT_FSIHelper.h:25
FSIHelper::m_wheelLocMap
std::vector< std::vector< std::unique_ptr< FSIDetails > > > m_wheelLocMap
Definition: SCT_FSIHelper.h:73
FSIDetails::simType
int simType() const
Definition: SCT_FSIHelper.h:46
FSIDetails::simTypeString
const std::string & simTypeString() const
Definition: SCT_FSIHelper.h:47
FSIHelper
Definition: SCT_FSIHelper.h:62
FSIDetails::location
const FSILocation & location() const
Definition: SCT_FSIHelper.h:45
FSIDetails::locationType
const std::string & locationType() const
Definition: SCT_FSIHelper.h:48
FSIDetails::actualType
const std::string & actualType() const
Definition: SCT_FSIHelper.h:49
FSIHelper::~FSIHelper
~FSIHelper()
Definition: SCT_FSIHelper.cxx:46
FSIDetails::m_location
const FSILocation * m_location
Definition: SCT_FSIHelper.h:52