15 #include <boost/io/ios_state.hpp>
22 boost::io::ios_base_all_saver ifs(io);
24 io <<
" --FixedPadSizeTPCData: " << std::scientific << std::endl ;
25 io <<
" zHalf : " << d.zHalf << std::endl ;
26 io <<
" rMin : " << d.rMin << std::endl ;
27 io <<
" rMax : " << d.rMax << std::endl ;
28 io <<
" driftLength : " << d.driftLength << std::endl ;
29 io <<
" zMinReadout : " << d.zMinReadout << std::endl ;
30 io <<
" rMinReadout : " << d.rMinReadout << std::endl ;
31 io <<
" rMaxReadout : " << d.rMaxReadout << std::endl ;
32 io <<
" innerWallThickness : " << d.innerWallThickness << std::endl ;
33 io <<
" outerWallThickness : " << d.outerWallThickness << std::endl ;
34 io <<
" padHeight : " << d.padHeight << std::endl ;
35 io <<
" padWidth : " << d.padWidth << std::endl ;
36 io <<
" maxRow : " << d.maxRow << std::endl ;
37 io <<
" padGap : " << d.padGap << std::endl ;
45 boost::io::ios_base_all_saver ifs(io);
47 io <<
" -- ZPlanarData: " << std::scientific << std::endl ;
48 io <<
" zHalfShell : " << d.zHalfShell << std::endl ;
49 io <<
" gapShell : " << d.gapShell << std::endl ;
50 io <<
" rInnerShell : " << d.rInnerShell << std::endl ;
51 io <<
" rOuterShell : " << d.rOuterShell << std::endl ;
52 io <<
" widthStrip : " << d.widthStrip << std::endl ;
53 io <<
" lengthStrip : " << d.lengthStrip << std::endl ;
54 io <<
" pitchStrip : " << d.pitchStrip << std::endl ;
55 io <<
" angleStrip : " << d.angleStrip << std::endl ;
57 std::vector<ZPlanarData::LayerLayout> layers = d.layers ;
59 io <<
" Layers : " << std::endl
60 <<
" nLadder phi0 nSensors lengthSensor distSupport thickSupport offsetSupport widthSupport zHalfSupport distSense thickSense offsetSense widthSense zHalfSense" << std::endl ;
64 for(
unsigned i=0,N=layers.size() ; i<N ; ++i){
66 ZPlanarData::LayerLayout l = layers[i] ;
68 io <<
" " << l.ladderNumber
70 <<
" " << l.sensorsPerLadder
71 <<
" " << l.lengthSensor
72 <<
" " << l.distanceSupport
73 <<
" " << l.thicknessSupport
74 <<
" " << l.offsetSupport
75 <<
" " << l.widthSupport
76 <<
" " << l.zHalfSupport
77 <<
" " << l.distanceSensitive
78 <<
" " << l.thicknessSensitive
79 <<
" " << l.offsetSensitive
80 <<
" " << l.widthSensitive
81 <<
" " << l.zHalfSensitive
89 boost::io::ios_base_all_saver ifs(io);
91 io <<
" -- ZDiskPetalsData: " << std::scientific << std::endl ;
92 io <<
" widthStrip : " << d.widthStrip << std::endl ;
93 io <<
" lengthStrip : " << d.lengthStrip << std::endl ;
94 io <<
" pitchStrip : " << d.pitchStrip << std::endl ;
95 io <<
" angleStrip : " << d.angleStrip << std::endl ;
97 std::vector<ZDiskPetalsData::LayerLayout> layers = d.layers ;
99 io <<
" Layers : " << std::endl
100 <<
" petHalfAngle alphaPetal zPosition nP n d p phi0 zOffsetSup distSupport thickSupport widthInSup widthOutSup lengthSup zOffsetSense distSense thickSense widthInSense widthOutSense lenSense" << std::endl ;
104 for(
unsigned i=0,N=layers.size() ; i<N ; ++i){
106 ZDiskPetalsData::LayerLayout l = layers[i] ;
108 io <<
" " << l.petalHalfAngle
109 <<
" " << l.alphaPetal
110 <<
" " << l.zPosition
111 <<
" " << l.petalNumber
112 <<
" " << l.sensorsPerPetal
113 <<
" " << l.typeFlags[ ZDiskPetalsData::SensorType::DoubleSided ]
114 <<
" " << l.typeFlags[ ZDiskPetalsData::SensorType::Pixel ]
116 <<
" " << l.zOffsetSupport
117 <<
" " << l.distanceSupport
118 <<
" " << l.thicknessSupport
119 <<
" " << l.widthInnerSupport
120 <<
" " << l.widthOuterSupport
121 <<
" " << l.lengthSupport
122 <<
" " << l.zOffsetSensitive
123 <<
" " << l.distanceSensitive
124 <<
" " << l.thicknessSensitive
125 <<
" " << l.widthInnerSensitive
126 <<
" " << l.widthOuterSensitive
127 <<
" " << l.lengthSensitive
131 io <<
" nP:petalNumber n:sensorsPerPetal d:DoubleSided p: Pixel " << std::endl ;
138 boost::io::ios_base_all_saver ifs(io);
140 io <<
" -- ConicalSupportData : " << std::scientific << std::endl ;
141 io <<
" isSymmetricInZ : " << d.isSymmetricInZ << std::endl ;
143 std::vector<ConicalSupportData::Section> layers = d.sections ;
145 io <<
" Sections : " << std::endl
146 <<
"rInner rOuter zPos " << std::endl ;
148 for(
unsigned i=0,N=layers.size() ; i<N ; ++i){
150 ConicalSupportData::Section l = layers[i] ;
152 io <<
" " << l.rInner
162 boost::io::ios_base_all_saver ifs(io);
164 io <<
" -- LayeredCalorimeterData : " << std::scientific << std::endl ;
165 switch (d.layoutType){
167 << d.extent[0] <<
" " << d.extent[1] <<
" " << d.extent[2] <<
" " << d.extent[3] << std::endl ;
break; }
169 << d.extent[0] <<
" " << d.extent[1] <<
" " << d.extent[2] <<
" " << d.extent[3] << std::endl ;
break; }
170 case LayeredCalorimeterStruct::ConicalLayout: { io <<
" LayoutType : ConicalLayout " << std::endl ; io <<
" extent[ rmin, rmax, zmin, zmax, rEndMin, rEndMax ] : " << d.extent[0] <<
" " << d.extent[1] <<
" " << d.extent[2] <<
" " << d.extent[3] <<
" " << d.extent[4] <<
" " << d.extent[5] << std::endl ;
break;}
172 io <<
" outer_symmetry : " << d.outer_symmetry << std::endl ;
173 io <<
" inner_symmetry : " << d.inner_symmetry << std::endl ;
174 io <<
" outer_phi0 : " << d.outer_phi0 << std::endl ;
175 io <<
" inner_phi0 : " << d.inner_phi0 << std::endl ;
176 io <<
" gap1 : " << d.gap1 << std::endl ;
177 io <<
" gap2 : " << d.gap2 << std::endl ;
179 std::vector<LayeredCalorimeterData::Layer> layers = d.layers ;
181 io <<
" Layers : " << std::endl
182 <<
" distance inner_nX0 outer_nX0 inner_nInt outer_nInt inner_thick outer_thick sense_thick cellSize0 cellSize1"
185 for(
unsigned i=0,N=layers.size() ; i<N ; ++i){
187 LayeredCalorimeterData::Layer l = layers[i] ;
189 io <<
" " << l.distance
190 <<
" " << l.inner_nRadiationLengths
191 <<
" " << l.outer_nRadiationLengths
192 <<
" " << l.inner_nInteractionLengths
193 <<
" " << l.outer_nInteractionLengths
194 <<
" " << l.inner_thickness
195 <<
" " << l.outer_thickness
196 <<
" " << l.sensitive_thickness
197 <<
" " << l.cellSize0
198 <<
" " << l.cellSize1
208 boost::io::ios_base_all_saver ifs(io);
210 io <<
" --NeighbourSurfacesData: " << std::scientific << std::endl ;
211 io <<
" sameLayer.size() : " << d.sameLayer.size() << std::endl ;
217 boost::io::ios_base_all_saver ifs(io);
218 io <<
" --DoubleParameters: " << std::scientific << std::endl ;
219 for (
auto const& thePair: d.doubleParameters) {
221 << std::setw(40) << thePair.first <<
":"
222 << std::setw(14) << thePair.second
229 struct visitor_impl {
231 void operator()(std::string value)
const {
232 m_io <<
": str = " << value;
235 void operator()(
int value)
const {
236 m_io <<
": int = " << value;
239 void operator()(
double value)
const {
240 m_io <<
": double = " << value;
243 void operator()(
bool value)
const {
244 m_io <<
": bool = " << (value ?
"true" :
"false");
251 boost::io::ios_base_all_saver ifs(io);
252 io <<
" --VariantParameters: " << std::scientific << std::endl ;
254 visitor_impl visitor{io};
256 for (
auto const& thePair:
v.variantParameters) {
258 << std::setw(40) << thePair.first <<
"";
259 boost::apply_visitor(visitor, thePair.second);