lcsim-contrib/src/main/java/org/lcsim/contrib/Cassell/recon/Cheat
diff -u -r1.1 -r1.2
--- UIClCheater.java 4 Nov 2010 15:08:49 -0000 1.1
+++ UIClCheater.java 6 Nov 2010 17:40:32 -0000 1.2
@@ -17,12 +17,12 @@
String fstr = "UsedTracks";
boolean analogHcal = false;
String[] cltypes = {"Mips","Clumps","Blocks","Leftovers","Photons"};
- int[] ncoll = {9,3,4,3,1};
+ int[] ncoll = {8,3,3,3,2};
String[][] clcoll;
TrackMCParticleDriver tmcpd;
public UIClCheater(TrackMCParticleDriver x)
{
- clcoll = new String[cltypes.length][9];
+ clcoll = new String[cltypes.length][8];
clcoll[0][0] = "OldMipsInsideTreesECAL";
clcoll[0][1] = "OldMipsInsideTreesHCAL";
clcoll[0][2] = "OldMipsInsideTreesMCAL";
@@ -30,19 +30,18 @@
clcoll[0][4] = "NewMipsInsideTreesHCAL";
clcoll[0][5] = "NewMipsInsideTreesMCAL";
clcoll[0][6] = "PreShowerMipMatchMipClusters";
- clcoll[0][7] = "PreShowerMipMatchSmallClusters";
- clcoll[0][8] = "MuonClusters";
+ clcoll[0][7] = "MuonClusters";
clcoll[1][0] = "ClumpsInsideTreesECAL";
clcoll[1][1] = "ClumpsInsideTreesHCAL";
clcoll[1][2] = "ClumpsInsideTreesMCAL";
clcoll[2][0] = "BlocksInsideTreesECAL";
clcoll[2][1] = "BlocksInsideTreesHCAL";
clcoll[2][2] = "BlocksInsideTreesMCAL";
- clcoll[2][3] = "PreShowerMipMatchBlockClusters";
clcoll[3][0] = "LeftoverHitsInsideTreesECAL";
clcoll[3][1] = "LeftoverHitsInsideTreesHCAL";
clcoll[3][2] = "LeftoverHitsInsideTreesMCAL";
- clcoll[4][0] = "PreliminaryPhotonClustersForDTree";
+ clcoll[4][0] = "PhotonClustersForDTree";
+ clcoll[4][1] = "ElectronMapClusters";
tmcpd = x;
ClReconCheater clrc1 = new ClReconCheater("UIClusters",fsp,fstr,tmcpd,outRecon+"1",analogHcal);
clrc1.setMinCalhits(1);
lcsim-contrib/src/main/java/org/lcsim/contrib/Cassell/recon
diff -u -r1.1 -r1.2
--- DebugReconDriver2.java 4 Nov 2010 15:08:49 -0000 1.1
+++ DebugReconDriver2.java 6 Nov 2010 17:40:32 -0000 1.2
@@ -1,6 +1,6 @@
package org.lcsim.contrib.Cassell.recon;
import org.lcsim.contrib.Cassell.recon.Cheat.UIClCheater;
-import org.lcsim.contrib.Cassell.recon.Cheat.ClusterLevelCheater;
+import org.lcsim.contrib.Cassell.recon.analysis.UIClusterCheck;
import org.lcsim.recon.cheater.*;
import org.lcsim.util.Driver;
import org.lcsim.recon.cluster.util.*;
@@ -65,7 +65,12 @@
ClusterEnergyCalculator nhcec = new QNeutralHadronClusterEnergyCalculator();
pprd.setNeutralHadronClusterEnergyCalculator(nhcec);
add(pprd);
- /*
+//
+// Add Track to MCP driver
+//
+ TrackMCParticleDriver tmd = new TrackMCParticleDriver();
+ add(tmd);
+ add(new MakeUsedTrackPPR());
//
// Recluster the Ecal
//
@@ -76,6 +81,7 @@
//
add(new DigitalCoreReclustererDriver(OHClNames[0],RHClNames[0]));
add(new DigitalCoreReclustererDriver(OHClNames[1],RHClNames[1]));
+ /*
//
// Add cluster level cheater
//
@@ -84,14 +90,9 @@
*
*/
//
-// Add Track to MCP driver
-//
- TrackMCParticleDriver tmd = new TrackMCParticleDriver();
- add(tmd);
- add(new MakeUsedTrackPPR());
-//
// Add cheating at UI cluster level
//
add(new UIClCheater(tmd));
+ add(new UIClusterCheck());
}
}
lcsim-contrib/src/main/java/org/lcsim/contrib/Cassell/recon/analysis
diff -N UIClusterCheck.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ UIClusterCheck.java 6 Nov 2010 17:40:32 -0000 1.1
@@ -0,0 +1,52 @@
+package org.lcsim.contrib.Cassell.recon.analysis;
+import org.lcsim.util.Driver;
+import org.lcsim.event.EventHeader;
+import org.lcsim.event.Cluster;
+import org.lcsim.event.CalorimeterHit;
+import java.util.*;
+import org.lcsim.geometry.IDDecoder;
+
+public class UIClusterCheck extends Driver
+{
+ int ievt;
+ int nmax = 1000000;
+ String[] calcoll = {"HcalBarrDigiHits","HcalEndcapDigiHits","EcalBarrDigiHits","EcalEndcapDigiHits","CorrMuonEndcapDigiHits"};
+ public UIClusterCheck()
+ {
+ ievt = 0;
+ }
+ protected void process(EventHeader event)
+ {
+ List<Cluster> cl = event.get(Cluster.class,"UIClusters");
+ List<CalorimeterHit> hl = new ArrayList<CalorimeterHit>();
+ List<CalorimeterHit> unused = new ArrayList<CalorimeterHit>();
+ for(int i=0;i<calcoll.length;i++)
+ {
+ unused.addAll(event.get(CalorimeterHit.class,calcoll[i]));
+ }
+ for(Cluster c:cl)
+ {
+// System.out.println("Unused size: "+unused.size());
+ hl.addAll(c.getCalorimeterHits());
+ unused.removeAll(c.getCalorimeterHits());
+ }
+ int ndup = 0;
+ for(int i=0;i<hl.size()-1;i++)
+ {
+ for(int j=i+1;j<hl.size();j++)
+ {
+ if(hl.get(i) == hl.get(j))
+ {
+ IDDecoder id = hl.get(i).getIDDecoder();
+ id.setID(hl.get(i).getCellID());
+ int detector_index = id.getValue("system");
+ int lay = id.getValue("layer");
+ System.out.println("Event "+ievt+" with duplicate ("+i+","+j+"): System "+detector_index+", layer "+lay);
+ ndup++;
+ }
+ }
+ }
+ System.out.println("Event "+ievt+": ndup = "+ndup+", nmiss = "+unused.size());
+ ievt++;
+ }
+}