Line data Source code
1 : #ifndef ALIPMDCLUSTERINGV2_H
2 : #define ALIPMDCLUSTERINGV2_H
3 : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 : * See cxx source for full Copyright notice */
5 : //-----------------------------------------------------//
6 : // //
7 : // Header File : PMDClusteringV2.h, //
8 : // //
9 : // clustering code for alice pmd //
10 : // //
11 : //-----------------------------------------------------//
12 : // Author : S.C. Phatak
13 : // Modified by : B.K. Nandi, Ajay Dash
14 : //
15 : #include "Rtypes.h"
16 : #include "AliPMDClustering.h"
17 :
18 : class TObjArray;
19 : class TArrayI;
20 : class AliPMDcluster;
21 : class AliPMDcludata;
22 : class AliPMDClusteringV2 : public AliPMDClustering
23 : {
24 :
25 : public:
26 : AliPMDClusteringV2();
27 : AliPMDClusteringV2(const AliPMDClusteringV2 &pmdclv2);
28 : AliPMDClusteringV2 &operator=(const AliPMDClusteringV2 &pmdclv2);
29 : virtual ~AliPMDClusteringV2();
30 :
31 : void DoClust(Int_t idet, Int_t ismn, Int_t celltrack[][96],
32 : Int_t cellpid[][96], Double_t celladc[][96],
33 : TObjArray *pmdcont);
34 : Int_t CrClust(Double_t ave, Double_t cutoff, Int_t nmx1,
35 : Int_t iord1[], Double_t edepcell[]);
36 : void RefClust(Int_t incr, Double_t edepcell[]);
37 :
38 : void ClustDetails(Int_t ncell, Int_t nclust, Double_t x[],
39 : Double_t y[], Double_t z[], Double_t xc[],
40 : Double_t yc[], Double_t zc[],
41 : Double_t rcl[], Double_t rcs[], Double_t cells[],
42 : TArrayI &testncl, TArrayI &testindex);
43 : Double_t Distance(Double_t x1, Double_t y1, Double_t x2, Double_t y2);
44 :
45 : void SetEdepCut(Float_t decut);
46 : void SetClusteringParam(Int_t cluspar);
47 :
48 : protected:
49 :
50 : TObjArray *fPMDclucont;
51 :
52 : static const Double_t fgkSqroot3by2; // fgkSqroot3by2 = sqrt(3.)/2.
53 : enum {
54 : kNMX = 11424, // no. of cells in a module
55 : kNDIMX = 119, // max no. of cells along x direction
56 : kNDIMY = 96 // max no. of cells along axis at 60 deg with x axis
57 : };
58 : Int_t fInfocl[2][kNDIMX][kNDIMY]; // cellwise information on the
59 : // cluster to which the cell
60 : Int_t fInfcl[3][kNMX]; // cluster information [0][i]
61 : // -- cluster number
62 : Double_t fCoord[2][kNDIMX][kNDIMY];
63 :
64 : Float_t fCutoff; // Energy(ADC) cutoff per cell before clustering
65 : Float_t fClusParam; // paramater to decide clustering
66 :
67 12 : ClassDef(AliPMDClusteringV2,8) // Does clustering for PMD
68 : };
69 : #endif
70 :
|