Author: [log in to unmask]
Date: Fri Aug 28 16:48:12 2015
New Revision: 3453
Log:
Only vertex particle of the same type. Set the reference point of the particle to the vertex position.
Modified:
java/trunk/recon/src/main/java/org/hps/recon/particle/HpsReconParticleDriver.java
Modified: java/trunk/recon/src/main/java/org/hps/recon/particle/HpsReconParticleDriver.java
=============================================================================
--- java/trunk/recon/src/main/java/org/hps/recon/particle/HpsReconParticleDriver.java (original)
+++ java/trunk/recon/src/main/java/org/hps/recon/particle/HpsReconParticleDriver.java Fri Aug 28 16:48:12 2015
@@ -56,6 +56,11 @@
// on the pairs.
for(ReconstructedParticle positron : positrons) {
for(ReconstructedParticle electron : electrons) {
+
+ // Only vertex particles that are of the same type. This is
+ // only needed when using multiple track collections.
+ if (positron.getType() != electron.getType()) continue;
+
// Get the tracks associated with the electron and
// the positron.
Track electronTrack = electron.getTracks().get(0);
@@ -156,12 +161,16 @@
* from the child particles and vertex given as an argument.
*/
private ReconstructedParticle makeReconstructedParticle(ReconstructedParticle electron, ReconstructedParticle positron, BilliorVertex vtxFit){
+
// Create a new reconstructed particle to represent the V0
// candidate and populate it with the electron and positron.
ReconstructedParticle candidate = new BaseReconstructedParticle();
((BaseReconstructedParticle) candidate).setStartVertex(vtxFit);
candidate.addParticle(electron);
candidate.addParticle(positron);
+
+ // Set the type of the V0 particle. This will only be needed for pass 2.
+ ((BaseReconstructedParticle) candidate).setType(electron.getType());
// TODO: The calculation of the total fitted momentum should be
// done within BilloirVertex.
@@ -169,10 +178,10 @@
// with the reconstructed candidate particle.
((BaseReconstructedParticle) candidate).setMass(vtxFit.getParameters().get("invMass"));
Hep3Vector fittedMomentum = new BasicHep3Vector(vtxFit.getParameters().get("p1X"),
- vtxFit.getParameters().get("p1Y"),
+ vtxFit.getParameters().get("p1Y"),
vtxFit.getParameters().get("p1Z"));
fittedMomentum = VecOp.add(fittedMomentum, new BasicHep3Vector(vtxFit.getParameters().get("p2X"),
- vtxFit.getParameters().get("p2Y"),
+ vtxFit.getParameters().get("p2Y"),
vtxFit.getParameters().get("p2Z")));
fittedMomentum = CoordinateTransformations.transformVectorToDetector(fittedMomentum);
HepLorentzVector fourVector = new BasicHepLorentzVector(0, 0, 0, 0);
@@ -186,6 +195,9 @@
// Add the ReconstructedParticle to the vertex.
vtxFit.setAssociatedParticle(candidate);
+ // Set the vertex position as the reference point of the V0 particle
+ ((BaseReconstructedParticle) candidate).setReferencePoint(vtxFit.getPosition());
+
// Return the V0 candidate.
return candidate;
}
|