#include "AliMUONGeometryDetElement.h"
#include "AliLog.h"
#include <TGeoMatrix.h>
#include <Riostream.h>
#include <sstream>
using std::cout;
using std::endl;
using std::string;
ClassImp(AliMUONGeometryDetElement)
const TString& AliMUONGeometryDetElement::GetDENamePrefix()
{
static const TString kDENamePrefix = "DE";
return kDENamePrefix;
}
TString AliMUONGeometryDetElement::GetDEName(Int_t detElemId)
{
TString deName(GetDENamePrefix());
deName += detElemId;
return deName;
}
AliMUONGeometryDetElement::AliMUONGeometryDetElement(Int_t detElemId)
: TObject(),
fDEName(GetDEName(detElemId)),
fVolumePath(),
fLocalTransformation(0),
fGlobalTransformation(0)
{
SetUniqueID(detElemId);
}
AliMUONGeometryDetElement::AliMUONGeometryDetElement(
Int_t detElemId,
const TString& volumePath)
: TObject(),
fDEName(GetDEName(detElemId)),
fVolumePath(volumePath),
fLocalTransformation(0),
fGlobalTransformation(0)
{
SetUniqueID(detElemId);
}
AliMUONGeometryDetElement::AliMUONGeometryDetElement(TRootIOCtor* )
: TObject(),
fDEName(),
fVolumePath(),
fLocalTransformation(0),
fGlobalTransformation(0)
{
}
AliMUONGeometryDetElement::~AliMUONGeometryDetElement()
{
delete fLocalTransformation;
delete fGlobalTransformation;
}
void AliMUONGeometryDetElement::PrintTransform(
const TGeoHMatrix* transform) const
{
cout << "DetElemId: " << GetUniqueID();
cout << " name: " << fVolumePath << endl;
if ( !transform ) {
cout << " Transformation not defined." << endl;
return;
}
const double* translation = transform->GetTranslation();
cout << " translation: "
#if defined (__DECCXX)
<< translation[0] << ", "
<< translation[1] << ", "
<< translation[2] << endl;
#else
<< std::fixed
<< std::setw(7) << std::setprecision(4) << translation[0] << ", "
<< std::setw(7) << std::setprecision(4) << translation[1] << ", "
<< std::setw(7) << std::setprecision(4) << translation[2] << endl;
#endif
const double* rotation = transform->GetRotationMatrix();
cout << " rotation matrix: "
#if defined (__DECCXX)
<< rotation[0] << ", " << rotation[1] << ", " << rotation[2] << endl
<< " "
<< rotation[3] << ", " << rotation[4] << ", " << rotation[5] << endl
<< " "
<< rotation[6] << ", " << rotation[7] << ", " << rotation[8] << endl;
#else
<< std::fixed
<< std::setw(7) << std::setprecision(4)
<< rotation[0] << ", " << rotation[1] << ", " << rotation[2] << endl
<< " "
<< rotation[3] << ", " << rotation[4] << ", " << rotation[5] << endl
<< " "
<< rotation[6] << ", " << rotation[7] << ", " << rotation[8] << endl;
#endif
}
void AliMUONGeometryDetElement::Global2Local(
Float_t xg, Float_t yg, Float_t zg,
Float_t& xl, Float_t& yl, Float_t& zl) const
{
Double_t dxg = xg;
Double_t dyg = yg;
Double_t dzg = zg;
Double_t dxl, dyl, dzl;
Global2Local(dxg, dyg, dzg, dxl, dyl, dzl);
xl = dxl;
yl = dyl;
zl = dzl;
}
void AliMUONGeometryDetElement::Global2Local(
Double_t xg, Double_t yg, Double_t zg,
Double_t& xl, Double_t& yl, Double_t& zl) const
{
if (!fGlobalTransformation) {
AliError(Form("Global transformation for detection element %d not defined.",
GetUniqueID()));
return;
}
Double_t pg[3] = { xg, yg, zg };
Double_t pl[3] = { 0., 0., 0. };
fGlobalTransformation->MasterToLocal(pg, pl);
xl = pl[0];
yl = pl[1];
zl = pl[2];
}
void AliMUONGeometryDetElement::Local2Global(
Float_t xl, Float_t yl, Float_t zl,
Float_t& xg, Float_t& yg, Float_t& zg) const
{
Double_t dxl = xl;
Double_t dyl = yl;
Double_t dzl = zl;
Double_t dxg, dyg, dzg;
Local2Global(dxl, dyl, dzl, dxg, dyg, dzg);
xg = dxg;
yg = dyg;
zg = dzg;
}
void AliMUONGeometryDetElement::Local2Global(
Double_t xl, Double_t yl, Double_t zl,
Double_t& xg, Double_t& yg, Double_t& zg) const
{
if (!fGlobalTransformation) {
AliError(Form("Global transformation for detection element %d not defined.",
GetUniqueID()));
return;
}
Double_t pl[3] = { xl, yl, zl };
Double_t pg[3] = { 0., 0., 0. };
fGlobalTransformation->LocalToMaster(pl, pg);
xg = pg[0];
yg = pg[1];
zg = pg[2];
}
void AliMUONGeometryDetElement::SetLocalTransformation(
const TGeoHMatrix& transform,
Bool_t warn)
{
if ( fLocalTransformation ) {
delete fLocalTransformation;
if ( warn ) {
AliWarning("Local transformation already defined was deleted.");
}
}
fLocalTransformation = new TGeoHMatrix(transform);
}
void AliMUONGeometryDetElement::SetGlobalTransformation(
const TGeoHMatrix& transform,
Bool_t warn)
{
if (fGlobalTransformation) {
delete fGlobalTransformation;
if ( warn ) {
AliWarning("Global transformation already defined was deleted.");
}
}
fGlobalTransformation = new TGeoHMatrix(transform);
}
void AliMUONGeometryDetElement::PrintLocalTransform() const
{
PrintTransform(fLocalTransformation);
}
void AliMUONGeometryDetElement::PrintGlobalTransform() const
{
PrintTransform(fGlobalTransformation);
}
TString AliMUONGeometryDetElement::GetVolumeName() const
{
std::string volPath = fVolumePath.Data();
std::string::size_type first = volPath.rfind('/')+1;
std::string::size_type last = volPath.rfind('_');
return volPath.substr(first, last-first );
}
Int_t AliMUONGeometryDetElement::GetVolumeCopyNo() const
{
string volPath = fVolumePath.Data();
std::string::size_type first = volPath.rfind('_');
std::string copyNoStr = volPath.substr(first+1, volPath.length());
std::istringstream in(copyNoStr);
Int_t copyNo;
in >> copyNo;
return copyNo;
}
AliMUONGeometryDetElement.cxx:1 AliMUONGeometryDetElement.cxx:2 AliMUONGeometryDetElement.cxx:3 AliMUONGeometryDetElement.cxx:4 AliMUONGeometryDetElement.cxx:5 AliMUONGeometryDetElement.cxx:6 AliMUONGeometryDetElement.cxx:7 AliMUONGeometryDetElement.cxx:8 AliMUONGeometryDetElement.cxx:9 AliMUONGeometryDetElement.cxx:10 AliMUONGeometryDetElement.cxx:11 AliMUONGeometryDetElement.cxx:12 AliMUONGeometryDetElement.cxx:13 AliMUONGeometryDetElement.cxx:14 AliMUONGeometryDetElement.cxx:15 AliMUONGeometryDetElement.cxx:16 AliMUONGeometryDetElement.cxx:17 AliMUONGeometryDetElement.cxx:18 AliMUONGeometryDetElement.cxx:19 AliMUONGeometryDetElement.cxx:20 AliMUONGeometryDetElement.cxx:21 AliMUONGeometryDetElement.cxx:22 AliMUONGeometryDetElement.cxx:23 AliMUONGeometryDetElement.cxx:24 AliMUONGeometryDetElement.cxx:25 AliMUONGeometryDetElement.cxx:26 AliMUONGeometryDetElement.cxx:27 AliMUONGeometryDetElement.cxx:28 AliMUONGeometryDetElement.cxx:29 AliMUONGeometryDetElement.cxx:30 AliMUONGeometryDetElement.cxx:31 AliMUONGeometryDetElement.cxx:32 AliMUONGeometryDetElement.cxx:33 AliMUONGeometryDetElement.cxx:34 AliMUONGeometryDetElement.cxx:35 AliMUONGeometryDetElement.cxx:36 AliMUONGeometryDetElement.cxx:37 AliMUONGeometryDetElement.cxx:38 AliMUONGeometryDetElement.cxx:39 AliMUONGeometryDetElement.cxx:40 AliMUONGeometryDetElement.cxx:41 AliMUONGeometryDetElement.cxx:42 AliMUONGeometryDetElement.cxx:43 AliMUONGeometryDetElement.cxx:44 AliMUONGeometryDetElement.cxx:45 AliMUONGeometryDetElement.cxx:46 AliMUONGeometryDetElement.cxx:47 AliMUONGeometryDetElement.cxx:48 AliMUONGeometryDetElement.cxx:49 AliMUONGeometryDetElement.cxx:50 AliMUONGeometryDetElement.cxx:51 AliMUONGeometryDetElement.cxx:52 AliMUONGeometryDetElement.cxx:53 AliMUONGeometryDetElement.cxx:54 AliMUONGeometryDetElement.cxx:55 AliMUONGeometryDetElement.cxx:56 AliMUONGeometryDetElement.cxx:57 AliMUONGeometryDetElement.cxx:58 AliMUONGeometryDetElement.cxx:59 AliMUONGeometryDetElement.cxx:60 AliMUONGeometryDetElement.cxx:61 AliMUONGeometryDetElement.cxx:62 AliMUONGeometryDetElement.cxx:63 AliMUONGeometryDetElement.cxx:64 AliMUONGeometryDetElement.cxx:65 AliMUONGeometryDetElement.cxx:66 AliMUONGeometryDetElement.cxx:67 AliMUONGeometryDetElement.cxx:68 AliMUONGeometryDetElement.cxx:69 AliMUONGeometryDetElement.cxx:70 AliMUONGeometryDetElement.cxx:71 AliMUONGeometryDetElement.cxx:72 AliMUONGeometryDetElement.cxx:73 AliMUONGeometryDetElement.cxx:74 AliMUONGeometryDetElement.cxx:75 AliMUONGeometryDetElement.cxx:76 AliMUONGeometryDetElement.cxx:77 AliMUONGeometryDetElement.cxx:78 AliMUONGeometryDetElement.cxx:79 AliMUONGeometryDetElement.cxx:80 AliMUONGeometryDetElement.cxx:81 AliMUONGeometryDetElement.cxx:82 AliMUONGeometryDetElement.cxx:83 AliMUONGeometryDetElement.cxx:84 AliMUONGeometryDetElement.cxx:85 AliMUONGeometryDetElement.cxx:86 AliMUONGeometryDetElement.cxx:87 AliMUONGeometryDetElement.cxx:88 AliMUONGeometryDetElement.cxx:89 AliMUONGeometryDetElement.cxx:90 AliMUONGeometryDetElement.cxx:91 AliMUONGeometryDetElement.cxx:92 AliMUONGeometryDetElement.cxx:93 AliMUONGeometryDetElement.cxx:94 AliMUONGeometryDetElement.cxx:95 AliMUONGeometryDetElement.cxx:96 AliMUONGeometryDetElement.cxx:97 AliMUONGeometryDetElement.cxx:98 AliMUONGeometryDetElement.cxx:99 AliMUONGeometryDetElement.cxx:100 AliMUONGeometryDetElement.cxx:101 AliMUONGeometryDetElement.cxx:102 AliMUONGeometryDetElement.cxx:103 AliMUONGeometryDetElement.cxx:104 AliMUONGeometryDetElement.cxx:105 AliMUONGeometryDetElement.cxx:106 AliMUONGeometryDetElement.cxx:107 AliMUONGeometryDetElement.cxx:108 AliMUONGeometryDetElement.cxx:109 AliMUONGeometryDetElement.cxx:110 AliMUONGeometryDetElement.cxx:111 AliMUONGeometryDetElement.cxx:112 AliMUONGeometryDetElement.cxx:113 AliMUONGeometryDetElement.cxx:114 AliMUONGeometryDetElement.cxx:115 AliMUONGeometryDetElement.cxx:116 AliMUONGeometryDetElement.cxx:117 AliMUONGeometryDetElement.cxx:118 AliMUONGeometryDetElement.cxx:119 AliMUONGeometryDetElement.cxx:120 AliMUONGeometryDetElement.cxx:121 AliMUONGeometryDetElement.cxx:122 AliMUONGeometryDetElement.cxx:123 AliMUONGeometryDetElement.cxx:124 AliMUONGeometryDetElement.cxx:125 AliMUONGeometryDetElement.cxx:126 AliMUONGeometryDetElement.cxx:127 AliMUONGeometryDetElement.cxx:128 AliMUONGeometryDetElement.cxx:129 AliMUONGeometryDetElement.cxx:130 AliMUONGeometryDetElement.cxx:131 AliMUONGeometryDetElement.cxx:132 AliMUONGeometryDetElement.cxx:133 AliMUONGeometryDetElement.cxx:134 AliMUONGeometryDetElement.cxx:135 AliMUONGeometryDetElement.cxx:136 AliMUONGeometryDetElement.cxx:137 AliMUONGeometryDetElement.cxx:138 AliMUONGeometryDetElement.cxx:139 AliMUONGeometryDetElement.cxx:140 AliMUONGeometryDetElement.cxx:141 AliMUONGeometryDetElement.cxx:142 AliMUONGeometryDetElement.cxx:143 AliMUONGeometryDetElement.cxx:144 AliMUONGeometryDetElement.cxx:145 AliMUONGeometryDetElement.cxx:146 AliMUONGeometryDetElement.cxx:147 AliMUONGeometryDetElement.cxx:148 AliMUONGeometryDetElement.cxx:149 AliMUONGeometryDetElement.cxx:150 AliMUONGeometryDetElement.cxx:151 AliMUONGeometryDetElement.cxx:152 AliMUONGeometryDetElement.cxx:153 AliMUONGeometryDetElement.cxx:154 AliMUONGeometryDetElement.cxx:155 AliMUONGeometryDetElement.cxx:156 AliMUONGeometryDetElement.cxx:157 AliMUONGeometryDetElement.cxx:158 AliMUONGeometryDetElement.cxx:159 AliMUONGeometryDetElement.cxx:160 AliMUONGeometryDetElement.cxx:161 AliMUONGeometryDetElement.cxx:162 AliMUONGeometryDetElement.cxx:163 AliMUONGeometryDetElement.cxx:164 AliMUONGeometryDetElement.cxx:165 AliMUONGeometryDetElement.cxx:166 AliMUONGeometryDetElement.cxx:167 AliMUONGeometryDetElement.cxx:168 AliMUONGeometryDetElement.cxx:169 AliMUONGeometryDetElement.cxx:170 AliMUONGeometryDetElement.cxx:171 AliMUONGeometryDetElement.cxx:172 AliMUONGeometryDetElement.cxx:173 AliMUONGeometryDetElement.cxx:174 AliMUONGeometryDetElement.cxx:175 AliMUONGeometryDetElement.cxx:176 AliMUONGeometryDetElement.cxx:177 AliMUONGeometryDetElement.cxx:178 AliMUONGeometryDetElement.cxx:179 AliMUONGeometryDetElement.cxx:180 AliMUONGeometryDetElement.cxx:181 AliMUONGeometryDetElement.cxx:182 AliMUONGeometryDetElement.cxx:183 AliMUONGeometryDetElement.cxx:184 AliMUONGeometryDetElement.cxx:185 AliMUONGeometryDetElement.cxx:186 AliMUONGeometryDetElement.cxx:187 AliMUONGeometryDetElement.cxx:188 AliMUONGeometryDetElement.cxx:189 AliMUONGeometryDetElement.cxx:190 AliMUONGeometryDetElement.cxx:191 AliMUONGeometryDetElement.cxx:192 AliMUONGeometryDetElement.cxx:193 AliMUONGeometryDetElement.cxx:194 AliMUONGeometryDetElement.cxx:195 AliMUONGeometryDetElement.cxx:196 AliMUONGeometryDetElement.cxx:197 AliMUONGeometryDetElement.cxx:198 AliMUONGeometryDetElement.cxx:199 AliMUONGeometryDetElement.cxx:200 AliMUONGeometryDetElement.cxx:201 AliMUONGeometryDetElement.cxx:202 AliMUONGeometryDetElement.cxx:203 AliMUONGeometryDetElement.cxx:204 AliMUONGeometryDetElement.cxx:205 AliMUONGeometryDetElement.cxx:206 AliMUONGeometryDetElement.cxx:207 AliMUONGeometryDetElement.cxx:208 AliMUONGeometryDetElement.cxx:209 AliMUONGeometryDetElement.cxx:210 AliMUONGeometryDetElement.cxx:211 AliMUONGeometryDetElement.cxx:212 AliMUONGeometryDetElement.cxx:213 AliMUONGeometryDetElement.cxx:214 AliMUONGeometryDetElement.cxx:215 AliMUONGeometryDetElement.cxx:216 AliMUONGeometryDetElement.cxx:217 AliMUONGeometryDetElement.cxx:218 AliMUONGeometryDetElement.cxx:219 AliMUONGeometryDetElement.cxx:220 AliMUONGeometryDetElement.cxx:221 AliMUONGeometryDetElement.cxx:222 AliMUONGeometryDetElement.cxx:223 AliMUONGeometryDetElement.cxx:224 AliMUONGeometryDetElement.cxx:225 AliMUONGeometryDetElement.cxx:226 AliMUONGeometryDetElement.cxx:227 AliMUONGeometryDetElement.cxx:228 AliMUONGeometryDetElement.cxx:229 AliMUONGeometryDetElement.cxx:230 AliMUONGeometryDetElement.cxx:231 AliMUONGeometryDetElement.cxx:232 AliMUONGeometryDetElement.cxx:233 AliMUONGeometryDetElement.cxx:234 AliMUONGeometryDetElement.cxx:235 AliMUONGeometryDetElement.cxx:236 AliMUONGeometryDetElement.cxx:237 AliMUONGeometryDetElement.cxx:238 AliMUONGeometryDetElement.cxx:239 AliMUONGeometryDetElement.cxx:240 AliMUONGeometryDetElement.cxx:241 AliMUONGeometryDetElement.cxx:242 AliMUONGeometryDetElement.cxx:243 AliMUONGeometryDetElement.cxx:244 AliMUONGeometryDetElement.cxx:245 AliMUONGeometryDetElement.cxx:246 AliMUONGeometryDetElement.cxx:247 AliMUONGeometryDetElement.cxx:248 AliMUONGeometryDetElement.cxx:249 AliMUONGeometryDetElement.cxx:250 AliMUONGeometryDetElement.cxx:251 AliMUONGeometryDetElement.cxx:252 AliMUONGeometryDetElement.cxx:253 AliMUONGeometryDetElement.cxx:254 AliMUONGeometryDetElement.cxx:255 AliMUONGeometryDetElement.cxx:256 AliMUONGeometryDetElement.cxx:257 AliMUONGeometryDetElement.cxx:258 AliMUONGeometryDetElement.cxx:259 AliMUONGeometryDetElement.cxx:260 AliMUONGeometryDetElement.cxx:261 AliMUONGeometryDetElement.cxx:262 AliMUONGeometryDetElement.cxx:263 AliMUONGeometryDetElement.cxx:264 AliMUONGeometryDetElement.cxx:265 AliMUONGeometryDetElement.cxx:266 AliMUONGeometryDetElement.cxx:267 AliMUONGeometryDetElement.cxx:268 AliMUONGeometryDetElement.cxx:269 AliMUONGeometryDetElement.cxx:270 AliMUONGeometryDetElement.cxx:271 AliMUONGeometryDetElement.cxx:272 AliMUONGeometryDetElement.cxx:273 AliMUONGeometryDetElement.cxx:274 AliMUONGeometryDetElement.cxx:275 AliMUONGeometryDetElement.cxx:276 AliMUONGeometryDetElement.cxx:277 AliMUONGeometryDetElement.cxx:278 AliMUONGeometryDetElement.cxx:279 AliMUONGeometryDetElement.cxx:280 AliMUONGeometryDetElement.cxx:281 AliMUONGeometryDetElement.cxx:282 AliMUONGeometryDetElement.cxx:283 AliMUONGeometryDetElement.cxx:284 AliMUONGeometryDetElement.cxx:285 AliMUONGeometryDetElement.cxx:286 AliMUONGeometryDetElement.cxx:287 AliMUONGeometryDetElement.cxx:288 AliMUONGeometryDetElement.cxx:289 AliMUONGeometryDetElement.cxx:290 AliMUONGeometryDetElement.cxx:291 AliMUONGeometryDetElement.cxx:292 AliMUONGeometryDetElement.cxx:293 AliMUONGeometryDetElement.cxx:294 AliMUONGeometryDetElement.cxx:295 AliMUONGeometryDetElement.cxx:296 AliMUONGeometryDetElement.cxx:297 AliMUONGeometryDetElement.cxx:298 AliMUONGeometryDetElement.cxx:299 AliMUONGeometryDetElement.cxx:300 AliMUONGeometryDetElement.cxx:301 AliMUONGeometryDetElement.cxx:302 AliMUONGeometryDetElement.cxx:303 AliMUONGeometryDetElement.cxx:304 AliMUONGeometryDetElement.cxx:305 AliMUONGeometryDetElement.cxx:306 AliMUONGeometryDetElement.cxx:307 AliMUONGeometryDetElement.cxx:308 AliMUONGeometryDetElement.cxx:309 AliMUONGeometryDetElement.cxx:310 AliMUONGeometryDetElement.cxx:311 AliMUONGeometryDetElement.cxx:312 AliMUONGeometryDetElement.cxx:313 AliMUONGeometryDetElement.cxx:314 AliMUONGeometryDetElement.cxx:315 AliMUONGeometryDetElement.cxx:316 AliMUONGeometryDetElement.cxx:317 AliMUONGeometryDetElement.cxx:318 AliMUONGeometryDetElement.cxx:319 AliMUONGeometryDetElement.cxx:320 AliMUONGeometryDetElement.cxx:321 AliMUONGeometryDetElement.cxx:322 AliMUONGeometryDetElement.cxx:323 AliMUONGeometryDetElement.cxx:324 AliMUONGeometryDetElement.cxx:325 AliMUONGeometryDetElement.cxx:326 AliMUONGeometryDetElement.cxx:327 AliMUONGeometryDetElement.cxx:328 AliMUONGeometryDetElement.cxx:329 AliMUONGeometryDetElement.cxx:330 AliMUONGeometryDetElement.cxx:331 AliMUONGeometryDetElement.cxx:332 AliMUONGeometryDetElement.cxx:333 AliMUONGeometryDetElement.cxx:334 AliMUONGeometryDetElement.cxx:335 AliMUONGeometryDetElement.cxx:336 AliMUONGeometryDetElement.cxx:337