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.units.clhep.SystemOfUnits;
8 import org.lcsim.util.Driver;
9 import org.lcsim.util.aida.AIDA;
10
11 import org.lcsim.recon.tracking.vsegment.clustering.ClusteringDriver;
12 import org.lcsim.recon.tracking.vsegment.clustering.clusterers.NearestNeighborClusterer;
13 import org.lcsim.recon.tracking.vsegment.digitization.SimToDigiDriver;
14 import org.lcsim.recon.tracking.vsegment.digitization.SimToDigiConverter;
15 import org.lcsim.recon.tracking.vsegment.digitization.algorithms.ConverterSimple;
16 import org.lcsim.recon.tracking.vsegment.geom.SegmentationManager;
17 import org.lcsim.recon.tracking.vsegment.geom.Segmenter;
18 import org.lcsim.recon.tracking.vsegment.geom.Sensor;
19 import org.lcsim.recon.tracking.vsegment.geom.segmenters.CylindricalBarrelSegmenter;
20 import org.lcsim.recon.tracking.vsegment.geom.segmenters.DiskTrackerToWedgesSegmenter;
21 import org.lcsim.recon.tracking.vsegment.geom.segmenters.DiskTrackerToRingsSegmenter;
22 import org.lcsim.recon.tracking.vsegment.geom.segmenters.SubdetectorBasedSegmenter;
23 import org.lcsim.recon.tracking.vsegment.hit.DigiTrackerHit;
24 import org.lcsim.recon.tracking.vsegment.hit.TrackerCluster;
25 import org.lcsim.recon.tracking.vsegment.hit.TrackerHit;
26 import org.lcsim.recon.tracking.vsegment.hitmaking.HitMakingDriver;
27 import org.lcsim.recon.tracking.vsegment.hitmaking.TrackerHitMaker;
28 import org.lcsim.recon.tracking.vsegment.hitmaking.hitmakers.TrackerHitMakerBasic;
29 import org.lcsim.recon.tracking.vsegment.mctruth.MCTruthDriver;
30
31
32
33
34
35
36
37
38
39 public class ExampleDriver1 extends Driver {
40
41 private AIDA aida = AIDA.defaultInstance();
42
43 public ExampleDriver1() {
44
45 add(new MCTruthDriver());
46
47
48
49 Segmenter segmenter = new ExampleSegmenter1();
50 SegmentationManager segMan = new SegmentationManager(segmenter);
51 SegmentationManager.setDefaultInstance(segMan);
52 add(segMan);
53
54
55
56 SimToDigiConverter converter = new ConverterSimple();
57 SimToDigiDriver conversionDriver = new SimToDigiDriver(converter);
58 conversionDriver.set("OUTPUT_MAP_NAME", "DigiTrackerHits");
59 add(conversionDriver);
60
61
62
63 ClusteringDriver clusteringDriver = new ClusteringDriver(new NearestNeighborClusterer());
64 clusteringDriver.set("INPUT_MAP_NAME","DigiTrackerHits");
65 clusteringDriver.set("OUTPUT_MAP_NAME","TrackerClusters");
66 add(clusteringDriver);
67
68
69
70 TrackerHitMaker hitMaker = new TrackerHitMakerBasic();
71 HitMakingDriver hitMakingDriver = new HitMakingDriver(hitMaker);
72 hitMakingDriver.set("INPUT_MAP_NAME","TrackerClusters");
73 hitMakingDriver.set("OUTPUT_MAP_NAME","NewTrackerHits");
74 add(hitMakingDriver);
75
76 }
77
78 public void process(EventHeader event) {
79
80 System.out.println(" ");
81 System.out.println("Event "+event.getEventNumber());
82
83 super.process(event);
84
85 System.out.println(" ");
86
87 int n = 0;
88 HashMap<Sensor, List<DigiTrackerHit>> digiMap =
89 (HashMap<Sensor, List<DigiTrackerHit>>) event.get("DigiTrackerHits");
90 for (List<DigiTrackerHit> digiList : digiMap.values()) n += digiList.size();
91 System.out.println("Created " + n + " DigiTrackerHits on " + digiMap.keySet().size() + " sensors");
92
93 n = 0;
94 HashMap<Sensor, List<TrackerCluster>> clusterMap =
95 (HashMap<Sensor, List<TrackerCluster>>) event.get("TrackerClusters");
96 for (List<TrackerCluster> clusterList : clusterMap.values()) n += clusterList.size();
97 System.out.println("Created " + n + " TrackerClusters on " + clusterMap.keySet().size() + " sensors");
98
99 n = 0;
100 HashMap<Sensor, List<TrackerHit>> hitMap =
101 (HashMap<Sensor, List<TrackerHit>>) event.get("NewTrackerHits");
102 for (List<TrackerHit> hitList : hitMap.values()) n += hitList.size();
103 System.out.println("Created " + n + " TrackerHits on " + hitMap.keySet().size() + " sensors");
104
105 }
106
107 }