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

IceRecoBase derived TTask processor to perform linefit reconstruction. More...

#include "IceLinefit.h"

Inheritance diagram for IceLinefit:
IceRecoBase IceDwalkx

Detailed Description

IceRecoBase derived TTask processor to perform linefit reconstruction.

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.
Int_t IceCube()
// Class IceLinefit
// IceRecoBase derived TTask processor to perform a linefit track reconstruction.
//
// In case an event has been rejected by an NcEventSelector (based) processor,
// this task (and its sub-tasks) is not executed.
//
// Note : Amanda OMs, standard IceCube (IC), DeepCore (DC) and InIce (I) DOMs are treated
// seperately, which means that for events with various OMs and/or DOMs firing,
// several linefit tracks may be produced. The various linefit tracks can be
// distinguished on basis of their name as explained below.
//
// The procedure is based on the method described in the Amanda publication
// in Nuclear Instruments and Methods A524 (2004) 179-180.
// To prevent waisting CPU time in trying to reconstruct (high-energy) cascade
// events, or to select specifically reconstruction of low multiplicity events,
// the user may invoke the memberfunctions SetMaxMod() and SetMinMod().
// This allows selection of events for processing with a certain maximum
// and/or minimum number of good (D)OMs firing.
// By default the minimum and maximum are set to 0 and 999999, respectively,
// in the constructor, which implies no multiplicity selection.
//
// The maximum number of good hits per (D)OM to be used for the reconstruction
// can be specified via the memberfunction SetMaxHits().
// By default the maximum number of hits per (D)OM is set to 0 for "A" and "I", which
// implies just processing all good Amanda and/or InIce hits without any maximum limit.
// However, the user may want to restrict this number to the first n hits of each (D)OM
// to account for possible noise and/or afterpulse signals that are not recognised by the
// hit cleaning procedure.
//
// The SetMaxHits() facility may also be used to select a specific detector
// configuration (e.g. "IC" and "DC" without "I") to be used for the reconstruction.
// This can be achieved by suppressing processing of e.g. the "I" configuration
// by setting the corresponding maximum number of hits to -1.
// For the "IC" and "DC" configurations the default maximum number of hits per DOM
// is set to -1, which implies that no specific "IC" or "DC" linefit reconstructions will be made.
//
// The minimum number of associated hits for a reconstructed track to be produced
// can be specified via the memberfunction SetMinAhits().
// By default the minimum number of associated hits is set to 0 for all reconstruction modes.
//
// The minimum number of associated modules for a reconstructed track to be produced
// can be specified via the memberfunction SetMinAmods().
// By default the minimum number of associated modules is set to 0 for all reconstruction modes.
//
// The IceLinefit processor can also be applied to only the hits associated to a track from a
// previous (e.g. IceDwalk first guess) reconstruction.
// This mode is automatically activated at invokation of the member function UseTracks() to specify
// the names of the input tracks to be used.
// This so called "track based reconstruction" allows to obtain rather accurate results without
// the need of a hit cleaning procedure.
// In this "track based reconstruction" mode all the hits associated to the input track will be
// used. However, for the final result a selection is made based on the settings of SetMinAhits() and SetMinAmods().
// The produced track names will look like for instance IceLinefit4DwalkIC when the input track was an IceDwalkIC track.
//
// The direction of a track is reversed in case a the track has a polar angle
// theta<"thetatrk" and the (time ordered) hit pattern reflects a direction with
// polar angle theta>"thetahits", where "thetatrk" and "thetahits" indicate angular thresholds.
// This allows an additional reduction of the background for upgoing tracks
// due to mis-reconstructed downgoing muons.
//
// The polar angle thresholds "thetatrk" and "thetahits" (in degrees) may be set by the user
// via the member function SetFlipAngles(), where the convention is that theta=0 indicates a
// straight upgoing track.
//
// Note : The flipping of the track direction may be de-activated by
// setting thetatrk<0 and/or thetahits>180.
//
// The default values thetatrk=-999 and thetahits=999 are set in the constructor of this class
// which implies that the flipping of the tracks direction is de-activated by default.
// Based on simulated data it was seen that with thetatrk=90 and thetahits=100 the direction flipping
// did a good job in reducing downgoing Corsika events, but it eliminated too many upgoing signal events.
// Maybe further fine tuning can make this facility useful in the future.
//
// Information about the actual parameter settings can be found in the event
// structure itself via the device named "IceLinefit" (or "IceLinefit4Track").
//
// All reconstructed tracks will be stored in the IceEvent structure with as
// default the Classname of the producing processor as the basename of the track.
// A suffix "A" for an Amanda (OM) track, "IC" for a standard IceCube InIce (DOM) track,
// "I" for a hybrid InIce (DOM) track or "DC" for a DeepCore (DOM) track will be
// added to the name automatically in the case of complete event reconstruction.
// In case of a "track based reconstruction" the suffix will be for instance "4DwalkIC" as explained above.
// This track basename identifier can be modified by the user via the
// SetTrackName() memberfunction. This will allow unique identification
// of tracks which are produced when re-processing existing data with
// different criteria.
// Note that a suffix "A", "IC", "I", "DC", or "4..." will always be generated automatically.
// The track 3-momentum is set to the reconstructed velocity direction, normalised
// to 1 GeV. The mass and charge of the track are left 0, since no distinction can
// be made between positive or negative tracks and also no mass can be determined.
// However, the user can define the track charge by invokation of the
// memberfunction SetCharge().
// This facility may be used to distinguish tracks produced by the
// various reconstruction algorithms in a (3D) colour display
// (see the class NcHelix for further details).
// The r0 and t0 can be obtained from the reference point of the track,
// whereas the t0 ia also available from the track timestamp .
// The value of beta=v/c for the reconstructed velocity is available
// from the fitdetails as stored for the reconstructed track.
//
// For further details the user is referred to NIM A524 (2004) 169.
//
// Note : This algorithm works best on data which has been calibrated and
// cross talk corrected (Amanda).
// Usage of data cleaned from noise hits etc. (see e.g. IceCleanHits)
// will in general lead to more accurate results.
//
//--- Author: Nick van Eijndhoven 10-mar-2006 Utrecht University
//- Modified: NvE $Date: 2013-01-21 14:13:40 +0100 (Mon, 21 Jan 2013) $ NCFS

Definition at line 11 of file IceLinefit.h.

Public Member Functions

 IceLinefit (const char *name="IceLinefit", const char *title="Linefit reconstruction")
 
virtual ~IceLinefit ()
 
virtual void Exec (Option_t *opt)
 
- Public Member Functions inherited from IceRecoBase
 IceRecoBase (const char *name="IceRecoBase", const char *title="Base class for IceCube reconstruction tasks")
 
virtual ~IceRecoBase ()
 
void SetAbsorptionLength (Float_t lambda, TString s)
 
void SetCharge (Float_t charge)
 
void SetCleaned (Int_t flag, TString s)
 
void SetFlipAngles (Float_t thetatrk, Float_t thetahits)
 
void SetMaxHits (Int_t nmax, TString s)
 
void SetMaxMod (Int_t nmax, TString s)
 
void SetMinAhits (Int_t nmin, TString s)
 
void SetMinAmods (Int_t nmin, TString s)
 
void SetMinMod (Int_t nmin, TString s)
 
void SetScatteringLength (Float_t lambda, TString s)
 
void SetSingleHit (Int_t ndoms, TString s, Int_t ndoms1=0)
 
void SetSLChitUsage (Int_t flag, TString s)
 
void SetTimeJitter (Float_t sigma, TString s)
 
void SetTrackName (TString s)
 
void SetVgroupUsage (Int_t flag, TString s)
 
void UseTracks (TString classname, Int_t n=-1)
 

Protected Member Functions

Int_t Amanda ()
 
Int_t DeepCore ()
 
Int_t IceCube ()
 
Int_t InIce ()
 
NcTrackReconstruct (TObjArray *doms, Int_t cln, Int_t minmod, Int_t maxmod, Int_t maxhits, Int_t minahits, Int_t minamods, Int_t slc)
 
Int_t Tracks ()
 
- Protected Member Functions inherited from IceRecoBase
virtual void FlipTrack (NcTrack *t) const
 

Additional Inherited Members

- Protected Attributes inherited from IceRecoBase
Float_t fCharge
 
Int_t fCleanA
 
Int_t fCleanDC
 
Int_t fCleanI
 
Int_t fCleanIC
 
IceEventfEvt
 
Int_t fFirst
 
Float_t fLabsA
 
Float_t fLabsDL
 
Float_t fLabsLD
 
Float_t fLabsUD
 
Float_t fLambdaA
 
Float_t fLambdaDL
 
Float_t fLambdaLD
 
Float_t fLambdaUD
 
Int_t fMaxhitsA
 
Int_t fMaxhitsDC
 
Int_t fMaxhitsI
 
Int_t fMaxhitsIC
 
Int_t fMaxmodA
 
Int_t fMaxmodDC
 
Int_t fMaxmodI
 
Int_t fMaxmodIC
 
Int_t fMinahitsA
 
Int_t fMinahitsDC
 
Int_t fMinahitsI
 
Int_t fMinahitsIC
 
Int_t fMinamodsA
 
Int_t fMinamodsDC
 
Int_t fMinamodsI
 
Int_t fMinamodsIC
 
Int_t fMinmodA
 
Int_t fMinmodDC
 
Int_t fMinmodI
 
Int_t fMinmodIC
 
NcDevice fParams
 
Int_t fSingle1A
 
Int_t fSingle1DC
 
Int_t fSingle1I
 
Int_t fSingle1IC
 
Int_t fSingleA
 
Int_t fSingleDC
 
Int_t fSingleI
 
Int_t fSingleIC
 
Int_t fSlcDC
 
Int_t fSlcI
 
Int_t fSlcIC
 
Float_t fThetahits
 
Float_t fThetatrk
 
TString fTrackname
 
Float_t fTsigmaA
 
Float_t fTsigmaDC
 
Float_t fTsigmaIC
 
TObjArray * fUseNames
 
TArrayI * fUseNtk
 
Int_t fVgroupA
 
Int_t fVgroupDC
 
Int_t fVgroupI
 
Int_t fVgroupIC
 

Constructor & Destructor Documentation

◆ IceLinefit()

IceLinefit::IceLinefit ( const char * name = "IceLinefit",
const char * title = "Linefit reconstruction" )
// Default constructor.

Definition at line 140 of file IceLinefit.cxx.

◆ ~IceLinefit()

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

Definition at line 185 of file IceLinefit.cxx.

Member Function Documentation

◆ Amanda()

Int_t IceLinefit::Amanda ( )
protected
// Performing the linefit complete event reconstruction for Amanda OMs.
// The return argument indicates whether (1) or not (0) a track has been found

Definition at line 269 of file IceLinefit.cxx.

◆ DeepCore()

Int_t IceLinefit::DeepCore ( )
protected
// Performing the linefit complete event reconstruction for DeepCore DOMs.
// The return argument indicates whether (1) or not (0) a track has been found

Definition at line 359 of file IceLinefit.cxx.

◆ Exec()

void IceLinefit::Exec ( Option_t * opt)
virtual
// Implementation of the linefit reconstruction.

Reimplemented from IceRecoBase.

Reimplemented in IceDwalkx.

Definition at line 194 of file IceLinefit.cxx.

◆ IceCube()

Int_t IceLinefit::IceCube ( )
protected
// Performing the linefit complete event reconstruction for standard IceCube InIce DOMs.
// The return argument indicates whether (1) or not (0) a track has been found

Definition at line 329 of file IceLinefit.cxx.

◆ InIce()

Int_t IceLinefit::InIce ( )
protected
// Performing the linefit complete event reconstruction for all InIce DOMs.
// The return argument indicates whether (1) or not (0) a track has been found

Definition at line 299 of file IceLinefit.cxx.

◆ Reconstruct()

NcTrack * IceLinefit::Reconstruct ( TObjArray * doms,
Int_t cln,
Int_t minmod,
Int_t maxmod,
Int_t maxhits,
Int_t minahits,
Int_t minamods,
Int_t slc )
protected
// Implementation of the linefit reconstruction algorithm.

Definition at line 464 of file IceLinefit.cxx.

◆ Tracks()

Int_t IceLinefit::Tracks ( )
protected
// Performing the linefit track based associated hit reconstruction.
// The return argument indicates whether (1) or not (0) a track has been found

Definition at line 389 of file IceLinefit.cxx.


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