AliRoot Core  edcc906 (edcc906)
AliMUONVCalibParam Class Referenceabstract

Container of calibration values for a given number of channels. More...

#include <AliMUONVCalibParam.h>

Inheritance diagram for AliMUONVCalibParam:

Public Member Functions

 AliMUONVCalibParam ()
 
 AliMUONVCalibParam (Int_t id0, Int_t id1)
 
virtual ~AliMUONVCalibParam ()
 
virtual const char * GetName () const
 
virtual Bool_t IsSortable () const
 Advertise that we can be sorted in TCollections. More...
 
virtual Int_t ID0 () const
 First id of this object. More...
 
virtual Int_t ID1 () const
 Second id of this object (might not be required) More...
 
virtual Int_t Compare (const TObject *object) const
 method for sorting pedestal values ordered by ID0 and ID1 More...
 
virtual Bool_t IsPacked () const
 whether or not the value we store are packed, e.g. as v = a*cste + b More...
 
virtual Int_t Dimension () const =0
 j indices in following methods are valid from 0 to Dimension()-1. More...
 
virtual void SetValueAsDouble (Int_t i, Int_t j, Double_t value)
 
virtual void SetValueAsDoubleFast (Int_t i, Int_t j, Double_t value)
 Same as above but w/o bound checking. More...
 
virtual void SetValueAsFloat (Int_t i, Int_t j, Float_t value)=0
 Set one value, for channel i, dimension j. Consider value is a float. More...
 
virtual void SetValueAsFloatFast (Int_t i, Int_t j, Float_t value)=0
 
virtual void SetValueAsInt (Int_t i, Int_t j, Int_t value)=0
 Set one value, for channel i, dimension j. Consider value is an integer. More...
 
virtual void SetValueAsIntFast (Int_t i, Int_t j, Int_t value)=0
 Same as above but w/o bound checkings. More...
 
virtual Int_t Size () const =0
 The number of channels handled by this object. More...
 
virtual Bool_t IsDoublePrecision () const
 Whether we can store double precision values. More...
 
virtual Double_t ValueAsDouble (Int_t i, Int_t j=0) const
 
virtual Double_t ValueAsDoubleFast (Int_t i, Int_t j=0) const
 
virtual Float_t ValueAsFloat (Int_t i, Int_t j=0) const =0
 
virtual Float_t ValueAsFloatFast (Int_t i, Int_t j=0) const =0
 Same as above but without bound checking. More...
 
virtual Int_t ValueAsInt (Int_t i, Int_t j=0) const =0
 
virtual Int_t ValueAsIntFast (Int_t i, Int_t j=0) const =0
 Same as above but w/o bound checking. More...
 
virtual Bool_t UnpackValue (Int_t, Int_t &, Int_t &) const
 Unpack a value into a couple (a,b). Returns false if IsPacked()==kFALSE. More...
 
virtual Bool_t PackValues (Int_t, Int_t, Int_t &) const
 Pack (a,b) as a single int. Returns false if IsPacked()==kFALSE. More...
 

Static Public Member Functions

static Float_t InvalidFloatValue ()
 Return 1E38 as invalid float value. More...
 
static UInt_t BuildUniqueID (Int_t id0, Int_t id1)
 
static void DecodeUniqueID (UInt_t uniqueID, Int_t &id0, Int_t &id1)
 

Static Protected Member Functions

static Int_t ID0 (UInt_t uniqueID)
 
static Int_t ID1 (UInt_t uniqueID)
 

Detailed Description

Container of calibration values for a given number of channels.

Defines an interface for a calibration container object.

Note that a VCalibParam object is identified by a pair (id0,id1), where each member of the pair is a 16 bits word, so that id0 and id1 can be packed into a single 32 bits word.

id1 might be left to zero if not required (e.g. for calibparam which can be identified by a single integer)

Note that the ValueAsXXX methods have 2 versions : with or without bound checking. The latter is to be used in e.g. loops, where you know for sure the indices are ok, in order to gain some time.

Author
Laurent Aphecetche, Subatech

Definition at line 19 of file AliMUONVCalibParam.h.

Constructor & Destructor Documentation

AliMUONVCalibParam::AliMUONVCalibParam ( )

Default constructor

Definition at line 46 of file AliMUONVCalibParam.cxx.

AliMUONVCalibParam::AliMUONVCalibParam ( Int_t  id0,
Int_t  id1 
)

constructor for 2D

Definition at line 52 of file AliMUONVCalibParam.cxx.

AliMUONVCalibParam::~AliMUONVCalibParam ( )
virtual

Destructor.

Definition at line 59 of file AliMUONVCalibParam.cxx.

Member Function Documentation

Int_t AliMUONVCalibParam::Compare ( const TObject *  object) const
virtual

method for sorting pedestal values ordered by ID0 and ID1

Compare AliMUONVCalibParam objects, trying to get as complete an order as possible. We sort by ID0, then by ID1

Definition at line 157 of file AliMUONVCalibParam.cxx.

Referenced by IsSortable().

void AliMUONVCalibParam::DecodeUniqueID ( UInt_t  uniqueID,
Int_t &  id0,
Int_t &  id1 
)
static

Convert single integer into a pair (i,j)

Definition at line 74 of file AliMUONVCalibParam.cxx.

Referenced by InvalidFloatValue().

const char * AliMUONVCalibParam::GetName ( void  ) const
virtual

Build a name for this object

Definition at line 115 of file AliMUONVCalibParam.cxx.

Int_t AliMUONVCalibParam::ID0 ( UInt_t  uniqueID)
staticprotected

Extract id0 from uniqueID

Definition at line 83 of file AliMUONVCalibParam.cxx.

Int_t AliMUONVCalibParam::ID1 ( UInt_t  uniqueID)
staticprotected

Extract id1 from uniqueID

Definition at line 99 of file AliMUONVCalibParam.cxx.

virtual Bool_t AliMUONVCalibParam::IsDoublePrecision ( ) const
inlinevirtual

Whether we can store double precision values.

Reimplemented in AliMUONCalibParamND.

Definition at line 73 of file AliMUONVCalibParam.h.

virtual Bool_t AliMUONVCalibParam::IsPacked ( ) const
inlinevirtual

whether or not the value we store are packed, e.g. as v = a*cste + b

Reimplemented in AliMUONCalibParamNI.

Definition at line 42 of file AliMUONVCalibParam.h.

virtual Bool_t AliMUONVCalibParam::IsSortable ( ) const
inlinevirtual

Advertise that we can be sorted in TCollections.

Definition at line 30 of file AliMUONVCalibParam.h.

virtual Bool_t AliMUONVCalibParam::PackValues ( Int_t  ,
Int_t  ,
Int_t &   
) const
inlinevirtual

Pack (a,b) as a single int. Returns false if IsPacked()==kFALSE.

Reimplemented in AliMUONCalibParamNI.

Definition at line 107 of file AliMUONVCalibParam.h.

void AliMUONVCalibParam::SetValueAsDoubleFast ( Int_t  i,
Int_t  j,
Double_t  value 
)
virtual

Same as above but w/o bound checking.

By default, this one does not exist

Reimplemented in AliMUONCalibParamND.

Definition at line 131 of file AliMUONVCalibParam.cxx.

Referenced by AliMUONTrackerData::InternalAdd(), and IsPacked().

virtual void AliMUONVCalibParam::SetValueAsFloatFast ( Int_t  i,
Int_t  j,
Float_t  value 
)
pure virtual

Set one value, for channel i, dimension j. Consider value is a float. Assume (i,j) are valid indices, i.e. do not check them.

Implemented in AliMUONCalibParamND, AliMUONCalibParamNF, and AliMUONCalibParamNI.

Referenced by IsPacked().

virtual void AliMUONVCalibParam::SetValueAsIntFast ( Int_t  i,
Int_t  j,
Int_t  value 
)
pure virtual
virtual Bool_t AliMUONVCalibParam::UnpackValue ( Int_t  ,
Int_t &  ,
Int_t &   
) const
inlinevirtual

Unpack a value into a couple (a,b). Returns false if IsPacked()==kFALSE.

Reimplemented in AliMUONCalibParamNI.

Definition at line 104 of file AliMUONVCalibParam.h.

Referenced by AliMUONPadStatusMapMaker::ComputeStatusMap().

Double_t AliMUONVCalibParam::ValueAsDouble ( Int_t  i,
Int_t  j = 0 
) const
virtual
Double_t AliMUONVCalibParam::ValueAsDoubleFast ( Int_t  i,
Int_t  j = 0 
) const
virtual

Retrieve the value for a given (channel,dim) as a double. Only ok if IsDoublePrecision() is kTRUE. Fast means there's no bound checking on (i,j)

By default, this one does not exist

Reimplemented in AliMUONCalibParamND.

Definition at line 148 of file AliMUONVCalibParam.cxx.

Referenced by AliMUONTrackerData::InternalAdd(), and IsDoublePrecision().

virtual Float_t AliMUONVCalibParam::ValueAsFloatFast ( Int_t  i,
Int_t  j = 0 
) const
pure virtual
virtual Int_t AliMUONVCalibParam::ValueAsIntFast ( Int_t  i,
Int_t  j = 0 
) const
pure virtual

Same as above but w/o bound checking.

Implemented in AliMUONCalibParamND, AliMUONCalibParamNF, and AliMUONCalibParamNI.

Referenced by AliMUONPadStatusMapMaker::ComputeStatusMap(), and IsDoublePrecision().


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