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;