Commit in hps-java/src/main/java/org/lcsim/hps/users/phansson on MAIN | |||
TwoTrackAnlysis.java | +98 | -81 | 1.14 -> 1.15 |
Hit times, extrapolations, code improvements.
diff -u -r1.14 -r1.15 --- TwoTrackAnlysis.java 27 Mar 2013 01:15:25 -0000 1.14 +++ TwoTrackAnlysis.java 16 Apr 2013 22:06:21 -0000 1.15 @@ -13,21 +13,16 @@
import java.util.logging.Level; import java.util.logging.Logger; import org.lcsim.detector.IDetectorElement;
+import org.lcsim.detector.tracker.silicon.DopedSilicon;
import org.lcsim.detector.tracker.silicon.SiSensor;
-import org.lcsim.event.EventHeader; -import org.lcsim.event.MCParticle; -import org.lcsim.event.Track; -import org.lcsim.event.TrackerHit;
+import org.lcsim.event.*;
import org.lcsim.event.util.ParticleTypeClassifier; import org.lcsim.fit.helicaltrack.*; import org.lcsim.geometry.Detector; import org.lcsim.hps.analysis.ecal.HPSMCParticlePlotsDriver; import org.lcsim.hps.evio.TriggerData; import org.lcsim.hps.recon.ecal.HPSEcalCluster;
-import org.lcsim.hps.recon.tracking.HPSTrack; -import org.lcsim.hps.recon.tracking.SvtTrackExtrapolator; -import org.lcsim.hps.recon.tracking.SvtUtils; -import org.lcsim.hps.recon.tracking.TrackUtils;
+import org.lcsim.hps.recon.tracking.*;
import org.lcsim.hps.recon.vertexing.TwoParticleVertexer; import org.lcsim.hps.recon.vertexing.TwoTrackVertexer; import org.lcsim.recon.tracking.digitization.sisim.SiTrackerHitStrip1D;
@@ -58,6 +53,7 @@
private String triggerDecisionCollectionName = "TriggerBank"; private String MCParticleCollectionName = "MCParticle"; private String _stripClusterCollectionName = "StripClusterer_SiTrackerHitStrip1D";
+ private String _fittedRawTrackerHitCollectionName = "SVTFittedRawTrackerHits";
private boolean _debug; private HitIdentifier _ID = new HitIdentifier(); private TwoTrackVertexer vertexer = new TwoTrackVertexer();
@@ -278,8 +274,11 @@
totalTwoTrackEvents++;
- - this.fillTextTuple(electron, positron, tracks, vtxPosMC, vtxPos, vtxPosFringe, clusters, event);
+ try { + this.fillTextTuple(electron, positron, tracks, vtxPosMC, vtxPos, vtxPosFringe, clusters, event); + } catch (IOException ex) { + Logger.getLogger(TwoTrackAnlysis.class.getName()).log(Level.SEVERE, null, ex); + }
if(this._debug) System.out.println(this.getClass().getSimpleName() + ": # two track events so far = "+totalTwoTrackEvents);
@@ -324,67 +323,75 @@
return f.length() == 0; //return zero also in case file doesn't exist }
- private void fillTextTuple(MCParticle e, MCParticle p, List<CmpTrack> tracks, Hep3Vector vtxPosParticle, Hep3Vector vtxPos, Hep3Vector vtxPosFr, List<HPSEcalCluster> clusters, EventHeader event) {
+ private void fillTextTuple(MCParticle e, MCParticle p, List<CmpTrack> tracks, Hep3Vector vtxPosParticle, Hep3Vector vtxPos, Hep3Vector vtxPosFr, List<HPSEcalCluster> clusters, EventHeader event) throws IOException {
if(doPrintBranchInfoLine) { String br_line = ""; br_line+="evtnr/I:"; br_line+="ntrks_top/I:ntrks_bot/I:ntrks100_top/I:ntrks100_bot/I:ntrks200_top/I:ntrks200_bot/I:ntrks300_top/I:ntrks300_bot/I:ntrks400_top/I:ntrks400_bot/I:ntrks500_top/I:ntrks500_bot/I:"; br_line+="e_px/F:e_py/F:e_pz/F:p_px/F:p_py/F:p_pz/F:";
- br_line+="trk1_d0/F:trk1_phi0/F:trk1_R/F:trk1_z0/F:trk1_slope/F:"; - br_line+="trk1_q/I:trk1_chi2/F:trk1_px/F:trk1_py/F:trk1_pz/F:trk1_nhits/I:"; - for(int iLayer=1;iLayer<=5;++iLayer) br_line+="trk1_hit"+iLayer+"_x/F:"+"trk1_hit"+iLayer+"_y/F:"+"trk1_hit"+iLayer+"_z/F:"; - for(int iLayer=1;iLayer<=5;++iLayer) { - br_line+="trk1_res"+iLayer+"_x/F:"+"trk1_res"+iLayer+"_y/F:"+"trk1_res"+iLayer+"_z/F:"; - br_line+="trk1_eres"+iLayer+"_x/F:"+"trk1_eres"+iLayer+"_y/F:"+"trk1_eres"+iLayer+"_z/F:"; - br_line+="trk1_drdphi"+iLayer+"/F:"+"trk1_msdrphi"+iLayer+"/F:"; - br_line+="trk1_dz"+iLayer+"/F:"+"trk1_msdz"+iLayer+"/F:"; - //br_line+="trk1_ures"+iLayer+"/F:"+"trk1_ureserr"+iLayer+"/F:"; - } - for(int iLayer=1;iLayer<=10;++iLayer) br_line+="trk1_strip"+iLayer+"_u/F:"; - br_line+="trk1_conv_x/F:trk1_conv_y/F:trk1_conv_z/F:"; - br_line+="trk1_fr_conv_x/F:trk1_fr_conv_y/F:trk1_fr_conv_z/F:"; - // - br_line+="trk2_d0/F:trk2_phi0/F:trk2_R/F:trk2_z0/F:trk2_slope/F:"; - br_line+="trk2_q/I:trk2_chi2/F:trk2_px/F:trk2_py/F:trk2_pz/F:trk2_nhits/I:"; - for(int iLayer=1;iLayer<=5;++iLayer) br_line+="trk2_hit"+iLayer+"_x/F:"+"trk2_hit"+iLayer+"_y/F:"+"trk2_hit"+iLayer+"_z/F:"; - for(int iLayer=1;iLayer<=5;++iLayer) { - br_line+="trk2_res"+iLayer+"_x/F:"+"trk2_res"+iLayer+"_y/F:"+"trk2_res"+iLayer+"_z/F:"; - br_line+="trk2_eres"+iLayer+"_x/F:"+"trk2_eres"+iLayer+"_y/F:"+"trk2_eres"+iLayer+"_z/F:"; - br_line+="trk2_drdphi"+iLayer+"/F:"+"trk2_msdrphi"+iLayer+"/F:"; - br_line+="trk2_dz"+iLayer+"/F:"+"trk2_msdz"+iLayer+"/F:"; - //br_line+="trk2_ures"+iLayer+"/F:"+"trk2_ureserr"+iLayer+"/F:"; - } - for(int iLayer=1;iLayer<=10;++iLayer) br_line+="trk2_strip"+iLayer+"_u/F:"; - br_line+="trk2_conv_x/F:trk2_conv_y/F:trk2_conv_z/F:"; - br_line+="trk2_fr_conv_x/F:trk2_fr_conv_y/F:trk2_fr_conv_z/F:"; - // - br_line+="trk3_d0/F:trk3_phi0/F:trk3_R/F:trk3_z0/F:trk3_slope/F:"; - br_line+="trk3_q/I:trk3_chi2/F:trk3_px/F:trk3_py/F:trk3_pz/F:trk3_nhits/I:"; - for(int iLayer=1;iLayer<=5;++iLayer) br_line+="trk3_hit"+iLayer+"_x/F:"+"trk3_hit"+iLayer+"_y/F:"+"trk3_hit"+iLayer+"_z/F:"; - for(int iLayer=1;iLayer<=5;++iLayer) { - br_line+="trk3_res"+iLayer+"_x/F:"+"trk3_res"+iLayer+"_y/F:"+"trk3_res"+iLayer+"_z/F:"; - br_line+="trk3_eres"+iLayer+"_x/F:"+"trk3_eres"+iLayer+"_y/F:"+"trk3_eres"+iLayer+"_z/F:"; - br_line+="trk3_drdphi"+iLayer+"/F:"+"trk3_msdrphi"+iLayer+"/F:"; - br_line+="trk3_dz"+iLayer+"/F:"+"trk3_msdz"+iLayer+"/F:"; - //br_line+="trk3_ures"+iLayer+"/F:"+"trk3_ureserr"+iLayer+"/F:"; - } - for(int iLayer=1;iLayer<=10;++iLayer) br_line+="trk3_strip"+iLayer+"_u/F:"; - br_line+="trk3_conv_x/F:trk3_conv_y/F:trk3_conv_z/F:"; - br_line+="trk3_fr_conv_x/F:trk3_fr_conv_y/F:trk3_fr_conv_z/F:"; - // - br_line+="trk4_d0/F:trk4_phi0/F:trk4_R/F:trk4_z0/F:trk4_slope/F:"; - br_line+="trk4_q/I:trk4_chi2/F:trk4_px/F:trk4_py/F:trk4_pz/F:trk4_nhits/I:"; - for(int iLayer=1;iLayer<=5;++iLayer) br_line+="trk4_hit"+iLayer+"_x/F:"+"trk4_hit"+iLayer+"_y/F:"+"trk4_hit"+iLayer+"_z/F:"; - for(int iLayer=1;iLayer<=5;++iLayer) { - br_line+="trk4_res"+iLayer+"_x/F:"+"trk4_res"+iLayer+"_y/F:"+"trk4_res"+iLayer+"_z/F:"; - br_line+="trk4_eres"+iLayer+"_x/F:"+"trk4_eres"+iLayer+"_y/F:"+"trk4_eres"+iLayer+"_z/F:"; - br_line+="trk4_drdphi"+iLayer+"/F:"+"trk4_msdrphi"+iLayer+"/F:"; - br_line+="trk4_dz"+iLayer+"/F:"+"trk4_msdz"+iLayer+"/F:"; - //br_line+="trk4_ures"+iLayer+"/F:"+"trk4_ureserr"+iLayer+"/F:"; - } - for(int iLayer=1;iLayer<=10;++iLayer) br_line+="trk4_strip"+iLayer+"_u/F:"; - br_line+="trk4_conv_x/F:trk4_conv_y/F:trk4_conv_z/F:"; - br_line+="trk4_fr_conv_x/F:trk4_fr_conv_y/F:trk4_fr_conv_z/F:";
+ for(int itrk=1;itrk<=4;++itrk) { + String trk_str = String.format("trk%d", itrk); + + br_line+=""+trk_str+"_d0/F:"+trk_str+"_phi0/F:"+trk_str+"_R/F:"+trk_str+"_z0/F:"+trk_str+"_slope/F:"; + br_line+=""+trk_str+"_q/I:"+trk_str+"_chi2/F:"+trk_str+"_px/F:"+trk_str+"_py/F:"+trk_str+"_pz/F:"+trk_str+"_nhits/I:"; + for(int iLayer=1;iLayer<=5;++iLayer) br_line+=""+trk_str+"_hit"+iLayer+"_x/F:"+""+trk_str+"_hit"+iLayer+"_y/F:"+""+trk_str+"_hit"+iLayer+"_z/F:"; + for(int iLayer=1;iLayer<=5;++iLayer) { + br_line+=""+trk_str+"_res"+iLayer+"_y/F:"+""+trk_str+"_res"+iLayer+"_z/F:"; + br_line+=""+trk_str+"_eres"+iLayer+"_y/F:"+""+trk_str+"_eres"+iLayer+"_z/F:"; + br_line+=""+trk_str+"_drdphi"+iLayer+"/F:"+""+trk_str+"_msdrphi"+iLayer+"/F:"; + br_line+=""+trk_str+"_dz"+iLayer+"/F:"+""+trk_str+"_msdz"+iLayer+"/F:"; + //br_line+=""+trk_str+"_ures"+iLayer+"/F:"+""+trk_str+"_ureserr"+iLayer+"/F:"; + } + for(int iLayer=1;iLayer<=10;++iLayer) br_line+=""+trk_str+"_strip"+iLayer+"_u/F:"+""+trk_str+"_strip"+iLayer+"_time/F:"+""+trk_str+"_strip"+iLayer+"_E/F:"; + br_line+=""+trk_str+"_conv_y/F:"+trk_str+"_conv_z/F:"; + br_line+=""+trk_str+"_fr_conv_x/F:"+trk_str+"_fr_conv_y/F:"+trk_str+"_fr_conv_z/F:"; + br_line+=""+trk_str+"_ecal_y/F:"+trk_str+"_ecal_z/F:"; + // +// br_line+="trk2_d0/F:trk2_phi0/F:trk2_R/F:trk2_z0/F:trk2_slope/F:"; +// br_line+="trk2_q/I:trk2_chi2/F:trk2_px/F:trk2_py/F:trk2_pz/F:trk2_nhits/I:"; +// for(int iLayer=1;iLayer<=5;++iLayer) br_line+="trk2_hit"+iLayer+"_x/F:"+"trk2_hit"+iLayer+"_y/F:"+"trk2_hit"+iLayer+"_z/F:"; +// for(int iLayer=1;iLayer<=5;++iLayer) { +// br_line+="trk2_res"+iLayer+"_x/F:"+"trk2_res"+iLayer+"_y/F:"+"trk2_res"+iLayer+"_z/F:"; +// br_line+="trk2_eres"+iLayer+"_x/F:"+"trk2_eres"+iLayer+"_y/F:"+"trk2_eres"+iLayer+"_z/F:"; +// br_line+="trk2_drdphi"+iLayer+"/F:"+"trk2_msdrphi"+iLayer+"/F:"; +// br_line+="trk2_dz"+iLayer+"/F:"+"trk2_msdz"+iLayer+"/F:"; +// //br_line+="trk2_ures"+iLayer+"/F:"+"trk2_ureserr"+iLayer+"/F:"; +// } +// for(int iLayer=1;iLayer<=10;++iLayer) br_line+="trk2_strip"+iLayer+"_u/F:"+"trk2_strip"+iLayer+"_time/F:"+"trk2_strip"+iLayer+"_E/F:"; +// br_line+="trk2_conv_x/F:trk2_conv_y/F:trk2_conv_z/F:"; +// br_line+="trk2_fr_conv_x/F:trk2_fr_conv_y/F:trk2_fr_conv_z/F:"; +// br_line+="trk2_ecal_x/F:trk2_ecal_y/F:trk2_ecal_z/F:"; +// // +// br_line+="trk3_d0/F:trk3_phi0/F:trk3_R/F:trk3_z0/F:trk3_slope/F:"; +// br_line+="trk3_q/I:trk3_chi2/F:trk3_px/F:trk3_py/F:trk3_pz/F:trk3_nhits/I:"; +// for(int iLayer=1;iLayer<=5;++iLayer) br_line+="trk3_hit"+iLayer+"_x/F:"+"trk3_hit"+iLayer+"_y/F:"+"trk3_hit"+iLayer+"_z/F:"; +// for(int iLayer=1;iLayer<=5;++iLayer) { +// br_line+="trk3_res"+iLayer+"_x/F:"+"trk3_res"+iLayer+"_y/F:"+"trk3_res"+iLayer+"_z/F:"; +// br_line+="trk3_eres"+iLayer+"_x/F:"+"trk3_eres"+iLayer+"_y/F:"+"trk3_eres"+iLayer+"_z/F:"; +// br_line+="trk3_drdphi"+iLayer+"/F:"+"trk3_msdrphi"+iLayer+"/F:"; +// br_line+="trk3_dz"+iLayer+"/F:"+"trk3_msdz"+iLayer+"/F:"; +// //br_line+="trk3_ures"+iLayer+"/F:"+"trk3_ureserr"+iLayer+"/F:"; +// } +// for(int iLayer=1;iLayer<=10;++iLayer) br_line+="trk3_strip"+iLayer+"_u/F:"; +// br_line+="trk3_conv_x/F:trk3_conv_y/F:trk3_conv_z/F:"; +// br_line+="trk3_fr_conv_x/F:trk3_fr_conv_y/F:trk3_fr_conv_z/F:"; +// br_line+="trk3_ecal_x/F:trk3_ecal_y/F:trk3_ecal_z/F:"; +// // +// br_line+="trk4_d0/F:trk4_phi0/F:trk4_R/F:trk4_z0/F:trk4_slope/F:"; +// br_line+="trk4_q/I:trk4_chi2/F:trk4_px/F:trk4_py/F:trk4_pz/F:trk4_nhits/I:"; +// for(int iLayer=1;iLayer<=5;++iLayer) br_line+="trk4_hit"+iLayer+"_x/F:"+"trk4_hit"+iLayer+"_y/F:"+"trk4_hit"+iLayer+"_z/F:"; +// for(int iLayer=1;iLayer<=5;++iLayer) { +// br_line+="trk4_res"+iLayer+"_x/F:"+"trk4_res"+iLayer+"_y/F:"+"trk4_res"+iLayer+"_z/F:"; +// br_line+="trk4_eres"+iLayer+"_x/F:"+"trk4_eres"+iLayer+"_y/F:"+"trk4_eres"+iLayer+"_z/F:"; +// br_line+="trk4_drdphi"+iLayer+"/F:"+"trk4_msdrphi"+iLayer+"/F:"; +// br_line+="trk4_dz"+iLayer+"/F:"+"trk4_msdz"+iLayer+"/F:"; +// //br_line+="trk4_ures"+iLayer+"/F:"+"trk4_ureserr"+iLayer+"/F:"; +// } +// for(int iLayer=1;iLayer<=10;++iLayer) br_line+="trk4_strip"+iLayer+"_u/F:"; +// br_line+="trk4_conv_x/F:trk4_conv_y/F:trk4_conv_z/F:"; +// br_line+="trk4_fr_conv_x/F:trk4_fr_conv_y/F:trk4_fr_conv_z/F:"; +// br_line+="trk4_ecal_x/F:trk4_ecal_y/F:trk4_ecal_z/F:"; + }
// for(int iLayer=1;iLayer<=10;++iLayer) br_line+="top_strip"+iLayer+"_n/F:"; for(int iLayer=1;iLayer<=10;++iLayer) br_line+="bot_strip"+iLayer+"_n/F:";
@@ -444,15 +451,15 @@
if (hitOnLayer != null) { //printWriter.format("\n%s\n","X11"); Map<String,Double> res = TrackUtils.calculateTrackHitResidual(hitOnLayer, helix1, true);
- printWriter.format("%5.5f %5.5f %5.5f ", 0.0,res.get("resy"),res.get("resz")); - printWriter.format("%5.5f %5.5f %5.5f ", 0.0,res.get("erry"),res.get("errz"));
+ printWriter.format("%5.5f %5.5f ",res.get("resy"),res.get("resz")); + printWriter.format("%5.5f %5.5f ",res.get("erry"),res.get("errz"));
printWriter.format("%5.5f %5.5f ", res.get("drphi"),res.get("msdrphi")); printWriter.format("%5.5f %5.5f ", res.get("dz_res"),res.get("msdz")); } else {
- printWriter.format("%5.5f %5.5f %5.5f ", -9999999.9, -9999999.9, -9999999.9); - printWriter.format("%5.5f %5.5f %5.5f ", -9999999.9, -9999999.9, -9999999.9);
+ printWriter.format("%5.5f %5.5f ", -9999999.9, -9999999.9); + printWriter.format("%5.5f %5.5f ", -9999999.9, -9999999.9);
printWriter.format("%5.5f %5.5f ", -9999999.9, -9999999.9); printWriter.format("%5.5f %5.5f ", -9999999.9, -9999999.9); }
@@ -461,19 +468,28 @@
for(int iLayer=1;iLayer<=10;++iLayer) { HelicalTrackStrip strip=null; if(striphits1.containsKey(iLayer)) strip = striphits1.get(iLayer).get(0);
- if(strip!=null) printWriter.format("%5.5f ", strip.umeas()); - else printWriter.format("%5.5f ", -99999999.9);
+ if(strip!=null) { + printWriter.format("%5.5f %5.5f %5.5f ", strip.umeas(),strip.time(),strip.dEdx()/DopedSilicon.ENERGY_EHPAIR); + } + else { + printWriter.format("%5.5f %5.5f %5.5f ", -99999999.9, -99999999.9, -99999999.9); + }
} //Track at converter this.vertexer.extrapolator().setTrack(trk1); Hep3Vector posAtConverter = this.vertexer.extrapolator().extrapolateTrack(SvtTrackExtrapolator.HARP_POSITION);
- if(posAtConverter!=null) printWriter.format("%5.5f %5.5f %5.5f ", posAtConverter.z(),posAtConverter.x(),posAtConverter.y()); //note rotation from JLab->tracking - else printWriter.format("%5.5f %5.5f %5.5f ", -9999999.9,-9999999.9,-9999999.9);
+ if(posAtConverter!=null) printWriter.format("%5.5f %5.5f ", posAtConverter.x(),posAtConverter.y()); //note rotation from JLab->tracking + else printWriter.format("%5.5f %5.5f ", -9999999.9,-9999999.9);
HPSTrack hpstrk1 = new HPSTrack(helix1); Hep3Vector posAtConverterFringe1 = hpstrk1.getPositionAtZMap(100., SvtTrackExtrapolator.HARP_POSITION, 5.0)[0]; if (posAtConverterFringe1!=null) printWriter.format("%5.5f %5.5f %5.5f ", posAtConverterFringe1.z(),posAtConverterFringe1.x(),posAtConverterFringe1.y()); //note rotation from JLab->tracking else printWriter.format("%5.5f %5.5f %5.5f ", -9999999.9,-9999999.9,-9999999.9);
-
+ Hep3Vector posAtECal = this.vertexer.extrapolator().extrapolateTrack(SvtTrackExtrapolator.ECAL_FACE); + if(posAtECal!=null && !Double.isNaN(posAtECal.x()) && !Double.isNaN(posAtECal.y())) { + printWriter.format("%5.5f %5.5f ",posAtECal.x(),posAtECal.y()); //note rotation from JLab->tracking + } + else printWriter.format("%5.5f %5.5f ",-9999999.9,-9999999.9); +
} else {
@@ -483,16 +499,17 @@
printWriter.format("%5.5f %5.5f %5.5f ", -9999999.9, -9999999.9, -9999999.9); } for(int iLayer=0;iLayer<5;++iLayer) {
- printWriter.format("%5.5f %5.5f %5.5f ", -9999999.9, -9999999.9, -9999999.9); - printWriter.format("%5.5f %5.5f %5.5f ", -9999999.9, -9999999.9, -9999999.9);
+ printWriter.format("%5.5f %5.5f ", -9999999.9, -9999999.9); + printWriter.format("%5.5f %5.5f ", -9999999.9, -9999999.9);
printWriter.format("%5.5f %5.5f ", -9999999.9, -9999999.9); printWriter.format("%5.5f %5.5f ", -9999999.9, -9999999.9); } for(int iLayer=1;iLayer<=10;++iLayer) {
- printWriter.format("%5.5f ", -99999999.9);
+ printWriter.format("%5.5f %5.5f %5.5f ", -99999999.9, -99999999.9, -99999999.9);
}
+ printWriter.format("%5.5f %5.5f ",-9999999.9,-9999999.9); //note rotation from JLab->tracking
printWriter.format("%5.5f %5.5f %5.5f ",-9999999.9,-9999999.9,-9999999.9); //note rotation from JLab->tracking
- printWriter.format("%5.5f %5.5f %5.5f ",-9999999.9,-9999999.9,-9999999.9); //note rotation from JLab->tracking
+ printWriter.format("%5.5f %5.5f ",-9999999.9,-9999999.9); //note rotation from JLab->tracking
} }
@@ -756,9 +773,9 @@
this._plotterTrackMult.show(); } }
- -
+
+
}
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