Print

Print


Author: [log in to unmask]
Date: Thu Nov  5 15:52:08 2015
New Revision: 3689

Log:
[SLIC-253] Fix problem with hits not being written from scoring plane by activating processor reset hook; includes other minor code cleanup.

Modified:
    projects/lcdd/trunk/include/lcdd/detectors/CurrentTrackState.hh
    projects/lcdd/trunk/include/lcdd/detectors/HitProcessor.hh
    projects/lcdd/trunk/include/lcdd/detectors/ScoringTrackerHitProcessor.hh
    projects/lcdd/trunk/src/lcdd/detectors/BasicTrackerHitProcessor.cc
    projects/lcdd/trunk/src/lcdd/detectors/CurrentTrackState.cc
    projects/lcdd/trunk/src/lcdd/detectors/HitProcessorManager.cc
    projects/lcdd/trunk/src/lcdd/detectors/ScoringTrackerHitProcessor.cc
    projects/lcdd/trunk/src/lcdd/detectors/SensitiveDetector.cc

Modified: projects/lcdd/trunk/include/lcdd/detectors/CurrentTrackState.hh
 =============================================================================
--- projects/lcdd/trunk/include/lcdd/detectors/CurrentTrackState.hh	(original)
+++ projects/lcdd/trunk/include/lcdd/detectors/CurrentTrackState.hh	Thu Nov  5 15:52:08 2015
@@ -21,17 +21,9 @@
 		_currentTrackID = trackID;
 	}
 
-	//static void setCurrentPrimaryID(G4int trackID) {
-	//	_currentPrimaryID = trackID;
-	//}
-
 	static G4int getCurrentTrackID() {
 		return _currentTrackID;
 	}
-
-	//static G4int getCurrentPrimaryID() {
-	//	return _currentPrimaryID;
-	//}
 
 public:
 

Modified: projects/lcdd/trunk/include/lcdd/detectors/HitProcessor.hh
 =============================================================================
--- projects/lcdd/trunk/include/lcdd/detectors/HitProcessor.hh	(original)
+++ projects/lcdd/trunk/include/lcdd/detectors/HitProcessor.hh	Thu Nov  5 15:52:08 2015
@@ -73,6 +73,9 @@
         return _collectionIndex;
     }
 
+    virtual void reset() {
+    }
+
 protected:
 
     SensitiveDetector* _detector;

Modified: projects/lcdd/trunk/include/lcdd/detectors/ScoringTrackerHitProcessor.hh
 =============================================================================
--- projects/lcdd/trunk/include/lcdd/detectors/ScoringTrackerHitProcessor.hh	(original)
+++ projects/lcdd/trunk/include/lcdd/detectors/ScoringTrackerHitProcessor.hh	Thu Nov  5 15:52:08 2015
@@ -30,6 +30,13 @@
      */
     bool processHits(G4Step* step);
 
+    /**
+     * Reset state of hit processor.
+     */
+    void reset() {
+        _currentTrackId = -1;
+    }
+
 private:
 
     int _currentTrackId;

Modified: projects/lcdd/trunk/src/lcdd/detectors/BasicTrackerHitProcessor.cc
 =============================================================================
--- projects/lcdd/trunk/src/lcdd/detectors/BasicTrackerHitProcessor.cc	(original)
+++ projects/lcdd/trunk/src/lcdd/detectors/BasicTrackerHitProcessor.cc	Thu Nov  5 15:52:08 2015
@@ -16,8 +16,6 @@
 }
 
 bool BasicTrackerHitProcessor::processHits(G4Step* step) {
-
-    //G4cout << "BasicTrackerHitProcessor::processHits" << G4endl;
 
     TrackerSD* tracker = getTracker();
 
@@ -38,8 +36,6 @@
 
     // Get the track.
     G4Track* track = step->GetTrack();
-
-    //G4cout << "  trackID: " << track->GetTrackID() << G4endl;
 
     // Get the pre-step point.
     G4StepPoint* pre = step->GetPreStepPoint();
@@ -70,7 +66,6 @@
     G4ThreeVector momentum = (end - start);
 
     // If the momentum is > 0 then set to average momentum.
-    // FIXME: Not sure I understand this!!!
     if (momentum.mag() > 0) {
         momentum.setMag(averageMomentum);
     }
@@ -86,10 +81,6 @@
 
     VUserTrackInformation* trackInformation =
             dynamic_cast<VUserTrackInformation*>(step->GetTrack()->GetUserInformation());
-
-    // If there is a user track info object, then flag it as having a hit.
-    //if (trackInformation)
-    //        trackInformation->setHasTrackerHit();
 
     // Set the hit information from above.
     if (trackInformation != NULL) {
@@ -111,11 +102,6 @@
     // Add the hit to the TrackerSD.
     tracker->addHit(hit, _collectionIndex);
 
-    //G4cout << "  CurrentTrackState::getCurrentTrackID: "
-    //        << CurrentTrackState::getCurrentTrackID() << G4endl;
-    //else
-    //	G4Exception("BasicTrackerHitProcessor::processHits", "", FatalException, "Missing required VUserTrackInformation.");
-
     // Return true because created new hit.
     return true;
 }

Modified: projects/lcdd/trunk/src/lcdd/detectors/CurrentTrackState.cc
 =============================================================================
--- projects/lcdd/trunk/src/lcdd/detectors/CurrentTrackState.cc	(original)
+++ projects/lcdd/trunk/src/lcdd/detectors/CurrentTrackState.cc	Thu Nov  5 15:52:08 2015
@@ -1,4 +1,3 @@
 #include "lcdd/detectors/CurrentTrackState.hh"
 
 int CurrentTrackState::_currentTrackID = -1;
-//int CurrentTrackState::_currentPrimaryID = -1;

Modified: projects/lcdd/trunk/src/lcdd/detectors/HitProcessorManager.cc
 =============================================================================
--- projects/lcdd/trunk/src/lcdd/detectors/HitProcessorManager.cc	(original)
+++ projects/lcdd/trunk/src/lcdd/detectors/HitProcessorManager.cc	Thu Nov  5 15:52:08 2015
@@ -26,7 +26,6 @@
     registerFactory(new BasicCalorimeterHitProcessorFactory());
     registerFactory(new ScoringTrackerHitProcessorFactory());
     registerFactory(new BasicTrackerHitProcessorFactory());
-
     registerFactory(new DDSegmentationCalorimeterHitProcessorFactory());
 }
 

Modified: projects/lcdd/trunk/src/lcdd/detectors/ScoringTrackerHitProcessor.cc
 =============================================================================
--- projects/lcdd/trunk/src/lcdd/detectors/ScoringTrackerHitProcessor.cc	(original)
+++ projects/lcdd/trunk/src/lcdd/detectors/ScoringTrackerHitProcessor.cc	Thu Nov  5 15:52:08 2015
@@ -15,6 +15,7 @@
 }
 
 bool ScoringTrackerHitProcessor::processHits(G4Step* step) {
+
     bool sameTrack = false;
 
     int trackId = step->GetTrack()->GetTrackID();
@@ -70,13 +71,6 @@
         newHit->setId(id64.getId0());
         newHit->setLength(length);
 
-        // Get the TrackInformation and flag track as having a tracker hit.
-
-        //if (trackInformation)
-        //    trackInformation->setHasTrackerHit();
-        //else
-        //    G4Exception("ScoringTrackerHitProcessor::processHits", "", FatalException, "Missing required VUserTrackInformation.");
-
         // Add hit to detector.
         getTracker()->addHit(newHit, getCollectionIndex());
     }

Modified: projects/lcdd/trunk/src/lcdd/detectors/SensitiveDetector.cc
 =============================================================================
--- projects/lcdd/trunk/src/lcdd/detectors/SensitiveDetector.cc	(original)
+++ projects/lcdd/trunk/src/lcdd/detectors/SensitiveDetector.cc	Thu Nov  5 15:52:08 2015
@@ -28,8 +28,8 @@
 SensitiveDetector::SensitiveDetector(G4String name, G4String theCollectionName, EType detectorType) :
         G4VSensitiveDetector(name),
         _idspec(NULL),
+        _verbose(false),
         _type(detectorType),
-        _verbose(false),
         _endcap(false),
         _ecut(0) {
 
@@ -78,6 +78,9 @@
 }
 
 void SensitiveDetector::EndOfEvent(G4HCofThisEvent*) {
+    for (HitProcessors::iterator it = _hitProcessors.begin(); it != _hitProcessors.end(); it++) {
+        (*it)->reset();
+    }
 }
 
 G4bool SensitiveDetector::ProcessHits(G4Step* aStep, G4TouchableHistory*) {

########################################################################
Use REPLY-ALL to reply to list

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