Commit in lcsim-contrib/src/main/java/org/lcsim/contrib/SteveMagill on MAIN | |||
ClPointDriver.java | +168 | -143 | 1.1 -> 1.2 |
diff -u -r1.1 -r1.2 --- ClPointDriver.java 12 Aug 2009 18:35:07 -0000 1.1 +++ ClPointDriver.java 14 Feb 2012 19:17:08 -0000 1.2 @@ -29,7 +29,13 @@
private double _mindcl; private String _clustername; private String[] _oclnames;
- private boolean clpdb = false;
+ private String[] _sipnames; + private String[] _snpnames; + private String _tilname; + private String _tispname; + private String _tiptname; + private String _tnpilname; + private boolean clpdb = true;
public ClPointDriver(double mindIP, double mindILSP, double mindcl) {
@@ -45,22 +51,38 @@
// get cluster list from event List<BasicCluster> clusters = event.get(BasicCluster.class,_clustername);
-
+ // make copy to preserve original list + List<BasicCluster> copyclus = new ArrayList<BasicCluster>(); + for (BasicCluster icl : clusters) + { + BasicCluster shclus = new BasicCluster(); + if (icl.getSize()>0) + { + shclus.addCluster(icl); + copyclus.add(shclus); + } + }
// create lists of clusters with common pointing List<BasicCluster> IPclus = new ArrayList<BasicCluster>(); // points at IP
+ List<BasicCluster> IPtrclus = new ArrayList<BasicCluster>(); // IPs matched to tracks + List<BasicCluster> IPphclus = new ArrayList<BasicCluster>(); // IP EM clus not matched to tracks + List<BasicCluster> IPnclus = new ArrayList<BasicCluster>(); // IP HAD clus not matched to tracks
List<BasicCluster> ILSPclus = new ArrayList<BasicCluster>(); // points at ILSP List<BasicCluster> NPclus = new ArrayList<BasicCluster>(); // no pointing // Get maps linking IL and mip clusters to tracks, tracks linked to SpacePoints
- Map<Track, BasicCluster> trmipmap = (Map<Track, BasicCluster>) event.get("TrackMipMap"); - Map<Track, SpacePoint> trilmap = (Map<Track, SpacePoint>) event.get("TrackILPosMap");
+ Map<Track, SpacePoint> trilmap = (Map<Track, SpacePoint>) event.get(_tilname);
- // Make a new map linking ILSP clusters to tracks - Map<Track, BasicCluster> trclmap = new HashMap<Track, BasicCluster>(); - Map<BasicCluster, Track> cltrmap = new HashMap<BasicCluster, Track>();
+ // Make new maps linking pointing clusters to tracks + Map<Track, BasicCluster> trilspmap = new HashMap<Track, BasicCluster>(); + Map<Track, BasicCluster> triptrmap = new HashMap<Track, BasicCluster>(); + Map<Track, BasicCluster> tripphmap = new HashMap<Track, BasicCluster>(); + Map<Track, BasicCluster> tripnemap = new HashMap<Track, BasicCluster>(); + Map<Track, BasicCluster> trnpilmap = new HashMap<Track, BasicCluster>(); + Map<Track, BasicCluster> trnpamap = new HashMap<Track, BasicCluster>();
// loop over all clusters, determining pointing properties
- for (BasicCluster clus : clusters)
+ for (BasicCluster clus : copyclus)
{ int clindex = 0; // first, make sure this cluster has enough hits, if not, put in
@@ -79,28 +101,29 @@
clvec[0] = clrxyz*Math.sin(thdir)*Math.cos(phdir); clvec[1] = clrxyz*Math.sin(thdir)*Math.sin(phdir); clvec[2] = clrxyz*Math.cos(thdir);
- aida.cloud1D("Cluster ITheta").fill(thdir); // should be 0 to pi - aida.cloud1D("Cluster IPhi").fill(phdir); // should be 0 to 2pi
+ if (clpdb) aida.cloud1D("Cluster ITheta").fill(thdir); // should be 0 to pi + if (clpdb) aida.cloud1D("Cluster IPhi").fill(phdir); // should be 0 to 2pi
// also get IP direction vector using cluster position double IPph = Math.atan2(clpos[1],clpos[0]); if (IPph<0) IPph+=2*Math.PI; double ccr = Math.sqrt(clpos[0]*clpos[0]+clpos[1]*clpos[1]);
+ double clz = Math.abs(clpos[2]);
double IPth = Math.atan(ccr/clpos[2]); if (IPth<0) IPth+=Math.PI;
- aida.cloud1D("IP dir Theta").fill(IPth); - aida.cloud1D("IP dir Phi").fill(IPph);
+ if (clpdb) aida.cloud1D("IP dir Theta").fill(IPth); + if (clpdb) aida.cloud1D("IP dir Phi").fill(IPph);
double[] ipvec = new double[3]; ipvec[0] = clpos[0]; ipvec[1] = clpos[1]; ipvec[2] = clpos[2]; double dth = Math.abs(thdir-IPth);
- aida.cloud1D("Diff Ith IPth").fill(dth);
+ if (clpdb) aida.cloud1D("Diff Ith IPth").fill(dth);
double dph = Math.abs(phdir-IPph); if (dph>Math.PI) dph = 2*Math.PI-dph;
- aida.cloud1D("Diff Iph IPph").fill(dph); - aida.cloud2D("Diff theta phi").fill(dph,dth);
+ if (clpdb) aida.cloud1D("Diff Iph IPph").fill(dph); + if (clpdb) aida.cloud2D("Diff theta phi").fill(dph,dth);
double dthph = Math.sqrt(dth*dth+dph*dph);
- aida.cloud1D("Diff dthph").fill(dthph);
+ if (clpdb) aida.cloud1D("Diff dthph").fill(dthph);
double magcl = Math.sqrt(clvec[0]*clvec[0]+clvec[1]*clvec[1]+clvec[2]*clvec[2]); double magip = Math.sqrt(ipvec[0]*ipvec[0]+ipvec[1]*ipvec[1]+ipvec[2]*ipvec[2]); // check with ILSPs, keeping best match to track
@@ -134,17 +157,17 @@
// double trphi = trIL.phi(); // track phi at IL double clilth = Math.atan(delr/delz); if (clilth<0) clilth+=Math.PI;
- aida.cloud1D("Cl IL Theta").fill(clilth);
+ if (clpdb) aida.cloud1D("Cl IL Theta").fill(clilth);
double clilph = Math.atan2(-dely,-delx); if (clilph<0) clilph+=2.*Math.PI;
- aida.cloud1D("Cl IL Phi").fill(clilph);
+ if (clpdb) aida.cloud1D("Cl IL Phi").fill(clilph);
// now get difference between cluster I and IL double dilth = Math.abs(thdir-clilth);
- aida.cloud1D("Diff Ith ILSPth").fill(dilth);
+ if (clpdb) aida.cloud1D("Diff Ith ILSPth").fill(dilth);
double dilph = Math.abs(phdir-clilph); if (dilph>Math.PI) dilph = 2*Math.PI-dilph;
- aida.cloud1D("Diff Iph ILSPph").fill(dilph); - aida.cloud2D("Cl IPhi vs ILSPPhi").fill(clilph,phdir);
+ if (clpdb) aida.cloud1D("Diff Iph ILSPph").fill(dilph); + if (clpdb) aida.cloud2D("Cl IPhi vs ILSPPhi").fill(clilph,phdir);
double[] ilvec = new double[3]; // ilvec[0] = clrxyz*Math.sin(clilth)*Math.cos(clilph); // ilvec[1] = clrxyz*Math.sin(clilth)*Math.sin(clilph);
@@ -161,111 +184,92 @@
double dotiip = VecOp.dot(cl3v, ip3v); double cosiil = Math.abs(dotiil/(magcl*magil)); double cosiip = Math.abs(dotiip/(magcl*magip));
- aida.cloud1D("CosDel of IclIL vectors").fill(cosiil); - aida.cloud1D("CosDel of IclIP vectors").fill(cosiip); - aida.cloud1D("Diff cdil cdip").fill(cosiil-cosiip); - aida.cloud2D("Diff ILSP theta phi").fill(dilph,dilth);
+ if (clpdb) aida.cloud1D("CosDel of IclIL vectors").fill(cosiil); + if (clpdb) aida.cloud1D("CosDel of IclIP vectors").fill(cosiip); + if (clpdb) aida.cloud1D("Diff cdil cdip").fill(cosiil-cosiip); + if (clpdb) aida.cloud2D("Diff ILSP theta phi").fill(dilph,dilth);
double dilthph = Math.sqrt(dilth*dilth+dilph*dilph);
- aida.cloud1D("Diff dilthph").fill(dilthph); - aida.cloud1D("Diff IP IL").fill(dthph-dilthph); - aida.cloud2D("IP vs IL diff").fill(dilthph,dthph); - aida.cloud2D("DiffIIL vs CosDel for all clus").fill(cosiil,dilthph);
+ if (clpdb) aida.cloud1D("Diff dilthph").fill(dilthph); + if (clpdb) aida.cloud1D("Diff IP IL").fill(dthph-dilthph); + if (clpdb) aida.cloud2D("IP vs IL diff").fill(dilthph,dthph); + if (clpdb) aida.cloud2D("DiffIIL vs CosDel for all clus").fill(cosiil,dilthph);
// if (dilthph<dthph && dilthph<bestdis) // points at ILSP more than IP
- if (cosiil>cosiip && cosiil>bestdis)
+// if (cosiil>cosiip && cosiil>bestdis)
+ if (cosiil>cosiip)
{
- aida.cloud1D("Diff I and IL for ILSP Clus").fill(dilthph); - aida.cloud1D("CosDel for ILSP Clus").fill(cosiil); - aida.cloud2D("DiffIIL vs CosDel for ILSP clus").fill(cosiil,dilthph);
+ if (clpdb) aida.cloud1D("Diff I and IL for ILSP Clus").fill(dilthph); + if (clpdb) aida.cloud1D("CosDel for ILSP Clus").fill(cosiil); + if (clpdb) aida.cloud2D("DiffIIL vs CosDel for ILSP clus").fill(cosiil,dilthph);
// bestdis = dilthph;
- bestdis = cosiil; - cltrmap.put(clus, itr); - clindex++; -// ILSPclus.add(clus); -// trclmap.put(itr, clus);
+// bestdis = cosiil; + clindex++; // increment since used + ILSPclus.add(clus); + trilspmap.put(itr, clus); + } + // before exiting track loop, check to see if this could be + // an IP-pointing track match cluster + if (clindex==0 && dthph<_mindIP && dist<_mindcl) + { + clindex++; // increment since used + IPclus.add(clus); // add to IP cluster list + IPtrclus.add(clus); // add to IP track cluster list
}
-// if (dilthph<dthph) break;
} // end of track loop
- if (clindex>0)
+ +// System.out.println(" AfterTr Cl Index " + clindex); + // if index is zero and dist less than min IP then these clusters + // point to IP and are either photons or neutral hadrons + if (clindex==0 && dthph<_mindIP)
{
- ILSPclus.add(clus);
+ clindex++; // incremenet since used + IPclus.add(clus); + // in barrel (absz<1680), if rxy less than 1400 then photon + if (ccr<1400. && clz<1680.) + { + IPphclus.add(clus); + // in endcap, rxy<1270 is ECAL + } else if (ccr<1270. && clz>1680. && clz<1800.) // also a photon + { + IPphclus.add(clus); + } else + { + IPnclus.add(clus); + }
}
-// System.out.println(" AfterTr Cl Index " + clindex); -// if (clindex>0) continue; - if (clindex==0 && dthph<_mindIP) clindex--; - } - // check index, sort clusters
+ } // end of test section for clusters with at least 4 hits + // check index again
// System.out.println(" Cl Index " + clindex);
+ // if gets this far without incrementing index, cluster is non-pointing
if (clindex==0) NPclus.add(clus);
-// if (clindex>0) ILSPclus.add(clus); - if (clindex<0) IPclus.add(clus);
+
} // end of cluster loop // have clusters defined into 3 classes - pointing to the interaction layer // spacepoint, pointing to the IP, non-pointing
- event.put("TrackILSPMap",trclmap); - event.put("ClusILSPMap",cltrmap); -// if (NPclus.size()>0) event.put("NPClusters",NPclus); - event.put("NPClusters",NPclus); - aida.cloud1D("Number of NoPoint Clus").fill(NPclus.size()); -// if (IPclus.size()>0) event.put("IPClusters",IPclus); - event.put("IPClusters",IPclus); - aida.cloud1D("Number of IPPoint Clus").fill(IPclus.size()); -// if (ILSPclus.size()>0) event.put("ILSPClusters",ILSPclus); - event.put("ILSPClusters",ILSPclus);
+ // ILSP CLusters first + event.put(_tispname,trilspmap); // track ilsp map + event.put(_oclnames[0],ILSPclus); // ilsp cluster list
aida.cloud1D("Number of ILSPPoint Clus").fill(ILSPclus.size());
- // check the IP pointing clusters - divide into close/far from track using - // distance measure - List<BasicCluster> IPtrclus = new ArrayList<BasicCluster>(); // matched to tracks - List<BasicCluster> IPphclus = new ArrayList<BasicCluster>(); // not matched to tracks - - for (BasicCluster ipcl : IPclus) - { - int ipclind = 0; - double[] clpos = ipcl.getPosition(); - double clph = Math.atan2(clpos[1],clpos[0]); - if (clph<0) clph+=2*Math.PI; - double ccr = Math.sqrt(clpos[0]*clpos[0]+clpos[1]*clpos[1]); - double clth = Math.atan(ccr/clpos[2]); - if (clth<0) clth+=Math.PI; - // compare with extrapolated track position - for (Track itr : trilmap.keySet()) - { - // get associated IL coordinates from IL map - SpacePoint trIL = trilmap.get(itr); - double trilth = Math.atan(trIL.rxy()/trIL.z()); - if (trilth<0) trilth+=Math.PI; - double trilph = Math.atan2(trIL.y(),trIL.x()); - if (trilph<0) trilph+=2*Math.PI; - // check if cluster close to this IL in theta-phi - double dist = 999; - double dccth = Math.abs(trilth-clth); - double dccph = Math.abs(trilph-clph); - if (dccph>Math.PI) dccph = 2*Math.PI-dccph; - dist = Math.sqrt(dccth*dccth+dccph*dccph); - if (dist<_mindcl) // best combination is 0.07 for ZZ in SiD01 - { - ipclind++; - } - } // end of track loop - // put cluster in proper list - if (ipclind>0) IPtrclus.add(ipcl); - if (ipclind==0) IPphclus.add(ipcl); - } // end of cluster loop - - // now have 2 classes of IP pointing clusters - those that are photon-like - // and those that are track-like as determined only by distance to closest track -// if (IPtrclus.size()>0) event.put("IPTrackClusters",IPtrclus); - event.put("IPTrackClusters",IPtrclus);
+ // IP clusters and subclusters next + event.put(_tiptname,triptrmap); // track ip map + event.put(_sipnames[0],IPtrclus); // ip track cluster list
aida.cloud1D("Number of IPPoint Track Clus").fill(IPtrclus.size());
-// if (IPphclus.size()>0) event.put("IPPhoClusters",IPphclus); - event.put("IPPhoClusters",IPphclus);
+ event.put(_sipnames[1],IPphclus); // ip photon cluster list
aida.cloud1D("Number of IPPoint Pho Clus").fill(IPphclus.size());
+ event.put(_sipnames[2],IPnclus); // ip neutral hadron cluster list + aida.cloud1D("Number of IPPoint N Clus").fill(IPnclus.size()); + event.put(_oclnames[1],IPclus); // all ip clusters + aida.cloud1D("Number of IPPoint Clus").fill(IPclus.size()); + + // NP clusters here + event.put(_oclnames[2],NPclus); + aida.cloud1D("Number of NoPoint Clus").fill(NPclus.size());
// check pointing of IP and NP clusters to ILSP clusters - try to // link fragments of charged hadrons List<BasicCluster> NPILclus = new ArrayList<BasicCluster>(); // NP clusters pointing to ILSP clusters
-
+ List<BasicCluster> NPAclus = new ArrayList<BasicCluster>(); // NP cluster which point to nothing
for (BasicCluster npc : NPclus) { int iclilpt = 0;
@@ -277,8 +281,8 @@
if (thdir<0) thdir+=Math.PI; double phdir = npc.getIPhi(); if (phdir<0) phdir+=2*Math.PI;
- aida.cloud1D("NPCluster ITheta").fill(thdir); // should be 0 to pi - aida.cloud1D("NPCluster IPhi").fill(phdir); // should be 0 to 2pi
+ if (clpdb) aida.cloud1D("NPCluster ITheta").fill(thdir); // should be 0 to pi + if (clpdb) aida.cloud1D("NPCluster IPhi").fill(phdir); // should be 0 to 2pi
// get x,y,z for local pointing double npclrxyz = Math.sqrt(clpos[0]*clpos[0]+clpos[1]*clpos[1]+clpos[2]*clpos[2]); double[] nppvec = new double[3];
@@ -317,22 +321,22 @@
if (Iclth<0) Iclth+=Math.PI; // calculate distance in x,y between clusters double dclxyz = Math.sqrt(delx*delx+dely*dely+delz*delz);
- aida.cloud1D("Distance in xyz between NP and ILSP clusters").fill(dclxyz);
+ if (clpdb) aida.cloud1D("Distance in xyz between NP and ILSP clusters").fill(dclxyz);
// calculate difference between clus pointing and clus-clus direction double dilth = Math.abs(thdir-Iclth);
- aida.cloud1D("Diff Iclth ILSPth").fill(dilth);
+ if (clpdb) aida.cloud1D("Diff Iclth ILSPth").fill(dilth);
double dilph = Math.abs(phdir-Iclph); if (dilph>Math.PI) dilph = 2*Math.PI-dilph;
- aida.cloud1D("Diff Iclph ILSPph").fill(dilph); - aida.cloud2D("Diff IclILSP theta phi").fill(dilph,dilth);
+ if (clpdb) aida.cloud1D("Diff Iclph ILSPph").fill(dilph); + if (clpdb) aida.cloud2D("Diff IclILSP theta phi").fill(dilph,dilth);
double dilthph = Math.sqrt(dilth*dilth+dilph*dilph);
- aida.cloud1D("Diff diclilthph").fill(dilthph);
+ if (clpdb) aida.cloud1D("Diff diclilthph").fill(dilthph);
// compare dot product of cluster pointing to npil direction double cpdot = VecOp.dot(npp, npil); double cthcp = Math.abs(cpdot/(magnpp*magnpi)); double ccdot = VecOp.dot(npp, npcl); double cthcc = Math.abs(ccdot/(magnpp*magnpcl));
- aida.cloud1D("CosDel np IL").fill(cthcc);
+ if (clpdb) aida.cloud1D("CosDel np IL").fill(cthcc);
// if (dclxyz<300. && dilth<1.5 && dilth<distclil) if (cthcp>cthcc) {
@@ -342,8 +346,10 @@
} } // end of ILSP cluster loop if (iclilpt>0) NPILclus.add(npc);
+ if (iclilpt==0) NPAclus.add(npc);
}
- event.put("NPILClusters",NPILclus);
+ event.put(_snpnames[0],NPILclus);
+ event.put(_snpnames[1],NPAclus);
// check purity of ILSP clusters - should be linked to charged particles int nhev = 0;
@@ -373,17 +379,17 @@
double dch = numchhits; double dph = numphhits; double dnuh = numnhhits;
- aida.cloud1D("MC Purity for ILSP Clusters").fill(dch/dnh); - aida.cloud1D("Pho cont to ILSP").fill(dph/dnh); - aida.cloud1D("NH cont to ILSP").fill(dnuh/dnh);
+ if (clpdb) aida.cloud1D("MC Purity for ILSP Clusters").fill(dch/dnh); + if (clpdb) aida.cloud1D("Pho cont to ILSP").fill(dph/dnh); + if (clpdb) aida.cloud1D("NH cont to ILSP").fill(dnuh/dnh);
} double dnhev = nhev; double dnchev = nchev; double dnphev = nphev; double dnnhev = nnhev;
- aida.cloud1D("MC Purity for ILSP Clus per event").fill(dnchev/dnhev); - aida.cloud1D("Pho cont to ILSP per event").fill(dnphev/dnhev); - aida.cloud1D("NH cont to ILSP per event").fill(dnnhev/dnhev);
+ if (clpdb) aida.cloud1D("MC Purity for ILSP Clus per event").fill(dnchev/dnhev); + if (clpdb) aida.cloud1D("Pho cont to ILSP per event").fill(dnphev/dnhev); + if (clpdb) aida.cloud1D("NH cont to ILSP per event").fill(dnnhev/dnhev);
// now check the IP-pointing clusters - divided into the 2 classes // first, the photon-like class
@@ -414,19 +420,19 @@
double dch = numchhits; double dph = numphhits; double dnuh = numnhhits;
- aida.cloud1D("MC Pho Purity for IPPho Clusters").fill(dph/dnh); - aida.cloud1D("NH cont to IPPho Clusters").fill(dnuh/dnh); - aida.cloud1D("MC Pho+NH Purity for IPPho Clusters").fill((dph+dnuh)/dnh); - aida.cloud1D("ChH cont to IPPho CLusters").fill(dch/dnh);
+ if (clpdb) aida.cloud1D("MC Pho Purity for IPPho Clusters").fill(dph/dnh); + if (clpdb) aida.cloud1D("NH cont to IPPho Clusters").fill(dnuh/dnh); + if (clpdb) aida.cloud1D("MC Pho+NH Purity for IPPho Clusters").fill((dph+dnuh)/dnh); + if (clpdb) aida.cloud1D("ChH cont to IPPho CLusters").fill(dch/dnh);
} double dnhev2 = nhev2; double dnchev2 = nchev2; double dnphev2 = nphev2; double dnnhev2 = nnhev2;
- aida.cloud1D("MC Pho Purity for IPPho Clus per event").fill(dnphev2/dnhev2); - aida.cloud1D("NH cont to IPPho per event").fill(dnnhev2/dnhev2); - aida.cloud1D("MC Pho+NH Purity for IPPho Clus per event").fill((dnphev2+dnnhev2)/dnhev2); - aida.cloud1D("ChH cont to IPPho per event").fill(dnchev2/dnhev2);
+ if (clpdb) aida.cloud1D("MC Pho Purity for IPPho Clus per event").fill(dnphev2/dnhev2); + if (clpdb) aida.cloud1D("NH cont to IPPho per event").fill(dnnhev2/dnhev2); + if (clpdb) aida.cloud1D("MC Pho+NH Purity for IPPho Clus per event").fill((dnphev2+dnnhev2)/dnhev2); + if (clpdb) aida.cloud1D("ChH cont to IPPho per event").fill(dnchev2/dnhev2);
// now check purity of IPTrack Clusters int nhev4 = 0;
@@ -456,17 +462,17 @@
double dch = numchhits; double dph = numphhits; double dnuh = numnhhits;
- aida.cloud1D("Pho cont to IPTr Clusters").fill(dph/dnh); - aida.cloud1D("NH cont to IPTr Clusters").fill(dnuh/dnh); - aida.cloud1D("MC ChH Purity for IPTr CLusters").fill(dch/dnh);
+ if (clpdb) aida.cloud1D("Pho cont to IPTr Clusters").fill(dph/dnh); + if (clpdb) aida.cloud1D("NH cont to IPTr Clusters").fill(dnuh/dnh); + if (clpdb) aida.cloud1D("MC ChH Purity for IPTr CLusters").fill(dch/dnh);
} double dnhev4 = nhev4; double dnchev4 = nchev4; double dnphev4 = nphev4; double dnnhev4 = nnhev4;
- aida.cloud1D("Pho cont to IPTr Clus per event").fill(dnphev4/dnhev4); - aida.cloud1D("NH cont to IPTr Clus per event").fill(dnnhev4/dnhev4); - aida.cloud1D("MC ChH Purity for IPTr per event").fill(dnchev4/dnhev4);
+ if (clpdb) aida.cloud1D("Pho cont to IPTr Clus per event").fill(dnphev4/dnhev4); + if (clpdb) aida.cloud1D("NH cont to IPTr Clus per event").fill(dnnhev4/dnhev4); + if (clpdb) aida.cloud1D("MC ChH Purity for IPTr per event").fill(dnchev4/dnhev4);
// now check remaining Non-Pointing clusters - are these neutral hadrons? int nhev3 = 0;
@@ -496,27 +502,46 @@
double dch = numchhits; double dph = numphhits; double dnuh = numnhhits;
- aida.cloud1D("MC NH Purity for NP Clusters").fill(dnuh/dnh); - aida.cloud1D("ChH cont to NP Clusters").fill(dch/dnh); - aida.cloud1D("Pho cont to NP Clusters").fill(dph/dnh);
+ if (clpdb) aida.cloud1D("MC NH Purity for NP Clusters").fill(dnuh/dnh); + if (clpdb) aida.cloud1D("ChH cont to NP Clusters").fill(dch/dnh); + if (clpdb) aida.cloud1D("Pho cont to NP Clusters").fill(dph/dnh);
} double dnhev3 = nhev3; double dnchev3 = nchev3; double dnphev3 = nphev3; double dnnhev3 = nnhev3;
- aida.cloud1D("MC NH Purity for NP Clus per event").fill(dnnhev3/dnhev3); - aida.cloud1D("ChH cont to NP Clus per event").fill(dnchev3/dnhev3); - aida.cloud1D("Pho cont to NP Clus per event").fill(dnphev3/dnhev3); -
+ if (clpdb) aida.cloud1D("MC NH Purity for NP Clus per event").fill(dnnhev3/dnhev3); + if (clpdb) aida.cloud1D("ChH cont to NP Clus per event").fill(dnchev3/dnhev3); + if (clpdb) aida.cloud1D("Pho cont to NP Clus per event").fill(dnphev3/dnhev3);
}
- - public void setInputClusterName(String name)
+ + public void setInputClusterList(String name)
{ _clustername = name; }
- public void setOutputClusterLists(String[] outclnames)
+ public void setOutPointClusterLists(String[] outclnames)
{ _oclnames = outclnames; }
+ public void setSubIPClusterLists(String[] subipnames) + { + _sipnames = subipnames; + } + public void setSubNPClusterLists(String[] subnpnames) + { + _snpnames = subnpnames; + } + public void setTrackILPosMap(String tilname) + { + _tilname = tilname; + } + public void setTrILSPMap(String tispname) + { + _tispname = tispname; + } + public void setTrIPTMap(String tiptname) + { + _tiptname = tiptname; + }
}
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