![]() |
![]() |
#include <SimG4Core/Geometry/interface/DDG4SensitiveConverter.h>
Public Member Functions | |
DDG4SensitiveConverter () | |
SensitiveDetectorCatalog | upDate (const DDG4DispContainer &ddg4s) |
virtual | ~DDG4SensitiveConverter () |
Private Member Functions | |
std::string | getString (const std::string &, const DDLogicalPart *) |
Definition at line 12 of file DDG4SensitiveConverter.h.
DDG4SensitiveConverter::DDG4SensitiveConverter | ( | ) |
DDG4SensitiveConverter::~DDG4SensitiveConverter | ( | ) | [virtual] |
std::string DDG4SensitiveConverter::getString | ( | const std::string & | s, | |
const DDLogicalPart * | part | |||
) | [private] |
Definition at line 41 of file DDG4SensitiveConverter.cc.
References DDfetch(), it, HLT_VtxMuL3::result, DDLogicalPart::specifics(), DDValue::strings(), and pyDBSRunClass::temp.
Referenced by upDate().
00042 { 00043 std::vector<std::string> temp; 00044 DDValue val(s); 00045 std::vector<const DDsvalues_type *> result = part->specifics(); 00046 std::vector<const DDsvalues_type *>::iterator it = result.begin(); 00047 bool foundIt = false; 00048 for (; it != result.end(); ++it) { 00049 foundIt = DDfetch(*it,val); 00050 if (foundIt) break; 00051 } 00052 if (foundIt) { 00053 temp = val.strings(); 00054 if (temp.size() != 1) { 00055 edm::LogError("SimG4CoreGeometry") << "DDG4SensitiveConverter - ERROR: I need 1 " << s << " tags" ; 00056 throw SimG4Exception("DDG4SensitiveConverter: Problem with Region tags: one and only one is allowed"); 00057 } 00058 return temp[0]; 00059 } 00060 return "NotFound"; 00061 }
SensitiveDetectorCatalog DDG4SensitiveConverter::upDate | ( | const DDG4DispContainer & | ddg4s | ) |
Definition at line 18 of file DDG4SensitiveConverter.cc.
References TestMuL1L2Filter_cff::catalog, DDG4Dispatchable::getDDLogicalPart(), DDG4Dispatchable::getG4LogicalVolume(), getString(), i, SensitiveDetectorCatalog::insert(), LogDebug, and HLT_VtxMuL3::result.
Referenced by DDG4Builder::BuildGeometry().
00018 { 00019 00020 LogDebug("SimG4CoreGeometry") <<" DDG4SensitiveConverter::upDate() starts" ; 00021 SensitiveDetectorCatalog catalog; 00022 00023 for (unsigned int i=0; i<ddg4s.size(); i++) { 00024 DDG4Dispatchable * ddg4 = ddg4s[i]; 00025 const DDLogicalPart * part = (ddg4->getDDLogicalPart()); 00026 G4LogicalVolume * result = (ddg4->getG4LogicalVolume()); 00027 00028 std::string sClassName = getString("SensitiveDetector",part); 00029 std::string sROUName = getString("ReadOutName",part); 00030 std::string fff = result->GetName(); 00031 if (sClassName != "NotFound") { 00032 LogDebug("SimG4CoreGeometry") << " DDG4SensitiveConverter: Sensitive " << fff 00033 << " Class Name " << sClassName << " ROU Name " << sROUName ; 00034 fff = result->GetName(); 00035 catalog.insert(sClassName,sROUName,fff); 00036 } 00037 } 00038 return catalog; 00039 }