We have introduced a new feature: possibility to move and rotate the detectors directly in the macro. The values specified in the call to standard constructor overwrite the values stored in the geometry file.
That is why you do not see the effect.
An exception is done for GLAD, where the position and angle (taken from the actual placement in the cave) are hard-coded in R3BGladMagnet.cxx in the standard constructor, and they are not supposed to be changed from experiment to experiment.
1. Which geometry version are you using?
2. How does the call to R3BGladMagnet(...) look like in your case (in the macro)?
3. What are the values of position and angle in the R3BGladMagnet(...) implementation in your case?
R3BModule* mag = new R3BGladMagnet("GladMagnet");
R3BGladMagnet::R3BGladMagnet(const char* name, const char* Title) : R3BModule(name, Title) {
R3BGladMagnet::R3BGladMagnet(const char* name, const char* Title) : R3BModule(name, Title), fGladAngle( 14. ) {
As a side question: where I can find this kind of information? (except bothering you here...)
new R3BGladMagnet("GladMagnet", "glad_v17_flange.geo.root", "R3BGlad Magnet")
R3BGladMagnet::R3BGladMagnet(const char* name, TString geoFile, const char* Title) : R3BModule(name, Title, geoFile, -42., 0., 308.8) , fGladAngle(14.) { }
If you do not pass position and angle arguments to the constructor - the values from the geometry file are taken (exception for glad - the values are hard-coded in the call to ctor of the base class).
TGeoRotation* rot_glob = new TGeoRotation(); rot_glob->RotateY(90.0); rot_glob->RotateZ(-90.0); rot_glob->RotateY(fGladAngle); //<--- look here! rot_glob->RotateZ(180.0);
I recommend usage of "glad_v17_flange.geo.root" geometry file - the closest to real geometry we have in the cave.
Here is how the constructor is called in run_sim.C (new simulation macro, was also announced through the mailing list):
[...]
And all this works properly in the central dev branch.