BRAT 2.4.5
Class index
Full class index
brahmlib
BRAHMS
ROOT page

BrTpcDeconvoluteClusterModule


class description - source file - inheritance tree

class BrTpcDeconvoluteClusterModule : public BrModule

    private:
virtual Bool_t DeconvoluteClusters() virtual void FillSubClusters(Int_t npeaks, TObjArray* subClusters) virtual void FillWorkingArrays(BrTpcCluster* cluster) virtual Int_t FindHitStatus(BrTpcCluster* cluster) virtual Int_t FindSubClusters(BrTpcCluster* primaryCluster, TObjArray* subClusters) public:
BrTpcDeconvoluteClusterModule BrTpcDeconvoluteClusterModule() BrTpcDeconvoluteClusterModule BrTpcDeconvoluteClusterModule(const Char_t* name, const Char_t* title) BrTpcDeconvoluteClusterModule BrTpcDeconvoluteClusterModule(BrTpcDeconvoluteClusterModule&) virtual void ~BrTpcDeconvoluteClusterModule() static TClass* Class() virtual void DefineHistograms() virtual void Event(BrEventNode* inputNode, BrEventNode* outputNode) virtual void Init() virtual TClass* IsA() const virtual void Print(Option_t* option = "B") const virtual void SetHighPsigCut(Float_t val = 1.6) virtual void SetHighTsigCut(Float_t val = 1.6) virtual void SetMinMaxADCCut(Float_t val = 10) virtual void SetMinPadCut(Int_t val = 1) virtual void SetMinTimeCut(Int_t val = 1) virtual void ShowMembers(TMemberInspector& insp, char* parent) virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b)

Data Members


    protected:
BrDataTable* fClusterTable pointer to data (both input and output) BrTpcAdcTable* fAdcTable pointer to help table Int_t fClusterId For defining unique IDs. Int_t fCurrentRow Used to remember row no Int_t fMinPadCut Min no of pads in good cluster Int_t fMinTimeCut Min no of time bins in good cluster Float_t fMinMaxADCCut Min max ADC in good cluster Float_t fHighPsigCut Pad cut used to define multi hits Float_t fHighTsigCut Time cut used to define multi hits TH1F* hNpads No of pads in good clusters TH1F* hNtime No of time bins in good clusters TH1F* hNclusters No of clusters after deconvolution TH1F* hNnoiseclusters No of clusters that does not survive cuts TH1F* hNsubclusters No of good clusters from deconvolution TH1F* hNpeaks No of good clusters pr multicluster TH1F* hMaxADC Max ADC values in good clusters TH1F* hSumADC Integrated ADC values in good clusters TH1F* hPadvar Pad variance, good clusters TH1F* hTimevar Pad variance, good clusters

Class Description

   The BrTpcDeconvoluteClusterModule used to be part of
   BrTpcClusterFinder

   It takes clusters sequences that come from BrTpcClusterModule and
   examines the status. If removes noise clusters and tries to
   deconvolute multiclusters.
   The output data is (also) clusters in the input datatable


BrTpcDeconvoluteClusterModule() : BrModule()
 This constructer is no good

BrTpcDeconvoluteClusterModule(const Char_t *name, const Char_t *title) : BrModule(name, title)
 This is the constructor that should be used
 Name should be "T1", "T2", "TPM1", "TPM2"

~BrTpcDeconvoluteClusterModule()

Bool_t DeconvoluteClusters()

void DefineHistograms()
 Define the histograms used to monitor performance
 This method is usually called by BrModule::Book().


Event(BrEventNode *inputNode, BrEventNode *outputNode)
 Main method
 Gets the TPCCluster data from the inputNode
 Examines the status of the clusters and tries to deconvolute
 multihits
 The output is the same table as the input so no new table is
 appended, i.e, the changes are made to the old table.

FillSubClusters(Int_t nPeaks, TObjArray *subClusters)
 Scan the working array and create a set of subclusters
 according to the fClusterIdTable identification.
 The appropriate set of BrTPSequence objects that make up the
 clusters are created. These are of course NOT the inputdata
 but a subset.
 This routine needs access to fCurrentRow, and the next available ClusterId
 to be used.

void FillWorkingArrays(BrTpcCluster *cluster)
 Fill the adcTable with adc values in prepartion for
 subclusterfinding.


Int_t FindHitStatus(BrTpcCluster* cluster)
 Determine the status of each cluster
 The outcome can be either
 noisehit (throw away)
 single hit
 multi hit (deconvolution needed)

FindSubClusters(BrTpcCluster *primaryCluster, TObjArray *subClusters)
 primaryCluster is scanned with FindHitStatus to determine if its
 noise, a good single hit cluster or a multihit candidate. The
 TObjArray is empty initially. Ownership of new BrTpcClusters from
 deconvolution is transferred to this array on exit.

 Deconvolution is done as follows :
 -  Fill working array
 -  Finds peaks and work towards valleys
 -  Identify part sequences belonging to same peak
 -  Create subClusters and new BrTpcSequences for these clusters
 -


void Init()
 Initialize module. This is the proper member fct for getting
 information from the data base.

void Print(Option_t* option) const
 Module Information method

 Options: (see also BrModule::Print)




Inline Functions


                                 void SetHighPsigCut(Float_t val = 1.6)
                                 void SetHighTsigCut(Float_t val = 1.6)
                                 void SetMinPadCut(Int_t val = 1)
                                 void SetMinTimeCut(Int_t val = 1)
                                 void SetMinMaxADCCut(Float_t val = 10)
                              TClass* Class()
                              TClass* IsA() const
                                 void ShowMembers(TMemberInspector& insp, char* parent)
                                 void Streamer(TBuffer& b)
                                 void StreamerNVirtual(TBuffer& b)
        BrTpcDeconvoluteClusterModule BrTpcDeconvoluteClusterModule(BrTpcDeconvoluteClusterModule&)

This page automatically generated by script docBrat by Christian Holm

Copyright ; 2002 BRAHMS Collaboration <brahmlib@rcf.rhic.bnl.gov>
Last Update on 2002/08/15 17:23:31 $ by videbaek $

Validate HTML
Validate CSS