ROOT logo
AliRoot » TPC » BASE » AliTPCCalibRaw

class AliTPCCalibRaw: public AliTPCCalibRawBase


Implementation of the TPC Raw drift velocity and Altro L1 Phase  calibration

Origin: Jens Wiechula, J.Wiechula@gsi.de





 *                                Class Description                                  *



example
TFile f("CalibAltro.root");
AliTPCCalibRaw *al=(AliTPCCalibRaw*)f.Get(f.GetListOfKeys()->At(0)->GetName())
{
TCanvas *c1=(TCanvas*)gROOT->FindObject("c1");
if (!c1) c1=new TCanvas("c1","c1");
c1->Clear();

TH2F h2f("h2","h2;RCU;fail",216,0,216,al->GetNevents(),0,al->GetNevents());
Bool_t first=kTRUE;
Int_t i,iev;
for (i=0;i<216;++i) {
  TVectorF *v=al->GetALTROL1PhaseFailEventsRCU(i);
  if (!v) continue;
  for (iev=0;iev<al->GetNevents();++iev) {
    h2f->SetBinContent(i+1,iev+1,(*v)(iev));
  }
   TH1F h(*v);
   h.SetLineColor(i/216.*50+50);
   ((TH1F*)h.Clone(Form("h%d",i)))->Draw(first?"":"same");
   c1->Modified();
   c1->Update();
  first=kFALSE;
}
h2f->Draw("col");
}


Function Members (Methods)

public:
AliTPCCalibRaw()
AliTPCCalibRaw(const TMap* config)
virtual~AliTPCCalibRaw()
voidTObject::AbstractMethod(const char* method) const
virtual voidAnalyse()
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTNamed::Clear(Option_t* option = "")
virtual TObject*TNamed::Clone(const char* newname = "") const
virtual Int_tTNamed::Compare(const TObject* obj) const
virtual voidTNamed::Copy(TObject& named) 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 voidAliTPCCalibRawBase::DumpToFile(const Char_t* filename, const Char_t* dir = "", Bool_t append = kFALSE)
virtual voidEndEvent()
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
virtual voidTNamed::FillBuffer(char*& buffer)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
const TVectorF*GetALTROL1PhaseEvents() const
const TVectorF*GetALTROL1PhaseEventsRCU(Int_t rcu) const
const TVectorF*GetALTROL1PhaseFailEventsRCU(Int_t rcu) const
AliTPCAltroMapping**AliTPCCalibRawBase::GetAltroMapping()
const AliAltroRawStream*AliTPCCalibRawBase::GetAltroRawStream() const
Int_tAliTPCCalibRawBase::GetDebugLevel() const
TTreeSRedirector*AliTPCCalibRawBase::GetDebugStreamer()
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
const TVectorF*GetEventTimeStamps() const
UInt_tAliTPCCalibRawBase::GetEventType() const
const TVectorF*GetFiredPadsSensitive() const
Int_tAliTPCCalibRawBase::GetFirstTimeBin() const
UInt_tGetFirstTimeStamp() const
const THnSparseI*GetHnDrift() const
virtual const char*TObject::GetIconName() const
Double_tAliTPCCalibRawBase::GetL1Phase() const
Double_tAliTPCCalibRawBase::GetL1PhaseTB() const
Int_tAliTPCCalibRawBase::GetLastTimeBin() const
UInt_tAliTPCCalibRawBase::GetLastTimeStamp() const
virtual const char*TNamed::GetName() const
Int_tAliTPCCalibRawBase::GetNevents() const
UInt_tGetNFailL1Phase() const
UInt_tGetNFailL1PhaseEvents() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
const TVectorF*GetOccupancyEvent() const
const TVectorF*GetOccupancyEventSensitive() const
virtual Option_t*TObject::GetOption() const
Int_tGetPeakDetectionMinus() const
Int_tGetPeakDetectionPlus() const
UInt_tAliTPCCalibRawBase::GetRunNumber() const
const TVectorF*GetSignalSumEvent() const
const TVectorF*GetSignalSumEventSensitive() const
Int_tAliTPCCalibRawBase::GetStreamLevel() const
UInt_tAliTPCCalibRawBase::GetTimeStamp() const
virtual const char*TNamed::GetTitle() const
const AliTPCROC*AliTPCCalibRawBase::GetTPCROC() const
virtual UInt_tTObject::GetUniqueID() const
Bool_tAliTPCCalibRawBase::GetUseL1Phase() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTNamed::Hash() const
voidAliTPCCalibRawBase::IncrementNevents()
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_tTObject::IsOnHeap() const
virtual Bool_tTNamed::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTNamed::ls(Option_t* option = "") const
TCanvas*MakeCanvasOccupancy(const Int_t xType = 1, Bool_t sen = kFALSE)
TGraph*MakeGraphOccupancy(const Int_t type = 0, const Int_t xType = 0)
TH1F*MakeHistL1PhaseDist()
TH2C*MakeHistL1RCUEvents(Int_t type = 0)
TH2C*MakeHistL1RCUEventsIROC(Int_t type = 0)
TH2C*MakeHistL1RCUEventsOROC(Int_t type = 0)
TVectorF*MakeVectL1PhaseDist()
voidTObject::MayNotUse(const char* method) const
voidMerge(AliTPCCalibRaw *const sig)
virtual Long64_tMerge(TCollection *const list)
voidAliTPCCalibRawBase::MergeBase(const AliTPCCalibRawBase* calib)
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 = "")
virtual voidTObject::Pop()
virtual voidTNamed::Print(Option_t* option = "") const
virtual voidAliTPCCalibRawBase::ProcessBunch(const Int_t, const Int_t, const Int_t, const Int_t, const UInt_t, const UShort_t*)
Bool_tAliTPCCalibRawBase::ProcessEvent(AliTPCRawStreamV3 *const rawStreamV3)
Bool_tAliTPCCalibRawBase::ProcessEvent(AliRawReader *const rawReader)
Bool_tAliTPCCalibRawBase::ProcessEvent(eventHeaderStruct *const event)
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
virtual voidResetEvent()
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
voidAliTPCCalibRawBase::SetAltroMapping(AliTPCAltroMapping** mapp)
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidAliTPCCalibRawBase::SetDebugLevel(Int_t level)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
static voidTObject::SetObjectStat(Bool_t stat)
voidSetRangePeakDetection(Int_t minus, Int_t plus)
voidAliTPCCalibRawBase::SetRangeTime(Int_t firstTimeBin, Int_t lastTimeBin)
voidAliTPCCalibRawBase::SetRunNumber(UInt_t eventnumber)
voidAliTPCCalibRawBase::SetStreamLevel(Int_t streamLevel)
voidAliTPCCalibRawBase::SetTimeStampEvent(UInt_t timestamp)
virtual voidTNamed::SetTitle(const char* title = "")MENU
virtual voidTObject::SetUniqueID(UInt_t uid)
voidAliTPCCalibRawBase::SetUseL1Phase(Bool_t useL1Phase = kTRUE)
virtual voidShowMembers(TMemberInspector&)
virtual Int_tTNamed::Sizeof() const
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 Int_tUpdate(const Int_t isector, const Int_t iRow, const Int_t iPad, const Int_t iTimeBin, const Float_t signal)
virtual voidUpdateDDL()
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
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()

Data Members

public:
enum { kNRCU
kHnBinsDV
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
protected:
Double_tAliTPCCalibRawBase::fAltroL1Phase! L1 Phase
Float_tAliTPCCalibRawBase::fAltroL1PhaseTB! L1 Phase in time bins
AliAltroRawStream*AliTPCCalibRawBase::fAltroRawStream! pointer to the altro object
Int_tAliTPCCalibRawBase::fCurrDDLNum! Current DDL number
Int_tAliTPCCalibRawBase::fCurrRCUId! Current RCU Id
Int_tAliTPCCalibRawBase::fDebugLevel! debug level
TTreeSRedirector*AliTPCCalibRawBase::fDebugStreamer! debug streamer
UInt_tAliTPCCalibRawBase::fEventType! current event Type from event header
Int_tAliTPCCalibRawBase::fFirstTimeBinFirst Time bin used for analysis
UInt_tAliTPCCalibRawBase::fFirstTimeStampFirst event time stamp
Int_tAliTPCCalibRawBase::fLastTimeBinLast Time bin used for analysis
UInt_tAliTPCCalibRawBase::fLastTimeStampLast event time stamp
AliTPCAltroMapping**AliTPCCalibRawBase::fMapping! Altro Mapping object
TStringTNamed::fNameobject identifier
Int_tAliTPCCalibRawBase::fNeventsNumber of processed events
Int_tAliTPCCalibRawBase::fPrevDDLNum! Current DDL number
Int_tAliTPCCalibRawBase::fPrevRCUId! Previous RCU Id
AliTPCROC*AliTPCCalibRawBase::fROC! ROC information
UInt_tAliTPCCalibRawBase::fRunNumbercurrent run number from event header
Int_tAliTPCCalibRawBase::fStreamLevel! level of streamer output
UInt_tAliTPCCalibRawBase::fTimeStamp! time stamp from event header
TStringTNamed::fTitleobject title
Bool_tAliTPCCalibRawBase::fUseL1Phaseuse L1 Phase information?
private:
TVectorFfArrALTROL1PhaseArray of L1 phases on an event bases;
TObjArrayfArrALTROL1PhaseEventL1 phase for each RCU and event
TObjArrayfArrALTROL1PhaseFailEventL1 failure for each RCU and event
TVectorFfArrCurrentPhase!Current phase of all RCUs
TVectorFfArrCurrentPhaseDist!Phase distribution of the current event
TVectorFfArrFailEventNumberevent numbers of failed events;
Int_tfCurrentChannel! current channel processed
Int_tfCurrentPad! current pad processed
Int_tfCurrentRow! current row processed
Int_tfCurrentSector! current sector processed
THnSparseI*fHnDriftHistogram last time bin vs. ROC, Time
Int_tfLastSector! current sector processed
Int_tfLastSignal! last signal processed
Int_tfLastTimeBinProc! last time bin processed
UInt_tfNBinsTimeNumber of bin in time
UInt_tfNFailL1PhaseNumber of failures in L1 phase
UInt_tfNFailL1PhaseEventNumber of events with L1 phase failures
Int_tfNOkMinus! number of processed time bins fullfilling peak criteria
Int_tfNOkPlus! number of processed time bins fullfilling peak criteria
UInt_tfNSecTimeNumber of seconds per bin in time
Int_tfNanoSec! current nano seconds stamp
Bool_tfPadProcessed! if last pead has already been filled for the current pad
Int_tfPeakDetMinusConsecutive timebins on rising edge to be regarded as a signal
Int_tfPeakDetPlusConsecutive timebins on falling edge to be regarded as a signal
Int_tfPeakTimeBin! time bin with local maximum
TVectorFfVNfiredPadsSenEventnumber of pads with a signal above threshold in sensitive regions
TVectorFfVOccupancyEventoccupancy per event (number of samples above threshold)
TVectorFfVOccupancySenEventoccupancy per event (number of samples abouve threshold) in sensitive regions
TVectorFfVSignalSumEventoccupancy per event (sum of all adc values)
TVectorFfVSignalSumSenEventoccupancy per event (sum of all adc values) in sensitive regions
TVectorFfVTimeStampEventtimestamp for all events

Class Charts

Inheritance Chart:
TNamed
AliTPCCalibRawBase
AliTPCCalibRaw

Function documentation

AliTPCCalibRaw()
 Default ctor

AliTPCCalibRaw(const TMap* config)
 Default ctor

~AliTPCCalibRaw()
 dtor

Int_t Update(const Int_t isector, const Int_t iRow, const Int_t iPad, const Int_t iTimeBin, const Float_t signal)
 Data filling method

void UpdateDDL()
 fill ALTRO L1 information

void ResetEvent()
 Reset event counters

void EndEvent()
 End event analysis

TH2C * MakeHistL1RCUEvents(Int_t type = 0)
 Create a 2D histo RCU:Events indicating the there was a deviation
 from the mean L1 phase of the event

type: 0=Failures, 1=Phases
TH1F * MakeHistL1PhaseDist()
 L1 phase distribution. Should be flat in ideal case

TVectorF * MakeVectL1PhaseDist()
 L1 phase distribution. Should be flat in ideal case

TH2C * MakeHistL1RCUEventsIROC(Int_t type = 0)
 Create a 2D histo RCU:Events indicating the there was a deviation
 from the mean L1 phase of the event

TH2C * MakeHistL1RCUEventsOROC(Int_t type = 0)
 Create a 2D histo RCU:Events indicating the there was a deviation
 from the mean L1 phase of the event

void CreateDVhist()
 Setup the HnSparse for the drift velocity determination

void Analyse()
 Analyse Data

TGraph* MakeGraphOccupancy(const Int_t type = 0, const Int_t xType = 0)
 create occupancy graph (of samples abouve threshold)
 type=0:   number of samples
 type=1:   mean data volume (ADC counts/sample)
 type=2:   data volume (ADC counts)
 type=3:   samples per ADC count
 type=4:   sample occupancy

 type=5: number of sample sensitive / number of samples

 same in sensitive regions:
 type=10:  number of samples
 type=11:  mean data volume (ADC counts/sample)
 type=12:  data volume (ADC counts)
 type=13:  samples per ADC count
 type=14:  sample occupancy

 type=16: number of samples sensitive / number of pads sensitive
 type=17: pad occupancy in sensitive regions
 xType=0:  vs. time stamp
 xType=1:  vs. event counter

TCanvas* MakeCanvasOccupancy(const Int_t xType = 1, Bool_t sen = kFALSE)
 Create a canvas with occupancy information of all 'type's (see MakeGraphOccupancy)
 xType=0: vs. timestamp
 xType=1: vs. event number

 sen=kTRUE: for sensitive regions

void Merge(AliTPCCalibRaw *const sig)
 Merge sig with this instance

Long64_t Merge(TCollection *const list)
 Merge all objects of this type in list

TVectorF * MakeArrL1PhaseRCU(Int_t rcu, Bool_t force = kFALSE)
 Inline Functions

TVectorF * MakeArrL1PhaseFailRCU(Int_t rcu, Bool_t force = kFALSE)
Bool_t IsEdgePad(Int_t sector, Int_t row, Int_t pad) const
AliTPCCalibRaw()
UInt_t GetNFailL1Phase() const
{return fNFailL1Phase;}
UInt_t GetNFailL1PhaseEvents() const
Int_t GetPeakDetectionMinus() const
{return fPeakDetMinus;}
Int_t GetPeakDetectionPlus() const
{return fPeakDetPlus;}
const TVectorF* GetALTROL1PhaseEvents() const
{return &fArrALTROL1Phase;}
const TVectorF * GetALTROL1PhaseEventsRCU(Int_t rcu) const
{return (TVectorF*)fArrALTROL1PhaseEvent.At(rcu);}
const TVectorF * GetALTROL1PhaseFailEventsRCU(Int_t rcu) const
const TVectorF * GetOccupancyEvent() const
{return &fVOccupancyEvent;}
const TVectorF * GetOccupancyEventSensitive() const
const TVectorF * GetSignalSumEvent() const
{return &fVSignalSumEvent;}
const TVectorF * GetSignalSumEventSensitive() const
const TVectorF * GetFiredPadsSensitive() const
const TVectorF * GetEventTimeStamps() const
{return &fVTimeStampEvent;}
UInt_t GetFirstTimeStamp() const
{return fFirstTimeStamp;}
void SetRangePeakDetection(Int_t minus, Int_t plus)
Phase info
{ fPeakDetMinus=minus; fPeakDetPlus=plus;}
const THnSparseI * GetHnDrift() const
   AliTPCCalPad *CreateCalPadL1Mean();
   AliTPCCalPad *CreateCalPadL1RMS();
{return fHnDrift;}