lcsim/src/org/lcsim/contrib/seedtracker
diff -u -r1.7 -r1.8
--- MaterialManager.java 22 Jun 2008 23:19:34 -0000 1.7
+++ MaterialManager.java 24 Jun 2008 22:02:35 -0000 1.8
@@ -46,14 +46,14 @@
public MaterialManager() {
}
- public void BuildModel(EventHeader event) {
+ public void BuildModel(Detector det) {
// Build the model of tracker material
// Each volume defined in the compact.xml file is modelled as either
// a thin cylinder or disk with a thickness in radiation lengths
// that gives the correct total amount of material.
//
// First find the logical volume associated with the tracker
- Detector det = event.getDetector();
+
IPhysicalVolumeNavigator nav = det.getNavigator();
ILogicalVolume ltrkr = det.getTrackingVolume().getLogicalVolume();
// Loop over the volumes defined at the compact.xml level
lcsim/src/org/lcsim/contrib/seedtracker
diff -u -r1.12 -r1.13
--- SeedTracker.java 6 May 2008 23:52:00 -0000 1.12
+++ SeedTracker.java 24 Jun 2008 22:02:35 -0000 1.13
@@ -14,10 +14,9 @@
import java.util.List;
import org.lcsim.event.EventHeader;
+import org.lcsim.geometry.Detector;
import org.lcsim.util.Driver;
-import hep.physics.vec.BasicHep3Vector;
-import hep.physics.vec.Hep3Vector;
/**
* Tracking algorithm based on forming track seeds from all 3-hit combinations,
@@ -31,6 +30,7 @@
public class SeedTracker extends Driver {
private List<SeedStrategy> _strategylist;
private ISeedTrackerDiagnostics diag = null;
+ private MaterialManager materialmanager = new MaterialManager();
/** Creates a new instance of SeedTracker */
public SeedTracker() {
@@ -45,6 +45,7 @@
* Invoke the track finding algorithm
* @param event EventHeader for this event
*/
+ @Override
protected void process(EventHeader event) {
if(diag!=null) diag.setEvent(event);
@@ -56,8 +57,6 @@
if(diag!=null)diag.setBField(bfield);
// Instantiate the material manager and build the material model used
// to estimate multiple scattering errors
- MaterialManager materialmanager = new MaterialManager();
- materialmanager.BuildModel(event);
if(diag!=null)diag.setMaterialManager(materialmanager);
// Instantiate the hit manager and sort the hits for this event
@@ -113,6 +112,12 @@
return;
}
+ @Override
+ protected void detectorChanged(Detector detector){
+ //only build the model when the detector is changed.
+ materialmanager.BuildModel(detector);
+ }
+
/**
* Specifiy the strategies to be used by the SeedTracker algorithm. Invoking this
* method will override the default strategies defined by the DefaultStrategy