CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions
DDG4SensitiveConverter Class Reference

#include <DDG4SensitiveConverter.h>

Public Member Functions

 DDG4SensitiveConverter ()
 
SensitiveDetectorCatalog upDate (const DDG4DispContainer &ddg4s)
 
virtual ~DDG4SensitiveConverter ()
 

Private Member Functions

std::string getString (const std::string &, const DDLogicalPart *)
 

Detailed Description

Definition at line 12 of file DDG4SensitiveConverter.h.

Constructor & Destructor Documentation

DDG4SensitiveConverter::DDG4SensitiveConverter ( )

Definition at line 8 of file DDG4SensitiveConverter.cc.

8 {}
DDG4SensitiveConverter::~DDG4SensitiveConverter ( )
virtual

Definition at line 10 of file DDG4SensitiveConverter.cc.

10 {}

Member Function Documentation

std::string DDG4SensitiveConverter::getString ( const std::string &  ss,
const DDLogicalPart part 
)
private

Definition at line 34 of file DDG4SensitiveConverter.cc.

References DDfetch(), Exception, mps_fire::result, DDLogicalPart::specifics(), DDValue::strings(), groupFilesInBlocks::temp, and heppy_batch::val.

Referenced by upDate().

35  {
36  std::vector<std::string> temp;
37  DDValue val(ss);
38  std::vector<const DDsvalues_type *> result = part->specifics();
39  bool foundIt = false;
40  for (auto stype : result) {
41  foundIt = DDfetch(stype,val);
42  if (foundIt) break;
43  }
44  if (foundIt) {
45  temp = val.strings();
46  if (temp.size() != 1) {
47  edm::LogError("SimG4CoreGeometry") << "DDG4SensitiveConverter - ERROR: I need 1 " << ss << " tags" ;
48  throw cms::Exception("SimG4CoreGeometry", " DDG4SensitiveConverter::getString Problem with Region tags - one and only one allowed: " + ss);
49  }
50  return temp[0];
51  }
52  return "NotFound";
53 }
bool DDfetch(const DDsvalues_type *, DDValue &)
helper for retrieving DDValues from DDsvalues_type *.
Definition: DDsvalues.cc:81
std::vector< const DDsvalues_type * > specifics(void) const
returns the specific-data attached to the LogicalPart only (not to a DDExpandedNode) ...
SensitiveDetectorCatalog DDG4SensitiveConverter::upDate ( const DDG4DispContainer ddg4s)

Definition at line 12 of file DDG4SensitiveConverter.cc.

References getEcalConditions_orcoffint2r_cff::catalog, getString(), SensitiveDetectorCatalog::insert(), LogDebug, mps_fire::result, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by DDG4Builder::BuildGeometry().

12  {
13 
14  LogDebug("SimG4CoreGeometry") <<" DDG4SensitiveConverter::upDate() starts" ;
16 
17  for (auto ddg4 : ddg4s) {
18  const DDLogicalPart * part = (ddg4->getDDLogicalPart());
19  G4LogicalVolume * result = (ddg4->getG4LogicalVolume());
20 
21  std::string sClassName = getString("SensitiveDetector",part);
22  std::string sROUName = getString("ReadOutName",part);
23  std::string fff = result->GetName();
24  if (sClassName != "NotFound") {
25  LogDebug("SimG4CoreGeometry") << " DDG4SensitiveConverter: Sensitive " << fff
26  << " Class Name " << sClassName << " ROU Name " << sROUName;
27  fff = result->GetName();
28  catalog.insert(sClassName,sROUName,fff);
29  }
30  }
31  return catalog;
32 }
#define LogDebug(id)
void insert(const std::string &, const std::string &, const std::string &)
A DDLogicalPart aggregates information concerning material, solid and sensitveness ...
Definition: DDLogicalPart.h:93
std::string getString(const std::string &, const DDLogicalPart *)
part
Definition: HCALResponse.h:20