NCFS-Pack
A generic (astro)particle physics analysis framework
 
Loading...
Searching...
No Matches
IceCleanHits Class Reference

TTask derived class to perform hit cleaning. More...

#include "IceCleanHits.h"

Inheritance diagram for IceCleanHits:

Detailed Description

TTask derived class to perform hit cleaning.

Copyright(c) 2003, IceCube Experiment at the South Pole. All rights reserved.
Author: The IceCube NCFS-based Offline Project.
Contributors are mentioned in the code where appropriate.
Permission to use, copy, modify and distribute this software and its
documentation strictly for non-commercial purposes is hereby granted
without fee, provided that the above copyright notice appears in all
copies and that both the copyright notice and this permission notice
appear in the supporting documentation.
The authors make no claims about the suitability of this software for
any purpose. It is provided "as is" without express or implied warranty.
// Class IceCleanHits
// TTask derived class to perform hit cleaning.
//
// In case an event has been rejected by an NcEventSelector (based) processor,
// this task (and its sub-tasks) is not executed.
//
// Criteria applied for Amanda MuDaq data :
// ----------------------------------------
// 1) ADC within [min,max] Default : [0.3,999999] PE
// 2) TOT within [min,max] Default : electrical [125,2000] optical [20,2000] ns
// 3) abs(LE-Ttrig)<=win Default : win=2250 TDC counts
// where : LE=uncalibrated hit LE (i.e. TDC counts) Ttrig=selected trigger time in TDC counts
// 4) At least one hit in another OM within radius R and time difference dt
// to remove isolated hits. Defaults : R=70 m dt=500 ns
//
// Criteria applied for Amanda TWRDaq data :
// ----------------------------------------
// 1) ADC within [min,max] Default : [0.3,999999] PE
// 2) TOT within [min,max] Default : electrical [125,2000] optical [20,2000] ns
// 3) abs(LE-Ttrig)<=win Default : win=3000 ns
// where : LE=uncalibrated hit LE Ttrig=selected trigger time
// 4) At least one hit in another OM within radius R and time difference dt
// to remove isolated hits. Defaults : R=70 m dt=500 ns
//
// Criteria applied for standard IceCube InIce DOM data :
// ------------------------------------------------------
// 1) ADC within [min,max] Default : [0,999999] PE
// 2) TOT within [min,max] Default : [0,999999] ns
// 3) abs(LE-Ttrig)<=win Default : win=3000 ns
// where : LE=hit LE Ttrig=selected trigger time(s)
// 4) At least one hit in another DOM within radius R and time difference dt
// to remove isolated hits. Defaults : R=150 m dt=1000 ns
//
// Criteria applied for DeepCore DOM data :
// ----------------------------------------
// 1) ADC within [min,max] Default : [0,999999] PE
// 2) TOT within [min,max] Default : [0,999999] ns
// 3) abs(LE-Ttrig)<=win Default : win=1000 ns
// where : LE=hit LE Ttrig=selected trigger time(s)
// 4) At least one hit in another DOM within radius R and time difference dt
// to remove isolated hits. Defaults : R=75 m dt=500 ns
//
// Criteria applied for IceTop DOM data :
// --------------------------------------
// 1) ADC within [min,max] Default : [0,999999] PE
// 2) TOT within [min,max] Default : [0,999999] ns
// 3) abs(LE-Ttrig)<=win Default : win=999999 ns
// where : LE=hit LE Ttrig=selected trigger time(s)
// 4) At least one hit in another DOM within radius R and time difference dt
// to remove isolated hits. Defaults : R=150 m dt=1000 ns
//
// For AMANDA data the actual DAQ system is obtained automatically from the IceEvent structure
// via the device called "Daq".
//
// The defaults of the various parameters can be changed by the corresponding
// Set memberfunctions.
//
// Information about the actual parameter settings can be found in the event
// structure itself via the device named "IceCleanHits".
//
// Concerning the trigger time :
// -----------------------------
// The user can impose a specific trigger name or time to be used
// by invokation of the memberfunctions SetTname or SetTtime, respectively.
// The (uncalibrated) LE of a specified (by name) trigger pulse is used
// as obtained from the IceEvent structure (via the GetTriggerTime facility).
// Specification of a negative trigger time will result in the automatic
// trigger time setting corresponding to the median of recorded hit times
// or determination of multiple trigger times based on a spectral analysis
// of the observed hit times.
// In case of automatic trigger time selection, only non-isolated HLC hits
// will be used to determine the trigger time(s).
// For further details please refer to the docs of the memberfunctions
// SetTname and SetTtime.
//
// The hits which do not fullfill the criteria are flagged "dead" for the
// corresponding signal slot. This means they are still present in the
// IceEvent structure and are as such still accessible.
// It is left to the user to decide (based on the various "dead" flag settings)
// whether or not to use these hits in his/her reconstruction or analysis.
//
// Note : This processor only works properly on Time and ADC calibrated data.
//
//--- Author: Nick van Eijndhoven 13-oct-2005 Utrecht University
//- Modified: NvE $Date: 2012-02-07 11:05:54 +0100 (Tue, 07 Feb 2012) $ NCFS

Definition at line 20 of file IceCleanHits.h.

Public Member Functions

 IceCleanHits (const char *name="IceCleanHits", const char *title="Hit cleaning")
 
virtual ~IceCleanHits ()
 
virtual void Exec (Option_t *opt)
 
void SetAdcRange (Float_t min, Float_t max, TString s)
 
void SetIsolation (Float_t rmax, Float_t dtmax, TString s)
 
void SetTname (TString name, TString s)
 
void SetTotRange (Float_t min, Float_t max, TString s)
 
void SetTtime (Float_t t, TString s, Int_t slc=0, Int_t mult=0)
 
void SetTwindow (Float_t dtmax, TString s)
 

Protected Member Functions

void Amanda ()
 
void Amplitude (TObjArray &hits, Float_t adcmin, Float_t adcmax, Float_t totmin, Float_t totmax) const
 
void DCdoms ()
 
void ICdoms ()
 
void IceTop ()
 
void Isolation (TObjArray &hits, Float_t dtmax, Float_t rmax) const
 
void MuDaq ()
 
void TimeWindow (TObjArray &hits, Float_t ttrig, Float_t twin, TArrayF *peaks=0) const
 
void TWRDaq ()
 

Protected Attributes

Float_t fAdcmaxAM
 
Float_t fAdcmaxAT
 
Float_t fAdcmaxDC
 
Float_t fAdcmaxIC
 
Float_t fAdcmaxT
 
Float_t fAdcminAM
 
Float_t fAdcminAT
 
Float_t fAdcminDC
 
Float_t fAdcminIC
 
Float_t fAdcminT
 
Float_t fDtmaxA
 
Float_t fDtmaxDC
 
Float_t fDtmaxIC
 
Float_t fDtmaxT
 
IceEventfEvt
 
Int_t fMultDC
 
Int_t fMultIC
 
Int_t fMultT
 
Float_t fRmaxA
 
Float_t fRmaxDC
 
Float_t fRmaxIC
 
Float_t fRmaxT
 
Int_t fSlcDC
 
Int_t fSlcIC
 
Int_t fSlcT
 
TString fTnamAM
 
TString fTnamAT
 
TString fTnamDC
 
TString fTnamIC
 
TString fTnamT
 
Float_t fTotmaxAEM
 
Float_t fTotmaxAET
 
Float_t fTotmaxAOM
 
Float_t fTotmaxAOT
 
Float_t fTotmaxDC
 
Float_t fTotmaxIC
 
Float_t fTotmaxT
 
Float_t fTotminAEM
 
Float_t fTotminAET
 
Float_t fTotminAOM
 
Float_t fTotminAOT
 
Float_t fTotminDC
 
Float_t fTotminIC
 
Float_t fTotminT
 
Float_t fTtimAM
 
Float_t fTtimAT
 
Float_t fTtimDC
 
Float_t fTtimIC
 
Float_t fTtimT
 
Float_t fTwinAM
 
Float_t fTwinAT
 
Float_t fTwinDC
 
Float_t fTwinIC
 
Float_t fTwinT
 

Constructor & Destructor Documentation

◆ IceCleanHits()

IceCleanHits::IceCleanHits ( const char * name = "IceCleanHits",
const char * title = "Hit cleaning" )
// Default constructor.

Definition at line 116 of file IceCleanHits.cxx.

◆ ~IceCleanHits()

IceCleanHits::~IceCleanHits ( )
virtual
// Default destructor.

Definition at line 180 of file IceCleanHits.cxx.

Member Function Documentation

◆ Amanda()

void IceCleanHits::Amanda ( )
protected
// Hit cleaning for Amanda modules.

Definition at line 630 of file IceCleanHits.cxx.

◆ Amplitude()

void IceCleanHits::Amplitude ( TObjArray & hits,
Float_t adcmin,
Float_t adcmax,
Float_t totmin,
Float_t totmax ) const
protected
// Perform hit cleaning based on amplitude (ADC) and duration (TOT).

Definition at line 1162 of file IceCleanHits.cxx.

◆ DCdoms()

void IceCleanHits::DCdoms ( )
protected
// Hit cleaning for the DeepCore DOMs.

Definition at line 1095 of file IceCleanHits.cxx.

◆ Exec()

void IceCleanHits::Exec ( Option_t * opt)
virtual
// Implementation of the hit cleaning procedures.

Definition at line 498 of file IceCleanHits.cxx.

◆ ICdoms()

void IceCleanHits::ICdoms ( )
protected
// Hit cleaning for the standard IceCube InIce DOMs.

Definition at line 1028 of file IceCleanHits.cxx.

◆ IceTop()

void IceCleanHits::IceTop ( )
protected
// Hit cleaning for IceTop DOMs.

Definition at line 961 of file IceCleanHits.cxx.

◆ Isolation()

void IceCleanHits::Isolation ( TObjArray & hits,
Float_t dtmax,
Float_t rmax ) const
protected
// Perform hit cleaning based on isolation criteria.
// Only retain hits that have at least one hit of another OM within a certain
// radius and within a certain time window

Definition at line 1187 of file IceCleanHits.cxx.

◆ MuDaq()

void IceCleanHits::MuDaq ( )
protected
// Hit cleaning for Amanda MuDaq data.

Definition at line 645 of file IceCleanHits.cxx.

◆ SetAdcRange()

void IceCleanHits::SetAdcRange ( Float_t min,
Float_t max,
TString s )
// Set ADC range in PE.
//
// The argument "s" specifies the sensor system as follows :
//
// s = "MuDaq" ==> Amanda modules under the MuDaq system
// "TWRDaq" ==> Amanda modules under the TWRDaq system
// "TDOM" ==> IceTop DOMs
// "ICDOM" ==> Standard IceCube InIce DOMs
// "DCDOM" ==> DeepCore DOMs

Definition at line 189 of file IceCleanHits.cxx.

◆ SetIsolation()

void IceCleanHits::SetIsolation ( Float_t rmax,
Float_t dtmax,
TString s )
// Set maximum hit isolation radius (in m) and time difference (in ns).
//
// The argument "s" specifies the sensor system as follows :
//
// s = "AOM" ==> Amanda modules
// "TDOM ==> IceTop DOMs
// "ICDOM" ==> Standard IceCube InIce DOMs
// "DCDOM" ==> DeepCore DOMs
//
// Note : In case one of the arguments "rmax" or "dtmax" is negative,
// the corresponding value will not be modified.

Definition at line 287 of file IceCleanHits.cxx.

◆ SetTname()

void IceCleanHits::SetTname ( TString name,
TString s )
// Specify the trigger name to be used to derive the trigger time for the
// time cleaning of a certain class of sensors.
//
// Note : Specification of name="Average" will result in a trigger time
// being the "median" of all encountered non-zero trigger times.
//
// The argument "s" specifies the sensor system as follows :
//
// s = "MuDaq" ==> Amanda modules under the MuDaq system
// "TWRDaq" ==> Amanda modules under the TWRDaq system
// "TDOM" ==> IceTop DOMs
// "ICDOM" ==> Standard IceCube InIce DOMs
// "DCDOM" ==> DeepCore DOMs
//
// Specification of a non-existing trigger name will result in a trigger time
// value of 0.
//
// The used trigger time value will be stored in the corresponding slot of the
// "IceCleanHits" device in the event structure.
//
// Note : The user can also impose a certain trigger time without using any
// trigger information.
// This is achieved by invoking the memberfunction SetTtime.

Definition at line 355 of file IceCleanHits.cxx.

◆ SetTotRange()

void IceCleanHits::SetTotRange ( Float_t min,
Float_t max,
TString s )
// Set TOT range in ns.
//
// The argument "s" specifies the sensor system as follows :
//
// s = "AEM" ==> Amanda modules with electrical readout under the MuDaq system
// "AOM" ==> Amanda modules with optical fibre readout under the MuDaq system
// "AET" ==> Amanda modules with electrical readout under the TWRDaq system
// "AOT" ==> Amanda modules with optical fibre readout under the TWRDaq system
// "TDOM ==> IceTop DOMs
// "ICDOM" ==> Standard IceCube InIce DOMs
// "DCDOM" ==> DeepCore DOMs

Definition at line 232 of file IceCleanHits.cxx.

◆ SetTtime()

void IceCleanHits::SetTtime ( Float_t t,
TString s,
Int_t slc = 0,
Int_t mult = 0 )
// Set the trigger time(s) for a certain class of sensors.
// For the Amanda MuDaq hardware, the times are all in TDC counts,
// where 1 TDC corresponds to about 1.04 ns.
// For the other systems the times are all in nanoseconds.
//
// The argument "s" specifies the sensor system as follows :
//
// s = "MuDaq" ==> Amanda modules under the MuDaq system
// "TWRDaq" ==> Amanda modules under the TWRDaq system
// "TDOM" ==> IceTop DOMs
// "ICDOM" ==> Standard IceCube InIce DOMs
// "DCDOM" ==> DeepCore DOMs
//
// A negative value will induce automatic trigger time(s) setting.
//
// In case of automatic trigger time determination, the "median" of the hit times
// of the specified class of sensors, as recorded in the IceEvent structure,
// is calculated.
// Via the argument "slc" the user can select to use (1) or not use (0) SLC hits
// in the automatic trigger time determination for the specified class of sensors.
// This "median" value will then be stored (as a negative value) in the
// corresponding slot of the "IceCleanHits" device in the event structure.
//
// The argument "mult" allows to select (1) or not select (0) a spectral analysis
// of the hit time distributions of the corresponding class of sensors.
// In this analysis various peaks in the hit time distribution will be identified
// with different trigger times. Each identified peak will be treated as an individual
// trigger time with the corresponding time window around it.
// This will allow to cope with coincident tracks in the detector.
// In case no peaks are found, the "median" trigger time as mentioned above will be used.
//
// For a user selected trigger time, this trigger time will be stored in the
// corresponding slot of the "IceCleanHits" device in the event structure.
//
// The default values are : slc=0 and mult=1.
//
// Notes :
// -------
// 1) The arguments "slc" and "mult" are only used for IceCube hits, not for Amanda.
// 2) In the constructor of this class the defaults have been set to always perform
// automatic trigger time determination with slc=0 and mult=1.

Definition at line 417 of file IceCleanHits.cxx.

◆ SetTwindow()

void IceCleanHits::SetTwindow ( Float_t dtmax,
TString s )
// Set the maximal time window around the trigger time.
// Only hits which occur in [T-dtmax,T+dtmax] will be kept,
// where T indicates the trigger time.
// For the Amanda MuDaq hardware, the times are all in TDC counts,
// where 1 TDC corresponds to about 1.04 ns.
// For all other systems the times are all in nanoseconds.
//
// The argument "s" specifies the sensor system as follows :
//
// s = "MuDaq" ==> Amanda modules under the MuDaq system
// "TWRDaq" ==> Amanda modules under the TWRDaq system
// "TDOM" ==> IceTop DOMs
// "ICDOM" ==> Standard IceCube InIce DOMs
// "DCDOM" ==> DeepCore DOMs

Definition at line 327 of file IceCleanHits.cxx.

◆ TimeWindow()

void IceCleanHits::TimeWindow ( TObjArray & hits,
Float_t ttrig,
Float_t twin,
TArrayF * peaks = 0 ) const
protected
// Perform hit cleaning based on a time window around a trigger time.

Definition at line 1248 of file IceCleanHits.cxx.

◆ TWRDaq()

void IceCleanHits::TWRDaq ( )
protected
// Hit cleaning for Amanda TWRDaq data.

Definition at line 803 of file IceCleanHits.cxx.

Member Data Documentation

◆ fAdcmaxAM

Float_t IceCleanHits::fAdcmaxAM
protected

Definition at line 36 of file IceCleanHits.h.

◆ fAdcmaxAT

Float_t IceCleanHits::fAdcmaxAT
protected

Definition at line 38 of file IceCleanHits.h.

◆ fAdcmaxDC

Float_t IceCleanHits::fAdcmaxDC
protected

Definition at line 44 of file IceCleanHits.h.

◆ fAdcmaxIC

Float_t IceCleanHits::fAdcmaxIC
protected

Definition at line 42 of file IceCleanHits.h.

◆ fAdcmaxT

Float_t IceCleanHits::fAdcmaxT
protected

Definition at line 40 of file IceCleanHits.h.

◆ fAdcminAM

Float_t IceCleanHits::fAdcminAM
protected

Definition at line 35 of file IceCleanHits.h.

◆ fAdcminAT

Float_t IceCleanHits::fAdcminAT
protected

Definition at line 37 of file IceCleanHits.h.

◆ fAdcminDC

Float_t IceCleanHits::fAdcminDC
protected

Definition at line 43 of file IceCleanHits.h.

◆ fAdcminIC

Float_t IceCleanHits::fAdcminIC
protected

Definition at line 41 of file IceCleanHits.h.

◆ fAdcminT

Float_t IceCleanHits::fAdcminT
protected

Definition at line 39 of file IceCleanHits.h.

◆ fDtmaxA

Float_t IceCleanHits::fDtmaxA
protected

Definition at line 60 of file IceCleanHits.h.

◆ fDtmaxDC

Float_t IceCleanHits::fDtmaxDC
protected

Definition at line 66 of file IceCleanHits.h.

◆ fDtmaxIC

Float_t IceCleanHits::fDtmaxIC
protected

Definition at line 64 of file IceCleanHits.h.

◆ fDtmaxT

Float_t IceCleanHits::fDtmaxT
protected

Definition at line 62 of file IceCleanHits.h.

◆ fEvt

IceEvent* IceCleanHits::fEvt
protected

Definition at line 34 of file IceCleanHits.h.

◆ fMultDC

Int_t IceCleanHits::fMultDC
protected

Definition at line 81 of file IceCleanHits.h.

◆ fMultIC

Int_t IceCleanHits::fMultIC
protected

Definition at line 77 of file IceCleanHits.h.

◆ fMultT

Int_t IceCleanHits::fMultT
protected

Definition at line 73 of file IceCleanHits.h.

◆ fRmaxA

Float_t IceCleanHits::fRmaxA
protected

Definition at line 59 of file IceCleanHits.h.

◆ fRmaxDC

Float_t IceCleanHits::fRmaxDC
protected

Definition at line 65 of file IceCleanHits.h.

◆ fRmaxIC

Float_t IceCleanHits::fRmaxIC
protected

Definition at line 63 of file IceCleanHits.h.

◆ fRmaxT

Float_t IceCleanHits::fRmaxT
protected

Definition at line 61 of file IceCleanHits.h.

◆ fSlcDC

Int_t IceCleanHits::fSlcDC
protected

Definition at line 80 of file IceCleanHits.h.

◆ fSlcIC

Int_t IceCleanHits::fSlcIC
protected

Definition at line 76 of file IceCleanHits.h.

◆ fSlcT

Int_t IceCleanHits::fSlcT
protected

Definition at line 72 of file IceCleanHits.h.

◆ fTnamAM

TString IceCleanHits::fTnamAM
protected

Definition at line 67 of file IceCleanHits.h.

◆ fTnamAT

TString IceCleanHits::fTnamAT
protected

Definition at line 69 of file IceCleanHits.h.

◆ fTnamDC

TString IceCleanHits::fTnamDC
protected

Definition at line 79 of file IceCleanHits.h.

◆ fTnamIC

TString IceCleanHits::fTnamIC
protected

Definition at line 75 of file IceCleanHits.h.

◆ fTnamT

TString IceCleanHits::fTnamT
protected

Definition at line 71 of file IceCleanHits.h.

◆ fTotmaxAEM

Float_t IceCleanHits::fTotmaxAEM
protected

Definition at line 46 of file IceCleanHits.h.

◆ fTotmaxAET

Float_t IceCleanHits::fTotmaxAET
protected

Definition at line 50 of file IceCleanHits.h.

◆ fTotmaxAOM

Float_t IceCleanHits::fTotmaxAOM
protected

Definition at line 48 of file IceCleanHits.h.

◆ fTotmaxAOT

Float_t IceCleanHits::fTotmaxAOT
protected

Definition at line 52 of file IceCleanHits.h.

◆ fTotmaxDC

Float_t IceCleanHits::fTotmaxDC
protected

Definition at line 58 of file IceCleanHits.h.

◆ fTotmaxIC

Float_t IceCleanHits::fTotmaxIC
protected

Definition at line 56 of file IceCleanHits.h.

◆ fTotmaxT

Float_t IceCleanHits::fTotmaxT
protected

Definition at line 54 of file IceCleanHits.h.

◆ fTotminAEM

Float_t IceCleanHits::fTotminAEM
protected

Definition at line 45 of file IceCleanHits.h.

◆ fTotminAET

Float_t IceCleanHits::fTotminAET
protected

Definition at line 49 of file IceCleanHits.h.

◆ fTotminAOM

Float_t IceCleanHits::fTotminAOM
protected

Definition at line 47 of file IceCleanHits.h.

◆ fTotminAOT

Float_t IceCleanHits::fTotminAOT
protected

Definition at line 51 of file IceCleanHits.h.

◆ fTotminDC

Float_t IceCleanHits::fTotminDC
protected

Definition at line 57 of file IceCleanHits.h.

◆ fTotminIC

Float_t IceCleanHits::fTotminIC
protected

Definition at line 55 of file IceCleanHits.h.

◆ fTotminT

Float_t IceCleanHits::fTotminT
protected

Definition at line 53 of file IceCleanHits.h.

◆ fTtimAM

Float_t IceCleanHits::fTtimAM
protected

Definition at line 68 of file IceCleanHits.h.

◆ fTtimAT

Float_t IceCleanHits::fTtimAT
protected

Definition at line 70 of file IceCleanHits.h.

◆ fTtimDC

Float_t IceCleanHits::fTtimDC
protected

Definition at line 82 of file IceCleanHits.h.

◆ fTtimIC

Float_t IceCleanHits::fTtimIC
protected

Definition at line 78 of file IceCleanHits.h.

◆ fTtimT

Float_t IceCleanHits::fTtimT
protected

Definition at line 74 of file IceCleanHits.h.

◆ fTwinAM

Float_t IceCleanHits::fTwinAM
protected

Definition at line 83 of file IceCleanHits.h.

◆ fTwinAT

Float_t IceCleanHits::fTwinAT
protected

Definition at line 84 of file IceCleanHits.h.

◆ fTwinDC

Float_t IceCleanHits::fTwinDC
protected

Definition at line 87 of file IceCleanHits.h.

◆ fTwinIC

Float_t IceCleanHits::fTwinIC
protected

Definition at line 86 of file IceCleanHits.h.

◆ fTwinT

Float_t IceCleanHits::fTwinT
protected

Definition at line 85 of file IceCleanHits.h.


The documentation for this class was generated from the following files: