AliPHOSClusterizerv1


class description - source file - inheritance tree

class AliPHOSClusterizerv1 : public AliPHOSClusterizer

    private:
virtual Float_t Calibrate(Int_t amp) const Bool_t FindFit(AliPHOSEmcRecPoint* emcRP, int* MaxAt, Float_t* maxAtEnergy, Int_t NPar, Float_t* FitParametres) void Init() virtual Bool_t IsInCpv(AliPHOSDigit* digit) const virtual Bool_t IsInEmc(AliPHOSDigit* digit) const virtual Bool_t IsInPpsd(AliPHOSDigit* digit) const virtual void MakeClusters() virtual void MakeUnfolding() void PrintRecPoints(Option_t* option) Bool_t ReadDigits() void UnfoldCluster(AliPHOSEmcRecPoint* iniEmc, Int_t Nmax, int* maxAt, Float_t* maxAtEnergy) void WriteRecPoints() protected:
public:
AliPHOSClusterizerv1 AliPHOSClusterizerv1() AliPHOSClusterizerv1 AliPHOSClusterizerv1(const char* HeaderFile, const char* DigitsBrancheFile = 0) AliPHOSClusterizerv1 AliPHOSClusterizerv1(AliPHOSClusterizerv1&) virtual void ~AliPHOSClusterizerv1() Int_t AreNeighbours(AliPHOSDigit* d1, AliPHOSDigit* d2) const static TClass* Class() virtual void Exec(Option_t* option) virtual Float_t GetCpvClusteringThreshold() const virtual Float_t GetCpvLocalMaxCut() const virtual Float_t GetCpvLogWeight() const virtual char* GetDigitsBranch() const virtual Float_t GetEmcClusteringThreshold() const virtual Float_t GetEmcLocalMaxCut() const virtual Float_t GetEmcLogWeight() const virtual void GetNumberOfClustersFound(int* numb) virtual Float_t GetPpsdClusteringThreshold() const virtual char* GetRecPointsBranch() const virtual TClass* IsA() const virtual void Print(Option_t* option) const virtual void SetCpvClusteringThreshold(Float_t cluth) virtual void SetCpvLocalMaxCut(Float_t cut) virtual void SetCpvLogWeight(Float_t w) virtual void SetDigitsBranch(const char* file) virtual void SetEmcClusteringThreshold(Float_t cluth) virtual void SetEmcLocalMaxCut(Float_t cut) virtual void SetEmcLogWeight(Float_t w) virtual void SetPpsdClusteringThreshold(Float_t cluth) virtual void SetRecPointsBranch(const char* file) virtual void SetUnfolding(Bool_t toUnfold = kTRUE) static Double_t ShowerShape(Double_t r) virtual void ShowMembers(TMemberInspector& insp, char* parent) virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b) static void UnfoldingChiSquare(Int_t& nPar, Double_t* Grad, Double_t& fret, Double_t* x, Int_t iflag)

Data Members

private:
TString fHeaderFileName name of the file which contains gAlice, Tree headers etc. TString fDigitsBranchFileName name of the file, where digits branch is stored TString fRecPointsBranchFileName name of the file, where RecPoints branchs are stored Int_t fEvent Number of event currently processed Bool_t fToUnfold To perform unfolding Bool_t fIsInitialized AliPHOSGeometry* fGeom !pointer to PHOS geometry AliPHOSDigitizer* fDigitizer !digitizer which produced Digits we treat Int_t fNumberOfEmcClusters number of EMC clusters found Int_t fNumberOfCpvClusters number of CPV+PPSD clusters found TClonesArray* fDigits ! Initial list of digits TObjArray* fEmcRecPoints ! Final list of EMC Rec Points TObjArray* fCpvRecPoints ! Final list of CPV/PPSD recPoints Float_t fPedestal Calibration parameters Float_t fSlope read from Digitizer Float_t fEmcClusteringThreshold minimum energy to include a EMC digit in a cluster Float_t fPpsdClusteringThreshold minimum energy to include a PPSD digit in a cluster Float_t fCpvClusteringThreshold minimum energy to include a CPV digit in a cluster Float_t fEmcLocMaxCut minimum energy difference to distinguish local maxima in a cluster Float_t fW0 logarithmic weight for the cluster center of gravity calculation Float_t fCpvLocMaxCut minimum energy difference to distinguish local maxima in a CPV cluster Float_t fW0CPV logarithmic weight for the CPV cluster center of gravity calculation public:

Class Description

  Clusterization class. Performs clusterization (collects neighbouring active cells) and
  unfolding of the clusters with several local maxima.
  results are stored in TreeR#, branches PHOSEmcRP (EMC recPoints),
  PHOSCpvRP (CPV RecPoints) and AliPHOSClusterizer (Clusterizer with all
  parameters including input digits branch file name thresholds etc.)
  This TTask normally called from Reconstructioner, but as well can be used it in
  standalone mode:
 root [0] AliPHOSClusterizerv1 * cl = new AliPHOSClusterizerv1("galice.root")
 Warning in <TDatabasePDG::TDatabasePDG>: object already instantiated
               //reads gAlice from header file "..."
 root [1] cl->ExecuteTask()
               //finds RecPoints in all events stored in galice.root
 root [2] cl->SetDigitsBranch("PHOS.Digits.root")
               //sets another input file
 root [3] cl->SetRecPointsBranch("PHOS.rp.root")
               //sets another aouput file
 root [4] cl->SetEmcLocalMaxCut(0.03)
               //set clusterization parameters
 root [5] cl->ExecuteTask("deb all time")
               //once more finds RecPoints options are
               // deb - print number of found rec points
               // deb all - print number of found RecPoints and some their characteristics
               // time - print benchmarking results

AliPHOSClusterizerv1():AliPHOSClusterizer()
 default ctor (to be used)

AliPHOSClusterizerv1(const char* HeaderFile,const char* DigitsFile):AliPHOSClusterizer()

void Exec(Option_t * option)
 Steerign function

Bool_t FindFit(AliPHOSEmcRecPoint * emcRP, int * maxAt, Float_t * maxAtEnergy, Int_t nPar, Float_t * fitparameters)
 Calls TMinuit to fit the energy distribution of a cluster with several maxima

void Init()

Int_t AreNeighbours(AliPHOSDigit * d1, AliPHOSDigit * d2)const
 Gives the neighbourness of two digits = 0 are not neighbour but continue searching
                                       = 1 are neighbour
                                       = 2 are not neighbour but do not continue searching
 neighbours are defined as digits having at least common vertex
 The order of d1 and d2 is important: first (d1) should be a digit already in a cluster
                                      which is compared to a digit (d2)  not yet in a cluster

Bool_t IsInEmc(AliPHOSDigit * digit) const
 Tells if (true) or not (false) the digit is in a PHOS-EMC module

Bool_t IsInPpsd(AliPHOSDigit * digit) const
 Tells if (true) or not (false) the digit is in a PHOS-PPSD module

Bool_t IsInCpv(AliPHOSDigit * digit) const
 Tells if (true) or not (false) the digit is in a PHOS-CPV module

Bool_t ReadDigits()

void WriteRecPoints()

void MakeClusters()
 Steering method to construct the clusters stored in a list of Reconstructed Points
 A cluster is defined as a list of neighbour digits

void MakeUnfolding()
Unfolds clusters using the shape of ElectroMagnetic shower
 Performs unfolding of all EMC/CPV but NOT ppsd clusters

void SetDigitsBranch(const char * file)

void SetRecPointsBranch(const char * file)

Double_t ShowerShape(Double_t r)
 Shape of the shower (see PHOS TDR)
 If you change this function, change also the gradien evaluation  in ChiSquare()

void UnfoldCluster(AliPHOSEmcRecPoint * iniEmc, Int_t nMax, int * maxAt, Float_t * maxAtEnergy)
 Performs the unfolding of a cluster with nMax overlapping showers

void UnfoldingChiSquare(Int_t & nPar, Double_t * Grad, Double_t & fret, Double_t * x, Int_t iflag)
 Calculates th Chi square for the cluster unfolding minimization
 Number of parameters, Gradient, Chi squared, parameters, what to do

void Print(Option_t * option)const

void PrintRecPoints(Option_t * option)
Prints list of RecPoints produced at the current pass of AliPHOSClusterizer



Inline Functions


                        void GetNumberOfClustersFound(int* numb)
                     Float_t GetEmcClusteringThreshold() const
                     Float_t GetEmcLocalMaxCut() const
                     Float_t GetEmcLogWeight() const
                     Float_t GetCpvClusteringThreshold() const
                     Float_t GetCpvLocalMaxCut() const
                     Float_t GetCpvLogWeight() const
                     Float_t GetPpsdClusteringThreshold() const
                       char* GetRecPointsBranch() const
                       char* GetDigitsBranch() const
                        void SetEmcClusteringThreshold(Float_t cluth)
                        void SetEmcLocalMaxCut(Float_t cut)
                        void SetEmcLogWeight(Float_t w)
                        void SetCpvClusteringThreshold(Float_t cluth)
                        void SetCpvLocalMaxCut(Float_t cut)
                        void SetCpvLogWeight(Float_t w)
                        void SetPpsdClusteringThreshold(Float_t cluth)
                        void SetUnfolding(Bool_t toUnfold = kTRUE)
                     Float_t Calibrate(Int_t amp) const
                     TClass* Class()
                     TClass* IsA() const
                        void ShowMembers(TMemberInspector& insp, char* parent)
                        void Streamer(TBuffer& b)
                        void StreamerNVirtual(TBuffer& b)
        AliPHOSClusterizerv1 AliPHOSClusterizerv1(AliPHOSClusterizerv1&)
                        void ~AliPHOSClusterizerv1()


Copyright (c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *


ROOT page - Class index - Top of the page

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.