Commit in lcsim-contrib/src/main/java/org/lcsim/contrib/SteveMagill on MAIN | |||
TrShCompDriver.java | +167 | added 1.1 |
diff -N TrShCompDriver.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ TrShCompDriver.java 14 Feb 2012 19:23:18 -0000 1.1 @@ -0,0 +1,167 @@
+package org.lcsim.contrib.SteveMagill; + +import java.util.*; +import org.lcsim.util.aida.AIDA; +import org.lcsim.event.EventHeader; +import org.lcsim.util.Driver; +import org.lcsim.event.CalorimeterHit; +import org.lcsim.event.SimCalorimeterHit; +import hep.physics.vec.Hep3Vector; +import org.lcsim.event.Track; +import org.lcsim.recon.cluster.util.BasicCluster; +import org.lcsim.spacegeom.*; +import org.lcsim.event.base.*; +import org.lcsim.event.MCParticle; + +/** + * Diagnostic routine - checks cluster ID + */ + +public class TrShCompDriver extends Driver +{ + public TrShCompDriver() { + } + + private String _tmclusname; + private String _tcclusname; + private String _tpclusname; + private String _tsclusname; + private String _tcalclusmap; + private AIDA aida = AIDA.defaultInstance(); + private boolean perfPFAD = true; + private boolean muons = false; + + public void process(EventHeader event) + { + + int NMipCl = 0; // number of mip clusters + int nhitstm = 0; // number of hits in a mip cluster + try + { + List<BasicCluster> tmclusters = event.get(BasicCluster.class,_tmclusname); + aida.cloud1D("Number of Mip Clusters").fill(tmclusters.size()); + for (BasicCluster tmclus : tmclusters) + { + NMipCl++; + int numhits = tmclus.getSize(); + nhitstm += tmclus.getSize(); // sum hits from all mips in event + double tmclE = tmclus.getEnergy(); + aida.cloud1D("Tr Mip Clus E").fill(tmclE); + aida.cloud1D("Tr Mip Clus Size").fill(numhits); + aida.cloud2D("Tr Mip NumHits vs E").fill(tmclE,numhits); + } + } + catch(java.lang.IllegalArgumentException ex) + { + System.out.println("requested object not found in event " + _tmclusname); + } + + int NCoreCl = 0; // number of core clusters + int nhitstc = 0; // number of hits in a core cluster + try + { + List<BasicCluster> tcclusters = event.get(BasicCluster.class,_tcclusname); + aida.cloud1D("Number of Tr Core Clusters").fill(tcclusters.size()); + for (BasicCluster tcclus : tcclusters) + { + NCoreCl++; + int numhits = tcclus.getSize(); + nhitstc += tcclus.getSize(); // sum hits from all cores in event + double tcclE = tcclus.getEnergy(); + aida.cloud1D("Tr Core Clus E").fill(tcclE); + aida.cloud1D("Tr Core Clus Size").fill(numhits); + aida.cloud2D("Tr Core NumHits vs E").fill(tcclE,numhits); + } + } + catch(java.lang.IllegalArgumentException ex) + { + System.out.println("requested object not found in event " + _tcclusname); + } + + int NILSPCl = 0; // number of ILSP clusters + int nhitstp = 0; // number of hits in a ILSP cluster + try + { + List<BasicCluster> tpclusters = event.get(BasicCluster.class,_tpclusname); + aida.cloud1D("Number of ILSP Clusters").fill(tpclusters.size()); + for (BasicCluster tpclus : tpclusters) + { + NILSPCl++; + int numhits = tpclus.getSize(); + nhitstp += tpclus.getSize(); // sum hits from all mips in event + double tpclE = tpclus.getEnergy(); + aida.cloud1D("Tr ILSP Clus E").fill(tpclE); + aida.cloud1D("Tr ILSP Clus Size").fill(numhits); + aida.cloud2D("Tr ILSP NumHits vs E").fill(tpclE,numhits); + } + } + catch(java.lang.IllegalArgumentException ex) + { + System.out.println("requested object not found in event " + _tpclusname); + } + + int NShowCl = 0; // number of shower clusters + int nhitsts = 0; // number of hits in a shower cluster + try + { + List<BasicCluster> tsclusters = event.get(BasicCluster.class,_tsclusname); + aida.cloud1D("Number of Shower Clusters").fill(tsclusters.size()); + for (BasicCluster tsclus : tsclusters) + { + NShowCl++; + int numhits = tsclus.getSize(); + nhitstm += tsclus.getSize(); // sum hits from all mips in event + double tsclE = tsclus.getEnergy(); + aida.cloud1D("Tr Shower Clus E").fill(tsclE); + aida.cloud1D("Tr Shower Clus Size").fill(numhits); + aida.cloud2D("Tr Shower NumHits vs E").fill(tsclE,numhits); + } + } + catch(java.lang.IllegalArgumentException ex) + { + System.out.println("requested object not found in event " + _tsclusname); + } + +// now check track cal matches - start from track cal cluster map + Map<Track, BasicCluster> tcmap = (Map<Track, BasicCluster>) event.get(_tcalclusmap); + for (Track itr : tcmap.keySet()) + { + // make sure there is a cluster linked to this track + if (tcmap.get(itr) != null) + { + BasicCluster tccl = tcmap.get(itr); + double clE = tccl.getEnergy(); + double trP = Math.sqrt(itr.getPX()*itr.getPX()+itr.getPY()*itr.getPY()+itr.getPZ()*itr.getPZ()); + aida.cloud1D("E over p of Track Cal Cluster").fill(clE/trP); + aida.cloud1D("E of Track Cal Cluster").fill(clE); + } + } + + } + + public void setTrMipClusName(String tmclusname) + { + _tmclusname = tmclusname; + } + + public void setTrCoreClusName(String tcclusname) + { + _tcclusname = tcclusname; + } + + public void setTrPointClusName(String tpclusname) + { + _tpclusname = tpclusname; + } + + public void setTrShowerClusName(String tsclusname) + { + _tsclusname = tsclusname; + } + + public void setTrCalClusMap(String tcalclusmap) + { + _tcalclusmap = tcalclusmap; + } + +}
Use REPLY-ALL to reply to list
To unsubscribe from the LCD-CVS list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=LCD-CVS&A=1