06-jun-2007 NvE Explicit tests on null pointers for returned TObjArray* from e.g...
authornick <nick@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 6 Jun 2007 13:16:01 +0000 (13:16 +0000)
committernick <nick@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 6 Jun 2007 13:16:01 +0000 (13:16 +0000)
                introduced in the .cxx files of IceCalibrate, IceChi2, IceCleanHits, IceDwalk,
                IceDwalkx, IceLinefit, IceMakeHits, IcePandel and IceXtalk to prevent
                problems with empty events.
06-jun-2007 NvE Maximum OM id changed from 677 to 681 in IceRawTWR.cxx.

12 files changed:
RALICE/icepack/IceCalibrate.cxx
RALICE/icepack/IceChi2.cxx
RALICE/icepack/IceCleanHits.cxx
RALICE/icepack/IceDwalk.cxx
RALICE/icepack/IceDwalkx.cxx
RALICE/icepack/IceLinefit.cxx
RALICE/icepack/IceMakeHits.cxx
RALICE/icepack/IcePandel.cxx
RALICE/icepack/IceXtalk.cxx
RALICE/icepack/history.txt
RALICE/icepack/iceconvert/IceRawTWR.cxx
RALICE/icepack/iceconvert/history.txt

index 2fae197..956923f 100644 (file)
@@ -132,6 +132,7 @@ void IceCalibrate::Exec(Option_t* opt)
 
  // All OMs with a signal
  TObjArray* mods=evt->GetDevices("IceGOM");
+ if (!mods) return;
 
  Int_t nmods=mods->GetEntries();
  if (!nmods) return;
index 44b9d0e..4e00483 100644 (file)
@@ -283,6 +283,7 @@ void IceChi2::Exec(Option_t* opt)
  if (fSelhits==0)
  {
   TObjArray* hits=fEvt->GetHits("IceGOM");
+  if (!hits) return;
   for (Int_t ih=0; ih<hits->GetEntries(); ih++)
   {
    AliSignal* sx=(AliSignal*)hits->At(ih);
@@ -331,7 +332,8 @@ void IceChi2::Exec(Option_t* opt)
   str=strx->GetString();
   ntkmax=fUseNtk->At(iclass);
   TObjArray* tracks=fEvt->GetTracks(str);
-  ntk=tracks->GetEntries();
+  ntk=0;
+  if (tracks) ntk=tracks->GetEntries();
   if (ntkmax>0 && ntk>ntkmax) ntk=ntkmax;
 
   for (Int_t jtk=0; jtk<ntk; jtk++) // Loop over tracks of a certain class
index 24b1238..e7e8056 100644 (file)
@@ -208,6 +208,7 @@ void IceCleanHits::Amanda()
 
  // All Amanda OMs with a signal
  TObjArray* aoms=fEvt->GetDevices("IceAOM");
+ if (!aoms) return;
 
  // Local OM array with bad/dead OMs (as indicated via IceCalibrate) discarded
  TObjArray oms;
index ec487d3..6836015 100644 (file)
@@ -504,6 +504,7 @@ void IceDwalk::Exec(Option_t* opt)
 
  // Fetch all fired Amanda OMs for this event
  TObjArray* aoms=evt->GetDevices("IceAOM");
+ if (!aoms) return;
  Int_t naoms=aoms->GetEntries();
  if (!naoms) return;
 
index d82f45e..50875df 100644 (file)
@@ -453,6 +453,7 @@ void IceDwalkx::Exec(Option_t* opt)
 
  // Fetch all fired Amanda OMs for this event
  TObjArray* aoms=evt->GetDevices("IceAOM");
+ if (!aoms) return;
  Int_t naoms=aoms->GetEntries();
  if (!naoms) return;
 
index 7cd532f..f831b96 100644 (file)
@@ -176,6 +176,7 @@ void IceLinefit::Exec(Option_t* opt)
 
  // Fetch all fired Amanda OMs for this event
  TObjArray* aoms=evt->GetDevices("IceAOM");
+ if (!aoms) return;
  Int_t naoms=aoms->GetEntries();
  if (!naoms) return;
 
index e48fd05..b6a16c7 100644 (file)
@@ -203,6 +203,7 @@ void IceMakeHits::Amanda()
 
  // All Amanda OMs with a signal
  TObjArray* aoms=fEvt->GetDevices("IceAOM");
+ if (!aoms) return;
 
  // OM, waveform and hit
  IceAOM* omx=0;
index 0f5a6e1..22dc9d7 100644 (file)
@@ -288,6 +288,7 @@ void IcePandel::Exec(Option_t* opt)
  if (fSelhits==0)
  {
   TObjArray* hits=fEvt->GetHits("IceGOM");
+  if (!hits) return;
   for (Int_t ih=0; ih<hits->GetEntries(); ih++)
   {
    AliSignal* sx=(AliSignal*)hits->At(ih);
@@ -335,7 +336,8 @@ void IcePandel::Exec(Option_t* opt)
   str=strx->GetString();
   ntkmax=fUseNtk->At(iclass);
   TObjArray* tracks=fEvt->GetTracks(str);
-  ntk=tracks->GetEntries();
+  ntk=0;
+  if (tracks) ntk=tracks->GetEntries();
   if (ntkmax>0 && ntk>ntkmax) ntk=ntkmax;
 
   for (Int_t jtk=0; jtk<ntk; jtk++) // Loop over tracks of a certain class
@@ -646,7 +648,6 @@ void IcePandel::FitFCN(Int_t&,Double_t*,Double_t& f,Double_t* x,Int_t)
  Int_t ier;
  Double_t psihit=0;
  fPsistats.Reset();
-//@@@ for (Int_t i=1; i<=nhits; i++)
  for (Int_t i=0; i<nhits; i++)
  {
   AliSignal* sx=(AliSignal*)fHits->At(i);
index 9f62a25..35159ef 100644 (file)
@@ -175,7 +175,7 @@ void IceXtalk::Exec(Option_t* opt)
 
  // All Amanda OMs with a signal
  TObjArray* mods=evt->GetDevices("IceAOM");
-
+ if (!mods) return;
  Int_t nmods=mods->GetEntries();
  if (!nmods) return;
 
index 1901396..baa6649 100644 (file)
                 the same OM.
 05-jun-2007 NvE Search for attached dbase performed only once in the Exec() memberfunction
                 of IceCalibrate and IceXtalk to speed up processing.
+06-jun-2007 NvE Explicit tests on null pointers for returned TObjArray* from e.g. GetHits()
+                introduced in the .cxx files of IceCalibrate, IceChi2, IceCleanHits, IceDwalk,
+                IceDwalkx, IceLinefit, IceMakeHits, IcePandel and IceXtalk to prevent
+                problems with empty events.
                  
index 4aede8d..b4db46b 100644 (file)
@@ -408,7 +408,7 @@ void IceRawTWR::PutWaveforms(Int_t year)
  IceAOM om;
  IceAOM* omx=0;
  Int_t omid;
- Int_t omidmax=677;
+ Int_t omidmax=681;
  Int_t error;
  Float_t baseline;
  Int_t nfrags;
index a70d28f..32b4397 100644 (file)
 30-mar-2007 GdV Obsolete memberfunction declarations PutTrigger and PutWaveforms removed
                 from IceRoot.h.
 01-jun-2007 NvE Class IceCal2Root extended to support various databases (e.g. MuDaq, TWRDaq, ...).
+06-jun-2007 NvE Maximum OM id changed from 677 to 681 in IceRawTWR.cxx.