Author: [log in to unmask]
Date: Thu May 7 10:48:25 2015
New Revision: 2923
Log: (empty)
Modified:
java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/GblTrackingReconstructionPlots.java
java/trunk/steering-files/src/main/resources/org/hps/steering/users/phansson/HPSTrackingDefaults.lcsim
java/trunk/tracking/src/main/java/org/hps/recon/tracking/gbl/MakeGblTracks.java
Modified: java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/GblTrackingReconstructionPlots.java
=============================================================================
--- java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/GblTrackingReconstructionPlots.java (original)
+++ java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/GblTrackingReconstructionPlots.java Thu May 7 10:48:25 2015
@@ -34,7 +34,7 @@
public class GblTrackingReconstructionPlots extends Driver {
private double _bfield;
- private static Logger logger = LogUtil.create(HpsGblRefitter.class, new BasicLogFormatter());
+ private static Logger logger = LogUtil.create(GblTrackingReconstructionPlots.class, new BasicLogFormatter());
private AIDA aida = AIDA.defaultInstance();
private String outputPlots = null;
private final String trackCollectionName = "MatchedTracks";
@@ -47,16 +47,19 @@
IHistogram1D phiDiff;
IHistogram1D slopeDiff;
IHistogram1D rDiff;
+ IHistogram1D pDiff;
IHistogram1D d0Diff2;
IHistogram1D z0Diff2;
IHistogram1D phiDiff2;
IHistogram1D slopeDiff2;
IHistogram1D rDiff2;
+ IHistogram1D pDiff2;
IHistogram1D d0DiffGbl;
IHistogram1D z0DiffGbl;
IHistogram1D phiDiffGbl;
IHistogram1D slopeDiffGbl;
IHistogram1D rDiffGbl;
+ IHistogram1D pDiffGbl;
IPlotter plotter1;
IPlotter plotter2;
IPlotter plotter3;
@@ -102,6 +105,7 @@
slopeDiff = aida.histogram1D("slopeDiff", 25, -0.01, 0.01);
phiDiff = aida.histogram1D("phiDiff", 25, -0.01, 0.01);
rDiff = aida.histogram1D("rDiff", 25, -0.0001, 0.0001);
+ pDiff = aida.histogram1D("pDiff", 25, -0.1, 0.1);
plotter2 = fac.createPlotterFactory().create("Truth comparison");
plotter2.setStyle(style1);
@@ -111,6 +115,7 @@
plotter2.region(2).plot(phiDiff);
plotter2.region(3).plot(slopeDiff);
plotter2.region(4).plot(rDiff);
+ plotter2.region(5).plot(pDiff);
plotter2.show();
@@ -119,6 +124,7 @@
slopeDiffGbl = aida.histogram1D("slopeDiffGbl", 25, -0.01, 0.01);
phiDiffGbl = aida.histogram1D("phiDiffGbl", 25, -0.01, 0.01);
rDiffGbl = aida.histogram1D("rDiffGbl", 25, -0.0001, 0.0001);
+ pDiffGbl = aida.histogram1D("pDiffGbl", 25, -0.1, 0.1);
plotter3 = fac.createPlotterFactory().create("Truth comparison GBL");
@@ -129,6 +135,7 @@
plotter3.region(2).plot(phiDiffGbl);
plotter3.region(3).plot(slopeDiffGbl);
plotter3.region(4).plot(rDiffGbl);
+ plotter3.region(5).plot(pDiffGbl);
plotter3.show();
@@ -137,6 +144,7 @@
slopeDiff2 = aida.histogram1D("slopeDiff2", 25, -0.01, 0.01);
phiDiff2 = aida.histogram1D("phiDiff2", 25, -0.01, 0.01);
rDiff2 = aida.histogram1D("rDiff2", 25, -0.0001, 0.0001);
+ pDiff2 = aida.histogram1D("pDiff2", 25, -0.1, 0.1);
plotter4 = fac.createPlotterFactory().create("Seed vs GBL");
@@ -147,6 +155,7 @@
plotter4.region(2).plot(phiDiff2);
plotter4.region(3).plot(slopeDiff2);
plotter4.region(4).plot(rDiff2);
+ plotter4.region(5).plot(pDiff2);
plotter4.show();
@@ -209,27 +218,21 @@
SeedTrack st = (SeedTrack)track;
SeedCandidate seed = st.getSeedCandidate();
HelicalTrackFit htf = seed.getHelix();
-// Track seedTrack = null;
-// for(Track trk : tracks) {
-// SeedTrack st2 = (SeedTrack)trk;
-// SeedCandidate s2 = st2.getSeedCandidate();
-// logger.info("");
-// if(seed.equals(s2)) {
-// seedTrack = trk;
-// }
-// }
-// if(seedTrack!=null) {
-// throw new RuntimeException("could;t find the seed track from GBL track");
-// }
logger.info(htf.toString());
HelicalTrackFit pHTF = null;
+ double pTruth = -1.;
+ double pTrackTruth = -1.;
if(trackTruthMatch.get(track)==null) {
logger.info("no truth mc particle for this track");
} else {
- pHTF = TrackUtils.getHTF(trackTruthMatch.get(track),-1*_bfield);
+ MCParticle part = trackTruthMatch.get(track);
+ pTruth = part.getMomentum().magnitude();
+ pHTF = TrackUtils.getHTF(part,Math.abs(_bfield));
+ pTrackTruth = pHTF.p(Math.abs(_bfield));
logger.info("part: " + trackTruthMatch.get(track).getPDGID());
logger.info("pHTF:");
logger.info(pHTF.toString());
+ logger.info("pTruth="+pTruth+" pTrackTruth="+pTrackTruth);
}
@@ -240,12 +243,14 @@
double C = htf.curvature();
double phi = htf.phi0();
double slope = htf.slope();
-
+ double p = htf.p(Math.abs(_bfield));
double d0Gbl = track.getTrackStates().get(0).getD0();
double z0Gbl = track.getTrackStates().get(0).getZ0();
double CGbl = track.getTrackStates().get(0).getOmega();
double phiGbl = track.getTrackStates().get(0).getPhi();
double slopeGbl = track.getTrackStates().get(0).getTanLambda();
+ double pGbl = getMag(track.getTrackStates().get(0).getMomentum());
+ logger.info("pGbl="+pGbl);
if(pHTF!=null) {
double d0Truth = pHTF.dca();
@@ -259,12 +264,14 @@
phiDiff.fill(phi-phiTruth);
rDiff.fill(C-CTruth);
slopeDiff.fill(slope-slopeTruth);
+ pDiff.fill(p-pTruth);
d0DiffGbl.fill(d0Gbl-d0Truth);
z0DiffGbl.fill(z0Gbl-z0Truth);
phiDiffGbl.fill(phiGbl-phiTruth);
rDiffGbl.fill(CGbl-CTruth);
slopeDiffGbl.fill(slopeGbl-slopeTruth);
+ pDiffGbl.fill(pGbl-pTruth);
}
@@ -273,6 +280,7 @@
phiDiff2.fill(phi-phiGbl);
rDiff2.fill(C-CGbl);
slopeDiff2.fill(slope-slopeGbl);
+ pDiff2.fill(p-pGbl);
}
@@ -290,6 +298,10 @@
}
+
+ private double getMag(double p[]) {
+ return Math.sqrt(p[0]*p[0] + p[1]*p[1] + p[2]*p[2]);
+ }
public void endOfData() {
if (outputPlots != null) {
Modified: java/trunk/steering-files/src/main/resources/org/hps/steering/users/phansson/HPSTrackingDefaults.lcsim
=============================================================================
--- java/trunk/steering-files/src/main/resources/org/hps/steering/users/phansson/HPSTrackingDefaults.lcsim (original)
+++ java/trunk/steering-files/src/main/resources/org/hps/steering/users/phansson/HPSTrackingDefaults.lcsim Thu May 7 10:48:25 2015
@@ -4,10 +4,10 @@
<control>
<printInputFiles>false</printInputFiles>
<printDriversDetailed>false</printDriversDetailed>
- <numberOfEvents>1000</numberOfEvents>
+ <!--<numberOfEvents>1000</numberOfEvents>-->
</control>
<execute>
- <driver name="ConditionsDriver"/>
+<!-- <driver name="ConditionsDriver"/> -->
<driver name="EventMarkerDriver"/>
<driver name="TrackerDigiDriver"/>
<driver name="HelicalTrackHitDriver"/>
@@ -16,7 +16,7 @@
<driver name="GBLDriver"/>
<driver name="GblTrackingReconstructionPlots"/>
<driver name="LCIOWriter"/>
-<!-- <driver name="AidaSaveDriverRoot" /> -->
+ <driver name="AidaSaveDriverRoot" />
</execute>
<drivers>
Modified: java/trunk/tracking/src/main/java/org/hps/recon/tracking/gbl/MakeGblTracks.java
=============================================================================
--- java/trunk/tracking/src/main/java/org/hps/recon/tracking/gbl/MakeGblTracks.java (original)
+++ java/trunk/tracking/src/main/java/org/hps/recon/tracking/gbl/MakeGblTracks.java Thu May 7 10:48:25 2015
@@ -13,6 +13,7 @@
import org.hps.recon.tracking.gbl.matrix.SymMatrix;
import org.hps.recon.tracking.gbl.matrix.Vector;
+import org.hps.util.BasicLogFormatter;
import org.lcsim.constants.Constants;
import org.lcsim.event.EventHeader;
import org.lcsim.event.Track;
@@ -22,6 +23,7 @@
import org.lcsim.lcio.LCIOConstants;
import org.lcsim.recon.tracking.seedtracker.SeedCandidate;
import org.lcsim.recon.tracking.seedtracker.SeedTrack;
+import org.lcsim.util.log.LogUtil;
/**
@@ -34,7 +36,7 @@
private String _TrkCollectionName = "GblTracks";
- private static final Logger logger = Logger.getLogger(MakeGblTracks.class.getName());
+ private static Logger logger = LogUtil.create(MakeGblTracks.class, new BasicLogFormatter());
/**
* Creates a new instance of MakeTracks.
@@ -44,7 +46,7 @@
//logger.setUseParentHandlers(false);
//Handler handler = new StreamHandler(System.out, new SimpleFormatter());
//logger.addHandler(handler);
- logger.setLevel(Level.WARNING);
+ logger.setLevel(Level.INFO);
// try {
// logger.addHandler(new FileHandler(MakeGblTracks.class.getSimpleName()+".log"));
// } catch (SecurityException | IOException e) {
@@ -152,7 +154,8 @@
double phi0 = helix.phi0();
double slope = helix.slope();
double p = helix.p(bfield);
- double qOverP = traj.get_seed().getCharge()/p;
+ double q = traj.get_seed().getCharge();
+ double qOverP = q/p;
// get corrections from GBL fit
Vector locPar = new Vector(5);
@@ -177,19 +180,23 @@
double z0_corr = corrPer.z();
double z0_gbl = z0 + z0_corr;
+ //calculate new phi0
+ double phi0_gbl = phi0 + xTPrimeCorr;
+
+ //calculate new slope
+ double lambda_gbl = Math.atan(slope) + yTPrimeCorr;
+ double slope_gbl = Math.tan( lambda_gbl );
+
// calculate new curvature
- // return self.track.qOverP(bfac) + self.curvCorr()
+
double qOverP_gbl = qOverP + qOverPCorr;
- double pt_gbl = 1.0/qOverP_gbl * helix.sth();
+ double pt_gbl = Math.abs(1.0/qOverP_gbl) * Math.sin((Math.PI/2.0-lambda_gbl));
double C_gbl = Constants.fieldConversion * bfield / pt_gbl;
//make sure sign is not changed
C_gbl = Math.signum(helix.curvature())*Math.abs(C_gbl);
- //calculate new phi0
- double phi0_gbl = phi0 + xTPrimeCorr;
-
- //calculate new slope
- double slope_gbl = Math.tan( Math.atan(slope) + yTPrimeCorr);
+ logger.info("qOverP="+qOverP+" qOverPCorr="+qOverPCorr+" qOverP_gbl="+qOverP_gbl+" ==> pGbl="+1.0/qOverP_gbl);
+
double parameters_gbl[] = new double[5];
parameters_gbl[HelicalTrackFit.dcaIndex] = d0_gbl;
|