CMS 3D CMS Logo

DDG4SensitiveConverter Class Reference

#include <SimG4Core/Geometry/interface/DDG4SensitiveConverter.h>

List of all members.

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 14 of file DDG4SensitiveConverter.cc.

00014 {}

DDG4SensitiveConverter::~DDG4SensitiveConverter (  )  [virtual]

Definition at line 16 of file DDG4SensitiveConverter.cc.

00016 {}


Member Function Documentation

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 }


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:17:55 2009 for CMSSW by  doxygen 1.5.4