Implementation of the TPC clusterer 1. The Input data for reconstruction - Options 1.a Simulated data - TTree - invoked Digits2Clusters() 1.b Raw data - Digits2Clusters(AliRawReader* rawReader); 1.c HLT clusters - Digits2Clusters and Digits2Clusters(AliRawReader* rawReader) invoke ReadHLTClusters() fUseHLTClusters - switches between different inputs 1 -> only TPC raw/sim data 2 -> if present TPC raw/sim data, otherwise HLT clusters 3 -> only HLT clusters 4 -> if present HLT clusters, otherwise TPC raw/sim data 2. The Output data 2.a TTree with clusters - if SetOutput(TTree * tree) invoked 2.b TObjArray - Faster option for HLT 2.c TClonesArray - Faster option for HLT (smaller memory consumption), activate with fBClonesArray flag 3. Reconstruction setup see AliTPCRecoParam for list of parameters The reconstruction parameterization taken from the AliTPCReconstructor::GetRecoParam() Possible to setup it in reconstruction macro AliTPCReconstructor::SetRecoParam(...) Origin: Marian Ivanov
AliTPCclusterer(const AliTPCParam* par, const AliTPCRecoParam* recoParam = 0) | |
virtual | ~AliTPCclusterer() |
void | TObject::AbstractMethod(const char* method) const |
virtual void | TObject::AppendPad(Option_t* option = "") |
virtual void | TObject::Browse(TBrowser* b) |
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 void | Digits2Clusters() |
virtual void | Digits2Clusters(AliRawReader* rawReader) |
virtual Int_t | TObject::DistancetoPrimitive(Int_t px, Int_t py) |
virtual void | TObject::Draw(Option_t* 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 |
virtual void | FillRow() |
virtual TObject* | TObject::FindObject(const char* name) const |
virtual TObject* | TObject::FindObject(const TObject* obj) const |
virtual Option_t* | TObject::GetDrawOption() const |
static Long_t | TObject::GetDtorOnly() |
virtual const char* | TObject::GetIconName() const |
virtual const char* | TObject::GetName() const |
virtual char* | TObject::GetObjectInfo(Int_t px, Int_t py) const |
static Bool_t | TObject::GetObjectStat() |
virtual Option_t* | TObject::GetOption() const |
TObjArray* | GetOutputArray() |
TClonesArray* | GetOutputClonesArray() |
virtual const char* | TObject::GetTitle() 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 |
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 |
virtual void | TObject::ls(Option_t* option = "") const |
void | TObject::MayNotUse(const char* method) const |
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() |
virtual void | TObject::Print(Option_t* option = "") const |
virtual Int_t | TObject::Read(const char* name) |
virtual void | TObject::RecursiveRemove(TObject* obj) |
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 = "") |
void | TObject::SetBit(UInt_t f) |
void | TObject::SetBit(UInt_t f, Bool_t set) |
virtual void | TObject::SetDrawOption(Option_t* option = "")MENU |
static void | TObject::SetDtorOnly(void* obj) |
virtual void | SetInput(TTree* tree) |
static void | TObject::SetObjectStat(Bool_t stat) |
virtual void | SetOutput(TTree* tree) |
virtual void | TObject::SetUniqueID(UInt_t uid) |
void | SetUseHLTClusters(Int_t useHLTClusters) |
virtual void | ShowMembers(TMemberInspector&) |
void | StoreInClonesArray(Bool_t bOutput = kTRUE) |
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 |
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 |
virtual void | TObject::DoError(int level, const char* location, const char* fmt, va_list va) const |
void | TObject::MakeZombie() |
AliTPCclusterer(const AliTPCclusterer& param) | |
Bool_t | AcceptCluster(AliTPCclusterMI* c) |
void | AddCluster(AliTPCclusterMI& c, Float_t* matrix, Int_t pos) |
void | FindClusters(AliTPCCalROC* noiseROC) |
Float_t | FitMax(Float_t vmatrix[][5], Float_t y, Float_t z, Float_t sigmay, Float_t sigmaz) |
Float_t | GetSigmaY2(Int_t iz) |
Float_t | GetSigmaZ2(Int_t iz) |
Bool_t | IsMaximum(Float_t q, Int_t max, const Float_t* bins) const |
void | MakeCluster(Int_t k, Int_t max, Float_t* bins, UInt_t m, AliTPCclusterMI& c) |
void | MakeCluster2(Int_t k, Int_t max, Float_t* bins, UInt_t m, AliTPCclusterMI& c) |
AliTPCclusterer& | operator=(const AliTPCclusterer& param) |
Double_t | ProcesSignal(Float_t* signal, Int_t nchannels, Int_t* id, Double_t& rms, Double_t& pedestalCalib) |
void | ProcessSectorData() |
Int_t | ReadHLTClusters() |
void | UnfoldCluster(Float_t** matrix, Float_t recmatrix[][5], Float_t& meani, Float_t& meanj, Float_t& sum, Float_t& overlap) |
enum TObject::EStatusBits { | kCanDelete | |
kMustCleanup | ||
kObjInCanvas | ||
kIsReferenced | ||
kHasUUID | ||
kCannotPick | ||
kNoContextMenu | ||
kInvalidObject | ||
}; | ||
enum TObject::[unnamed] { | kIsOnHeap | |
kNotDeleted | ||
kZombie | ||
kBitMask | ||
kSingleKey | ||
kOverwrite | ||
kWriteDelete | ||
}; |
Float_t** | fAllBins | ! All sector bins |
Int_t* | fAllNSigBins | ! Number of signal bins in a sector |
Int_t** | fAllSigBins | ! All signal bins in a sector |
Bool_t | fBClonesArray | output clusters stored in TClonesArray |
Bool_t | fBDumpSignal | dump signal flag |
Float_t* | fBins | !digits array |
TTreeSRedirector* | fDebugStreamer | !debug streamer |
AliRawEventHeaderBase* | fEventHeader | ! event header information |
UInt_t | fEventType | Event Type |
TObject* | fHLTClusterAccess | interface to HLT clusters |
TTree* | fInput | !input tree with digits - object not owner |
Int_t | fLoop | loop - cf in 2 loops |
Int_t | fMaxBin | current ( for current sector) maximal bin |
Int_t | fMaxPad | current ( for current sector) maximal pad |
Int_t | fMaxTime | current ( for current sector) maximal time |
Int_t | fNSigBins | !size of fSigBins |
Int_t | fNcluster | number of clusters - for given row |
Int_t | fNclusters | tot number of clusters |
TTree* | fOutput | !output tree with digits - object not owner |
TObjArray* | fOutputArray | ! output TObjArray with pointers arrays of cluster |
TClonesArray* | fOutputClonesArray | ! output TClonesArray with clusters |
Float_t | fPadLength | the width of the pad |
Float_t | fPadWidth | the width of the pad |
const AliTPCParam* | fParam | ! tpc parameters |
Bool_t | fPedSubtraction | perform pedestal subtraction or not |
const AliTPCRecoParam* | fRecoParam | ! reconstruction parameters |
Int_t | fRow | !current row |
AliTPCClustersRow* | fRowCl | ! current cluster row |
AliSimDigits* | fRowDig | ! current digits row |
Float_t | fRx | current radius |
Int_t | fSector | !current sector |
Int_t* | fSigBins | !digits array containg only timebins above threshold |
Float_t | fSign | !current sign |
UInt_t | fTimeStamp | Time Stamp |
Int_t | fUseHLTClusters | use HLT clusters instead of offline clusters |
Float_t | fZWidth | the z bin width |
Inheritance Chart: | ||||||||
|
COSNTRUCTOR param - tpc parameters for given file recoparam - reconstruction parameters
Make cluster: characterized by position ( mean- COG) , shape (RMS) a charge, QMax and Q tot Additional correction: a) To correct for charge below threshold, in the +1 neghborhood to the max charge charge is extrapolated using gaussian approximation assuming given cluster width.. Additional empirical factor is used to account for the charge fluctuation (kVirtualChargeFactor). Actual value of the kVirtualChargeFactor should obtained minimimizing residuals between the cluster and track interpolation. b.) For space points with extended shape (in comparison with expected using parameterization) clusters are unfoded NOTE. Actual/Empirical values for correction are hardwired in the code. Input paramters for function: k - Make cluster at position k bins - 2 D array of signals mapped to 1 dimensional array - max - the number of time bins er one dimension c - reference to cluster to be filled
unfold cluster from input matrix data corresponding to cluster writen in recmatrix output meani and meanj
estimate max
Transform cluster to the rotated global coordinata Assign labels to the cluster add the cluster to the array for more details - See AliTPCTranform::Transform(x,i,0,1)
This is a cluster finder for the TPC raw data. The method assumes NO ordering of the altro channels. The pedestal subtraction can be switched on and off using an option of the TPC reconstructor
-- Depricated -- Currently hack to filter digital noise (15.06.2008) To be parameterized in the AliTPCrecoParam More inteligent way to be used in future Acces to the proper pedestal file needed
process signal on given pad - + streaming of additional information in special mode id[0] - sector id[1] - row id[2] - pad