ROOT logo
#ifndef ALIPMDCLUSTERINGV2_H
#define ALIPMDCLUSTERINGV2_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */
//-----------------------------------------------------//
//                                                     //
//  Header File : PMDClusteringV2.h,                   //
//                                                     //
//  clustering code for alice pmd                      //
//                                                     //
//-----------------------------------------------------//
// Author      : S.C. Phatak
// Modified by : B.K. Nandi, Ajay Dash
//
#include "Rtypes.h"
#include "AliPMDClustering.h"

class TObjArray;
class TArrayI;
class AliPMDcluster;
class AliPMDcludata;
class AliPMDClusteringV2 : public AliPMDClustering
{
  
 public:
  AliPMDClusteringV2();
  AliPMDClusteringV2(const AliPMDClusteringV2 &pmdclv2);
  AliPMDClusteringV2 &operator=(const AliPMDClusteringV2 &pmdclv2);
  virtual ~AliPMDClusteringV2();
  
  void     DoClust(Int_t idet, Int_t ismn, Int_t celltrack[][96],
		   Int_t cellpid[][96], Double_t celladc[][96],
		   TObjArray *pmdcont);
  Int_t    CrClust(Double_t ave, Double_t cutoff, Int_t nmx1,
		   Int_t iord1[], Double_t edepcell[]);
  void     RefClust(Int_t incr, Double_t edepcell[]);
	
  void     ClustDetails(Int_t ncell, Int_t nclust, Double_t x[],
			Double_t y[], Double_t z[], Double_t xc[],
			Double_t yc[], Double_t zc[],
			Double_t rcl[], Double_t rcs[], Double_t cells[],
			TArrayI &testncl, TArrayI &testindex);
  Double_t Distance(Double_t x1, Double_t y1, Double_t x2, Double_t y2);

  void     SetEdepCut(Float_t decut);
  void     SetClusteringParam(Int_t cluspar);
  
 protected:
  
  TObjArray *fPMDclucont;
  
  static const Double_t fgkSqroot3by2;  // fgkSqroot3by2 = sqrt(3.)/2.
  enum {
    kNMX    = 11424, // no. of cells in a module
    kNDIMX  = 119,   // max no. of cells along x direction
    kNDIMY  = 96     // max no. of cells along axis at 60 deg with x axis
  };
  Int_t    fInfocl[2][kNDIMX][kNDIMY]; // cellwise information on the 
                                       // cluster to which the cell
  Int_t    fInfcl[3][kNMX];            // cluster information [0][i]
                                       // -- cluster number
  Double_t fCoord[2][kNDIMX][kNDIMY];

  Float_t fCutoff;    // Energy(ADC) cutoff per cell before clustering
  Float_t fClusParam; // paramater to decide clustering
  
  ClassDef(AliPMDClusteringV2,8) // Does clustering for PMD
};
#endif
    
 AliPMDClusteringV2.h:1
 AliPMDClusteringV2.h:2
 AliPMDClusteringV2.h:3
 AliPMDClusteringV2.h:4
 AliPMDClusteringV2.h:5
 AliPMDClusteringV2.h:6
 AliPMDClusteringV2.h:7
 AliPMDClusteringV2.h:8
 AliPMDClusteringV2.h:9
 AliPMDClusteringV2.h:10
 AliPMDClusteringV2.h:11
 AliPMDClusteringV2.h:12
 AliPMDClusteringV2.h:13
 AliPMDClusteringV2.h:14
 AliPMDClusteringV2.h:15
 AliPMDClusteringV2.h:16
 AliPMDClusteringV2.h:17
 AliPMDClusteringV2.h:18
 AliPMDClusteringV2.h:19
 AliPMDClusteringV2.h:20
 AliPMDClusteringV2.h:21
 AliPMDClusteringV2.h:22
 AliPMDClusteringV2.h:23
 AliPMDClusteringV2.h:24
 AliPMDClusteringV2.h:25
 AliPMDClusteringV2.h:26
 AliPMDClusteringV2.h:27
 AliPMDClusteringV2.h:28
 AliPMDClusteringV2.h:29
 AliPMDClusteringV2.h:30
 AliPMDClusteringV2.h:31
 AliPMDClusteringV2.h:32
 AliPMDClusteringV2.h:33
 AliPMDClusteringV2.h:34
 AliPMDClusteringV2.h:35
 AliPMDClusteringV2.h:36
 AliPMDClusteringV2.h:37
 AliPMDClusteringV2.h:38
 AliPMDClusteringV2.h:39
 AliPMDClusteringV2.h:40
 AliPMDClusteringV2.h:41
 AliPMDClusteringV2.h:42
 AliPMDClusteringV2.h:43
 AliPMDClusteringV2.h:44
 AliPMDClusteringV2.h:45
 AliPMDClusteringV2.h:46
 AliPMDClusteringV2.h:47
 AliPMDClusteringV2.h:48
 AliPMDClusteringV2.h:49
 AliPMDClusteringV2.h:50
 AliPMDClusteringV2.h:51
 AliPMDClusteringV2.h:52
 AliPMDClusteringV2.h:53
 AliPMDClusteringV2.h:54
 AliPMDClusteringV2.h:55
 AliPMDClusteringV2.h:56
 AliPMDClusteringV2.h:57
 AliPMDClusteringV2.h:58
 AliPMDClusteringV2.h:59
 AliPMDClusteringV2.h:60
 AliPMDClusteringV2.h:61
 AliPMDClusteringV2.h:62
 AliPMDClusteringV2.h:63
 AliPMDClusteringV2.h:64
 AliPMDClusteringV2.h:65
 AliPMDClusteringV2.h:66
 AliPMDClusteringV2.h:67
 AliPMDClusteringV2.h:68
 AliPMDClusteringV2.h:69
 AliPMDClusteringV2.h:70