lcsim/src/org/lcsim/recon/tracking/cheat
diff -u -r1.5 -r1.6
--- CheatTrackDriver.java 20 Nov 2007 16:34:05 -0000 1.5
+++ CheatTrackDriver.java 26 Nov 2007 19:40:04 -0000 1.6
@@ -29,53 +29,40 @@
public class CheatTrackDriver extends Driver
{
private final CheatTracker _tracker = new CheatTracker();
- String outname;
+ String outname = "RefinedCheatTracks";
+ String outpname = "RefinedCheatParticles";
private static final Hep3Vector origin = new BasicHep3Vector();
- private String MCFastTracks = null;
- private boolean smeared = false;
/** Creates a new instance of CheatTrackDriver */
public CheatTrackDriver()
{
- outname = "RefinedCheatTracks";
}
public CheatTrackDriver(String name)
{
outname = name;
}
- public CheatTrackDriver(String name, String mcfast)
+ public CheatTrackDriver(String name,String pname)
{
outname = name;
- MCFastTracks = mcfast;
- smeared = true;
+ outpname = pname;
}
public void setOutputName(String name)
{
outname = name;
}
- public void setMCFastName(String name)
+ public void setOutputPName(String name)
{
- MCFastTracks = name;
- smeared = true;
+ outpname = name;
}
-
+
protected void process(EventHeader event)
{
double bField = event.getDetector().getFieldMap().getField(origin).z();
- List<Track> smearedlist = null;
- if(smeared)
- {
- List<List<Track>> lists = event.get(Track.class);
- for(List<Track> slist:lists)
- {
- if(event.getMetaData(slist).getName().compareTo(MCFastTracks) == 0)smearedlist = slist;
- }
- }
List<List<SimTrackerHit>> collections = event.get(SimTrackerHit.class);
List<List<BaseTrackMC>> tracks = new ArrayList<List<BaseTrackMC>>();
for (List<SimTrackerHit> collection : collections)
{
- List<BaseTrackerHitMC> result = _tracker.createTrackerHits(collection);
+ List<BaseTrackerHitMC> result = _tracker.createTrackerHits(collection);
String name = event.getMetaData(collection).getName();
event.put(name+"CheatTrackerHits", result, BaseTrackerHitMC.class, 0);
@@ -86,12 +73,15 @@
event.put(name+"CheatTracks", ol, BaseTrackMC.class, flag);
event.getMetaData(ol).setTransient(true);
}
-
- Map<MCParticle, BaseTrackMC> refined = _tracker.findRefinedTracks(bField,tracks, smearedlist);
+
+ Map<MCParticle, BaseTrackMC> refined = _tracker.findRefinedTracks(bField,tracks);
int flag = 1<<LCIOConstants.TRBIT_HITS;
event.put(outname, new ArrayList(refined.values()), BaseTrackMC.class, flag );
+ List<MCParticle> plist = new ArrayList(refined.keySet());
+ event.put(outpname,plist,MCParticle.class,0);
+ event.getMetaData(plist).setSubset(true);
}
-
+
public String toString()
{
return "CheatTrackDriver";
lcsim/src/org/lcsim/recon/tracking/cheat
diff -u -r1.3 -r1.4
--- CheatTracker.java 20 Nov 2007 16:34:05 -0000 1.3
+++ CheatTracker.java 26 Nov 2007 19:40:04 -0000 1.4
@@ -26,7 +26,7 @@
*/
public class CheatTracker
{
-
+
double[] cov = new double[6];
/** Creates a new instance of CheatTracker */
public CheatTracker()
@@ -59,18 +59,8 @@
}
return out;
}
- public Map<MCParticle, BaseTrackMC> findRefinedTracks(double B,List<List<BaseTrackMC>> collections, List<Track> smeared)
+ public Map<MCParticle, BaseTrackMC> findRefinedTracks(double B,List<List<BaseTrackMC>> collections)
{
- Map<MCParticle,ReconTrack> smearmap = new HashMap<MCParticle,ReconTrack>();
- if(smeared != null)
- {
- for(Track t:smeared)
- {
- ReconTrack rt = (ReconTrack) t;
- MCParticle tp = (MCParticle) rt.getMCParticle();
- smearmap.put(tp,rt);
- }
- }
Map<MCParticle, BaseTrackMC> result = new HashMap<MCParticle,BaseTrackMC>();
for (List<BaseTrackMC> clusters : collections)
{
@@ -80,31 +70,10 @@
BaseTrackMC rc = result.get(p);
if (rc == null)
{
- if(smeared == null)
- {
- result.put(p,rc = new BaseTrackMC(p));
- rc.setTrackParameters(cluster.getTrackParameters(), B);
- }
- else
- {
- if(smearmap.containsKey(p))
- {
- result.put(p,rc = new BaseTrackMC(p));
- ReconTrack smt = smearmap.get(p);
-// double[] zzz = {0.,0.,0.};
-// double[] ref = {p.getOriginX(),p.getOriginY(),p.getOriginZ()};
-// rc.setReferencePoint(smt.getDocaPosition(ref));
- rc.setCovarianceMatrix(smt.getErrorMatrix());
- rc.setTrackParameters(smt.getTrackParameters(), B);
- rc.setChisq(smt.getChi2());
- rc.setNDF(smt.getNDF());
- rc.setFitSuccess(true);
- rc.setRefPointIsDCA(true);
- rc.setTrackType(smt.getType());
- }
- }
+ result.put(p,rc = new BaseTrackMC(p));
+ rc.setTrackParameters(cluster.getTrackParameters(), B);
}
- if(rc != null)rc.addHits(cluster.getTrackerHits());
+ rc.addHits(cluster.getTrackerHits());
}
}
return result;