lcsim/src/org/lcsim/contrib/Pelham/Example1
diff -N HelixParamHistograms.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ HelixParamHistograms.java 25 Jul 2008 18:27:39 -0000 1.1
@@ -0,0 +1,177 @@
+package org.lcsim.contrib.Pelham.Example1;
+
+
+import org.lcsim.fit.helicaltrack.HelicalTrackFit;
+import org.lcsim.event.MCParticle;
+import org.lcsim.event.EventHeader;
+import org.lcsim.util.aida.AIDA;
+
+
+/**
+ *
+ * @author Pelham Keahey
+ * Thursday, July 3rd 2008
+ */
+public class HelixParamHistograms {
+ //helix from mc partcle for layer hit 1st
+ //simtracker hit where is nrg
+ //pos from tracker hit 2nd
+ //compare fitted helix to mcparticle hits r phi z
+ private AIDA aida = AIDA.defaultInstance();
+ //Histrogram Variables
+ private double datom,dtl,ddca,dphi0,dz,dm,dtm;
+ private double mcom,mctl,mcdca,mcphi0,mcz,mcm,mctm;
+ //Error Variables
+ private double curverror,sloperror,dcaerror,phi0error,z0error;
+
+ //Constructor for Histrogram Drawer, Calculations done inside as well
+ public HelixParamHistograms(HelicalTrackFit fit,MCParticle mcp,EventHeader event)
+ {
+
+
+ HelixParameterCalculator calc = new HelixParameterCalculator(mcp,event);
+ //************ Data Calculations for MOMENTUM, OMEGA, TRANS. MOMENTUM *********
+ dm = fit.p(calc.getMagField());
+ datom = fit.curvature();
+ dtm = fit.pT(calc.getMagField());
+
+
+ //************* MCParticles Calculations for MOMENTUM, OMEGA, TRANS. MOMENTUM ******
+ mcm = calc.getMCMomentum();
+ mcom = calc.getMCOmega();
+ mctm = calc.getMCTransverseMomentum();
+
+
+ //************ Tan Lamda Calculations tanL tsnL tan L *************
+ dtl = fit.slope();
+ mctl = calc.getSlopeSZPlane();
+
+
+ //************ DCA Calculations DCA DCA DCA DCA DCA DCA *************
+ ddca = fit.dca();
+ mcdca = calc.getDCA();
+
+
+ //******* phi0 Calculation phi0 phi0 phi0 phi0 ******************
+ dphi0 = fit.phi0();
+ mcphi0 = calc.getPhi0();
+
+
+ //******* z0 Calculations z0 z0 z0 z0 z0 z0 z0 ************************
+ dz = fit.z0();
+ mcz= calc.getZ0();
+
+ ErrorCalculator calce = new ErrorCalculator(fit);
+ //Get error for calculating the pull
+ curverror = calce.getCurveError();
+ sloperror = calce.getSlopeError();
+ dcaerror = calce.getDcaError();
+ phi0error = calce.getPhi0Error();
+ z0error = calce.getZ0Error();
+
+
+ }
+ public void DrawDataPositive()
+ {
+
+ aida.histogram1D("HelixParam/1Dat-Positive/Omega", 300, -1*Math.pow(10, -3), Math.pow(10,-3)).fill(datom);
+ aida.histogram1D("HelixParam/1Dat-Positive/tanL", 200, -8., 8.).fill(dtl);
+ aida.histogram1D("HelixParam/1Dat-Positive/DCA", 200, -.1, .1).fill(ddca);
+ aida.histogram1D("HelixParam/1Dat-Positive/phi0", 200, -1., 3*Math.PI).fill(dphi0);
+ aida.histogram1D("HelixParam/1Dat-Positive/z0" , 200, -.1, .1).fill(dz);
+ aida.histogram1D("HelixParam/1Dat-Positive/Momentum", 200, 0., 200.).fill(dm);
+ aida.histogram1D("HelixParam/1Dat-Positive/Trans.Momentum", 200, 0., 150.).fill(dtm);
+ }
+ public void DrawDataNegative()
+ {
+ aida.histogram1D("HelixParam/2Dat-Negative/Omega", 300, -1*Math.pow(10, -3), Math.pow(10,-3)).fill(datom);
+ aida.histogram1D("HelixParam/2Dat-Negative/tanL", 200, -8., 8.).fill(dtl);
+ aida.histogram1D("HelixParam/2Dat-Negative/DCA", 200, -.1, .1).fill(ddca);
+ aida.histogram1D("HelixParam/2Dat-Negative/phi0", 200, -1., 3*Math.PI).fill(dphi0);
+ aida.histogram1D("HelixParam/2Dat-Negative/z0" , 200, -.1, .1).fill(dz);
+ aida.histogram1D("HelixParam/2Dat-Negative/Momentum", 200, 0., 200.).fill(dm);
+ aida.histogram1D("HelixParam/2Dat-Negative/Trans.Momentum", 200, 0., 150.).fill(dtm);
+ }
+ public void DrawMCPositive()
+ {
+
+ aida.histogram1D("HelixParam/3MC-Positive/Omega", 300, -1*Math.pow(10, -3), Math.pow(10,-3)).fill(mcom);
+ aida.histogram1D("HelixParam/3MC-Positive/tanL", 200, -8., 8.).fill(mctl);
+ aida.histogram1D("HelixParam/3MC-Positive/DCA", 200, -.01, .01).fill(mcdca);
+ aida.histogram1D("HelixParam/3MC-Positive/phi0", 200, -1., 3*Math.PI).fill(mcphi0);
+ aida.histogram1D("HelixParam/3MC-Positive/z0" , 200, -.001, .001).fill(mcz);
+ aida.histogram1D("HelixParam/3MC-Positive/Momentum", 200, 0., 200.).fill(mcm);
+ aida.histogram1D("HelixParam/3MC-Positive/Trans.Momentum", 200, 0., 150.).fill(mctm);
+ }
+ public void DrawMCNegative()
+ {
+ aida.histogram1D("HelixParam/4MC-Negative/Omega", 300, -1*Math.pow(10, -3), Math.pow(10,-3)).fill(mcom);
+ aida.histogram1D("HelixParam/4MC-Negative/tanL", 200, -8., 8.).fill(mctl);
+ aida.histogram1D("HelixParam/4MC-Negative/DCA", 200, -.01, .01).fill(mcdca);
+ aida.histogram1D("HelixParam/4MC-Negative/phi0", 200, -1., 3*Math.PI).fill(mcphi0);
+ aida.histogram1D("HelixParam/4MC-Negative/z0" , 200, -.001, .001).fill(mcz);
+ aida.histogram1D("HelixParam/4MC-Negative/Momentum", 200, 0., 200.).fill(mcm);
+ aida.histogram1D("HelixParam/4MC-Negative/Trans.Momentum", 200, 0., 150.).fill(mctm);
+
+ }
+ public void DrawResidualPositive()
+ {
+ aida.histogram1D("HelixParam/Residual-Positive/Momentum" , 200, -10., 10.).fill(dm-mcm);
+ aida.histogram1D("HelixParam/Residual-Positive/Trans.Momentum", 200, -5., 5.).fill(dtm-mctm);
+ aida.histogram1D("HelixParam/Residual-Positive/Omega" , 300, -5*Math.pow(10, -6), 5*Math.pow(10,-6)).fill(datom-mcom);
+ aida.histogram1D("HelixParam/Residual-Positive/tanL" , 300, -.01, .01).fill(dtl-mctl);
+ aida.histogram1D("HelixParam/Residual-Positive/DCA" , 200, -.1, .1).fill(ddca-mcdca);
+ aida.histogram1D("HelixParam/Residual-Positive/phi0" , 200, -.002, .002).fill(dphi0-mcphi0);
+ aida.histogram1D("HelixParam/Residual-Positive/z0" , 200, -.1, .1).fill(dz-mcz);
+
+ }
+ public void DrawResidualNegative()
+ {
+ aida.histogram1D("HelixParam/Residual-Negative/Momentum" , 200, -10., 10.).fill(dm-mcm);
+ aida.histogram1D("HelixParam/Residual-Negative/Trans.Momentum", 200, -5., 5.).fill(dtm-mctm);
+ aida.histogram1D("HelixParam/Residual-Negative/Omega" , 300, -5*Math.pow(10, -6), 5*Math.pow(10,-6)).fill(datom-mcom);
+ aida.histogram1D("HelixParam/Residual-Negative/tanL" , 300, -.01, .01).fill(dtl-mctl);
+ aida.histogram1D("HelixParam/Residual-Negative/DCA" , 200, -.1, .1).fill(ddca-mcdca);
+ aida.histogram1D("HelixParam/Residual-Negative/phi0" , 200, -.002, .002).fill(dphi0-mcphi0);
+ aida.histogram1D("HelixParam/Residual-Negative/z0" , 200, -.1, .1).fill(dz-mcz);
+
+ }
+ public void DrawResidual()
+ {
+ aida.histogram1D("HelixParam/Residual-both/Momentum" , 200, -10., 10.).fill(dm-mcm);
+ aida.histogram1D("HelixParam/Residual-both/Trans.Momentum", 200, -5., 5.).fill(dtm-mctm);
+ aida.histogram1D("HelixParam/Residual-both/Omega" , 300, -5*Math.pow(10, -6), 5*Math.pow(10,-6)).fill(datom-mcom);
+ aida.histogram1D("HelixParam/Residual-both/tanL" , 300, -.01, .01).fill(dtl-mctl);
+ aida.histogram1D("HelixParam/Residual-both/DCA" , 200, -.1, .1).fill(ddca-mcdca);
+ aida.histogram1D("HelixParam/Residual-both/phi0" , 200, -.002, .002).fill(dphi0-mcphi0);
+ aida.histogram1D("HelixParam/Residual-both/z0" , 200, -.1, .1).fill(dz-mcz);
+
+ }
+ public void DrawPullPositive()
+ {
+ aida.histogram1D("HelixParam/Pull-Positive/Omega", 300, -10, 10).fill((datom-mcom)/curverror);
+ aida.histogram1D("HelixParam/Pull-Positive/tanL" , 300, -11, 11).fill((dtl-mctl)/sloperror);
+ aida.histogram1D("HelixParam/Pull-Positive/dca" , 300, -10, 10).fill((ddca-mcdca)/dcaerror);
+ aida.histogram1D("HelixParam/Pull-Positive/phi0" , 300, -11, 11).fill((dphi0-mcphi0)/phi0error);
+ aida.histogram1D("HelixParam/Pull-Positive/z0" , 300, -50, 50).fill((dz-mcz)/z0error);
+
+ }
+ public void DrawPullNegative()
+ {
+ aida.histogram1D("HelixParam/Pull-Negative/Omega", 300, -10, 10).fill((datom-mcom)/curverror);
+ aida.histogram1D("HelixParam/Pull-Negative/tanL" , 300, -11, 11).fill((dtl-mctl)/sloperror);
+ aida.histogram1D("HelixParam/Pull-Negative/dca" , 300, -10, 10).fill((ddca-mcdca)/dcaerror);
+ aida.histogram1D("HelixParam/Pull-Negative/phi0" , 300, -11, 11).fill((dphi0-mcphi0)/phi0error);
+ aida.histogram1D("HelixParam/Pull-Negative/z0" , 300, -50, 50).fill((dz-mcz)/z0error);
+ }
+ public void DrawPull()
+ {
+ aida.histogram1D("HelixParam/Pull-Both/Omega", 300, -10, 10).fill((datom-mcom)/curverror);
+ aida.histogram1D("HelixParam/Pull-Both/tanL" , 300, -11, 11).fill((dtl-mctl)/sloperror);
+ aida.histogram1D("HelixParam/Pull-Both/dca " , 300, -10, 10).fill((ddca-mcdca)/dcaerror);
+ aida.histogram1D("HelixParam/Pull-Both/phi0" , 300, -11, 11).fill((dphi0-mcphi0)/phi0error);
+ aida.histogram1D("HelixParam/Pull-Both/z0 " , 300, -50, 50).fill((dz-mcz)/z0error);
+ }
+
+
+}