1 package org.lcsim.recon.tracking.vsegment;
2
3 import java.util.*;
4
5 import hep.aida.*;
6 import org.lcsim.event.EventHeader;
7 import org.lcsim.event.SimTrackerHit;
8 import org.lcsim.recon.cat.util.NoSuchParameterException;
9 import org.lcsim.units.clhep.SystemOfUnits;
10 import org.lcsim.util.Driver;
11 import org.lcsim.util.aida.AIDA;
12 import hep.physics.vec.BasicHep3Vector;
13 import hep.physics.vec.Hep3Vector;
14 import hep.physics.vec.VecOp;
15
16 import org.lcsim.recon.tracking.vsegment.clustering.ClusteringDriver;
17 import org.lcsim.recon.tracking.vsegment.clustering.clusterers.NearestNeighborClusterer;
18 import org.lcsim.recon.tracking.vsegment.digitization.SimToDigiDriver;
19 import org.lcsim.recon.tracking.vsegment.digitization.SimToDigiConverter;
20 import org.lcsim.recon.tracking.vsegment.digitization.algorithms.ConverterSimple;
21 import org.lcsim.recon.tracking.vsegment.geom.SegmentationManager;
22 import org.lcsim.recon.tracking.vsegment.geom.Segmenter;
23 import org.lcsim.recon.tracking.vsegment.geom.Sensor;
24 import org.lcsim.recon.tracking.vsegment.geom.SensorType;
25 import org.lcsim.recon.tracking.vsegment.hit.DigiTrackerHit;
26 import org.lcsim.recon.tracking.vsegment.hit.TrackerCluster;
27 import org.lcsim.recon.tracking.vsegment.hit.TrackerHit;
28 import org.lcsim.recon.tracking.vsegment.hitmaking.HitMakingDriver;
29 import org.lcsim.recon.tracking.vsegment.hitmaking.TrackerHitConverter;
30 import org.lcsim.recon.tracking.vsegment.hitmaking.TrackerHitMaker;
31 import org.lcsim.recon.tracking.vsegment.hitmaking.hitmakers.TrackerHitMakerBasic;
32 import org.lcsim.recon.tracking.vsegment.mctruth.MCTruth;
33 import org.lcsim.recon.tracking.vsegment.mctruth.MCTruthDriver;
34 import org.lcsim.recon.tracking.vsegment.mctruth.SimGroup;
35
36
37
38
39
40
41
42
43
44
45 public class ExampleDriver2 extends Driver {
46
47
48
49 public ExampleDriver2() {
50
51 add(new MCTruthDriver());
52
53
54
55 Segmenter segmenter = new ExampleSegmenter1();
56 SegmentationManager segMan = new SegmentationManager(segmenter);
57 SegmentationManager.setDefaultInstance(segMan);
58 add(segMan);
59
60
61
62 SimToDigiConverter converter = new ConverterSimple();
63 SimToDigiDriver conversionDriver = new SimToDigiDriver(converter);
64 conversionDriver.set("OUTPUT_MAP_NAME", "DigiTrackerHits");
65 add(conversionDriver);
66
67
68
69 ClusteringDriver clusteringDriver = new ClusteringDriver(new NearestNeighborClusterer());
70 clusteringDriver.set("INPUT_MAP_NAME","DigiTrackerHits");
71 clusteringDriver.set("OUTPUT_MAP_NAME","TrackerClusters");
72 add(clusteringDriver);
73
74
75
76 TrackerHitConverter hitConverter = new TrackerHitConverter();
77 hitConverter.set("INPUT_CLUSTER_MAP_NAME", "TrackerClusters");
78 hitConverter.set("OUTPUT_HIT_LIST_NAME", "StandardTrackerHits");
79 add(hitConverter);
80 }
81
82
83
84
85 public void process(EventHeader event) {
86
87 System.out.println(" ");
88 System.out.println("Event "+event.getEventNumber());
89
90 super.process(event);
91
92 MCTruth mcTruth = (MCTruth) event.get("MCTruth");
93
94 System.out.println(" ");
95
96 int n = 0;
97 HashMap<Sensor, List<DigiTrackerHit>> digiMap =
98 (HashMap<Sensor, List<DigiTrackerHit>>) event.get("DigiTrackerHits");
99 for (List<DigiTrackerHit> digiList : digiMap.values()) n += digiList.size();
100 System.out.println("Created " + n + " DigiTrackerHits on " + digiMap.keySet().size() + " sensors");
101
102 n = 0;
103 HashMap<Sensor, List<TrackerCluster>> clusterMap =
104 (HashMap<Sensor, List<TrackerCluster>>) event.get("TrackerClusters");
105 for (List<TrackerCluster> clusterList : clusterMap.values()) n += clusterList.size();
106 System.out.println("Created " + n + " TrackerClusters on " + clusterMap.keySet().size() + " sensors");
107
108 n = 0;
109 List<org.lcsim.event.TrackerHit> oldHitList = (List<org.lcsim.event.TrackerHit>) event.get("StandardTrackerHits");
110 System.out.println("Created " + oldHitList.size() + " org.lcsim.event.TrackerHits");
111 }
112
113 }