TRD MCM (Multi Chip Module) simulator which simulates the TRAP processing after the AD-conversion. The relevant parameters (i.e. configuration settings of the TRAP) are taken from AliTRDtrapConfig.
AliTRDmcmSim() | |
virtual | ~AliTRDmcmSim() |
void | TObject::AbstractMethod(const char* method) const |
void | AddHitToFitreg(Int_t adc, UShort_t timebin, UShort_t qtot, Short_t ypos, Int_t* label) |
virtual void | TObject::AppendPad(Option_t* option = "") |
virtual void | TObject::Browse(TBrowser* b) |
void | CalcFitreg() |
static ostream& | Cfdat(ostream& os) |
static TClass* | Class() |
virtual const char* | TObject::ClassName() const |
virtual void | TObject::Clear(Option_t* = "") |
virtual TObject* | TObject::Clone(const char* newname = "") const |
virtual Int_t | TObject::Compare(const TObject* obj) const |
virtual void | TObject::Copy(TObject& object) const |
virtual void | TObject::Delete(Option_t* option = "")MENU |
virtual Int_t | TObject::DistancetoPrimitive(Int_t px, Int_t py) |
void | Draw(Option_t *const option = "") |
virtual void | TObject::DrawClass() constMENU |
virtual TObject* | TObject::DrawClone(Option_t* option = "") constMENU |
virtual void | TObject::Dump() constMENU |
virtual void | TObject::Error(const char* method, const char* msgfmt) const |
virtual void | TObject::Execute(const char* method, const char* params, Int_t* error = 0) |
virtual void | TObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0) |
virtual void | TObject::ExecuteEvent(Int_t event, Int_t px, Int_t py) |
virtual void | TObject::Fatal(const char* method, const char* msgfmt) const |
void | Filter() |
void | FilterGain() |
void | FilterGainInit() |
UShort_t | FilterGainNextSample(Int_t adc, UShort_t value) |
void | FilterPedestal() |
void | FilterPedestalInit(Int_t baseline = 10) |
UShort_t | FilterPedestalNextSample(Int_t adc, Int_t timebin, UShort_t value) |
void | FilterTail() |
void | FilterTailInit(Int_t baseline = -1) |
UShort_t | FilterTailNextSample(Int_t adc, UShort_t value) |
virtual TObject* | TObject::FindObject(const char* name) const |
virtual TObject* | TObject::FindObject(const TObject* obj) const |
void | FitTracklet() |
static Int_t | GetAddBaseline() |
static Bool_t | GetApplyCut() |
Int_t | GetCol(Int_t iadc) |
Int_t | GetDataFiltered(Int_t iadc, Int_t timebin) const |
Int_t | GetDataRaw(Int_t iadc, Int_t timebin) const |
TTreeSRedirector* | GetDebugStream() const |
Int_t | GetDetector() const |
virtual Option_t* | TObject::GetDrawOption() const |
static Long_t | TObject::GetDtorOnly() |
Bool_t | GetHit(Int_t index, Int_t& channel, Int_t& timebin, Int_t& qtot, Int_t& ypos, Float_t& y, Int_t& label) const |
virtual const char* | TObject::GetIconName() const |
Int_t | GetMcmPos() const |
virtual const char* | TObject::GetName() const |
Int_t | GetNHits() const |
virtual char* | TObject::GetObjectInfo(Int_t px, Int_t py) const |
static Bool_t | TObject::GetObjectStat() |
virtual Option_t* | TObject::GetOption() const |
Int_t | GetPID(Int_t q0, Int_t q1) |
Int_t | GetRobPos() const |
Int_t | GetRow() const |
static Bool_t | GetStoreClusters() |
virtual const char* | TObject::GetTitle() const |
TClonesArray* | GetTrackletArray() const |
TString | GetTrklBranchName() const |
virtual UInt_t | TObject::GetUniqueID() const |
virtual Bool_t | TObject::HandleTimer(TTimer* timer) |
virtual ULong_t | TObject::Hash() const |
virtual void | TObject::Info(const char* method, const char* msgfmt) const |
virtual Bool_t | TObject::InheritsFrom(const char* classname) const |
virtual Bool_t | TObject::InheritsFrom(const TClass* cl) const |
void | Init(Int_t det, Int_t rob, Int_t mcm, Bool_t newEvent = kFALSE) |
virtual void | TObject::Inspect() constMENU |
void | TObject::InvertBit(UInt_t f) |
virtual TClass* | IsA() const |
virtual Bool_t | TObject::IsEqual(const TObject* obj) const |
virtual Bool_t | TObject::IsFolder() const |
Bool_t | TObject::IsOnHeap() const |
virtual Bool_t | TObject::IsSortable() const |
Bool_t | TObject::IsZombie() const |
Bool_t | LoadMCM(AliRunLoader *const runloader, Int_t det, Int_t rob, Int_t mcm) |
virtual void | TObject::ls(Option_t* option = "") const |
void | TObject::MayNotUse(const char* method) const |
void | NoiseTest(Int_t nsamples, Int_t mean, Int_t sigma, Int_t inputGain = 1, Int_t inputTail = 2) |
virtual Bool_t | TObject::Notify() |
void | TObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const |
static void | TObject::operator delete(void* ptr) |
static void | TObject::operator delete(void* ptr, void* vp) |
static void | TObject::operator delete[](void* ptr) |
static void | TObject::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 void | TObject::Paint(Option_t* option = "") |
virtual void | TObject::Pop() |
void | Print(Option_t *const option = "") const |
void | PrintAdcDatDatx(ostream& os, Bool_t broadcast = kFALSE, Int_t timeBinOffset = -1) const |
void | PrintAdcDatHuman(ostream& os) const |
void | PrintAdcDatTxt(ostream& os) const |
void | PrintAdcDatXml(ostream& os) const |
void | PrintFitRegXml(ostream& os) const |
void | PrintPidLutHuman() |
void | PrintTrackletsXml(ostream& os) const |
Int_t | ProduceRawStream(UInt_t* buf, Int_t bufsize, UInt_t iEv = 0) const |
Int_t | ProduceTrackletStream(UInt_t* buf, Int_t bufsize) |
static ostream& | Raw(ostream& os) |
virtual Int_t | TObject::Read(const char* name) |
static Bool_t | ReadPackedConfig(AliTRDtrapConfig* cfg, Int_t hc, UInt_t* data, Int_t size) |
virtual void | TObject::RecursiveRemove(TObject* obj) |
void | Reset() |
void | TObject::ResetBit(UInt_t f) |
virtual void | TObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU |
virtual void | TObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "") |
static void | SetAddBaseline(Int_t baseline) |
static void | SetApplyCut(Bool_t applyCut) |
void | TObject::SetBit(UInt_t f) |
void | TObject::SetBit(UInt_t f, Bool_t set) |
void | SetData(Int_t iadc, const Int_t *const adc) |
void | SetData(AliTRDarrayADC *const adcArray, AliTRDdigitsManager *const digitsManager = 0x0) |
void | SetData(Int_t iadc, Int_t it, Int_t adc) |
void | SetDataByPad(const AliTRDarrayADC *const adcArray, AliTRDdigitsManager *const digitsManager = 0x0) |
void | SetDataPedestal(Int_t iadc) |
void | SetDebugStream(TTreeSRedirector* stream) |
virtual void | TObject::SetDrawOption(Option_t* option = "")MENU |
static void | TObject::SetDtorOnly(void* obj) |
static void | TObject::SetObjectStat(Bool_t stat) |
static void | SetStoreClusters(Bool_t storeClusters) |
void | SetTrklBranchName(TString name) |
virtual void | TObject::SetUniqueID(UInt_t uid) |
virtual void | ShowMembers(TMemberInspector&) |
Bool_t | StoreTracklets() |
virtual void | Streamer(TBuffer&) |
void | StreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b) |
virtual void | TObject::SysError(const char* method, const char* msgfmt) const |
Bool_t | TObject::TestBit(UInt_t f) const |
Int_t | TObject::TestBits(UInt_t f) const |
static ostream& | Text(ostream& os) |
void | Tracklet() |
void | TrackletSelection() |
virtual void | TObject::UseCurrentStyle() |
virtual void | TObject::Warning(const char* method, const char* msgfmt) const |
virtual Int_t | TObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) |
virtual Int_t | TObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const |
void | WriteData(AliTRDarrayADC* digits) |
void | ZSMapping() |
UInt_t | AddUintClipping(UInt_t a, UInt_t b, UInt_t nbits) const |
Bool_t | CheckInitialized() const |
virtual void | TObject::DoError(int level, const char* location, const char* fmt, va_list va) const |
void | TObject::MakeZombie() |
void | SetNTimebins(Int_t ntimebins) |
void | Sort2(UShort_t idx1i, UShort_t idx2i, UShort_t val1i, UShort_t val2i, UShort_t *const idx1o, UShort_t *const idx2o, UShort_t *const val1o, UShort_t *const val2o) const |
void | Sort3(UShort_t idx1i, UShort_t idx2i, UShort_t idx3i, UShort_t val1i, UShort_t val2i, UShort_t val3i, UShort_t *const idx1o, UShort_t *const idx2o, UShort_t *const idx3o, UShort_t *const val1o, UShort_t *const val2o, UShort_t *const val3o) |
void | Sort6To2Worst(UShort_t idx1i, UShort_t idx2i, UShort_t idx3i, UShort_t idx4i, UShort_t idx5i, UShort_t idx6i, UShort_t val1i, UShort_t val2i, UShort_t val3i, UShort_t val4i, UShort_t val5i, UShort_t val6i, UShort_t *const idx5o, UShort_t *const idx6o) |
void | Sort6To4(UShort_t idx1i, UShort_t idx2i, UShort_t idx3i, UShort_t idx4i, UShort_t idx5i, UShort_t idx6i, UShort_t val1i, UShort_t val2i, UShort_t val3i, UShort_t val4i, UShort_t val5i, UShort_t val6i, UShort_t *const idx1o, UShort_t *const idx2o, UShort_t *const idx3o, UShort_t *const idx4o, UShort_t *const val1o, UShort_t *const val2o, UShort_t *const val3o, UShort_t *const val4o) |
AliTRDmcmSim(const AliTRDmcmSim& m) | |
AliTRDmcmSim& | operator=(const AliTRDmcmSim& m) |
enum TObject::EStatusBits { | kCanDelete | |
kMustCleanup | ||
kObjInCanvas | ||
kIsReferenced | ||
kHasUUID | ||
kCannotPick | ||
kNoContextMenu | ||
kInvalidObject | ||
}; | ||
enum TObject::[unnamed] { | kIsOnHeap | |
kNotDeleted | ||
kZombie | ||
kBitMask | ||
kSingleKey | ||
kOverwrite | ||
kWriteDelete | ||
}; |
static const Int_t | fgkDmemAddrDeflCorr | DMEM address of deflection correction |
static const Int_t | fgkDmemAddrDeflCutEnd | DMEM end address of deflection cut |
static const Int_t | fgkDmemAddrDeflCutStart | DMEM start address of deflection cut |
static const Int_t | fgkDmemAddrLUTEnd | maximum possible end address for the LUT table |
static const Int_t | fgkDmemAddrLUTLength | address where real size of the LUT table is stored |
static const Int_t | fgkDmemAddrLUTStart | LUT start address |
static const Int_t | fgkDmemAddrLUTcor0 | |
static const Int_t | fgkDmemAddrLUTcor1 | |
static const Int_t | fgkDmemAddrLUTnbins | |
static const Int_t | fgkDmemAddrNdrift | DMEM address of Ndrift |
static const Int_t | fgkDmemAddrTrackletEnd | Storage area for tracklets, end address |
static const Int_t | fgkDmemAddrTrackletStart | Storage area for tracklets, start address |
Int_t** | fADCF | Array with MCM ADC values (Filtered, 12 bit) |
Int_t** | fADCR | Array with MCM ADC values (Raw, 12 bit) |
TTreeSRedirector* | fDebugStream | |
Int_t | fDetector | Chamber ID |
AliTRDarrayDictionary* | fDict[3] | pointers to label dictionaries |
AliTRDdigitsManager* | fDigitsManager | pointer to digits manager used for MC label calculation |
AliTRDfeeParam* | fFeeParam | FEE parameters |
Int_t | fFitPtr[4] | pointer to the tracklet to be calculated by CPU i |
AliTRDmcmSim::FitReg_t* | fFitReg | |
UInt_t* | fGainCounterA | Counter for values above FGTA in the gain filter |
UInt_t* | fGainCounterB | Counter for values above FGTB in the gain filter |
AliTRDmcmSim::Hit_t | fHits[100] | |
Bool_t | fInitialized | memory is allocated if initialized |
UInt_t* | fMCMT | tracklet word for one mcm/trap-chip |
Int_t | fMcmPos | MCM Position on chamber |
Int_t | fNHits | Number of detected hits |
Int_t | fNTimeBin | Number of timebins currently allocated |
UInt_t* | fPedAcc | Accumulator for pedestal filter |
Int_t | fRobPos | ROB Position on chamber |
Int_t | fRow | Pad row number (0-11 or 0-15) of the MCM on chamber |
UShort_t* | fTailAmplLong | Amplitude of the long component in the tail filter |
UShort_t* | fTailAmplShort | Amplitude of the short component in the tail filter |
TClonesArray* | fTrackletArray | Array of AliTRDtrackletMCM which contains MC information in addition to the tracklet word |
AliTRDtrapConfig* | fTrapConfig | TRAP config |
TString | fTrklBranchName | name of the tracklet branch to right to |
Int_t* | fZSMap | Zero suppression map (1 dimensional projection) |
static const Int_t | fgkAddDigits | additional digits used for internal representation of ADC data |
static const UShort_t | fgkFPshifts[4] | shifts for pedestal filter |
static const Int_t | fgkFormatIndex | index for format settings in stream |
static const Int_t | fgkMaxTracklets | maximum number of tracklet-words submitted per MCM (one per CPU) |
static const Int_t | fgkNCPU | Number of CPUs in the TRAP |
static const Int_t | fgkNHitsMC | maximum number of hits for which MC information is kept |
Inheritance Chart: | ||||||||
|
AliTRDmcmSim default constructor By default, nothing is initialized. It is necessary to issue Init before use.
Initialize the class with new MCM position information memory is allocated in the first initialization
Reallocate memory if a change in the number of timebins is needed (should not be the case for real data)
loads the ADC data as obtained from the digitsManager for the specified MCM. This method is meant for rare execution, e.g. in the visualization. When called frequently use SetData(...) instead.
This function can be used to test the filters. It feeds nsamples of ADC values with a gaussian distribution specified by mean and sigma. The filter chain implemented here consists of: Pedestal -> Gain -> Tail With inputGain and inputTail the input to the gain and tail filter, respectively, can be chosen where 0: noise input 1: pedestal output 2: gain output The input has to be chosen from a stage before. The filter behaviour is controlled by the TRAP parameters from AliTRDtrapConfig in the same way as in normal simulation. The functions produces four histograms with the values at the different stages.
Prints the data stored and/or calculated for this MCM. The output is controlled by option which can be a sequence of any of the following characters: R - prints raw ADC data F - prints filtered data H - prints detected hits T - prints found tracklets The later stages are only meaningful after the corresponding calculations have been performed.
Plots the data stored in a 2-dim. timebin vs. ADC channel plot. The option selects what data is plotted and can be a sequence of the following characters: R - plot raw data (default) F - plot filtered data (meaningless if R is specified) In addition to the ADC values: H - plot hits T - plot tracklets
Set the ADC data from an AliTRDarrayADC
Set the ADC data from an AliTRDarrayADC (by pad, to be used during initial reading in simulation)
retrieve the MC hit information (not available in TRAP hardware)
Produce raw data stream from this MCM and put in buf Returns number of words filled, or negative value with -1 * number of overflowed words
Produce tracklet data stream from this MCM and put in buf Returns number of words filled, or negative value with -1 * number of overflowed words
Filter the raw ADC values. The active filter stages and their parameters are taken from AliTRDtrapConfig. The raw data is stored separate from the filtered data. Thus, it is possible to run the filters on a set of raw values sequentially for parameter tuning.
Initializes the pedestal filter assuming that the input has been constant for a long time (compared to the time constant).
Returns the output of the pedestal filter given the input value. The output depends on the internal registers and, thus, the history of the filter.
Apply the gain filter to the given value. The output depends on the internal registers and, thus, the history of the filter.
Initializes the tail filter assuming that the input has been at the baseline value (configured by FTFP) for a sufficiently long time.
Returns the output of the tail filter for the given input value. The output depends on the internal registers and, thus, the history of the filter.
Zero Suppression Mapping implemented in TRAP chip
only implemented for up to 30 timebins
See detail TRAP manual "Data Indication" section:
http://www.kip.uni-heidelberg.de/ti/TRD/doc/trap/TRAP-UserManual.pdf
Add the given hit to the fit register which is lateron used for the tracklet calculation. In addition to the fit sums in the fit register MC information is stored.
Select up to 4 tracklet candidates from the fit registers and assign them to the CPUs.
Perform the actual tracklet fit based on the fit sums which have been filled in the fit registers.
Run the tracklet calculation by calling sequentially: CalcFitreg(); TrackletSelection(); FitTracklet() and store the tracklets
write back the processed data configured by EBSF EBSF = 1: unfiltered data; EBSF = 0: filtered data zero-suppressed valued are written as -1 to digits
This function adds a and b (unsigned) and clips to the specified number of bits.
sorting for tracklet selection
sorting for tracklet selection
sorting for tracklet selection
sorting for tracklet selection
manipulator to activate output in CFDAT format to send to the FEE via SCSN
print ADC data in datx format (to send to FEE)
Read the packed configuration from the passed memory block To be used to retrieve the TRAP configuration from the configuration as sent in the raw data.
clears filter registers and internal data
{ fDebugStream = stream; }
Get unfiltered ADC data
{ return (fADCR[iadc][timebin] >> 2); }
Get filtered ADC data
{ return (fADCF[iadc][timebin] >> 2); }
Additional baseline which is added for the processing in the TRAP and removed when writing back the data. This is needed to run with TRAP parameters set for a different baseline but it will not change the baseline of the output.
{ fgAddBaseline = baseline; }