[Rivet-svn] r4098 - in branches/2012-06-aidarivet: . data/anainfo data/plotinfo data/refdata src/Analyses

blackhole at projects.hepforge.org blackhole at projects.hepforge.org
Thu Dec 20 17:25:44 GMT 2012


Author: buckley
Date: Thu Dec 20 17:25:43 2012
New Revision: 4098

Log:
Adding ATLAS_2012_I1119557 analysis (from Roman Lysak and Lily Asquith).

Added:
   branches/2012-06-aidarivet/data/anainfo/ATLAS_2012_I1119557.info
   branches/2012-06-aidarivet/data/plotinfo/ATLAS_2012_I1119557.plot
   branches/2012-06-aidarivet/data/refdata/ATLAS_2012_I1119557.aida
   branches/2012-06-aidarivet/src/Analyses/ATLAS_2012_I1119557.cc
Modified:
   branches/2012-06-aidarivet/ChangeLog
   branches/2012-06-aidarivet/data/anainfo/Makefile.am
   branches/2012-06-aidarivet/data/plotinfo/Makefile.am
   branches/2012-06-aidarivet/data/refdata/Makefile.am
   branches/2012-06-aidarivet/src/Analyses/Makefile.am

Modified: branches/2012-06-aidarivet/ChangeLog
==============================================================================
--- branches/2012-06-aidarivet/ChangeLog	Thu Dec 20 17:18:33 2012	(r4097)
+++ branches/2012-06-aidarivet/ChangeLog	Thu Dec 20 17:25:43 2012	(r4098)
@@ -1,3 +1,7 @@
+2012-12-20  Andy Buckley  <andy.buckley at cern.ch>
+
+	* Adding ATLAS_2012_I1119557 analysis (from Roman Lysak and Lily Asquith).
+
 2012-12-18  Andy Buckley  <andy.buckley at cern.ch>
 
 	* Adding TOTEM_2012_002 analysis, from Sercan Sen.

Added: branches/2012-06-aidarivet/data/anainfo/ATLAS_2012_I1119557.info
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/2012-06-aidarivet/data/anainfo/ATLAS_2012_I1119557.info	Thu Dec 20 17:25:43 2012	(r4098)
@@ -0,0 +1,48 @@
+Name: ATLAS_2012_I1119557
+Year: 2012
+Summary: Jet shapes and jet masses
+Experiment: ATLAS
+Collider: LHC 7TeV
+InspireID: 1119557
+Status: VALIDATED
+Authors:
+ - Lily Asquith <lasquith at hep.anl.gov>
+ - Roman Lysak <lysak at fzu.cz>
+References:
+ - Phys.Rev. D86 (2012) 072006
+ - doi:10.1103/PhysRevD.86.072006
+ - arXiv:1206.5369 [hep-ex]
+RunInfo:
+  QCD events at 7 TeV, leading-pT jets with $\pT > 300\;GeV$.
+NumEvents: 1000000
+NeedCrossSection: no
+Beams: [p+, p+]
+Energies: [7000]
+PtCuts: [300]
+Description:
+  'Measurements are presented of the properties of high transverse
+   momentum jets, produced in proton-proton collisions at a
+   center-of-mass energy of $\sqrt{s} = 7$\;TeV. Jet mass, width,
+   eccentricity, planar flow and angularity are measured for jets
+   reconstructed using the anti-$k_t$ algorithm with distance parameters
+   $R = 0.6$ and 1.0, with transverse momentum $pT > 300$\;GeV and
+   pseudorapidity $|\eta| < 2$.'
+BibKey: Aad:2012meb
+BibTeX: '@article{Aad:2012meb,
+      author         = "Aad, Georges and others",
+      title          = "{ATLAS measurements of the properties of jets for boosted
+                        particle searches}",
+      collaboration  = "ATLAS Collaboration",
+      journal        = "Phys.Rev.",
+      volume         = "D86",
+      pages          = "072006",
+      doi            = "10.1103/PhysRevD.86.072006",
+      year           = "2012",
+      eprint         = "1206.5369",
+      archivePrefix  = "arXiv",
+      primaryClass   = "hep-ex",
+      reportNumber   = "CERN-PH-EP-2012-149",
+      SLACcitation   = "%%CITATION = ARXIV:1206.5369;%%",
+}'
+ToDo:
+ - Validate the eccentricity plot (commented out for now)

Modified: branches/2012-06-aidarivet/data/anainfo/Makefile.am
==============================================================================
--- branches/2012-06-aidarivet/data/anainfo/Makefile.am	Thu Dec 20 17:18:33 2012	(r4097)
+++ branches/2012-06-aidarivet/data/anainfo/Makefile.am	Thu Dec 20 17:25:43 2012	(r4098)
@@ -55,6 +55,7 @@
   ATLAS_2012_I943401.info \
   ATLAS_2012_I1082009.info \
   ATLAS_2012_I1091481.info \
+  ATLAS_2012_I1119557.info \
   ATLAS_2012_I1183818.info \
   ATLAS_2012_I1188891.info \
   ATLAS_2012_I946427.info \

Added: branches/2012-06-aidarivet/data/plotinfo/ATLAS_2012_I1119557.plot
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/2012-06-aidarivet/data/plotinfo/ATLAS_2012_I1119557.plot	Thu Dec 20 17:25:43 2012	(r4098)
@@ -0,0 +1,55 @@
+# BEGIN PLOT /ATLAS_2012_I1119557/d01-x01-y01
+Title=Anti-$k_T$ jets, $R = 0.6$, $p_T > 300$\;GeV, $|\eta|<2$
+XLabel=Jet mass [GeV]
+YLabel=$1/N\cdot \text{d}N/\text{d}M$~[GeV$^{-1}$]
+LogY=0
+# END PLOT
+
+# BEGIN PLOT /ATLAS_2012_I1119557/d01-x02-y01
+Title=Anti-$k_T$ jets, $R = 1.0$, $p_T > 300 $\;GeV, $|\eta|<2$
+XLabel=Jet mass [GeV]
+YLabel=$1/N\cdot \text{d}N/\text{d}M$~[GeV$^{-1}$]
+LogY=0
+# END PLOT
+
+# BEGIN PLOT /ATLAS_2012_I1119557/d02-x01-y01
+Title=Anti-$k_T$ jets, $R = 0.6$, $p_T > 300$\;GeV, $|\eta|<2$
+XLabel=Width
+YLabel=$1/N\cdot \text{d}N/\text{d}W$
+LogY=0
+# END PLOT
+
+# BEGIN PLOT /ATLAS_2012_I1119557/d02-x02-y01
+Title=Anti-$k_T$ jets, $R = 1.0$, $p_T > 300$\;GeV, $|\eta|<2$
+XLabel=Width
+YLabel=$1/N\cdot \text{d}N/\text{d}W$
+LogY=0
+# END PLOT
+
+# BEGIN PLOT /ATLAS_2012_I1119557/d03-x01-y01
+#Title=Anti-$k_T$ jets, $R = 0.6$, $p_T > 300$\;GeV, $|\eta|<0.7$, $M > 100$\;GeV
+#XLabel=Eccentricity
+#YLabel=$1/N\cdot \text{d}N/\text{d}E$
+#LogY=0
+# END PLOT
+
+# BEGIN PLOT /ATLAS_2012_I1119557/d03-x02-y01
+#Title=Anti-$k_T$ jets, $R = 1.0$, $p_T > 300$\;GeV, $|\eta|<0.7$, $M > 100$\;GeV
+#XLabel=Eccentricity
+#YLabel=$1/N\cdot \text{d}N/\text{d}E$
+#LogY=0
+# END PLOT
+
+# BEGIN PLOT /ATLAS_2012_I1119557/d04-x02-y01
+Title=Anti-$k_T$ jets, $R = 1.0$, $p_T > 300$\;GeV, $|\eta|<0.7$, $130 < M < 210$\;GeV
+XLabel=Planar flow
+YLabel=$1/N\cdot \text{d}N/\text{d}P$
+LogY=0
+# END PLOT
+
+# BEGIN PLOT /ATLAS_2012_I1119557/d05-x01-y01
+Title=Anti-$k_T$ jets, $R = 0.6$, $p_T > 300$\;GeV, $|\eta|<0.7$, $100 < M < 130$\;GeV
+XLabel=Angularity $\tau_{-2}$
+YLabel=$1/N\cdot \text{d}N/\text{d}$\tau_{-2}$
+LogY=0
+# END PLOT

Modified: branches/2012-06-aidarivet/data/plotinfo/Makefile.am
==============================================================================
--- branches/2012-06-aidarivet/data/plotinfo/Makefile.am	Thu Dec 20 17:18:33 2012	(r4097)
+++ branches/2012-06-aidarivet/data/plotinfo/Makefile.am	Thu Dec 20 17:25:43 2012	(r4098)
@@ -53,6 +53,7 @@
   ATLAS_2012_I943401.plot \
   ATLAS_2012_I946427.plot \
   ATLAS_2012_CONF_2012_001.plot \
+  ATLAS_2012_I1119557.plot \
   ATLAS_2012_I1112263.plot \
   ATLAS_2012_I1125961.plot \
   ATLAS_2012_I1126136.plot \

Added: branches/2012-06-aidarivet/data/refdata/ATLAS_2012_I1119557.aida
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/2012-06-aidarivet/data/refdata/ATLAS_2012_I1119557.aida	Thu Dec 20 17:25:43 2012	(r4098)
@@ -0,0 +1,211 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!DOCTYPE aida SYSTEM "http://aida.freehep.org/schemas/3.3/aida.dtd">
+<aida version="3.3">
+  <implementation version="1.0" package="HepData"/>
+  <dataPointSet name="d01-x01-y01" dimension="2" path="/REF/ATLAS_2012_I1119557" title="(1/N)*D(N)/DMASS(C=JET) IN GEV**-1" >
+    <dataPoint>
+      <measurement value="30.0" errorPlus="10.0" errorMinus="10.0"/>
+      <measurement value="0.0212" errorPlus="0.0034058772731852802" errorMinus="0.0034058772731852802"/>
+    </dataPoint>
+    <dataPoint>
+      <measurement value="50.0" errorPlus="10.0" errorMinus="10.0"/>
+      <measurement value="0.0152" errorPlus="0.0016031219541881396" errorMinus="0.0016031219541881396"/>
+    </dataPoint>
+    <dataPoint>
+      <measurement value="70.0" errorPlus="10.0" errorMinus="10.0"/>
+      <measurement value="0.0065" errorPlus="0.001004987562112089" errorMinus="0.001104536101718726"/>
+    </dataPoint>
+    <dataPoint>
+      <measurement value="95.0" errorPlus="15.0" errorMinus="15.0"/>
+      <measurement value="0.0024" errorPlus="4.123105625617661E-4" errorMinus="4.123105625617661E-4"/>
+    </dataPoint>
+    <dataPoint>
+      <measurement value="125.0" errorPlus="15.0" errorMinus="15.0"/>
+      <measurement value="5.0E-4" errorPlus="8.246211251235322E-5" errorMinus="1.2165525060596439E-4"/>
+    </dataPoint>
+  </dataPointSet>
+  <dataPointSet name="d01-x02-y01" dimension="2" path="/REF/ATLAS_2012_I1119557" title="(1/N)*D(N)/DMASS(C=JET) IN GEV**-1" >
+    <dataPoint>
+      <measurement value="37.5" errorPlus="17.5" errorMinus="17.5"/>
+      <measurement value="0.0069" errorPlus="0.0023021728866442675" errorMinus="0.0024020824298928625"/>
+    </dataPoint>
+    <dataPoint>
+      <measurement value="72.5" errorPlus="17.5" errorMinus="17.5"/>
+      <measurement value="0.0122" errorPlus="0.0017029386365926401" errorMinus="0.0018027756377319946"/>
+    </dataPoint>
+    <dataPoint>
+      <measurement value="107.5" errorPlus="17.5" errorMinus="17.5"/>
+      <measurement value="0.0056" errorPlus="0.0013038404810405296" errorMinus="0.0013038404810405296"/>
+    </dataPoint>
+    <dataPoint>
+      <measurement value="142.5" errorPlus="17.5" errorMinus="17.5"/>
+      <measurement value="0.00236" errorPlus="3.22490309931942E-4" errorMinus="3.423448553724738E-4"/>
+    </dataPoint>
+    <dataPoint>
+      <measurement value="180.0" errorPlus="20.0" errorMinus="20.0"/>
+      <measurement value="9.0E-4" errorPlus="2.408318915758459E-4" errorMinus="2.3086792761230392E-4"/>
+    </dataPoint>
+    <dataPoint>
+      <measurement value="220.0" errorPlus="20.0" errorMinus="20.0"/>
+      <measurement value="4.3E-4" errorPlus="2.1095023109728986E-4" errorMinus="1.8110770276274834E-4"/>
+    </dataPoint>
+  </dataPointSet>
+  <dataPointSet name="d02-x01-y01" dimension="2" path="/REF/ATLAS_2012_I1119557" title="(1/N)*D(N)/DWIDTH(C=JET)" >
+    <dataPoint>
+      <measurement value="0.0125" errorPlus="0.0125" errorMinus="0.0125"/>
+      <measurement value="6.11" errorPlus="0.8287339742040264" errorMinus="0.8584287972802402"/>
+    </dataPoint>
+    <dataPoint>
+      <measurement value="0.037500000000000006" errorPlus="0.012499999999999997" errorMinus="0.012500000000000004"/>
+      <measurement value="10.6" errorPlus="1.2041594578792296" errorMinus="1.104536101718726"/>
+    </dataPoint>
+    <dataPoint>
+      <measurement value="0.07500000000000001" errorPlus="0.024999999999999994" errorMinus="0.02500000000000001"/>
+      <measurement value="5.53" errorPlus="1.0007996802557444" errorMinus="0.9008884503644167"/>
+    </dataPoint>
+    <dataPoint>
+      <measurement value="0.125" errorPlus="0.024999999999999994" errorMinus="0.024999999999999994"/>
+      <measurement value="2.64" errorPlus="0.40112342240263166" errorMinus="0.3014962686336267"/>
+    </dataPoint>
+    <dataPoint>
+      <measurement value="0.175" errorPlus="0.025000000000000022" errorMinus="0.024999999999999994"/>
+      <measurement value="1.4" errorPlus="0.20223748416156687" errorMinus="0.20223748416156687"/>
+    </dataPoint>
+    <dataPoint>
+      <measurement value="0.225" errorPlus="0.024999999999999994" errorMinus="0.024999999999999994"/>
+      <measurement value="0.77" errorPlus="0.13152946437965907" errorMinus="0.1216552506059644"/>
+    </dataPoint>
+    <dataPoint>
+      <measurement value="0.275" errorPlus="0.024999999999999967" errorMinus="0.025000000000000022"/>
+      <measurement value="0.4" errorPlus="0.09219544457292887" errorMinus="0.07280109889280519"/>
+    </dataPoint>
+  </dataPointSet>
+  <dataPointSet name="d02-x02-y01" dimension="2" path="/REF/ATLAS_2012_I1119557" title="(1/N)*D(N)/DWIDTH(C=JET)" >
+    <dataPoint>
+      <measurement value="0.0125" errorPlus="0.0125" errorMinus="0.0125"/>
+      <measurement value="1.21" errorPlus="0.48259714048054614" errorMinus="0.5024937810560445"/>
+    </dataPoint>
+    <dataPoint>
+      <measurement value="0.037500000000000006" errorPlus="0.012499999999999997" errorMinus="0.012500000000000004"/>
+      <measurement value="5.53" errorPlus="1.502131818450032" errorMinus="1.502131818450032"/>
+    </dataPoint>
+    <dataPoint>
+      <measurement value="0.07500000000000001" errorPlus="0.024999999999999994" errorMinus="0.02500000000000001"/>
+      <measurement value="5.08" errorPlus="0.8209750300709516" errorMinus="0.751065909225016"/>
+    </dataPoint>
+    <dataPoint>
+      <measurement value="0.125" errorPlus="0.024999999999999994" errorMinus="0.024999999999999994"/>
+      <measurement value="3.36" errorPlus="0.4909175083453431" errorMinus="0.45099889135118726"/>
+    </dataPoint>
+    <dataPoint>
+      <measurement value="0.175" errorPlus="0.025000000000000022" errorMinus="0.024999999999999994"/>
+      <measurement value="2.18" errorPlus="0.3313608305156178" errorMinus="0.3014962686336267"/>
+    </dataPoint>
+    <dataPoint>
+      <measurement value="0.225" errorPlus="0.024999999999999994" errorMinus="0.024999999999999994"/>
+      <measurement value="1.51" errorPlus="0.21095023109728983" errorMinus="0.191049731745428"/>
+    </dataPoint>
+    <dataPoint>
+      <measurement value="0.275" errorPlus="0.024999999999999967" errorMinus="0.025000000000000022"/>
+      <measurement value="1.04" errorPlus="0.2408318915758459" errorMinus="0.22090722034374521"/>
+    </dataPoint>
+    <dataPoint>
+      <measurement value="0.32499999999999996" errorPlus="0.025000000000000022" errorMinus="0.024999999999999967"/>
+      <measurement value="0.73" errorPlus="0.22090722034374521" errorMinus="0.21095023109728983"/>
+    </dataPoint>
+    <dataPoint>
+      <measurement value="0.375" errorPlus="0.025000000000000022" errorMinus="0.025000000000000022"/>
+      <measurement value="0.59" errorPlus="0.161245154965971" errorMinus="0.14142135623730953"/>
+    </dataPoint>
+  </dataPointSet>
+<!-- comment out eccentricity plots for now since not validated
+  <dataPointSet name="d03-x01-y01" dimension="2" path="/REF/ATLAS_2012_I1119557" title="(1/N)*D(N)/DECCENTRICITY(C=JET)" >
+    <dataPoint>
+      <measurement value="0.1" errorPlus="0.1" errorMinus="0.1"/>
+      <measurement value="0.02" errorPlus="0.022360679774997897" errorMinus="0.022360679774997897"/>
+    </dataPoint>
+    <dataPoint>
+      <measurement value="0.30000000000000004" errorPlus="0.09999999999999998" errorMinus="0.10000000000000003"/>
+      <measurement value="0.11" errorPlus="0.0670820393249937" errorMinus="0.0670820393249937"/>
+    </dataPoint>
+    <dataPoint>
+      <measurement value="0.5" errorPlus="0.09999999999999998" errorMinus="0.09999999999999998"/>
+      <measurement value="0.51" errorPlus="0.16552945357246848" errorMinus="0.147648230602334"/>
+    </dataPoint>
+    <dataPoint>
+      <measurement value="0.7" errorPlus="0.10000000000000009" errorMinus="0.09999999999999998"/>
+      <measurement value="1.1" errorPlus="0.15811388300841897" errorMinus="0.1664331697709324"/>
+    </dataPoint>
+    <dataPoint>
+      <measurement value="0.9" errorPlus="0.09999999999999998" errorMinus="0.09999999999999998"/>
+      <measurement value="3.29" errorPlus="0.29410882339705485" errorMinus="0.3190611226708764"/>
+    </dataPoint>
+  </dataPointSet>
+  <dataPointSet name="d03-x02-y01" dimension="2" path="/REF/ATLAS_2012_I1119557" title="(1/N)*D(N)/DECCENTRICITY(C=JET)" >
+    <dataPoint>
+      <measurement value="0.1" errorPlus="0.1" errorMinus="0.1"/>
+      <measurement value="0.08" errorPlus="0.03162277660168379" errorMinus="0.03162277660168379"/>
+    </dataPoint>
+    <dataPoint>
+      <measurement value="0.30000000000000004" errorPlus="0.09999999999999998" errorMinus="0.10000000000000003"/>
+      <measurement value="0.42" errorPlus="0.09219544457292887" errorMinus="0.09219544457292887"/>
+    </dataPoint>
+    <dataPoint>
+      <measurement value="0.5" errorPlus="0.09999999999999998" errorMinus="0.09999999999999998"/>
+      <measurement value="0.98" errorPlus="0.12369316876852982" errorMinus="0.14317821063276354"/>
+    </dataPoint>
+    <dataPoint>
+      <measurement value="0.7" errorPlus="0.10000000000000009" errorMinus="0.09999999999999998"/>
+      <measurement value="1.72" errorPlus="0.20396078054371142" errorMinus="0.22360679774997896"/>
+    </dataPoint>
+    <dataPoint>
+      <measurement value="0.9" errorPlus="0.09999999999999998" errorMinus="0.09999999999999998"/>
+      <measurement value="1.86" errorPlus="0.28284271247461906" errorMinus="0.27294688127912364"/>
+    </dataPoint>
+  </dataPointSet>
+-->
+  <dataPointSet name="d04-x02-y01" dimension="2" path="/REF/ATLAS_2012_I1119557" title="(1/N)*D(N)/DPLANARFLOW(C=JET)" >
+    <dataPoint>
+      <measurement value="0.1" errorPlus="0.1" errorMinus="0.1"/>
+      <measurement value="0.51" errorPlus="0.15652475842498528" errorMinus="0.15652475842498528"/>
+    </dataPoint>
+    <dataPoint>
+      <measurement value="0.30000000000000004" errorPlus="0.09999999999999998" errorMinus="0.10000000000000003"/>
+      <measurement value="1.36" errorPlus="0.28460498941515416" errorMinus="0.3132091952673165"/>
+    </dataPoint>
+    <dataPoint>
+      <measurement value="0.5" errorPlus="0.09999999999999998" errorMinus="0.09999999999999998"/>
+      <measurement value="1.38" errorPlus="0.30364452901377953" errorMinus="0.28460498941515416"/>
+    </dataPoint>
+    <dataPoint>
+      <measurement value="0.7" errorPlus="0.10000000000000009" errorMinus="0.09999999999999998"/>
+      <measurement value="0.95" errorPlus="0.14422205101855956" errorMinus="0.12041594578792295"/>
+    </dataPoint>
+    <dataPoint>
+      <measurement value="0.9" errorPlus="0.09999999999999998" errorMinus="0.09999999999999998"/>
+      <measurement value="0.81" errorPlus="0.16552945357246848" errorMinus="0.18384776310850237"/>
+    </dataPoint>
+  </dataPointSet>
+  <dataPointSet name="d05-x01-y01" dimension="2" path="/REF/ATLAS_2012_I1119557" title="(1/N)*D(N)/DANGULARITY(C=JET)" >
+    <dataPoint>
+      <measurement value="0.001" errorPlus="0.001" errorMinus="0.001"/>
+      <measurement value="75.0" errorPlus="39.293765408777" errorMinus="47.07440918375928"/>
+    </dataPoint>
+    <dataPoint>
+      <measurement value="0.003" errorPlus="0.001" errorMinus="0.001"/>
+      <measurement value="223.0" errorPlus="30.886890422961002" errorMinus="31.76476034853718"/>
+    </dataPoint>
+    <dataPoint>
+      <measurement value="0.005" errorPlus="0.001" errorMinus="0.001"/>
+      <measurement value="158.0" errorPlus="45.880278987817846" errorMinus="35.4682957019364"/>
+    </dataPoint>
+    <dataPoint>
+      <measurement value="0.007" errorPlus="0.001" errorMinus="0.001"/>
+      <measurement value="40.0" errorPlus="33.54101966249684" errorMinus="33.54101966249684"/>
+    </dataPoint>
+    <dataPoint>
+      <measurement value="0.009000000000000001" errorPlus="9.999999999999992E-4" errorMinus="0.0010000000000000009"/>
+      <measurement value="9.0" errorPlus="26.476404589747453" errorMinus="10.295630140987"/>
+    </dataPoint>
+  </dataPointSet>
+</aida>

Modified: branches/2012-06-aidarivet/data/refdata/Makefile.am
==============================================================================
--- branches/2012-06-aidarivet/data/refdata/Makefile.am	Thu Dec 20 17:18:33 2012	(r4097)
+++ branches/2012-06-aidarivet/data/refdata/Makefile.am	Thu Dec 20 17:25:43 2012	(r4098)
@@ -57,6 +57,7 @@
   ATLAS_2012_I943401.aida \
   ATLAS_2012_I1082009.aida \
   ATLAS_2012_I1118269.aida \
+  ATLAS_2012_I1119557.aida \
   ATLAS_2012_I1183818.aida \
   ATLAS_2012_I1188891.aida \
   ATLAS_2012_CONF_2012_001.aida \

Added: branches/2012-06-aidarivet/src/Analyses/ATLAS_2012_I1119557.cc
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/2012-06-aidarivet/src/Analyses/ATLAS_2012_I1119557.cc	Thu Dec 20 17:25:43 2012	(r4098)
@@ -0,0 +1,288 @@
+// -*- C++ -*-
+#include "Rivet/Analysis.hh"
+#include "Rivet/RivetAIDA.hh"
+#include "Rivet/Tools/Logging.hh"
+#include "Rivet/Projections/FastJets.hh"
+#include "Rivet/Projections/FinalState.hh"
+
+namespace Rivet {
+
+
+  // Forward declarations of calculator functions: implementations at bottom of file
+  double getWidth(const Jet& jet);
+  double getEcc(const Jet& jet);
+  double getPFlow(const Jet& jet);
+  double getAngularity(const Jet& jet);
+
+
+
+  class ATLAS_2012_I1119557 : public Analysis {
+  public:
+
+    ATLAS_2012_I1119557()
+      : Analysis("ATLAS_2012_I1119557")
+    {    }
+
+
+    void init() {
+      const FinalState fs;
+      addProjection(fs, "FinalState");
+
+      FastJets fj06(fs, FastJets::ANTIKT, 0.6);
+      addProjection(fj06, "AntiKT06");
+      FastJets fj10(fs, FastJets::ANTIKT, 1.0);
+      addProjection(fj10, "AntiKT10");
+
+      for (size_t alg = 0; alg < 2; ++alg) {
+        _hs_mass[alg]  = bookHistogram1D(1, alg+1, 1);
+        _hs_width[alg] = bookHistogram1D(2, alg+1, 1);
+        /// @todo Commented eccentricity out for now: reinstate
+        // _hs_eccentricity[alg] = bookHistogram1D(3, alg+1, 1);
+      }
+      _h_planarFlow = bookHistogram1D(4, 2, 1);
+      _h_angularity = bookHistogram1D(5, 1, 1);
+
+    }
+
+
+    /// Perform the per-event analysis
+    void analyze(const Event& event) {
+      const double weight = event.weight();
+      Jets jetAr[2];
+      jetAr[0] = applyProjection<FastJets>(event, "AntiKT06").jetsByPt(300.*GeV, MAXDOUBLE, -2.0, 2.0);
+      jetAr[1] = applyProjection<FastJets>(event, "AntiKT10").jetsByPt(300.*GeV, MAXDOUBLE, -2.0, 2.0);
+
+      for (size_t alg = 0; alg < 2; ++alg) {
+        // Require at least one jet
+        if (jetAr[alg].size() < 1) continue;
+
+        // The leading jet
+        const Jet& jet = jetAr[alg][0];
+        const double m   = jet.momentum().mass();
+        const double eta = jet.momentum().eta();
+
+        _hs_mass[alg]->fill(m/GeV, weight);
+        _hs_width[alg]->fill(getWidth(jet), weight);
+        /// @todo Commented eccentricity out for now: reinstate
+        // if (fabs(eta) < 0.7 && m > 100*GeV) _hs_eccentricity[alg]->fill(getEcc(jet), weight);
+
+        if (alg == 1 && fabs(eta) < 0.7 && inRange(m/GeV, 130, 210)) _h_planarFlow->fill(getPFlow(jet), weight);
+        if (alg == 0 && fabs(eta) < 0.7 && inRange(m/GeV, 100, 130)) _h_angularity->fill(getAngularity(jet), weight);
+      }
+    }
+
+
+    /// Normalise histograms etc., after the run
+    void finalize() {
+      for (size_t alg = 0; alg < 2; ++alg) {
+        normalize(_hs_mass[alg]);
+        normalize(_hs_width[alg]);
+        /// @todo Commented eccentricity out for now: reinstate
+        // normalize(_hs_eccentricity[alg]);
+      }
+      normalize(_h_planarFlow);
+      normalize(_h_angularity);
+    }
+
+
+  private:
+
+    AIDA::IHistogram1D *_hs_mass[2];
+    AIDA::IHistogram1D *_hs_width[2];
+    /// @todo Commented eccentricity out for now: reinstate
+    // AIDA::IHistogram1D *_hs_eccentricity[2];
+    AIDA::IHistogram1D *_h_planarFlow;
+    AIDA::IHistogram1D *_h_angularity;
+  };
+
+
+  DECLARE_RIVET_PLUGIN(ATLAS_2012_I1119557);
+
+
+
+  namespace {
+
+    // Adapted code from Lily
+    /// @todo Convert to use the Rivet rotation matrix code (should be simpler)
+    FourMomentum RotateAxes(const Rivet::FourMomentum& p, double M[3][3]){
+      double px_rot=M[0][0]*(p.px())+M[0][1]*(p.py())+M[0][2]*(p.pz());
+      double py_rot=M[1][0]*(p.px())+M[1][1]*(p.py())+M[1][2]*(p.pz());
+      double pz_rot=M[2][0]*(p.px())+M[2][1]*(p.py())+M[2][2]*(p.pz());
+      return FourMomentum(p.E(), px_rot, py_rot, pz_rot);
+    }
+
+    // Untouched code from Lily
+    /// @todo Convert to use the Rivet rotation matrix code (should be simpler)
+    void CalcRotationMatrix(double nvec[3],double rot_mat[3][3]){
+      // clear momentum tensor
+      for (size_t i = 0; i < 3; i++) {
+        for (size_t j = 0; j < 3; j++) {
+          rot_mat[i][j]=0.;
+        }
+      }
+      double mag3=sqrt(nvec[0]*nvec[0] + nvec[1]*nvec[1]+ nvec[2]*nvec[2]);
+      double mag2=sqrt(nvec[0]*nvec[0] + nvec[1]*nvec[1]);
+      /// @todo cout is not a valid response to a numerical error! Is the error condition reported?!? Assert added by AB for Rivet 1.8.2
+      assert(mag3 > 0);
+      if (mag3 <= 0) {
+        cout << "rotation axis is null" << endl;
+        return;
+      }
+
+      double ctheta0 = nvec[2]/mag3;
+      double stheta0 = mag2/mag3;
+      double cphi0 = (mag2 > 0.) ? nvec[0]/mag2 : 0;
+      double sphi0 = (mag2 > 0.) ? nvec[1]/mag2 : 0;
+
+      rot_mat[0][0] = -ctheta0*cphi0;
+      rot_mat[0][1] = -ctheta0*sphi0;
+      rot_mat[0][2] = stheta0;
+      rot_mat[1][0] = sphi0;
+      rot_mat[1][1] = -1.*cphi0;
+      rot_mat[1][2] = 0.;
+      rot_mat[2][0] = stheta0*cphi0;
+      rot_mat[2][1] = stheta0*sphi0;
+      rot_mat[2][2] = ctheta0;
+    }
+
+
+    /// Jet width calculation
+    double jetWidth(const Jet& jet) {
+      const double phi_jet = jet.phi();
+      const double eta_jet = jet.eta();
+      double width(0), pTsum(0);
+      foreach (const Particle& p, jet.particles()) {
+        double pT = p.momentum().pT();
+        double eta = p.momentum().eta();
+        double phi = p.momentum().phi();
+        width += sqrt(pow(phi_jet - phi,2) + pow(eta_jet - eta, 2)) * pT;
+        pTsum += pT;
+      }
+      return (pTsum != 0.0) ? width/pTsum : -1;
+    }
+
+
+    /// Eccentricity calculation, copied and adapted from Lily's code
+    double getEcc(const Jet& jet) {
+      vector<double> phis;
+      vector<double> etas;
+      vector<double> energies;
+
+      double etaSum(0), phiSum(0), eTot(0);
+      foreach (const Particle& p, jet.particles()) {
+        const double E = p.momentum().E();
+        const double eta = p.momentum().eta();
+
+        energies.push_back(E);
+        etas.push_back(jet.momentum().eta() - eta);
+
+        eTot   += E;
+        etaSum += eta * E;
+
+        /// @todo Replace with the Rivet deltaPhi function (or the mapAngleTo* functions)
+        double dPhi = jet.momentum().phi() - p.momentum().phi();
+        //if DPhi does not lie within 0 < DPhi < PI take 2*PI off DPhi
+        //this covers cases where DPhi is greater than PI
+        if( fabs( dPhi - TWOPI ) < fabs(dPhi) ) dPhi -= TWOPI;
+        //if DPhi does not lie within -PI < DPhi < 0 add 2*PI to DPhi
+        //this covers cases where DPhi is less than -PI
+        else if( fabs(dPhi + TWOPI) < fabs(dPhi) ) dPhi += TWOPI;
+        phis.push_back(dPhi);
+
+        phiSum += dPhi * E;
+      }
+
+      //these are the "pull" away from the jet axis
+      etaSum = etaSum/eTot;
+      phiSum = phiSum/eTot;
+
+      // now for every cluster we alter its position by moving it:
+      // away from the new axis if it is in the direction of -ve pull
+      // closer to the new axis if it is in the direction of +ve pull
+      // the effect of this will be that the new energy weighted center will be on the old jet axis.
+      double little_x(0), little_y(0);
+      for (size_t k = 0; k < jet.particles().size(); ++k) {
+        little_x+= etas[k]-etaSum;
+        little_y+= phis[k]-phiSum;
+        etas[k] = etas[k]-etaSum;
+        phis[k] = phis[k]-phiSum;
+      }
+
+      double x1(0), x2(0);
+      for (size_t i = 0; i < jet.particles().size(); ++i) {
+        x1 += 2. * energies[i]* etas[i] * phis[i]; // this is 2*X*Y
+        x2 += energies[i]*(phis[i] * phis[i] - etas[i] * etas[i] ); // this is X^2 - Y^2
+      }
+
+      // Variance calculations
+      double theta = .5*atan2(x1, x2);
+      double sinTheta =sin(theta);
+      double cosTheta = cos(theta);
+      double theta2 = theta + 0.5*PI;
+      double sinThetaPrime = sin(theta2);
+      double cosThetaPrime = cos(theta2);
+
+      double varX(0), varY(0);
+      for (size_t i = 0; i < jet.particles().size(); i++) {
+        const double x = sinTheta*etas[i] + cosTheta*phis[i];
+        const double y = sinThetaPrime*etas[i] + cosThetaPrime*phis[i];
+        varX += energies[i]* sqr(x);
+        varY += energies[i]* sqr(y);
+      }
+      const double varianceMax = max(varX, varY);
+      const double varianceMin = min(varX, varY);
+      const double ecc = (varianceMax != 0.0) ? 1 - varianceMin/varianceMax : -1;
+      return ecc;
+    }
+
+
+    /// Planar flow calculation, copied and adapted from Lily's code
+    double getPFlow(const Jet& jet) {
+      const double phi0 = jet.momentum().phi();
+      const double eta0 = jet.momentum().eta();
+
+      double nref[3]; //< @todo 3-vector to rotate x to? Use Rivet vector classes
+      nref[0] = cos(phi0)/cosh(eta0);
+      nref[1] = sin(phi0)/cosh(eta0);
+      nref[2] = tanh(eta0);
+
+      // Rotation matrix to align with nref
+      double rotationMatrix[3][3];
+      CalcRotationMatrix(nref, rotationMatrix);
+
+      double iw00(0.), iw01(0.), iw11(0.), iw10(0.);
+      foreach (const Particle& p, jet.particles()) {
+        double a = 1./(p.momentum().E()*jet.momentum().mass());
+        FourMomentum rotclus = RotateAxes(p.momentum(), rotationMatrix);
+        iw00 += a*pow(rotclus.px(), 2);
+        iw01 += a*rotclus.px()*rotclus.py();
+        iw10 += a*rotclus.py()*rotclus.px();
+        iw11 += a*pow(rotclus.py(), 2);
+      }
+
+      const double det = iw00*iw11 - iw01*iw10;
+      const double trace = iw00 + iw11;
+
+      const double pf = (trace != 0.0) ? (4.0*det)/sqr(trace) : -1;
+      return pf;
+    }
+
+
+    /// Angularity calculation, copied and adapted from Lily's code
+    double getAngularity(const Jet& jet) {
+      double sum_a = 0.;
+      // a can take any value < 2 (e.g. 1,0,-0.5 etc) for infrared safety
+      const double a = -2.;
+      foreach (const Particle& p, jet.particles()) {
+        double e_i       = p.momentum().E();
+        double theta_i   = jet.momentum().angle(p.momentum());
+        double e_theta_i = e_i * pow(sin(theta_i), a) * pow(1-cos(theta_i), 1-a);
+        sum_a += e_theta_i;
+      }
+      return (jet.momentum().mass() != 0.0) ? sum_a/jet.momentum().mass() : -1;
+    }
+
+  }
+
+
+}

Modified: branches/2012-06-aidarivet/src/Analyses/Makefile.am
==============================================================================
--- branches/2012-06-aidarivet/src/Analyses/Makefile.am	Thu Dec 20 17:18:33 2012	(r4097)
+++ branches/2012-06-aidarivet/src/Analyses/Makefile.am	Thu Dec 20 17:25:43 2012	(r4098)
@@ -80,6 +80,7 @@
     ATLAS_2012_I1112263.cc \
     ATLAS_2012_I1117704.cc \
     ATLAS_2012_I1118269.cc \
+    ATLAS_2012_I1119557.cc \
     ATLAS_2012_I1125961.cc \
     ATLAS_2012_I1183818.cc \
     ATLAS_2012_I1188891.cc


More information about the Rivet-svn mailing list