]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
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 d6d7fbe89ce96219ae852aaec70491f1e3a2fb5a..699c7177f2f45f04a0b73ab5f72cd143d991b6bb 100644 (file)
 // with the DAQ system.
 // So, currently the 24170 ns will be used for all the 2005 data until
 // the issue is settled.
 // 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
 //
 // 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;
  fRmaxA=70;
  fDtmaxA=500;
  fTwinA=2250;
+ fTtimA=-1;
 }
 ///////////////////////////////////////////////////////////////////////////
 IceCleanHits::~IceCleanHits()
 }
 ///////////////////////////////////////////////////////////////////////////
 IceCleanHits::~IceCleanHits()
@@ -123,6 +129,14 @@ void IceCleanHits::SetTwindowA(Float_t dtmax)
  fTwinA=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.
 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.
  // 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");
 
  // 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);
    // (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;
    {
      sx->SetDead("LE");
      clean=0;
index 0b06257a3251653f49cf4ff7bf15f6fea21696bf..e303db02b1578fb5984d96ff27221edb1a0a498a 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 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
 
  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 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
 
   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
 };
 #endif
index 67c1c6941d3270b6a74f6deaa246bc5bdfb04158..3b457f35ad24cd3e83360f59b9b189f1263c658b 100644 (file)
@@ -416,6 +416,13 @@ void IceDwalk::Exec(Option_t* opt)
  tes.Compress();
  nte=tes.GetEntries();
 
  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();
  // 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;
  }
 
   if (fJangsep<0) break;
  }
 
- delete [] ntes;
if (ntes) delete [] ntes;
 }
 ///////////////////////////////////////////////////////////////////////////
 }
 ///////////////////////////////////////////////////////////////////////////
index c3f6b06e761e3a605c0dc8dc291d8f2326d3849a..7d326053ac027367552a5218587153fcb448de0d 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.
 // 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
 //
 //--- 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.
 
 {
 // Implementation of cross talk hit correction.
 
+ if (!fOmdb) return;
+
  TString name=opt;
  AliJob* parent=(AliJob*)(gROOT->GetListOfTasks()->FindObject(name.Data()));
 
  TString name=opt;
  AliJob* parent=(AliJob*)(gROOT->GetListOfTasks()->FindObject(name.Data()));
 
index dec784eba2626ece42d42a6a2eb9ce4f74afa8c3..e551faa63fa5f707c9c8672c61276eac369b459c 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.
                 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.