Print

Print


Commit in lcsim/src/org/lcsim/contrib/Pelham/Example1 on MAIN
HelixParamHistograms.java+177added 1.1
Draws Residual and Pull histograms for the Helix Parameters.

lcsim/src/org/lcsim/contrib/Pelham/Example1
HelixParamHistograms.java added at 1.1
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);
+    }
+    
+    
+}
CVSspam 0.2.8