#include <Alignment/CocoaModel/interface/OptOPlateSplitter.h>
Public Member Functions | |
void | constructSolidShape () |
virtual void | detailedDeviatesLightRay (LightRay &lightray) |
virtual void | detailedTraversesLightRay (LightRay &lightray) |
virtual void | fastDeviatesLightRay (LightRay &lightray) |
virtual void | fastTraversesLightRay (LightRay &lightray) |
OptOPlateSplitter (OpticalObject *parent, const ALIstring &type, const ALIstring &name, const ALIbool copy_data) | |
OptOPlateSplitter () | |
~OptOPlateSplitter () |
Definition at line 18 of file OptOPlateSplitter.h.
OptOPlateSplitter::OptOPlateSplitter | ( | ) | [inline] |
OptOPlateSplitter::OptOPlateSplitter | ( | OpticalObject * | parent, | |
const ALIstring & | type, | |||
const ALIstring & | name, | |||
const ALIbool | copy_data | |||
) | [inline] |
Definition at line 24 of file OptOPlateSplitter.h.
00024 : 00025 OpticalObject( parent, type, name, copy_data){ };
OptOPlateSplitter::~OptOPlateSplitter | ( | ) | [inline] |
void OptOPlateSplitter::constructSolidShape | ( | ) | [virtual] |
Reimplemented from OpticalObject.
Definition at line 184 of file OptOPlateSplitter.cc.
References GlobalOptionMgr::getGlobalOptionValue(), GlobalOptionMgr::getInstance(), m, and OpticalObject::theSolidShape.
00185 { 00186 ALIdouble go; 00187 GlobalOptionMgr* gomgr = GlobalOptionMgr::getInstance(); 00188 gomgr->getGlobalOptionValue("VisScale", go ); 00189 00190 theSolidShape = new CocoaSolidShapeBox( "Box", go*5.*cm/m, go*5.*cm/m, go*1.*cm/m ); //COCOA internal units are meters 00191 }
Reimplemented from OpticalObject.
Definition at line 24 of file OptOPlateSplitter.cc.
References OpticalObject::centreGlob(), GenMuonPlsPt100GeV_cfg::cout, ALIUtils::debug, ALIUtils::dump3v(), LightRay::dumpData(), lat::endl(), OpticalObject::getPlate(), OpticalObject::name(), and LightRay::reflect().
00025 { 00026 if (ALIUtils::debug >= 2) std::cout << "LR: DETAILED REFLECTION IN PLATE SPLITTER " << name() << std::endl; 00027 if (ALIUtils::debug >= 3) ALIUtils::dump3v( centreGlob(), " centre Global RF "); 00028 00029 //---------- Get forward plate 00030 ALIPlane plate = getPlate(1, 1); 00031 //---------- Reflect 00032 lightray.reflect( plate ); 00033 if (ALIUtils::debug >= 2) { 00034 std::cout << "Reflected in plate" << std::endl; 00035 lightray.dumpData(" "); 00036 } 00037 00038 }
Reimplemented from OpticalObject.
Definition at line 49 of file OptOPlateSplitter.cc.
References GenMuonPlsPt100GeV_cfg::cout, ALIUtils::debug, LightRay::dumpData(), lat::endl(), OpticalObject::findExtraEntryValue(), OpticalObject::getPlate(), OpticalObject::name(), LightRay::refract(), and width.
00050 { 00051 if (ALIUtils::debug >= 2) std::cout << "LR: DETAILED TRAVERSE IN PLATE SPLITTER " << name() << std::endl; 00052 00053 //---------- Get forward plate 00054 ALIPlane plate = getPlate(1, 1); 00055 //---------- If width is 0, just keep the same point 00056 ALIdouble width = findExtraEntryValue("width"); 00057 if( width == 0 ) { 00058 if(ALIUtils::debug >= 3) lightray.dumpData("Traversed with 0 width"); 00059 return; 00060 } 00061 00062 //---------- Refract while entering splitter 00063 ALIdouble refra_ind1 = 1.; 00064 ALIdouble refra_ind2 = findExtraEntryValue("refra_ind"); 00065 lightray.refract( plate, refra_ind1, refra_ind2 ); 00066 if (ALIUtils::debug >= 2) { 00067 lightray.dumpData("Refracted in first plate"); 00068 } 00069 00070 //---------- Get backward plate 00071 plate = getPlate(0, 1); 00072 //---------- Refract while exiting splitter 00073 lightray.refract( plate, refra_ind2, refra_ind1 ); 00074 if (ALIUtils::debug >= 2) { 00075 lightray.dumpData("Refracted in first plate"); 00076 } 00077 00078 }
Reimplemented from OpticalObject.
Definition at line 88 of file OptOPlateSplitter.cc.
References GenMuonPlsPt100GeV_cfg::cout, ALIUtils::debug, LightRay::dumpData(), lat::endl(), OpticalObject::findExtraEntryValue(), OpticalObject::findExtraEntryValueIfExists(), OpticalObject::getPlate(), OpticalObject::name(), LightRay::reflect(), and LightRay::shiftAndDeviateWhileTraversing().
00089 { 00090 if (ALIUtils::debug >= 2) std::cout << "LR: REFLECTION IN PLATE SPLITTER " << name() << std::endl; 00091 00092 //---------- Get forward plate 00093 ALIPlane plate = getPlate(1, 0); 00094 //---------- Reflect in plate (including intersection with it) 00095 lightray.reflect( plate ); 00096 if (ALIUtils::debug >= 2) { 00097 lightray.dumpData("Reflected in plate"); 00098 } 00099 //---------- Deviate Lightray 00100 ALIdouble deviRX = findExtraEntryValue("deviRX"); 00101 ALIdouble deviRY = findExtraEntryValue("deviRY"); 00102 ALIdouble deviR; 00103 ALIbool bb = findExtraEntryValueIfExists("deviR", deviR); 00104 if( bb ) { 00105 deviRX = deviR; 00106 deviRY = deviR; 00107 } 00108 00109 // lightray.shiftAndDeviateWhileTraversing( this, 0., 0., 0., deviRX, deviRY, 0.); 00110 lightray.shiftAndDeviateWhileTraversing( this, 'R' ); 00111 if (ALIUtils::debug >= 2) { 00112 lightray.dumpData("Deviated "); 00113 } 00114 00115 }
Reimplemented from OpticalObject.
Definition at line 127 of file OptOPlateSplitter.cc.
References GenMuonPlsPt100GeV_cfg::cout, ALIUtils::debug, LightRay::dumpData(), lat::endl(), OpticalObject::findExtraEntryValue(), OpticalObject::findExtraEntryValueIfExists(), OpticalObject::getPlate(), LightRay::intersect(), OpticalObject::name(), and LightRay::shiftAndDeviateWhileTraversing().
00128 { 00129 if (ALIUtils::debug >= 2) std::cout << "LR: TRAVERSE PLATE SPLITTER " << name() << std::endl; 00130 00131 //---------- Get backward plate 00132 ALIPlane plate = getPlate(0, 0); 00133 lightray.intersect( plate ); 00134 if (ALIUtils::debug >= 2) { 00135 lightray.dumpData("Intersected with plate"); 00136 } 00137 //---------- Shift and Deviate 00138 ALIdouble shiftX = findExtraEntryValue("shiftTX"); 00139 ALIdouble shiftY = findExtraEntryValue("shiftTY"); 00140 ALIdouble shift; 00141 ALIbool bb = findExtraEntryValueIfExists("shiftT", shift); 00142 if( bb ) { 00143 shiftX = shift; 00144 shiftY = shift; 00145 } 00146 00147 ALIdouble deviTX = findExtraEntryValue("deviTX"); 00148 ALIdouble deviTY = findExtraEntryValue("deviTY"); 00149 ALIdouble deviT; 00150 bb = findExtraEntryValueIfExists("deviT", deviT); 00151 if( bb ) { 00152 deviTX = deviT; 00153 deviTY = deviT; 00154 } 00155 00156 // lightray.shiftAndDeviateWhileTraversing( this, shiftX, shiftY, 0., deviTX, deviTY, 0.); 00157 lightray.shiftAndDeviateWhileTraversing( this, 'T' ); 00158 if (ALIUtils::debug >= 2) { 00159 lightray.dumpData("Shifted and Deviated"); 00160 } 00161 00162 }