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

Description of a cluster of calorimeter modules. More...

#include "NcCalcluster.h"

Inheritance diagram for NcCalcluster:
NcSignal NcPosition NcAttrib Nc3Vector

Detailed Description

Description of a cluster of calorimeter modules.


Copyright(c) 1997 NCFS/IIHE, All Rights Reserved. *
*
Authors: The Netherlands Center for Fundamental Studies (NCFS). *
The Inter-university Institute for High Energies (IIHE). *
Website : http://www.iihe.ac.be *
Contact : Nick van Eijndhoven (nickve.nl@gmail.com) *
*
Contributors are mentioned in the code where appropriate. *
*
No part of this software may be used, copied, modified or distributed *
by any means nor transmitted or translated into machine language for *
commercial purposes without written permission by the IIHE representative. *
Permission to use the software 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. *
This software is provided "as is" without express or implied warranty. *
The authors make no claims that this software is free of error, or is *
consistent with any particular standard of merchantability, or that it *
will meet your requirements for any particular application, other than *
indicated in the corresponding documentation. *
This software should not be relied on for solving a problem whose *
incorrect solution could result in injury to a person or loss of property. *
If you do use this software in such a manner, it is at your own risk. *
The authors disclaim all liability for direct or consequential damage *
resulting from your use of this software. *

// Class NcCalcluster
// Description of a cluster of calorimeter modules.
// A 2D (matrix) geometry is assumed in which a cluster center is identified
// by two integer indices (i,j), e.g. row and column indicators.
//
// The 1st signal value is the signal of the complete cluster.
// This is the signal which is provided as default by invoking GetSignal().
//
// In case clustering/grouping of module signals was performed over several
// rings around the center (see e.g. NcCalorimeter::Group), the following
// additional information is provided by the various signal values :
//
// The 2nd signal value is the original signal of the central module.
// The 3rd signal value is the total signal within the 1st (i.e. 3x3) ring of
// modules around the cluster center.
// The 4th signal value is the total signal within the 2nd (i.e. 5x5) ring of
// modules around the cluster center.
// Etc....
//
// Note : In case the cluster consists of only 1 module, then only the
// 1st signal value will be present (for obvious reasons).
//
// Some dispersion info about cluster topology is provided in order
// to enable EM or hadronic cluster identification.
//
//--- Author: Nick van Eijndhoven 13-jun-1997 Utrecht University
//- Modified: NvE $Date: 2010-03-19 11:10:02 +0100 (Fri, 19 Mar 2010) $ NCFS

Definition at line 16 of file NcCalcluster.h.

Public Member Functions

 NcCalcluster ()
 
 NcCalcluster (const NcCalcluster &c)
 
 NcCalcluster (NcCalmodule &m)
 
virtual ~NcCalcluster ()
 
void Add (NcCalmodule &m)
 
void AddVetoSignal (NcSignal &s, Int_t extr=1)
 
void AddVetoSignal (NcSignal *s, Int_t extr=1)
 
Int_t GetColumn () const
 
Float_t GetColumnDispersion () const
 
Int_t GetNmodules () const
 
Int_t GetNvetos () const
 
Int_t GetRow () const
 
Float_t GetRowDispersion () const
 
Float_t GetVetoLevel () const
 
NcSignalGetVetoSignal (Int_t j) const
 
Int_t HasVetoHit (Double_t cl) const
 
void Start (NcCalmodule &m)
 
- Public Member Functions inherited from NcSignal
 NcSignal (const char *name="", const char *title="")
 
 NcSignal (const NcSignal &s)
 
virtual ~NcSignal ()
 
void AddLink (TObject *obj, Int_t j=1)
 
void AddLink (TObject *obj, TString name)
 
virtual void AddSignal (Double_t sig, Int_t j=1)
 
virtual void AddSignal (Double_t sig, TString name)
 
void AddTrack (NcTrack &t, Int_t mode=1)
 
virtual TObject * Clone (const char *name="") const
 
virtual void Data (TString f="car", TString u="rad") const
 
void DeleteSample (Int_t j=1)
 
void DeleteSample (TString name)
 
virtual void DeleteSignals (Int_t mode=0)
 
void DeleteWaveform (Int_t j=1)
 
void DeleteWaveform (TString name)
 
NcSampleDisplaySample (Int_t j=1, Int_t i=1) const
 
NcSampleDisplaySample (TString name, Int_t i=1) const
 
NcDeviceGetDevice () const
 
Int_t GetErrorFlag (Int_t j=1) const
 
Int_t GetErrorFlag (TString name) const
 
NcTrackGetIdTrack (Int_t id) const
 
Int_t GetIndices (TObject *obj, Int_t j, TArrayI &ks) const
 
Int_t GetIndices (TObject *obj, TArrayI &js, Int_t k) const
 
Int_t GetIndices (TObject *obj, TArrayI &js, TArrayI &ks) const
 
Int_t GetIndices (TObject *obj, TString name, TArrayI &ks) const
 
TObject * GetLink (Int_t j=1, Int_t k=1) const
 
TObject * GetLink (TString name, Int_t k=1) const
 
Int_t GetNerrors () const
 
Int_t GetNlinks (TObject *obj, TString name) const
 
Int_t GetNlinks (TObject *obj=0, Int_t j=0) const
 
Int_t GetNsamples () const
 
virtual Int_t GetNslots () const
 
Int_t GetNtracks (NcTrack *t=0) const
 
Int_t GetNvalues () const
 
Int_t GetNwaveforms () const
 
NcSampleGetSample (Int_t j=1) const
 
NcSampleGetSample (TString name) const
 
Int_t GetSampleIndex (TString name) const
 
virtual Float_t GetSignal (Int_t j=1, Int_t mode=0) const
 
virtual Float_t GetSignal (TString name, Int_t mode=0) const
 
virtual Float_t GetSignalError (Int_t j=1) const
 
virtual Float_t GetSignalError (TString name) const
 
Int_t GetSignalFlag (Int_t j=1) const
 
Int_t GetSignalFlag (TString name) const
 
Int_t GetSwapMode () const
 
NcTrackGetTrack (Int_t j) const
 
TH1F * GetWaveform (Int_t j=1) const
 
TH1F * GetWaveform (TString name) const
 
Int_t GetWaveformIndex (TString name) const
 
virtual void List (Int_t j=0) const
 
virtual void List (TString name) const
 
void ListSample (Int_t j=0) const
 
void ListTrack (Int_t j=0) const
 
void ListWaveform (Int_t j=0) const
 
void RemoveTrack (NcTrack &t, Int_t mode=1)
 
void RemoveTracks (Int_t mode=1)
 
virtual void Reset (Int_t mode=0)
 
void ResetLink (Int_t j=1, Int_t k=1)
 
void ResetLink (TString name, Int_t k=1)
 
void ResetLinks (TObject *obj, Int_t j=0, Int_t k=0)
 
void ResetLinks (TObject *obj, TString name, Int_t k=0)
 
void ResetSample (Int_t j=1)
 
void ResetSample (TString name)
 
virtual void ResetSignals (Int_t mode=0)
 
void ResetWaveform (Int_t j=1)
 
void ResetWaveform (TString name)
 
void SetDevice (NcDevice *dev)
 
void SetLink (TObject *obj, Int_t j=1, Int_t k=1)
 
void SetLink (TObject *obj, TString name, Int_t k=1)
 
void SetSample (NcSample *sample, Int_t j=1)
 
virtual void SetSignal (Double_t sig, Int_t j=1)
 
virtual void SetSignal (Double_t sig, TString name)
 
virtual void SetSignalError (Double_t dsig, Int_t j=1)
 
virtual void SetSignalError (Double_t dsig, TString name)
 
void SetSwapMode (Int_t swap=1)
 
void SetWaveform (TH1F *waveform, Int_t j=1)
 
- Public Member Functions inherited from NcPosition
 NcPosition ()
 
 NcPosition (const NcPosition &p)
 
virtual ~NcPosition ()
 
Double_t GetDistance (NcPosition &p, Float_t scale=-1)
 
Double_t GetDistance (NcPosition *p, Float_t scale=-1)
 
NcPositionGetPosition ()
 
void GetPosition (Double_t *r, TString f, TString u="rad", Float_t s=-1) const
 
void GetPosition (Float_t *r, TString f, TString u="rad", Float_t s=-1) const
 
void GetPositionErrors (Double_t *e, TString f, TString u="rad", Float_t s=-1) const
 
void GetPositionErrors (Float_t *e, TString f, TString u="rad", Float_t s=-1) const
 
NcTimestampGetTimestamp ()
 
Float_t GetUnitScale () const
 
void RemoveTimestamp ()
 
void ResetPosition ()
 
void SetPosition (Double_t *r, TString f, TString u="rad")
 
void SetPosition (Double_t r1, Double_t r2, Double_t r3, TString f, TString u="rad")
 
void SetPosition (Float_t *r, TString f, TString u="rad")
 
void SetPosition (Nc3Vector &r)
 
void SetPositionErrors (Double_t *e, TString f, TString u="rad")
 
void SetPositionErrors (Double_t e1, Double_t e2, Double_t e3, TString f, TString u="rad")
 
void SetPositionErrors (Float_t *e, TString f, TString u="rad")
 
void SetTimestamp (NcTimestamp &t)
 
void SetUnitScale (Float_t s)
 
- Public Member Functions inherited from Nc3Vector
 Nc3Vector ()
 
 Nc3Vector (const Nc3Vector &v)
 
virtual ~Nc3Vector ()
 
Double_t ConvertAngle (Double_t a, TString in, TString out) const
 
Nc3Vector Cross (Nc3Vector &q) const
 
Double_t Dot (Nc3Vector &q)
 
void GetErrors (Double_t *e, TString f, TString u="rad") const
 
void GetErrors (Float_t *e, TString f, TString u="rad") const
 
Double_t GetNorm ()
 
virtual Double_t GetOpeningAngle (Nc3Vector &q, TString u="rad")
 
Nc3Vector GetPrimed (TRotMatrix *m) const
 
Double_t GetPseudoRapidity ()
 
Double_t GetResultError () const
 
Nc3Vector GetUnprimed (TRotMatrix *m) const
 
Nc3Vector GetVecLong () const
 
void GetVector (Double_t *v, TString f, TString u="rad") const
 
void GetVector (Float_t *v, TString f, TString u="rad") const
 
Nc3Vector GetVecTrans () const
 
Double_t GetX (Int_t i, TString f, TString u="rad")
 
Int_t HasErrors () const
 
Int_t HasVector () const
 
virtual void Load (Nc3Vector &q)
 
Nc3Vector operator* (Double_t s) const
 
Nc3Vectoroperator*= (Double_t s)
 
Nc3Vector operator+ (Nc3Vector &q) const
 
Nc3Vectoroperator+= (Nc3Vector &q)
 
Nc3Vector operator- (Nc3Vector &q) const
 
Nc3Vectoroperator-= (Nc3Vector &q)
 
Nc3Vector operator/ (Double_t s) const
 
Nc3Vectoroperator/= (Double_t s)
 
Nc3Vectoroperator= (const Nc3Vector &q)
 
void PrintAngle (Double_t a, TString in, TString out, Int_t ndig=1, Bool_t align=kFALSE) const
 
void SetErrors (Double_t *e, TString f, TString u="rad")
 
void SetErrors (Double_t e1, Double_t e2, Double_t e3, TString f, TString u="rad")
 
void SetErrors (Float_t *e, TString f, TString u="rad")
 
void SetVector (Double_t *v, TString f, TString u="rad")
 
void SetVector (Double_t v1, Double_t v2, Double_t v3, TString f, TString u="rad")
 
void SetVector (Float_t *v, TString f, TString u="rad")
 
virtual void SetZero ()
 
- Public Member Functions inherited from NcAttrib
 NcAttrib ()
 
 NcAttrib (const NcAttrib &a)
 
virtual ~NcAttrib ()
 
void AddNamedSlot (TString s)
 
void DecreaseEdgeValue (Int_t j=1)
 
void DecreaseEdgeValue (TString name)
 
void DeleteCalibrations (Int_t mode=0)
 
TF1 * GetCalFunction (Int_t j=1) const
 
TF1 * GetCalFunction (TString name) const
 
Int_t GetCalWord (Int_t j=1) const
 
Int_t GetCalWord (TString name) const
 
Int_t GetDeadValue (Int_t j=1) const
 
Int_t GetDeadValue (TString name) const
 
TF1 * GetDecalFunction (Int_t j=1) const
 
TF1 * GetDecalFunction (TString name) const
 
Int_t GetEdgeValue (Int_t j=1) const
 
Int_t GetEdgeValue (TString name) const
 
Float_t GetGain (Int_t j=1) const
 
Float_t GetGain (TString name) const
 
Int_t GetGainFlag (Int_t j=1) const
 
Int_t GetGainFlag (TString name) const
 
Int_t GetLockValue (Int_t j=1) const
 
Int_t GetLockValue (TString name) const
 
Int_t GetNcalflags () const
 
Int_t GetNcalfuncs () const
 
Int_t GetNdecalfuncs () const
 
Int_t GetNgains () const
 
Int_t GetNnames () const
 
Int_t GetNoffsets () const
 
Float_t GetOffset (Int_t j=1) const
 
Float_t GetOffset (TString name) const
 
Int_t GetOffsetFlag (Int_t j=1) const
 
Int_t GetOffsetFlag (TString name) const
 
Int_t GetSlotIndex (TString name, Int_t opt=0) const
 
TString GetSlotName (Int_t j=1) const
 
void IncreaseEdgeValue (Int_t j=1)
 
void IncreaseEdgeValue (TString name)
 
virtual void Load (NcAttrib &a, Int_t j=0)
 
virtual void Load (NcAttrib &a, TString name)
 
void Lock (Int_t j=1)
 
void Lock (TString name)
 
void ResetGain (Int_t j=1)
 
void ResetGain (TString name)
 
void ResetOffset (Int_t j=1)
 
void ResetOffset (TString name)
 
void SetAlive (Int_t j=1)
 
void SetAlive (TString name)
 
void SetCalFunction (TF1 *f, Int_t j=1)
 
void SetCalFunction (TF1 *f, TString name)
 
void SetDead (Int_t j=1)
 
void SetDead (TString name)
 
void SetDecalFunction (TF1 *f, Int_t j=1)
 
void SetDecalFunction (TF1 *f, TString name)
 
void SetEdgeOff (Int_t j=1)
 
void SetEdgeOff (TString name)
 
void SetEdgeOn (Int_t j=1)
 
void SetEdgeOn (TString name)
 
void SetEdgeValue (Int_t val, Int_t j=1)
 
void SetEdgeValue (Int_t val, TString name)
 
void SetGain (Double_t gain, Int_t j=1)
 
void SetGain (Double_t gain, TString name)
 
void SetOffset (Double_t off, Int_t j=1)
 
void SetOffset (Double_t off, TString name)
 
void SetSlotName (TString s, Int_t j=1)
 
void Unlock (Int_t j=1)
 
void Unlock (TString name)
 

Protected Attributes

Int_t fCol
 
Float_t fColdisp
 
Int_t fNmods
 
Int_t fNvetos
 
Int_t fRow
 
Float_t fRowdisp
 
TObjArray * fVetos
 
- Protected Attributes inherited from NcSignal
TObject * fDevice
 
TArrayF * fDsignals
 
NcObjMatrixfLinks
 
TObjArray * fSamples
 
TArrayI * fSigflags
 
TArrayF * fSignals
 
TObjArray * fTracks
 
TObjArray * fWaveforms
 
- Protected Attributes inherited from NcPosition
Float_t fScale
 
NcTimestampfTstamp
 
- Protected Attributes inherited from Nc3Vector
Double32_t fDresult
 ! Error on scalar result (e.g. norm or dotproduct)
 
Int_t fNv
 
Double32_t * fV
 
- Protected Attributes inherited from NcAttrib
TArrayI * fCalflags
 
TObjArray * fCalfuncs
 
TObjArray * fDecalfuncs
 
TArrayF * fGains
 
TObjArray * fNames
 
TArrayF * fOffsets
 

Additional Inherited Members

- Public Attributes inherited from NcSignal
Bool_t fDevset
 
- Protected Member Functions inherited from NcSignal
void SetSigFlags (Int_t is, Int_t ie, Int_t j)
 
- Protected Member Functions inherited from NcAttrib
void SetCalFlags (Int_t gf, Int_t of, Int_t j)
 

Constructor & Destructor Documentation

◆ NcCalcluster() [1/3]

NcCalcluster::NcCalcluster ( )
// Default constructor, all data is set to 0.

Definition at line 72 of file NcCalcluster.cxx.

◆ ~NcCalcluster()

NcCalcluster::~NcCalcluster ( )
virtual
// Destructor to delete dynamically allocated memory.

Definition at line 90 of file NcCalcluster.cxx.

◆ NcCalcluster() [2/3]

NcCalcluster::NcCalcluster ( const NcCalcluster & c)
// Copy constructor.

Definition at line 105 of file NcCalcluster.cxx.

◆ NcCalcluster() [3/3]

NcCalcluster::NcCalcluster ( NcCalmodule & m)
// Cluster constructor with module m as center.
// Module data is only entered for a module which contains a signal,
// has not been used in a cluster yet, and is not declared dead.
//
// Note :
// It is advised NOT to start a cluster with modules situated at a detector edge.
// This feature is automatically checked when using the built-in clustering
// of NcCalorimeter.

Definition at line 130 of file NcCalcluster.cxx.

Member Function Documentation

◆ Add()

void NcCalcluster::Add ( NcCalmodule & m)
// Add module data to the cluster.
// Dead modules are NOT added to the cluster.
// According to the distance of the module w.r.t. the cluster center
// the various signal values are updated.

Definition at line 291 of file NcCalcluster.cxx.

◆ AddVetoSignal() [1/2]

void NcCalcluster::AddVetoSignal ( NcSignal & s,
Int_t extr = 1 )
// Associate an (extrapolated) NcSignal as veto to the cluster.
// By default a straight line extrapolation is performed which extrapolates
// the signal position until the length of its position vector matches that
// of the position vector of the cluster.
// In this extrapolation procedure the error propagation is performed
// automatically.
// Based on the cluster and extrapolated veto signal (x,y) positions and
// position errors the confidence level of association is calculated
// and stored as an additional signal value.
// By means of the GetVetoSignal memberfunction the confidence level of
// association can always be updated by the user.
// In case the user wants to invoke a more detailed extrapolation procedure,
// the automatic extrapolation can be suppressed by setting the argument
// extr=0. In this case it is assumed that the NcSignal as entered via
// the argument contains already the extrapolated position vector and
// corresponding errors.
// Note : Three additional values are added to the original NcSignal
// to hold the chi2, ndf and confidence level values of the association.

Definition at line 350 of file NcCalcluster.cxx.

◆ AddVetoSignal() [2/2]

void NcCalcluster::AddVetoSignal ( NcSignal * s,
Int_t extr = 1 )
inline

Definition at line 31 of file NcCalcluster.h.

◆ GetColumn()

Int_t NcCalcluster::GetColumn ( ) const
// Provide the column number of the cluster center.

Definition at line 189 of file NcCalcluster.cxx.

◆ GetColumnDispersion()

Float_t NcCalcluster::GetColumnDispersion ( ) const
// Provide the normalised column dispersion of the cluster.

Definition at line 230 of file NcCalcluster.cxx.

◆ GetNmodules()

Int_t NcCalcluster::GetNmodules ( ) const
// Provide the number of modules in the cluster.

Definition at line 200 of file NcCalcluster.cxx.

◆ GetNvetos()

Int_t NcCalcluster::GetNvetos ( ) const
// Provide the number of veto signals associated to the cluster.

Definition at line 426 of file NcCalcluster.cxx.

◆ GetRow()

Int_t NcCalcluster::GetRow ( ) const
// Provide the row number of the cluster center.

Definition at line 178 of file NcCalcluster.cxx.

◆ GetRowDispersion()

Float_t NcCalcluster::GetRowDispersion ( ) const
// Provide the normalised row dispersion of the cluster.

Definition at line 211 of file NcCalcluster.cxx.

◆ GetVetoLevel()

Float_t NcCalcluster::GetVetoLevel ( ) const
// Provide the confidence level of best associated veto signal.

Definition at line 466 of file NcCalcluster.cxx.

◆ GetVetoSignal()

NcSignal * NcCalcluster::GetVetoSignal ( Int_t j) const
// Provide access to the i-th veto signal of this cluster.
// Note : The first hit corresponds to i=1.

Definition at line 437 of file NcCalcluster.cxx.

◆ HasVetoHit()

Int_t NcCalcluster::HasVetoHit ( Double_t cl) const
// Investigate if cluster has an associated veto hit with conf. level > cl.
// Returns 1 if there is such an associated veto hit, otherwise returns 0.
// Note : This function is faster than GetVetoLevel().

Definition at line 494 of file NcCalcluster.cxx.

◆ Start()

void NcCalcluster::Start ( NcCalmodule & m)
// Reset cluster data and start with module m.
// A module can only start a cluster when it contains a signal,
// has not been used in a cluster yet, and is not declared dead.
//
// Note :
// It is advised NOT to start a cluster with modules situated at a detector edge.
// This feature is automatically checked when using the built-in clustering
// of NcCalorimeter.

Definition at line 249 of file NcCalcluster.cxx.

Member Data Documentation

◆ fCol

Int_t NcCalcluster::fCol
protected

Definition at line 39 of file NcCalcluster.h.

◆ fColdisp

Float_t NcCalcluster::fColdisp
protected

Definition at line 42 of file NcCalcluster.h.

◆ fNmods

Int_t NcCalcluster::fNmods
protected

Definition at line 40 of file NcCalcluster.h.

◆ fNvetos

Int_t NcCalcluster::fNvetos
protected

Definition at line 43 of file NcCalcluster.h.

◆ fRow

Int_t NcCalcluster::fRow
protected

Definition at line 38 of file NcCalcluster.h.

◆ fRowdisp

Float_t NcCalcluster::fRowdisp
protected

Definition at line 41 of file NcCalcluster.h.

◆ fVetos

TObjArray* NcCalcluster::fVetos
protected

Definition at line 44 of file NcCalcluster.h.


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