5 #ifndef MUON_MUONTRACKSTEERINGSTRATEGY_H
6 #define MUON_MUONTRACKSTEERINGSTRATEGY_H
13 #include "GaudiKernel/MsgStream.h"
32 std::vector<std::vector<MuonStationIndex::ChIndex> >&
path, std::vector<unsigned int>& seedOrder) :
37 std::vector<std::vector<MuonStationIndex::ChIndex> >&
path) :
44 std::vector<std::vector<MuonStationIndex::ChIndex> >&
path, std::vector<unsigned int>& seedOrder) :
56 void setCh(
const std::vector<MuonStationIndex::ChIndex>&
val,
const unsigned int layer);
57 void setCh(
const std::vector<std::vector<MuonStationIndex::ChIndex> >&
val) {
m_path =
val; }
60 const std::vector<std::vector<MuonStationIndex::ChIndex> >&
getAll()
const {
return m_path; }
61 const std::vector<MuonStationIndex::ChIndex>&
getCh(
const unsigned int)
const;
73 std::vector<std::vector<MuonStationIndex::ChIndex> >
m_path;
79 if (
opt ==
"CutSeedsOnTracks")
81 else if (
opt ==
"CombineSegInStation")
83 else if (
opt ==
"DynamicSeeding")
85 else if (
opt ==
"PreferOutsideIn")
87 else if (
opt ==
"AllowOneSharedHit")
89 else if (
opt ==
"DoRefinement")
91 else if (
opt ==
"DoAmbiSolving")
93 else if (
opt ==
"BarrelEndcapFilter")
97 std::vector<unsigned int>
seeds;
99 for (
unsigned int i = 0;
i <
opt.size() && success; ++
i) {
101 if (holder < 0 || holder > 9)
104 seeds.push_back(holder);
111 if (
opt == Last)
return;
126 throw std::range_error(
"MuonTrackSteering a path beyond the possible paths is chosen");
132 return m_bits[
static_cast<unsigned int>(op)];
136 sl <<
"MuonTrackSteeringStrategy " << mtss.
getName() <<
" with options: " << mtss.
allOptions() <<
" with seeds";
137 if (mtss.
seeds().size()) {
138 for (
unsigned int i = 0;
i < mtss.
seeds().
size(); ++
i) { sl <<
" " << mtss.
seeds()[
i]; }
141 sl <<
" and chambers are: " << std::endl;
143 sl <<
"\t Step " <<
i <<
" : ( ";
144 for (
unsigned int j = 0; j < mtss.
getCh(
i).
size() - 1; ++j) sl << mtss.
getCh(
i)[j] <<
" , ";
146 sl <<
" ) " << std::endl;
152 sl <<
"MuonTrackSteeringStrategy " << mtss.
getName() <<
" with options: " << mtss.
allOptions() <<
" with seeds";
153 if (mtss.
seeds().size()) {
154 for (
unsigned int i = 0;
i < mtss.
seeds().
size(); ++
i) { sl <<
" " << mtss.
seeds()[
i]; }
157 sl <<
" and chambers are: " << std::endl;
159 sl <<
"\t Step " <<
i <<
" : ( ";
160 for (
unsigned int j = 0; j < mtss.
getCh(
i).
size() - 1; ++j) sl << mtss.
getCh(
i)[j] <<
" , ";
162 sl <<
" ) " << std::endl;