Commit in lcdd/src/lcdd/detectors on LCDD-102_BRANCH | |||
SensitiveDetectorFactory.cc | +10 | -8 | 1.4.2.1 -> 1.4.2.2 |
fix broken tracker hits collection name
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; }
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