11 #ifndef CBM_RICH_REC_GEO_PAR
12 #define CBM_RICH_REC_GEO_PAR
14 #include <RtypesCore.h>
18 #include <FairLogger.h>
116 LOG(info) <<
"-I- RICH geometry parameters";
119 LOG(info) <<
"Geometry type: CbmRichGeometryTypeTwoWings";
122 LOG(info) <<
"Geometry type: CbmRichGeometryTypeCylindrical";
125 LOG(info) <<
"ERROR, geometry type is not correct";
135 LOG(info) <<
"PMT position in (x,y,z) [cm]: " <<
fPmt.
fX <<
" " <<
fPmt.
fY
137 LOG(info) <<
"PMT plane position in (x,y,z) [cm]: " <<
fPmt.
fPlaneX <<
" "
139 LOG(info) <<
"PMT width and height [cm]: " <<
fPmt.
fWidth <<
" "
141 LOG(info) <<
"PMT was rotated around x (theta) by "
143 LOG(info) <<
"PMT was rotated around y (phi) by "
151 LOG(info) <<
"PMT strip gap " <<
fPmtStripGap <<
" [cm]";
153 typedef std::map<std::string, CbmRichRecGeoParPmt>::iterator it_type;
154 for (it_type iterator =
fPmtMap.begin(); iterator !=
fPmtMap.end();
156 LOG(info) <<
"Geo path:" << iterator->first;
157 LOG(info) <<
"PMT position in (x,y,z) [cm]: " << iterator->second.fX
158 <<
" " << iterator->second.fY <<
" " << iterator->second.fZ;
159 LOG(info) <<
"PMT plane position in (x,y,z) [cm]: "
160 << iterator->second.fPlaneX <<
" " << iterator->second.fPlaneY
161 <<
" " << iterator->second.fPlaneZ;
162 LOG(info) <<
"PMT width and height [cm]: " << iterator->second.fWidth
163 <<
" " << iterator->second.fHeight;
164 LOG(info) <<
"PMT was rotated around x (theta) by "
165 << iterator->second.fTheta * 180. /
TMath::Pi() <<
" degrees";
166 LOG(info) <<
"PMT was rotated around y (phi) by "
167 << iterator->second.fPhi * 180. /
TMath::Pi() <<
" degrees";
172 LOG(info) <<
"Refractive index for lowest photon energies: " <<
fNRefrac
173 <<
", (n-1)*10000: " << (
fNRefrac - 1.0) * 10000.0;
174 LOG(info) <<
"Mirror center (x,y,z): " <<
fMirrorX <<
" " <<
fMirrorY <<
" "
176 LOG(info) <<
"Mirror radius: " <<
fMirrorR;
183 typedef std::map<std::string, CbmRichRecGeoParPmt>::iterator it_type;
185 if (path.find(it->first) != std::string::npos) {
return it->second; }
190 if (TMath::IsNaN(
pos->X()) || TMath::IsNaN(
pos->Y())
191 || TMath::IsNaN(
pos->Z())) {
196 double minDist = 999999999.;
199 double x = it->second.fPlaneX;
200 double y = it->second.fPlaneY;
201 if ((
pos->Y() > 0) == (
y > 0)) {
202 double d = TMath::Abs(
x -
pos->X());
222 std::map<std::string, CbmRichRecGeoParPmt>