956{
957
958 if(
m_cell->energy() < energy)
959 return false;
960
961
962
963 if (clipRadius < 350 )
964 return false;
965
966
967 Identifier
id =
m_cell->ID();
968
972
973 if(drawinfo->find(channel) ==drawinfo->end())
974 throw std::runtime_error("Unable to find scintillator global info");
975
976 VP1CC_MbtsScinInfo* scinInfo = (*drawinfo)[
channel];
977
978
979 SoTransform* scinXF = 0;
980 if(type == -1) {
982 throw std::runtime_error("Unable to find global transform for the scintillator");
984 }
985 else if( type == 1) {
987 throw std::runtime_error("Unable to find global transform for the scintillator");
989 } else
990 return false;
991
992
993 SoGenericBox* scinTrd = new SoGenericBox();
1000
1001
1002 SoSeparator* scinSep = new SoSeparator;
1003 scinSep->addChild(scinXF);
1004 scinSep->addChild(scinTrd);
1006
1007
1008 (*node2mbts)[scinTrd] = this;
1009
1010
1011
1013 SoTransform* scinXF1 = 0;
1014 if(type == -1) {
1016 throw std::runtime_error("Unable to find global transform for the scintillator");
1018 }
1019 else if( type == 1) {
1021 throw std::runtime_error("Unable to find global transform for the scintillator");
1023 }
1024 SoGenericBox* scinTrd1 = new SoGenericBox();
1031
1032 SoSeparator* scinSep1 = new SoSeparator();
1033 scinSep1->addChild(scinXF1);
1034 scinSep1->addChild(scinTrd1);
1036
1037
1038 (*node2mbts)[scinTrd1] = this;
1039 }
1040
1041
1042
1043 return true;
1044}
void setParametersForTrd(float dx1, float dx2, float dy1, float dy2, float dz)
static SoTransform * toSoTransform(const HepGeom::Transform3D &, SoTransform *t=0)
VP1CC_MbtsXfMap cTransforms
VP1CC_MbtsXfMap aTransforms