Commit in lcsim/src/org/lcsim/recon/postrecon/leptonID/electron on MAIN | |||
IsolatedHighPElectronIdentifier.java | +48 | -12 | 1.2 -> 1.3 |
updated to work with current production
diff -u -r1.2 -r1.3 --- IsolatedHighPElectronIdentifier.java 28 May 2009 13:58:42 -0000 1.2 +++ IsolatedHighPElectronIdentifier.java 17 Oct 2012 06:36:23 -0000 1.3 @@ -7,15 +7,21 @@
import org.lcsim.event.EventHeader; import org.lcsim.event.MCParticle; import org.lcsim.event.Track;
+import org.lcsim.event.TrackState;
import org.lcsim.event.Cluster;
+import org.lcsim.event.CalorimeterHit;
import org.lcsim.event.ReconstructedParticle; import org.lcsim.event.base.BaseReconstructedParticle;
+import org.lcsim.util.lcio.LCIOConstants; +import org.lcsim.geometry.*;
import hep.physics.vec.*; import java.util.*; import java.io.IOException; public class IsolatedHighPElectronIdentifier extends Driver { String rpl = "ReconstructedParticles";
+ protected String inputPfoCollection = "PandoraPFOCollection"; +
double conect; double maxE; double minE;
@@ -38,14 +44,22 @@
public void setConeCosTheta(double x){conect = x;} public void setMaxE(double x){maxE = x;} public void setMinE(double x){minE = x;}
+ + + // List<ReconstructedParticle> rp = new ArrayList<ReconstructedParticle>(); +
protected void process(EventHeader event) { // // Match Tracks with Recon Particles //
+
List<Track> allTracks = event.get(Track.class,"Tracks"); List<Track> unusedTracks = new ArrayList<Track>(allTracks);
- List<ReconstructedParticle> rp = event.get(ReconstructedParticle.class,rpl);
+ // List<ReconstructedParticle> rp = event.get(ReconstructedParticle.class,rpl);
+ List<ReconstructedParticle> rp = new ArrayList<ReconstructedParticle>();
+ rp = event.get(ReconstructedParticle.class, inputPfoCollection);
+
Map<Track,ReconstructedParticle> ttorp = new HashMap<Track,ReconstructedParticle>(); Map<Cluster,ReconstructedParticle> ctorp = new HashMap<Cluster,ReconstructedParticle>(); for(ReconstructedParticle p:rp)
@@ -65,17 +79,19 @@
// Map non-muon tracks > minE GeV to clusters within a 25 degree cone // List<Track> xtrae = new ArrayList<Track>();
- List<Cluster> cl = event.get(Cluster.class,"Clusters");
+ // List<Cluster> cl = event.get(Cluster.class,"Clusters");
+ List<Cluster> cl = event.get(Cluster.class,"ReconClusters");
Map<Track,List<Cluster>> ttocll = new HashMap<Track,List<Cluster>>();
- for(Track t:allTracks)
+ for(Track trck:allTracks)
{
+ TrackState t = trck.getTrackStates().get(0);
boolean eid = false; Hep3Vector tp = new BasicHep3Vector(t.getMomentum()); if(tp.magnitude() < minE)continue; if(tp.magnitude() > maxE)continue;
- if(ttorp.containsKey(t))
+ if(ttorp.containsKey(trck))
{
- double mass = ttorp.get(t).getMass();
+ double mass = ttorp.get(trck).getMass();
if( Math.abs(mass - .105) < .005)continue; if( Math.abs(mass - .0005) < .0001)eid = true; }
@@ -85,7 +101,20 @@
{ Hep3Vector cp = new BasicHep3Vector(c.getPosition()); double ct = (tp.x()*cp.x()+tp.y()*cp.y()+tp.z()*cp.z())/tp.magnitude()/cp.magnitude();
- double hec = c.getSubdetectorEnergies()[3] + c.getSubdetectorEnergies()[7];
+ + double hec = 0.0; + + List<CalorimeterHit> calhitsList = c.getCalorimeterHits(); + for (CalorimeterHit pfochit : calhitsList) { + IDDecoder _decoder = pfochit.getIDDecoder(); + String dname = _decoder.getSubdetector().getName(); + // System.out.println(" name of subdetector for this hit " + dname); + if (dname.equals("HcalBarrel") || dname.equals("HcalEndcap")) { + hec += pfochit.getCorrectedEnergy(); + // System.out.println(" HCAL energy contribution = "+pfochit.getCorrectedEnergy()); + } + } +
if(ct > conect) { tcl.add(c);
@@ -95,9 +124,9 @@
double f = HcalE/tp.magnitude(); if(!eid) {
- if(f < .04)xtrae.add(t);
+ if(f < 0.04)xtrae.add(trck); // .04
}
- ttocll.put(t,tcl);
+ ttocll.put(trck,tcl);
} if(xtrae.size() < 1)return; //
@@ -173,12 +202,16 @@
} } }
+ System.out.println("Removing and Adding Reconstructed Particles"); +
for(ReconstructedParticle p:removelist) {
+ System.out.println("removing particle; mass = " + p.getMass());
rp.remove(p); } for(ReconstructedParticle p:addlist) {
+ System.out.println("adding particle; mass = " + p.getMass());
rp.add(p); } }
@@ -202,17 +235,20 @@
} return p; }
- public BaseReconstructedParticle makeElectronBRP(Track t)
+ public BaseReconstructedParticle makeElectronBRP(Track trck)
{
+ TrackState t = trck.getTrackStates().get(0);
Hep3Vector m = new BasicHep3Vector(t.getMomentum()); double E = Math.sqrt(emass*emass + m.magnitudeSquared()); BaseReconstructedParticle p = new BaseReconstructedParticle(E,m); p.setMass(emass);
- p.setCharge((double) (t.getCharge()));
+ double tcharge = t.getOmega()/Math.abs(t.getOmega()); + // p.setCharge((double) (t.getOmega()/Math.abs(t.getOmega))); + p.setCharge(tcharge);
p.setReferencePoint(origin);
- if(t.getCharge() > 0.)p.setParticleIdUsed(eppid);
+ if(tcharge > 0.)p.setParticleIdUsed(eppid);
else p.setParticleIdUsed(empid);
- p.addTrack(t);
+ p.addTrack(trck);
return p; } }
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