ROOT logo
AliRoot » ITS » AliITSOnlineSDDInjectors

class AliITSOnlineSDDInjectors: public AliITSOnlineSDD


Implementation of the class used for SDD injector analysis
Origin: F.Prino, Torino, prino@to.infn.it


Function Members (Methods)

public:
AliITSOnlineSDDInjectors()
AliITSOnlineSDDInjectors(Int_t nddl, Int_t ncarlos, Int_t sid)
virtual~AliITSOnlineSDDInjectors()
voidTObject::AbstractMethod(const char* method) const
voidAddEvent(TH2F* his)
voidAnalyzeEvent(TH2F* his)
virtual voidTObject::AppendPad(Option_t* option = "")
static TH2F*AliITSOnlineSDD::ApplyZeroSuppression(TH2F* hRaw, Float_t basl, Int_t tL, Int_t tH)
virtual voidTObject::Browse(TBrowser* b)
voidCalcDriftSpeed(Int_t jpad)
voidCalcTimeBinZero()
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
virtual voidTObject::Delete(Option_t* option = "")MENU
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
virtual voidTObject::Error(const char* method, const char* msgfmt) 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
voidFindCentroids()
voidFindGoodInjectors()
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
voidFitDriftSpeedVsAnode()
voidFitMeanDriftSpeedVsAnode()
Int_tGetAnodeNumber(Int_t iInjPad) const
Int_tGetAnodeStatus(Int_t nAnode) const
Int_tAliITSOnlineSDD::GetCarlos() const
Double_tGetCentroid(Int_t jpad, Int_t jlin) const
Int_tAliITSOnlineSDD::GetDDL() const
Int_tAliITSOnlineSDD::GetDetectorSide() const
virtual Option_t*TObject::GetDrawOption() const
Double_tGetDriftSpeed(Int_t jpad) const
Double_tGetDriftSpeedErr(Int_t jpad) const
Double_t*GetDriftSpeedFitParam() const
TGraphErrors*GetDriftSpeedGraph() const
static Long_tTObject::GetDtorOnly()
Int_tAliITSOnlineSDD::GetFirstGoodTB() const
virtual const char*TObject::GetIconName() const
Int_tGetInjPadNumberFromAnode(Int_t nAnode) const
Int_tGetInjPadStatus(Int_t jpad) const
Int_tAliITSOnlineSDD::GetLastGoodTB() const
Double_tGetMeanDriftSpeed(Int_t ipad) const
TH1F*GetMeanDriftSpeedVsPadHisto() const
Double_tGetMeanPadStatus(Int_t ipad) const
Double_tGetMeanPadStatusCut(Int_t ipad) const
virtual const char*TObject::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
Double_tGetRMSDriftSpeed(Int_t ipad) const
TGraphErrors*GetSelectedDriftSpeedGraph(Int_t minAcceptStatus) const
Double_tGetTimeBinZero() const
Double_tGetTimeStep() const
TGraphErrors*GetTimeVsDistGraph(Int_t jpad) const
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() 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 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_tIsInjectorGood(Int_t jpad, Int_t jlin) const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) 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)
virtual voidTObject::Paint(Option_t* option = "")
voidPolyFit(Int_t degree = 3)
virtual voidTObject::Pop()
virtual voidTObject::Print(Option_t* option = "") const
voidPrintCentroids()
voidPrintInjectorStatus()
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidReset()
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
voidSet20MHzConfig()
voidSet40MHzConfig()
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidAliITSOnlineSDD::SetCarlos(Int_t nc)
voidAliITSOnlineSDD::SetDDL(Int_t nd)
voidSetDefaults()
voidAliITSOnlineSDD::SetDetectorSide(Int_t sid)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidAliITSOnlineSDD::SetFirstGoodTB(Int_t itb = 1)
voidSetFitLimits(Int_t firstpad, Int_t lastpad)
voidSetInjLineRange(Int_t jlin, Int_t tbmin, Int_t tbmax)
voidAliITSOnlineSDD::SetLastGoodTB(Int_t itb = 126)
voidSetMaxDriftSpeed(Float_t vmax)
voidSetMaxDriftSpeedErr(Float_t maxval)
voidSetMaxNumberOfCellsPerAnode(Int_t maxc = 40)
voidSetMinDriftSpeed(Float_t vmin)
static voidTObject::SetObjectStat(Bool_t stat)
voidSetPadStatusCutForFit(Int_t cutval = 4)
voidSetPolDegree(Int_t n)
voidSetThresholds(Int_t ilin, Float_t tl, Float_t th)
voidSetTimeStep(Double_t tstep)
virtual voidTObject::SetUniqueID(UInt_t uid)
voidSetUseLine(Int_t iLine, Bool_t use = kTRUE)
voidSetUseTimeZeroSignal(Bool_t useTZ = kTRUE)
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
voidWriteInjectorStatusToASCII()
voidWriteToASCII(Int_t evNumb, UInt_t timeStamp, Int_t optAppend = 0)
Bool_tWriteToROOT(TFile* fil) const
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()
voidSetPositions()

Data Members

public:
enum { kInjPads
kInjLines
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
protected:
Int_tAliITSOnlineSDD::fCarloscarlos number inside DDL (from 0 to 11)
Int_tAliITSOnlineSDD::fDDLSDD DDL number (from 0 to 24)
Int_tAliITSOnlineSDD::fFirstGoodTBfirst good time bin (to exclude time bin 0)
Int_tAliITSOnlineSDD::fLastGoodTBlast good time bin (to exclude time bin 255)
Int_tAliITSOnlineSDD::fSidedetector side (0-1)
static const Int_tAliITSOnlineSDD::fgkNAnodesnumber of anodes in each half-module
private:
Int_tfActualPolDegreeDegree actually used (<=fPolDegree)
Double_tfCentroid[33][3]array of time bin centroids
Double_tfDriftSpeed[33]drift speed
Double_tfDriftSpeedErr[33]error on drift speed
Int_tfFirstPadForFitfirst injector pad used in fit
Bool_tfGoodInj[33][3]array of good injectors
Float_tfHighThreshold[3]High threshold for injector signal
TH2F*fHistohistogram of channel counts
Int_tfLastPadForFitlast injector pad used in fit
Float_tfLowThreshold[3]Low threshold for injector signal
Int_tfMaxCellsAboveThresholdcut to remove noisy anodes
Float_tfMaxDriftSpeedMaximum value for drift speed
Float_tfMaxDriftSpeedErrMaximum value for error on drift speed
Float_tfMinDriftSpeedMinimum value for drift speed
Int_tfNEventsnumber of events
Int_tfNEventsInPad[33]number of events per pad
Int_tfPadStatusCutForFitminimum value of pad status for fit
Double_t*fParamparameters of polinomial fit to
Int_tfPolDegreeDegree of polynomial fit
Double_tfPosition[3]Coordinates of injector lines
Double_tfRMSCentroid[33][3]array of time rms of injectors
Double_tfRMSTbZeroError on time zero
Double_tfSumDriftSpeed[33]drift speed summed over events
Int_tfSumPadStatus[33]pad status sum
Int_tfSumPadStatusCut[33]pad status (> cut) sum
Double_tfSumSqDriftSpeed[33]drift speed^2 sum
UShort_tfTbMax[3]Maximum time bin for each line
UShort_tfTbMin[3]Minimum time bin for each line
Double_tfTbZeroTime zero for injector event
Double_tfTimeSteptime bin value (25 or 50 ns)
Bool_tfUseLine[3]Flag to use/not use a line
Bool_tfUseTimeZeroSignalflag for usage of time zero signal
static const Float_tfgkDefaultHThresholdDefault for fHighThreshold
static const Float_tfgkDefaultHThreshold1Default for fHighThreshold
static const Float_tfgkDefaultLThresholdDefault for fLowThreshold
static const Float_tfgkDefaultLThreshold1Default for fLowThreshold
static const Float_tfgkDefaultMaxErrDefault for fMaxDriftSpeedErr
static const Float_tfgkDefaultMaxSpeedDefault for fMaxDriftSpeed
static const Float_tfgkDefaultMinSpeedDefault for fMinDriftSpeed
static const Int_tfgkDefaultPolDegreeDefault for fPolDegree
static const UShort_tfgkDefaultTbMax[3]Defaults for fTbMax
static const UShort_tfgkDefaultTbMin[3]Defaults for fTbMin
static const Float_tfgkDefaultTimeStepDefault for fTimeStep
static const Float_tfgkSaturationADC saturation value (1008)

Class Charts

Inheritance Chart:
TObject
AliITSOnlineSDD
AliITSOnlineSDDInjectors

Function documentation

AliITSOnlineSDDInjectors()
 default constructor
AliITSOnlineSDDInjectors(Int_t nddl, Int_t ncarlos, Int_t sid)
 standard constructor
~AliITSOnlineSDDInjectors()
 Destructor
 fHisto should not be deleted here because it points to an histo created
 by the external code which calls the method AnalyzeEvent
 if(fHisto) delete fHisto;
void SetDefaults()
 Sets default values for parameters
void Set20MHzConfig()
 Sets specific parameters for 20 MHz running
void Set40MHzConfig()
 Sets specific parameters for 20 MHz running
void SetPositions()
 Sets drift distances for the 3 injector lines
void Reset()
 Resets all counters
void AnalyzeEvent(TH2F* his)
 Analyze the current event
void AddEvent(TH2F* his)
 Add the drift speed from current event to the average value
Double_t GetRMSDriftSpeed(Int_t ipad) const
 Compute RMS of drift speed distribution on one anode
void FitMeanDriftSpeedVsAnode()
 Fits the average drift speed vs.anode number
TGraphErrors* GetTimeVsDistGraph(Int_t jpad) const
 Builds the graph of drift time vs. drift distance
TGraphErrors* GetDriftSpeedGraph() const
 Builds the graph of drift speed vs. anode number
TGraphErrors* GetSelectedDriftSpeedGraph(Int_t minAcceptStatus) const
 TGraphErrors with only pads with status of injector >= minAcceptStatus
void CalcTimeBinZero()
 Get time zero from trigger signal
void FitDriftSpeedVsAnode()
 fits the anode dependence of drift speed
void PolyFit(Int_t degree = 3)
 fits the anode dependence of drift speed with a polynomial function
void CalcDriftSpeed(Int_t jpad)
 Computes the drift speed from the fit to the 3 injector lines for each anode
Int_t GetAnodeNumber(Int_t iInjPad) const
 Injectors location along anodes:
 Side left  (UP)   - channel 0: injectors on anodes 0,7,15,...,247,255
 Side right (DOWN) - channel 1: injectors on anodes 0,8,16,...,248,255
Int_t GetInjPadNumberFromAnode(Int_t nAnode) const
 Converts anode number into injector pad index
Int_t GetInjPadStatus(Int_t jpad) const
 returns an integer value with status of injector lines for given pad/anode
 status=7  -->  111  all injector are good
 status=6  -->  110  1st line (close to anodes) is bad, other two are good

 status=1  -->  001  only 1st line (close to anodes) good
 status=0  -->  000  all lines are bad
void FindGoodInjectors()
 Mark good injector pads
 good = 1 cell above high threshold + 1 neighbour above low threshold
void FindCentroids()
 Computes the centroids (weighted mean) of teh injector pads
void PrintInjectorStatus()
 Dumps the status bit of injector pads
void PrintCentroids()
 Dumps the drift time centroids of injector pads
void WriteToASCII(Int_t evNumb, UInt_t timeStamp, Int_t optAppend = 0)
 writes drift speed vs. anode fit parameters into an ASCII file
 to be sent to FXS by the DA and processed by the SHUTTLE
TH1F* GetMeanDriftSpeedVsPadHisto() const
 Builds histogram of average drift speed vs. pad number
Bool_t WriteToROOT(TFile* fil) const
 Writes the output histograms into a root file
void WriteInjectorStatusToASCII()
 dump status of injectors encoded into UInt_t
 5 bits (value 0-31) to store number of pads with given status
AliITSOnlineSDDInjectors()
void SetThresholds(Int_t ilin, Float_t tl, Float_t th)
void SetMaxNumberOfCellsPerAnode(Int_t maxc = 40)
void SetInjLineRange(Int_t jlin, Int_t tbmin, Int_t tbmax)
void SetPolDegree(Int_t n)
void SetMinDriftSpeed(Float_t vmin)
void SetMaxDriftSpeed(Float_t vmax)
void SetMaxDriftSpeedErr(Float_t maxval)
void SetFitLimits(Int_t firstpad, Int_t lastpad)
void SetPadStatusCutForFit(Int_t cutval = 4)
void SetTimeStep(Double_t tstep)
void SetUseTimeZeroSignal(Bool_t useTZ = kTRUE)
void SetUseLine(Int_t iLine, Bool_t use = kTRUE)
Double_t* GetDriftSpeedFitParam() const
{ return fParam;}
Double_t GetDriftSpeed(Int_t jpad) const
{return fDriftSpeed[jpad];}
Double_t GetDriftSpeedErr(Int_t jpad) const
{return fDriftSpeedErr[jpad];}
Double_t GetTimeBinZero() const
{return fTbZero;}
Double_t GetTimeStep() const
{return fTimeStep;}
Int_t GetAnodeStatus(Int_t nAnode) const
Double_t GetCentroid(Int_t jpad, Int_t jlin) const
Bool_t IsInjectorGood(Int_t jpad, Int_t jlin) const
Double_t GetMeanDriftSpeed(Int_t ipad) const
Double_t GetMeanPadStatusCut(Int_t ipad) const
Double_t GetMeanPadStatus(Int_t ipad) const