there are crashes in d3pd-making when running on d2aod_dipho samples.  the crashes appear when running on this file:

data11_7tev.00187219.physics_egamma.merge.d2aod_dipho.r2713_p705_p682_tid527720_00/d2aod_dipho.527720._000038.pool.root.1

you'll need to check out and build photonanalysisutils-00-03-20-01 to get past some crashes in that package if testing with a release that contains an older pau tag.

the crashes are avoided with the following changes (basically just adding protection against null pointers and invalid eta values):



atlas16 | egammatools-00-04-44 [96]: svn diff
index: src/egammaoqflagsbuilder.cxx
===================================================================
--- src/egammaoqflagsbuilder.cxx        (revision 462395)
+++ src/egammaoqflagsbuilder.cxx        (working copy)
@@ -178,6 +178,7 @@
 
   for( ;celliter!=celliterend;celliter++) {
     const calocell* cell = (*celliter);
+    if(!cell) continue;
     float eta = cell-&gt;eta();
     float phi = cell-&gt;phi();
     float energy = cell-&gt;energy();
@@ -240,17 +241,19 @@
   
   // protection against bad pointers
   if (eg==0) return statuscode::success;
-  if (eg-&gt;cluster()-&gt;getnumberofcells()&lt;=0) return statuscode::success;
+  const calocluster* cluster = eg-&gt;cluster();
 
+  if (!cluster) return statuscode::success;
+  if (cluster-&gt;getnumberofcells()&lt;=0) return statuscode::success;
+
   unsigned int iflag = 0;
-  const calocluster* cluster = eg-&gt;cluster();
   float clustereta = cluster-&gt;eta();
 
   //find the central cell in the middle layer 
   bool foundcentralcell = egammaoqflagsbuilder::findcentralcell(cluster);
+
   
 
-
   //set timing bit
   double absenergygev = fabs(cluster-&gt;e()/gev);
   if(absenergygev != 0 &amp;&amp;  fabs(cluster-&gt;gettime()) &gt; m_tcut + m_tcutvse/absenergygev) {
@@ -274,6 +277,7 @@
     for( ;celliter!=celliterend;celliter++) {
       //find cell parameters and properties
       const calocell* cell = (*celliter);
+      if(!cell) continue;
       float eta = cell-&gt;eta();
       // float phi = cell-&gt;phi(); // no longer used
       float qual = cell-&gt;quality();




atlas16 | egammatracktools-00-00-68 [99]: svn diff
index: src/emextrapolcaloconversion.cxx
===================================================================
--- src/emextrapolcaloconversion.cxx    (revision 462395)
+++ src/emextrapolcaloconversion.cxx    (working copy)
@@ -104,11 +104,17 @@
   
   if (fabs(eta_cluster_2nd_sampling) &lt; 1.5) {      // barrel
     r_photon_front=m_egammaqdepth-&gt;radius(calocell_id::emb1,eta_cluster_1st_sampling,phi_cluster_2nd_sampling);
-    z_photon_front=r_photon_front*sinh(eta_cluster_1st_sampling);
+    if(fabs(eta_cluster_1st_sampling)&lt;1.5)
+      z_photon_front=r_photon_front*sinh(eta_cluster_1st_sampling);
+    else
+      return statuscode::success;
   }
   else if (fabs(eta_cluster_1st_sampling) &lt; 5) {  // endcap
     z_photon_front=m_egammaqdepth-&gt;radius(calocell_id::eme1,eta_cluster_1st_sampling,phi_cluster_2nd_sampling);
-    r_photon_front=z_photon_front/sinh(eta_cluster_1st_sampling);
+    if(fabs(eta_cluster_1st_sampling)&lt;1.5)
+      r_photon_front=z_photon_front/sinh(eta_cluster_1st_sampling);
+    else
+      return statuscode::success;
   }
   else
     return statuscode::success;



for posterity: these crashes are related to this bug:

https://savannah.cern.ch/bugs/?87586



cheers,

-mike
