CMS 3D CMS Logo

DDG4SensitiveConverter.cc
Go to the documentation of this file.
3 
5 
8 
9 #include "G4LogicalVolume.hh"
10 
12 
14 
16  edm::LogVerbatim("SimG4CoreGeometry") << " DDG4SensitiveConverter::upDate() starts";
17 
18  for (auto ddg4 : ddg4s) {
19  const DDLogicalPart *part = (ddg4->getDDLogicalPart());
20  G4LogicalVolume *result = (ddg4->getG4LogicalVolume());
21 
22  std::string sClassName = getString("SensitiveDetector", part);
23  std::string sROUName = getString("ReadOutName", part);
24  std::string fff = result->GetName();
25  if (sClassName != "NotFound") {
26  edm::LogVerbatim("SimG4CoreGeometry")
27  << " DDG4SensitiveConverter: Sensitive " << fff << " Class Name " << sClassName << " ROU Name " << sROUName;
28  fff = result->GetName();
29  catalog.insert(sClassName, sROUName, fff);
30  }
31  }
32 }
33 
35  std::vector<std::string> temp;
36  DDValue val(ss);
37  std::vector<const DDsvalues_type *> result = part->specifics();
38  bool foundIt = false;
39  for (auto stype : result) {
40  foundIt = DDfetch(stype, val);
41  if (foundIt)
42  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",
49  " DDG4SensitiveConverter::getString Problem with "
50  "Region tags - one and only one allowed: " +
51  ss);
52  }
53  return temp[0];
54  }
55  return "NotFound";
56 }
DDG4SensitiveConverter.h
MessageLogger.h
getEcalConditions_orcoffint2r_cff.catalog
catalog
Definition: getEcalConditions_orcoffint2r_cff.py:40
DDG4DispContainer
std::vector< DDG4Dispatchable * > DDG4DispContainer
Definition: DDG4DispContainer.h:8
groupFilesInBlocks.temp
list temp
Definition: groupFilesInBlocks.py:142
contentValuesCheck.ss
ss
Definition: contentValuesCheck.py:33
part
part
Definition: HCALResponse.h:20
SensitiveDetectorCatalog
Definition: SensitiveDetectorCatalog.h:10
DDfetch
bool DDfetch(const DDsvalues_type *, DDValue &)
helper for retrieving DDValues from DDsvalues_type *.
Definition: DDsvalues.cc:79
DDG4SensitiveConverter::~DDG4SensitiveConverter
virtual ~DDG4SensitiveConverter()
Definition: DDG4SensitiveConverter.cc:13
DDLogicalPart
A DDLogicalPart aggregates information concerning material, solid and sensitveness ....
Definition: DDLogicalPart.h:93
SensitiveDetectorCatalog.h
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
DDLogicalPart.h
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
DDG4SensitiveConverter::upDate
void upDate(const DDG4DispContainer &ddg4s, SensitiveDetectorCatalog &)
Definition: DDG4SensitiveConverter.cc:15
DDG4SensitiveConverter::DDG4SensitiveConverter
DDG4SensitiveConverter()
Definition: DDG4SensitiveConverter.cc:11
heppy_batch.val
val
Definition: heppy_batch.py:351
DDValue
Definition: DDValue.h:22
edm::LogVerbatim
Log< level::Info, true > LogVerbatim
Definition: MessageLogger.h:128
Exception
Definition: hltDiff.cc:245
Exception.h
mps_fire.result
result
Definition: mps_fire.py:311
DDG4SensitiveConverter::getString
std::string getString(const std::string &, const DDLogicalPart *)
Definition: DDG4SensitiveConverter.cc:34