37 #define PRINT(x) std::cout << x << ' '
39 #define PRINT(x) edm::LogInfo(x)
45 PRINT(
"MuonNavigationPrinter")<<
"MuonNavigationPrinter::MuonNavigationPrinter" << std::endl;
46 PRINT(
"MuonNavigationPrinter")<<
"================================" << std::endl;
47 PRINT(
"MuonNavigationPrinter")<<
"BARREL:" << std::endl;
48 vector<const DetLayer*>
barrel;
52 PRINT(
"MuonNavigationPrinter")<<
"There are "<<barrel.size()<<
" Barrel DetLayers";
54 PRINT(
"MuonNavigationPrinter")<<
"================================" << std::endl;
55 PRINT(
"MuonNavigationPrinter") <<
"BACKWARD:" << std::endl;
57 vector<const DetLayer*> backward;
58 if ( enableCSC & enableGEM & enableRPC ) backward = muonLayout->
allBackwardLayers();
60 else if ( !enableCSC & enableGEM & !enableRPC ) backward = muonLayout->
backwardGEMLayers();
61 else if ( enableCSC & !enableGEM & !enableRPC ) backward = muonLayout->
backwardCSCLayers();
64 PRINT(
"MuonNavigationPrinter")<<
"There are "<<backward.size()<<
" Backward DetLayers";
66 PRINT(
"MuonNavigationPrinter") <<
"==============================" << std::endl;
67 PRINT(
"MuonNavigationPrinter") <<
"FORWARD:" << std::endl;
68 vector<const DetLayer*> forward;
69 if ( enableCSC & enableGEM & enableRPC ) forward = muonLayout->
allForwardLayers();
71 else if ( !enableCSC & enableGEM & !enableRPC ) forward = muonLayout->
forwardGEMLayers();
72 else if ( enableCSC & !enableGEM & !enableRPC ) forward = muonLayout->
forwardCSCLayers();
75 PRINT(
"MuonNavigationPrinter")<<
"There are "<<forward.size()<<
" Forward DetLayers" << std::endl;
83 PRINT(
"MuonNavigationPrinter")<<
"MuonNavigationPrinter::MuonNavigationPrinter" << std::endl ;
86 PRINT(
"MuonNavigationPrinter")<<
"================================" << std::endl;
87 PRINT(
"MuonNavigationPrinter")<<
"BARREL:" << std::endl;
88 vector<const BarrelDetLayer*> tkbarrel = tracker->
barrelLayers();
89 PRINT(
"MuonNavigationPrinter")<<
"There are "<<tkbarrel.size()<<
" Tk Barrel DetLayers" << std::endl;
92 PRINT(
"MuonNavigationPrinter")<<
"There are "<<barrel.size()<<
" Mu Barrel DetLayers";
94 PRINT(
"MuonNavigationPrinter")<<
"================================" << std::endl;
95 PRINT(
"MuonNavigationPrinter") <<
"BACKWARD:" << std::endl;
97 PRINT(
"MuonNavigationPrinter")<<
"There are "<<tkbackward.size()<<
" Tk Backward DetLayers" << std::endl;
100 PRINT(
"MuonNavigationPrinter")<<
"There are "<<backward.size()<<
" Mu Backward DetLayers << std::endl";
102 PRINT(
"MuonNavigationPrinter") <<
"==============================" << std::endl;
103 PRINT(
"MuonNavigationPrinter") <<
"FORWARD:" << std::endl;
105 PRINT(
"MuonNavigationPrinter")<<
"There are "<<tkforward.size()<<
" Tk Forward DetLayers" << std::endl;
109 PRINT(
"MuonNavigationPrinter")<<
"There are "<<forward.size()<<
" Mu Forward DetLayers";
118 if (
const BarrelDetLayer* bdl = dynamic_cast<const BarrelDetLayer*>(layer)) {
119 PRINT(
"MuonNavigationPrinter")
121 << setiosflags(ios::showpoint | ios::fixed)
122 << setw(8) << setprecision(2)
123 << bdl->specificSurface().radius() <<
" length: "
124 << setw(6) << setprecision(2)
128 else if (
const ForwardDetLayer* fdl = dynamic_cast<const ForwardDetLayer*>(layer)) {
129 PRINT(
"MuonNavigationPrinter") << endl
131 << setiosflags(ios::showpoint | ios::fixed)
132 << setw(8) << setprecision(2)
134 << setw(6) << setprecision(2)
135 << fdl->specificSurface().innerRadius() <<
" outer r: "
136 << setw(6) << setprecision(2)
137 << fdl->specificSurface().outerRadius() << std::endl;
139 PRINT(
"MuonNavigationPrinter") <<
" has " << nextLayers.size() <<
" next layers in the direction inside-out: " << std::endl;
145 PRINT(
"MuonNavigationPrinter") <<
" has " << nextLayers.size() <<
" next layers in the direction outside-in: " << std::endl;
148 PRINT(
"MuonNavigationPrinter") <<
" has " << compatibleLayers.size() <<
" compatible layers in the direction inside-out:: " << std::endl;
150 compatibleLayers.clear();
153 PRINT(
"MuonNavigationPrinter") <<
" has " << compatibleLayers.size() <<
" compatible layers in the direction outside-in: " << std::endl;
161 for ( vector<const DetLayer*>::const_iterator inext = nextLayers.begin();
162 inext != nextLayers.end(); inext++ ) {
164 PRINT(
"MuonNavigationPrinter") <<
" --> " << std::endl;
167 PRINT(
"MuonNavigationPrinter") << (*inext)->location() <<
" "
168 << (*inext)->subDetector()
170 << setiosflags(ios::showpoint | ios::fixed)
171 << setw(8) << setprecision(2)
176 PRINT(
"MuonNavigationPrinter") << (*inext)->location() <<
" "
177 << (*inext)->subDetector()
179 << setiosflags(ios::showpoint | ios::fixed)
180 << setw(8) << setprecision(2)
183 PRINT(
"MuonNavigationPrinter") << setiosflags(ios::showpoint | ios::fixed)
185 << setw(6) << (*inext)->surface().bounds().length() <<
", "
186 << setw(6) << (*inext)->surface().bounds().width() <<
", "
187 << setw(4) <<(*inext)->surface().bounds().thickness() <<
" : "
188 << (*inext)->surface().position() << std::endl;
virtual const BoundSurface & surface() const =0
The surface of the GeometricSearchDet.
const std::vector< const DetLayer * > & backwardGEMLayers() const
return the backward (-Z) GEM DetLayers, inside-out
virtual float length() const =0
const std::vector< const DetLayer * > & allCscGemBackwardLayers() const
return all endcap DetLayers (CSC+GEM), -Z to +Z
std::vector< ForwardDetLayer const * > const & posForwardLayers() const
virtual Location location() const =0
Which part of the detector (barrel, endcap)
virtual const BoundSurface & surface() const
The surface of the GeometricSearchDet.
virtual SubDetector subDetector() const =0
The type of detector (PixelBarrel, PixelEndcap, TIB, TOB, TID, TEC, CSC, DT, RPCBarrel, RPCEndcap)
const Bounds & bounds() const
void printLayers(const std::vector< const DetLayer * > &) const
print next layers
MuonNavigationSchool const * school
return detector part (barrel, forward, backward)
const std::vector< const DetLayer * > & allForwardLayers() const
return all forward (+Z) layers (CSC+RPC+GEM), inside-out
std::vector< const DetLayer * > compatibleLayers(const DetLayer &detLayer, Args &&...args) const
Returns all layers compatible.
std::vector< ForwardDetLayer const * > const & negForwardLayers() const
const std::vector< const DetLayer * > & allBarrelLayers() const
return all barrel DetLayers (DT+RPC), inside-out
const std::vector< const DetLayer * > & allDTLayers() const
return the DT DetLayers (barrel), inside-out
const std::vector< const DetLayer * > & forwardCSCLayers() const
return the forward (+Z) CSC DetLayers, inside-out
std::vector< const DetLayer * > nextLayers(const DetLayer &detLayer, Args &&...args) const
NavigationDirection.
virtual const BoundCylinder & specificSurface() const
Extension of the interface.
const std::vector< const DetLayer * > & allBackwardLayers() const
return all backward (-Z) layers (CSC+RPC+GEM), inside-out
MuonNavigationPrinter(const MuonDetLayerGeometry *, MuonNavigationSchool const &, bool enableRPC=true, bool enableCSC=true, bool enableGEM=false)
const std::vector< const DetLayer * > & forwardGEMLayers() const
return the forward (+Z) GEM DetLayers, inside-out
const std::vector< const DetLayer * > & backwardCSCLayers() const
return the backward (-Z) CSC DetLayers, inside-out
const std::vector< const DetLayer * > & allCscGemForwardLayers() const
return all endcap DetLayers (CSC+GEM), -Z to +Z
const PositionType & position() const
void printLayer(const DetLayer *) const
print layer
std::vector< BarrelDetLayer const * > const & barrelLayers() const