ROOT logo
#ifndef ALIPMDCLUSTERFINDER_H
#define ALIPMDCLUSTERFINDER_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */
//-----------------------------------------------------//
//                                                     //
//  Date   : August 05 2003                            //
//  This reads the file PMD.digits.root(TreeD),        //
//  calls the Clustering algorithm and stores the      //
//  clustering output in PMD.RecPoints.root(TreeR)     // 
//                                                     //
//-----------------------------------------------------//

class TClonesArray;
class TFile;
class TTree;

class AliLoader;
class AliRunLoader;
class AliRawReader;
class AliPMDCalibData;
class AliPMDPedestal;
class AliPMDHotData;
class AliPMDNoiseCut;
class AliPMDddlinfoData;
class AliPMDRecoParam;

class AliPMDClusterFinder : public TObject
{

 public:

  AliPMDClusterFinder();
  AliPMDClusterFinder(AliRunLoader* runLoader);
  AliPMDClusterFinder(const AliPMDClusterFinder &finder);  // copy constructor
  AliPMDClusterFinder &operator=(const AliPMDClusterFinder &finder); // assignment op
  virtual ~AliPMDClusterFinder();

  void Digits2RecPoints(TTree *digitsTree, TTree *clustersTree,Int_t gRecoMode);
  void Digits2RecPoints(AliRawReader *rawReader, TTree *clustersTree,Int_t gRecoMode);

  void AddRecPoint(Int_t idet, Int_t ismn, Float_t * clusdata);
  void AddRecHit(Int_t celldataX, Int_t celldataY, Int_t celldataTr,
		 Int_t celldataPid, Float_t celldataAdc);
  void ResetCellADC();
  void ResetRecpoint();
  void ResetRechit();
  void Load();
  void LoadClusters();
  void UnLoad();
  void UnLoadClusters();

  AliPMDCalibData    *GetCalibGain() const;
  AliPMDPedestal     *GetCalibPed() const;
  AliPMDHotData      *GetCalibHot() const;
  AliPMDNoiseCut     *GetNoiseCut() const;
  AliPMDddlinfoData  *GetDdlinfoData() const;

 protected:
  AliRunLoader *fRunLoader; // Pointer to Run Loader
  AliLoader    *fPMDLoader; // Pointer to specific detector loader

  AliPMDCalibData    *fCalibGain;  //! Gain calibration data
  AliPMDPedestal     *fCalibPed;   //! Pedestal calibration data
  AliPMDHotData      *fCalibHot;   //! Hot data
  AliPMDNoiseCut     *fNoiseCut;   //! Noise cut
  AliPMDddlinfoData  *fDdlinfo;    //! ddl info data

  const AliPMDRecoParam *fRecoParam; // reconstruction parameter

  TTree        *fTreeD;     // Digits tree
  TTree        *fTreeR;     // Reconstructed points

  TClonesArray *fDigits;    // List of digits
  TClonesArray *fRecpoints; // List of reconstructed points
  TClonesArray *fRechits;   // List of cells associated with rec points

  Int_t   fNpoint;          // 
  Int_t   fNhit;            // 
  Int_t   fDetNo;           // Detector Number (0:PRE, 1:CPV)


  static const Int_t fgkRow = 48; // Total number of rows in one unitmodule
  static const Int_t fgkCol = 96; // Total number of cols in one unitmodule
  Double_t fCellADC[fgkRow][fgkCol]; // Array containing individual cell ADC
  Int_t    fCellTrack[fgkRow][fgkCol]; // Array containing individual cell tr
  Int_t    fCellPid[fgkRow][fgkCol]; // Array containing individual cell pid

  ClassDef(AliPMDClusterFinder,19) // 19 by satyajit
};
#endif

 AliPMDClusterFinder.h:1
 AliPMDClusterFinder.h:2
 AliPMDClusterFinder.h:3
 AliPMDClusterFinder.h:4
 AliPMDClusterFinder.h:5
 AliPMDClusterFinder.h:6
 AliPMDClusterFinder.h:7
 AliPMDClusterFinder.h:8
 AliPMDClusterFinder.h:9
 AliPMDClusterFinder.h:10
 AliPMDClusterFinder.h:11
 AliPMDClusterFinder.h:12
 AliPMDClusterFinder.h:13
 AliPMDClusterFinder.h:14
 AliPMDClusterFinder.h:15
 AliPMDClusterFinder.h:16
 AliPMDClusterFinder.h:17
 AliPMDClusterFinder.h:18
 AliPMDClusterFinder.h:19
 AliPMDClusterFinder.h:20
 AliPMDClusterFinder.h:21
 AliPMDClusterFinder.h:22
 AliPMDClusterFinder.h:23
 AliPMDClusterFinder.h:24
 AliPMDClusterFinder.h:25
 AliPMDClusterFinder.h:26
 AliPMDClusterFinder.h:27
 AliPMDClusterFinder.h:28
 AliPMDClusterFinder.h:29
 AliPMDClusterFinder.h:30
 AliPMDClusterFinder.h:31
 AliPMDClusterFinder.h:32
 AliPMDClusterFinder.h:33
 AliPMDClusterFinder.h:34
 AliPMDClusterFinder.h:35
 AliPMDClusterFinder.h:36
 AliPMDClusterFinder.h:37
 AliPMDClusterFinder.h:38
 AliPMDClusterFinder.h:39
 AliPMDClusterFinder.h:40
 AliPMDClusterFinder.h:41
 AliPMDClusterFinder.h:42
 AliPMDClusterFinder.h:43
 AliPMDClusterFinder.h:44
 AliPMDClusterFinder.h:45
 AliPMDClusterFinder.h:46
 AliPMDClusterFinder.h:47
 AliPMDClusterFinder.h:48
 AliPMDClusterFinder.h:49
 AliPMDClusterFinder.h:50
 AliPMDClusterFinder.h:51
 AliPMDClusterFinder.h:52
 AliPMDClusterFinder.h:53
 AliPMDClusterFinder.h:54
 AliPMDClusterFinder.h:55
 AliPMDClusterFinder.h:56
 AliPMDClusterFinder.h:57
 AliPMDClusterFinder.h:58
 AliPMDClusterFinder.h:59
 AliPMDClusterFinder.h:60
 AliPMDClusterFinder.h:61
 AliPMDClusterFinder.h:62
 AliPMDClusterFinder.h:63
 AliPMDClusterFinder.h:64
 AliPMDClusterFinder.h:65
 AliPMDClusterFinder.h:66
 AliPMDClusterFinder.h:67
 AliPMDClusterFinder.h:68
 AliPMDClusterFinder.h:69
 AliPMDClusterFinder.h:70
 AliPMDClusterFinder.h:71
 AliPMDClusterFinder.h:72
 AliPMDClusterFinder.h:73
 AliPMDClusterFinder.h:74
 AliPMDClusterFinder.h:75
 AliPMDClusterFinder.h:76
 AliPMDClusterFinder.h:77
 AliPMDClusterFinder.h:78
 AliPMDClusterFinder.h:79
 AliPMDClusterFinder.h:80
 AliPMDClusterFinder.h:81
 AliPMDClusterFinder.h:82
 AliPMDClusterFinder.h:83
 AliPMDClusterFinder.h:84
 AliPMDClusterFinder.h:85
 AliPMDClusterFinder.h:86
 AliPMDClusterFinder.h:87
 AliPMDClusterFinder.h:88
 AliPMDClusterFinder.h:89
 AliPMDClusterFinder.h:90
 AliPMDClusterFinder.h:91
 AliPMDClusterFinder.h:92