Commit in lcdd/src/lcdd/detectors on LCDD-102_BRANCH
SensitiveDetectorFactory.cc+10-81.4.2.1 -> 1.4.2.2
fix broken tracker hits collection name

lcdd/src/lcdd/detectors
SensitiveDetectorFactory.cc 1.4.2.1 -> 1.4.2.2
diff -u -r1.4.2.1 -r1.4.2.2
--- SensitiveDetectorFactory.cc	14 Aug 2013 00:23:23 -0000	1.4.2.1
+++ SensitiveDetectorFactory.cc	14 Aug 2013 02:19:45 -0000	1.4.2.2
@@ -1,4 +1,4 @@
-// $Header: /cvs/lcd/lcdd/src/lcdd/detectors/SensitiveDetectorFactory.cc,v 1.4.2.1 2013/08/14 00:23:23 jeremy Exp $
+// $Header: /cvs/lcd/lcdd/src/lcdd/detectors/SensitiveDetectorFactory.cc,v 1.4.2.2 2013/08/14 02:19:45 jeremy Exp $
 
 // LCDD
 #include "lcdd/detectors/SensitiveDetectorFactory.hh"
@@ -89,6 +89,7 @@
         // Add the default HitsCollection, which is the name of the SD, if none were specified in the XML.
         if (hitsCollections.size() == 0) {
             hitsCollections.push_back(sensitiveDetectorType->get_name());
+            //std::cout << "added default hits collection: " << sensitiveDetectorType->get_name() << std::endl;
         }
 
         // Create the SD object based on its type of calorimeter or tracker.
@@ -97,7 +98,7 @@
             sensitiveDetector = createCalorimeter(object, hitsCollections);
         } else if (sensitiveDetectorTypeName == "tracker") {
             // Create tracker SD.
-            sensitiveDetector = createTracker(object);
+            sensitiveDetector = createTracker(object, hitsCollections);
         } else {
             // Type is not recognized.  This shouldn't happen!
             G4cerr << "Invalid sensitive detector type: " << sensitiveDetectorTypeName << G4endl;
@@ -113,7 +114,7 @@
         sensitiveDetector->setIdSpec(idspec);
 
         // Add the HitProcessors from the list.
-        if (hitProcessors.size() == 0) {
+        if (hitProcessors.size() > 0) {
             // Add HitProcessors created from XML.
             sensitiveDetector->addHitProcessors(hitProcessors);
         } else {
@@ -129,7 +130,7 @@
 
         // Register the SensitiveDetector with the LCDDProcessor.
         std::string sensitiveDetectorName = sensitiveDetector->GetName();
-        std::cout << "registering SD: " << sensitiveDetectorName << std::endl;
+        //std::cout << "registering SD: " << sensitiveDetectorName << std::endl;
         LCDDProcessor::instance()->addSensitiveDetector(sensitiveDetectorName, sensitiveDetector);
     } else {
         // This should never really happen.
@@ -179,19 +180,20 @@
     return new CalorimeterSD(sensitiveDetectorType->get_name(), hitsCollections, segmentation, hitCompare);
 }
 
-TrackerSD* SensitiveDetectorFactory::createTracker(const SAXObject* object)
+TrackerSD* SensitiveDetectorFactory::createTracker(const SAXObject* object, const std::vector<G4String>& hitsCollections)
 {
     // Cast the SAXObject to tracker element.
     const tracker* trackerElement = dynamic_cast<const tracker*>(object);
 
     // Get the name of the SensitiveDetector.
-    std::string name = trackerElement->get_name();
+    //std::string name = trackerElement->get_name();
+    std::string name = hitsCollections[0];
 
     // Get the name of the hits collection.
-    std::string hitCollection = trackerElement->get_hitsCollectionName();
+    //std::string hitCollection = trackerElement->get_hitsCollectionName();
 
     // Create the basic TrackerSD.
-    TrackerSD* sd = new TrackerSD(name, hitCollection);
+    TrackerSD* sd = new TrackerSD(name, name);
 
     return sd;
 }
CVSspam 0.2.12


Use REPLY-ALL to reply to list

To unsubscribe from the LCD-CVS list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=LCD-CVS&A=1