ROOT logo
AliRoot » ITS » AliITSHandleDaSSD

class AliITSHandleDaSSD: public TObject


 This class provides ITS SSD data handling
 used by DA.
  Author: Oleksandr Borysov
  Date: 18/07/2008

Function Members (Methods)

public:
AliITSHandleDaSSD()
AliITSHandleDaSSD(Char_t* rdfname)
AliITSHandleDaSSD(const AliITSHandleDaSSD& ssdadldc)
virtual~AliITSHandleDaSSD()
voidTObject::AbstractMethod(const char* method) const
Bool_tAdDataPresent(const Int_t ddl, const Int_t ad) const
virtual Bool_tAddFeromCm(const AliITSModuleDaSSD *const module)
virtual Bool_tAllocateSimulatedModules(const Int_t copymodind = 0)
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
virtual Bool_tCalculateCM(AliITSModuleDaSSD *const module)
virtual Bool_tCalculateCMW(AliITSModuleDaSSD *const module)
virtual Bool_tCalculateNoise(const AliITSModuleDaSSD *const module)
virtual Bool_tCalculateNoiseCM(AliITSModuleDaSSD *const module)
virtual Bool_tCalculateNoiseCMW(AliITSModuleDaSSD *const module)
virtual Bool_tCalculatePedestal(const AliITSModuleDaSSD *const module)
virtual Bool_tCalculatePedNoiseW(const AliITSModuleDaSSD *const module)
Int_tChannelIsBad(const UChar_t ddl, const UChar_t ad, const UChar_t adc, const Int_t strn) const
Int_tCheckOffChips() const
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tTObject::Compare(const TObject* obj) const
virtual voidTObject::Copy(TObject& object) const
Int_tDdlToEquipmentId(Int_t ddl) const
virtual voidTObject::Delete(Option_t* option = "")MENU
voidDeleteCM()
voidDeleteCMAll()
voidDeleteCMFerom()
voidDeleteSignal()
voidDeleteSignalAll()
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
voidDumpInitData(const Char_t* str = "") const
Bool_tDumpModInfo(const Float_t meannosethreshold) const
virtual voidTObject::Error(const char* method, const char* msgfmt) const
UChar_tEvaluateIfChannelIsBad(const AliITSModuleDaSSD *const module, const Int_t stripn) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
TArraySGetALaddersOff() const
AliITSBadChannelsSSDv2*GetCalibrationBadChannels() const
AliITSNoiseSSDv2*GetCalibrationOCDBNoise() const
TArraySGetCLaddersOff() const
Float_tGetCmThresholdFactor() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
Int_tGetEqIndex(const Short_t eq) const
virtual const char*TObject::GetIconName() const
UInt_tGetLdcId() const
Bool_tGetMergeBCFlag() const
AliITSModuleDaSSD*GetModule(const Int_t index) const
AliITSModuleDaSSD*GetModule(const UChar_t ddlID, const UChar_t ad, const UChar_t adc) const
Int_tGetModuleIndex(const UChar_t ddlID, const UChar_t ad, const UChar_t adc) const
virtual const char*TObject::GetName() const
Int_tGetNumberOfEvents() const
Int_tGetNumberOfModules() const
static Int_tGetNumberOfSSDModulesConst()
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
Int_tGetOffsetDefault() const
virtual Option_t*TObject::GetOption() const
Float_tGetPedestalThresholdFactor() const
UInt_tGetRunId() const
AliITSChannelDaSSD*GetStrip(const UChar_t ddlID, const UChar_t ad, const UChar_t adc, const UShort_t stripID) const
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
Int_tGetZsDefault() const
Float_tGetZsFactor() const
Int_tGetZsMinimum() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual Bool_tInit(Char_t* rdfname)
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
Int_tLadderIsOff(const UChar_t ddl, const UChar_t ad, const UChar_t adc) const
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
Int_tMergeBadChannels(AliITSBadChannelsSSDv2*& bcl) const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
ULong_tOffsetValue(const UChar_t ddl, const UChar_t ad, const UChar_t adc, const Int_t strn) const
ULong_tOffsetValue(const AliITSChannelDaSSD* strip, const UChar_t ddl = 0, const UChar_t ad = 0, const UChar_t adc = 0, const Int_t strn = -1) const
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
AliITSHandleDaSSD&operator=(const AliITSHandleDaSSD& ssdadldc)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTObject::Print(Option_t* option = "") const
Bool_tPrintModCalibrationData(const UChar_t ddlID, const UChar_t ad, const UChar_t adc, const Char_t* fname = NULL) const
virtual Bool_tProcessRawData(const Int_t nmread = fgkNumberOfSSDModulesPerDdl, const Bool_t usewelford = kTRUE)
virtual Int_tTObject::Read(const char* name)
Int_tReadCalibrationDataFile(char* fileName, const Long_t eventsnumber)
virtual Bool_tReadDDLModuleMap(const Char_t* filename = NULL)
virtual Int_tReadModuleRawData(const Int_t modulesnumber)
virtual Bool_tReadStaticBadChannelsMap(const Char_t* filename = NULL)
virtual voidTObject::RecursiveRemove(TObject* obj)
virtual Bool_tRelocateModules()
virtual voidReset()
voidTObject::ResetBit(UInt_t f)
virtual Short_tRetrieveModuleId(const UChar_t ddlID, const UChar_t ad, const UChar_t adc) const
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
Bool_tSaveCalibrationSSDLDC(Char_t*& dafname)
Bool_tSaveEqSlotCalibrationData(const Int_t ddl, const Int_t ad, const Char_t* fname) const
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
voidSetALaddersOff(const Int_t n, const Short_t* allist)
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidSetCLaddersOff(const Int_t n, const Short_t* cllist)
voidSetCmThresholdFactor(const Float_t cmthf)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidSetLaddersOff(const Int_t na, const Short_t* allist, const Int_t nc, const Short_t* cllist)
voidSetMergeBCFlag(const Byte_t mbcf)
voidSetModIndProcessed(Int_t mi)
voidSetModIndRead(Int_t mr)
Bool_tSetModule(AliITSModuleDaSSD *const module, const Int_t index)
Bool_tSetNumberOfModules(const Int_t numberofmodules)
static voidTObject::SetObjectStat(Bool_t stat)
voidSetOffsetDefault(const Int_t offs)
voidSetPedestalThresholdFactor(const Float_t pthf)
Bool_tSetRawFileName(Char_t* rdfname)
virtual voidTObject::SetUniqueID(UInt_t uid)
voidSetZsDefaul(const Int_t zs)
voidSetZsFactor(const Float_t zsf)
voidSetZsMinimum(const Int_t zsm)
virtual voidShowMembers(TMemberInspector&)
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
ULong_tZsThreshold(const AliITSChannelDaSSD* strip) const
ULong_tZsThreshold(const UChar_t ddl, const UChar_t ad, const UChar_t adc, const Int_t strn) const
protected:
stringConvBase(const unsigned long value, const long base) const
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()
Bool_tSignalOutOfRange(const Short_t signal) const

Data Members

protected:
TArraySfALaddersOff! Lisst of ladders of side A that are off and should be suppressed
AliITSBadChannelsSSDv2*fBadChannelsList! List of bad channels: static or created on base of calculated noise and pedestal
TArraySfCLaddersOff! Lisst of ladders of side C that are off and should be suppressed
Float_tfCmThresholdFactorconfiguration parameter: ThresholdFactor for CM calculation
Int_t*fDDLModuleMap! DDL map
TArraySfEqIndex! index array of equipmnts (DDLs).
UInt_tfLdcIdLDC number, read from header
Byte_tfMergeBCListsFlag, if it is not zero the static bad channels list is merged with dynamic one
Int_tfModIndProcessed! index of the last module in fModules array with processed data
Int_tfModIndRead! index of the last module in fModules array with adc data present (read)
Int_t*fModIndex! index array for fModules
AliITSModuleDaSSD**fModules[fNumberOfModules] array of pointer on AliITSModuleDaSSD objects (1698 SSD Modules)
Long_tfNumberOfEventsNumber of physics or calibration events in raw data file fRawDataFileName
Int_tfNumberOfModulesnumber of AliITSModuleDaSSD to allocate
Int_tfOffsetDefaultdefault value for offset correction
Float_tfPedestalThresholdFactorconfiguration parameter: ThresholdFactor for pedestal calculation
Char_t*fRawDataFileNameName of the file with raw data
UInt_tfRunIdRun number, read from header
Int_tfZsDefaultdefault value for ZS threshold
Float_tfZsFactorzs factor 3.0
Int_tfZsMinimumminimum value for ZS threshold
static const Int_tfgkAdcPerDBlockFEROM configuration file constant
static const UInt_tfgkBadChannelMaskMask to suppress the channel from the bad channel list
static const Float_tfgkCmThresholdFactorDefalt value for fCmThresholdFactor
static const Short_tfgkMinSSDModuleIdInitial SSD modules number
static const Int_tfgkNumberOfSSDDDLsNumber of DDLs in SSD
static const Int_tfgkNumberOfSSDModulesNumber of SSD modules in ITS
static const Int_tfgkNumberOfSSDModulesPerDdlNumber of SSD modules in DDL
static const Int_tfgkNumberOfSSDModulesPerSlotNumber of SSD modules in Slot
static const Int_tfgkNumberOfSSDSlotsPerDDLNumber of SSD slots per DDL
static const UInt_tfgkOffSetBitMaskBit mask for FEROM Offset correction
static const Float_tfgkPedestalThresholdFactorDefalt value for fPedestalThresholdFactor
static const UInt_tfgkZsBitMaskBit mask for FEROM ZS

Class Charts

Inheritance Chart:
TObject
AliITSHandleDaSSD

Function documentation

AliITSHandleDaSSD()
 Default constructor
AliITSHandleDaSSD(Char_t* rdfname)
AliITSHandleDaSSD(const AliITSHandleDaSSD& ssdadldc)
 copy constructor
~AliITSHandleDaSSD()
 Default destructor
void Reset()
 Delete array of AliITSModuleDaSSD* objects.
Bool_t Init(Char_t* rdfname)
 Read raw data file and set initial and configuration parameters
AliITSModuleDaSSD* GetModule(const UChar_t ddlID, const UChar_t ad, const UChar_t adc) const
 Retrieve AliITSModuleDaSSD object from the array
Int_t GetModuleIndex(const UChar_t ddlID, const UChar_t ad, const UChar_t adc) const
 Retrieve the position of AliITSModuleDaSSD object in the array
AliITSChannelDaSSD* GetStrip(const UChar_t ddlID, const UChar_t ad, const UChar_t adc, const UShort_t stripID) const
 Retrieve AliITSChannalDaSSD object from the array
Bool_t SetModule(AliITSModuleDaSSD *const module, const Int_t index)
 Assign array element with AliITSModuleDaSSD object
Bool_t SetNumberOfModules(const Int_t numberofmodules)
 Allocates memory for AliITSModuleDaSSD objects
Bool_t ReadStaticBadChannelsMap(const Char_t* filename = NULL)
 Reads Static Bad Channels Map from the file
Bool_t ReadDDLModuleMap(const Char_t* filename = NULL)
 Reads the SSD DDL Map from the file
Int_t ReadCalibrationDataFile(char* fileName, const Long_t eventsnumber)
 Reads raw data from file
Int_t ReadModuleRawData(const Int_t modulesnumber)
 Reads raw data from file
Bool_t RelocateModules()
 Relocate memory for AliITSModuleDaSSD object array
Bool_t AddFeromCm(const AliITSModuleDaSSD *const module)
 Restore the original signal value adding CM calculated and subtracted in ferom
Bool_t CalculatePedestal(const AliITSModuleDaSSD *const module)
 Calculates Pedestal
Bool_t CalculateNoise(const AliITSModuleDaSSD *const module)
 Calculates Noise
Bool_t CalculateNoiseCM(AliITSModuleDaSSD *const module)
 Calculates Noise with CM correction
Bool_t CalculateCM(AliITSModuleDaSSD *const module)
 Calculates CM
Bool_t ProcessRawData(const Int_t nmread = fgkNumberOfSSDModulesPerDdl, const Bool_t usewelford = kTRUE)
 Performs calculation of calibration parameters (pedestal, noise, ...)
Short_t RetrieveModuleId(const UChar_t ddlID, const UChar_t ad, const UChar_t adc) const
 Retrieve ModuleId from the DDL map which is defined in AliITSRawStreamSSD class
AliITSNoiseSSDv2* GetCalibrationOCDBNoise() const
 Fill in the array for OCDB
AliITSBadChannelsSSDv2* GetCalibrationBadChannels() const
 Fill in the TObjArray with the list of bad channels
Bool_t SaveCalibrationSSDLDC(Char_t*& dafname)
 Save Calibration data locally
Int_t MergeBadChannels(AliITSBadChannelsSSDv2*& bcl) const
 Merges the statick bad channels list with bad channels got upon calibration
Bool_t DumpModInfo(const Float_t meannosethreshold) const
 Dump calibration parameters
Bool_t PrintModCalibrationData(const UChar_t ddlID, const UChar_t ad, const UChar_t adc, const Char_t* fname = NULL) const
 Print Module calibration data whether in file or in cout
void DumpInitData(const Char_t* str = "") const
 Print general information retrieved from raw data file
Bool_t AllocateSimulatedModules(const Int_t copymodind = 0)
 Used to allocate simulated modules to test the performance
Bool_t AdDataPresent(const Int_t ddl, const Int_t ad) const
 Check if there are calibration data for given ddl and slot
Bool_t SaveEqSlotCalibrationData(const Int_t ddl, const Int_t ad, const Char_t* fname) const
 Saves calibration files for selected equipment (DDL)
Int_t ChannelIsBad(const UChar_t ddl, const UChar_t ad, const UChar_t adc, const Int_t strn) const
 Check if the channel is bad
Int_t LadderIsOff(const UChar_t ddl, const UChar_t ad, const UChar_t adc) const
Checks if the module with given ddl, ad, adc is on the ladder which is in the list of ladders which are off
ULong_t OffsetValue(const AliITSChannelDaSSD* strip, const UChar_t ddl = 0, const UChar_t ad = 0, const UChar_t adc = 0, const Int_t strn = -1) const
 Calculate the offset value to be upload to FEROM
ULong_t OffsetValue(const UChar_t ddl, const UChar_t ad, const UChar_t adc, const Int_t strn) const
 Calculate the offset value to be upload to FEROM
ULong_t ZsThreshold(const AliITSChannelDaSSD* strip) const
 Calculate the value of zero suppression threshold to be upload to FEROM
ULong_t ZsThreshold(const UChar_t ddl, const UChar_t ad, const UChar_t adc, const Int_t strn) const
 Calculate the value of zero suppression threshold to be upload to FEROM, account bad channels list
string ConvBase(const unsigned long value, const long base) const
 Converts the unsigned long number into that in another base
Int_t CheckOffChips() const
 Check if the chip, module are off
Bool_t CalculatePedNoiseW(const AliITSModuleDaSSD *const module)
 Calculates Pedestal and Noise using Welford algorithm
Bool_t CalculateCMW(AliITSModuleDaSSD *const module)
 Calculates CM using Welford algorithm
Bool_t CalculateNoiseCMW(AliITSModuleDaSSD *const module)
 Calculates Noise with CM correction
UChar_t EvaluateIfChannelIsBad(const AliITSModuleDaSSD *const module, const Int_t stripn) const
Applies the bad channel creteria and set the appropriate flags for returned value
Bool_t SetRawFileName(Char_t* rdfname)
{return Init(rdfname); }
void SetZsDefaul(const Int_t zs)
{ fZsDefault = zs; }
void SetOffsetDefault(const Int_t offs)
{ fOffsetDefault = offs; }
void SetZsMinimum(const Int_t zsm)
{ if (zsm >= 0) if (static_cast<UInt_t>(zsm) <= fgkZsBitMask) fZsMinimum = zsm; }
void SetMergeBCFlag(const Byte_t mbcf)
{ fMergeBCLists = mbcf; }
void SetZsFactor(const Float_t zsf)
{ fZsFactor = zsf; }
void SetPedestalThresholdFactor(const Float_t pthf)
void SetCmThresholdFactor(const Float_t cmthf)
{ fCmThresholdFactor = cmthf; }
void SetALaddersOff(const Int_t n, const Short_t* allist)
{ fALaddersOff.Set(n, allist); }
void SetCLaddersOff(const Int_t n, const Short_t* cllist)
{ fCLaddersOff.Set(n, cllist); }
void SetLaddersOff(const Int_t na, const Short_t* allist, const Int_t nc, const Short_t* cllist)
{ SetALaddersOff(na, allist); SetCLaddersOff(nc, cllist); }
Int_t GetNumberOfEvents() const
{ return fNumberOfEvents; }
Int_t GetZsDefault() const
{ return fZsDefault; }
Int_t GetOffsetDefault() const
{ return fOffsetDefault; }
Float_t GetZsFactor() const
{ return fZsFactor; }
Int_t GetZsMinimum() const
{ return fZsMinimum; }
Bool_t GetMergeBCFlag() const
{ return static_cast<Bool_t>(fMergeBCLists); }
Float_t GetPedestalThresholdFactor() const
Float_t GetCmThresholdFactor() const
{ return fCmThresholdFactor; }
TArrayS GetALaddersOff() const
{ return fALaddersOff; }
TArrayS GetCLaddersOff() const
{ return fCLaddersOff; }
Int_t GetEqIndex(const Short_t eq) const
{ for(Int_t i = 0; i < fEqIndex.GetSize(); i++) if (eq == fEqIndex.At(i)) return i; return -1; }
Int_t GetNumberOfModules() const
{ return fNumberOfModules; }
UInt_t GetLdcId() const
{ return fLdcId; }
UInt_t GetRunId() const
{ return fRunId; }
AliITSModuleDaSSD* GetModule(const UChar_t ddlID, const UChar_t ad, const UChar_t adc) const
void SetModIndProcessed(Int_t mi)
void SetModIndRead(Int_t mr)
{fModIndRead = mr;}
Int_t DdlToEquipmentId(Int_t ddl) const
{ return (512 + ddl); }
void DeleteSignalAll()
{ if (fModules) for (Int_t i = 0; i < fNumberOfModules; i++) if (fModules[i]) fModules[i]->DeleteSignal();}
void DeleteSignal()
{ if (fModules) for (Int_t i = fModIndProcessed; i < fModIndRead; i++) if (fModules[i]) fModules[i]->DeleteSignal();}
void DeleteCMAll()
{ if (fModules) for (Int_t i = 0; i < fNumberOfModules; i++) if (fModules[i]) fModules[i]->DeleteCM();}
void DeleteCM()
{ if (fModules) for (Int_t i = fModIndProcessed; i < fModIndRead; i++) if (fModules[i]) fModules[i]->DeleteCM();}
void DeleteCMFerom()
{ if (fModules) for (Int_t i = fModIndProcessed; i < fModIndRead; i++) if (fModules[i]) fModules[i]->DeleteCMFerom ();}
Int_t GetNumberOfSSDModulesConst()
Bool_t SignalOutOfRange(const Short_t signal) const