03-nov-2005 NvE User selectable trigger time setting introduced in IceCleanhits to...
authornick <nick@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 4 Nov 2005 10:38:20 +0000 (10:38 +0000)
committernick <nick@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 4 Nov 2005 10:38:20 +0000 (10:38 +0000)
                investigation of various trigger time settings.
                Protection introduced in IceDwalk for the case that no track candidates
                are left.
                Also protection introduced in IceXtalk for the case that no OM database
                was specified.

RALICE/icepack/IceCleanHits.cxx
RALICE/icepack/IceCleanHits.h
RALICE/icepack/IceDwalk.cxx
RALICE/icepack/IceXtalk.cxx
RALICE/icepack/history.txt

index d6d7fbe..699c717 100644 (file)
 // with the DAQ system.
 // So, currently the 24170 ns will be used for all the 2005 data until
 // the issue is settled.
+// However, the user can impose a specific trigger time to be used
+// by invokation of the memberfunction SetTtimeA.
+// Specification of a negative trigger time will result in the automatic
+// trigger time setting based on the event timestamp as outlined above.
+// The latter is the default.
 //
 // The hits which do not fullfill the criteria are flagged "dead" for the
 // corresponding signal slot. This means they are still present in the
@@ -77,6 +82,7 @@ IceCleanHits::IceCleanHits(const char* name,const char* title) : TTask(name,titl
  fRmaxA=70;
  fDtmaxA=500;
  fTwinA=2250;
+ fTtimA=-1;
 }
 ///////////////////////////////////////////////////////////////////////////
 IceCleanHits::~IceCleanHits()
@@ -123,6 +129,14 @@ void IceCleanHits::SetTwindowA(Float_t dtmax)
  fTwinA=dtmax;
 }
 ///////////////////////////////////////////////////////////////////////////
+void IceCleanHits::SetTtimeA(Float_t t)
+{
+// Set Amanda trigger time (in ns).
+// A negative value will induce automatic trigger time setting based
+// on the event timestamp.
+ fTtimA=t;
+}
+///////////////////////////////////////////////////////////////////////////
 void IceCleanHits::Exec(Option_t* opt)
 {
 // Implementation of the hit cleaning procedures.
@@ -152,11 +166,14 @@ void IceCleanHits::Amanda()
  // It seems that in 2005 the trigger time was changed within the year
  // from 24170 ns to 12138 ns. The latter however shows a 2-bump structure,
  // so currently the 24170 ns will be used for the 2005 data.
- Int_t year=(int)fEvt->GetJE();
- Float_t ttrig=23958;
- if (year==2003) ttrig=23994;
- if (year==2004) ttrig=24059.5;
- if (year==2005) ttrig=24170;
+ if (fTtimA<0)
+ {
+  Int_t year=(int)fEvt->GetJE();
+  fTtimA=23958;
+  if (year==2003) fTtimA=23994;
+  if (year==2004) fTtimA=24059.5;
+  if (year==2005) fTtimA=24170;
+ }
 
  // All Amanda OMs with a signal
  TObjArray* aoms=fEvt->GetDevices("IceAOM");
@@ -220,7 +237,7 @@ void IceCleanHits::Amanda()
    // (to include cable length effects) the uncalibrated LE of each
    // hit should be used here as well. 
    le=sx->GetSignal("LE",-7);
-   if (fabs(le-ttrig)>fTwinA)
+   if (fabs(le-fTtimA)>fTwinA)
    {
      sx->SetDead("LE");
      clean=0;
index 0b06257..e303db0 100644 (file)
@@ -27,6 +27,7 @@ class IceCleanHits : public TTask
   void SetTotRangeAO(Float_t min,Float_t max=2000);       // Set Amanda optical TOT range (in ns)
   void SetIsolationA(Float_t rmax,Float_t dtmax);         // Set Amanda isolation radius (in m) and dt (in ns)
   void SetTwindowA(Float_t dtmax);                        // Set Amanda maximal trigger window (in ns)
+  void SetTtimeA(Float_t t);                              // Set Amanda trigger time (in ns)
 
  protected :
   IceEvent* fEvt;    // Pointer to the current event structure
@@ -39,10 +40,11 @@ class IceCleanHits : public TTask
   Float_t fRmaxA;    // Maximum Amanda isolation radius in m
   Float_t fDtmaxA;   // Maximum Amanda isolation dt in ns
   Float_t fTwinA;    // Maximum Amanda hit time difference from the trigger time
+  Float_t fTtimA;    // The Amanda trigger time in ns
   void Amanda();     // Cleaning of Amanda modules
   void InIce();      // Cleaning of IceCube InIce DOMs
   void IceTop();     // Cleaning of IceTop DOMs
 
- ClassDef(IceCleanHits,1) // TTask derived class to perform hit cleaning
+ ClassDef(IceCleanHits,2) // TTask derived class to perform hit cleaning
 };
 #endif
index 67c1c69..3b457f3 100644 (file)
@@ -416,6 +416,13 @@ void IceDwalk::Exec(Option_t* opt)
  tes.Compress();
  nte=tes.GetEntries();
 
+ // Exit in case no track candidates are left
+ if (!nte)
+ {
+  if (ntes) delete [] ntes;
+  return;
+ }
+
  // Cluster track candidates within a certain opening angle into jets. 
  TObjArray jets;
  jets.SetOwner();
@@ -538,6 +545,6 @@ void IceDwalk::Exec(Option_t* opt)
   if (fJangsep<0) break;
  }
 
- delete [] ntes;
+ if (ntes) delete [] ntes;
 }
 ///////////////////////////////////////////////////////////////////////////
index c3f6b06..7d32605 100644 (file)
@@ -56,6 +56,8 @@
 // signals and can as such easily be skipped/removed afterwards. 
 //
 // Note : This processor only works properly on Time and ADC calibrated data.
+//        In case no OM database has been specified for this processor,
+//        no cross talk hit correction will be performed.
 //
 //--- Author: Nick van Eijndhoven 11-aug-2005 Utrecht University
 //- Modified: NvE $Date$ Utrecht University
@@ -119,6 +121,8 @@ void IceXtalk::Exec(Option_t* opt)
 {
 // Implementation of cross talk hit correction.
 
+ if (!fOmdb) return;
+
  TString name=opt;
  AliJob* parent=(AliJob*)(gROOT->GetListOfTasks()->FindObject(name.Data()));
 
index dec784e..e551faa 100644 (file)
                 Also first (prototype) version of class IceDwalk introduced to perform
                 direct walk reconstruction. In the /macros directory an example job
                 icedwalk.cc has been introduced.
+03-nov-2005 NvE User selectable trigger time setting introduced in IceCleanhits to allow
+                investigation of various trigger time settings.
+                Protection introduced in IceDwalk for the case that no track candidates
+                are left.
+                Also protection introduced in IceXtalk for the case that no OM database
+                was specified.