]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PMD/AliPMDClusterFinder.h
implementation of effc++
[u/mrichter/AliRoot.git] / PMD / AliPMDClusterFinder.h
index d7eb4c61c32d2de7a24696fc321d6d2fe16c5061..720c242c76d2b1839833692a273b18265a4c9c1e 100644 (file)
@@ -1,5 +1,7 @@
-#ifndef PMDClusterFinder_H
-#define PMDClusterFinder_H
+#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                            //
 //                                                     //
 //-----------------------------------------------------//
 
-#include <Riostream.h>
-#include <stdlib.h>
-#include <math.h>
-#include <TMath.h>
-#include <vector>
-#include <algorithm>
-
 class TClonesArray;
 class TFile;
-class TObjArray;
 class TTree;
-class TNtuple;
 
 class AliLoader;
 class AliRunLoader;
-class AliRun;
-class AliDetector;
-class AliHeader;
+class AliRawReader;
+class AliPMDCalibData;
 
-class AliPMDdigit;
-class AliPMDClustering;
-class AliPMDContainer;
-class AliPMDcluster;
-class AliPMDrecpoint;
+class AliPMDClusterFinder : public TObject
+{
 
-using namespace std;
+ public:
 
-class AliPMDClusterFinder
-{
- protected:
-  AliRunLoader *fRunLoader;
-  AliRun       *gAlice;
-  AliDetector  *PMD;      /* Get pointers to Alice detectors 
-                            and Hits containers */
-  AliLoader    *pmdloader;
+  AliPMDClusterFinder();
+  AliPMDClusterFinder(AliRunLoader* runLoader);
+  AliPMDClusterFinder(const AliPMDClusterFinder &finder);  // copy constructor
+  AliPMDClusterFinder &operator=(const AliPMDClusterFinder &finder); // assignment op
+  virtual ~AliPMDClusterFinder();
 
-  TTree        *treeD;
-  TTree        *treeR;
+  void Digits2RecPoints(Int_t ievt);
+  void Digits2RecPoints(AliRawReader *rawReader, TTree *clustersTree);
+  void Digits2RecPoints(Int_t ievt, AliRawReader *rawReader);
+  void SetCellEdepCut(Float_t ecut);
+  void AddRecPoint(Int_t idet, Int_t ismn, Float_t * clusdata);
+  void AddRecHit(Int_t celldataX, Int_t celldataY);
+  void ResetCellADC();
+  void ResetRecpoint();
+  void ResetRechit();
+  void Load();
+  void LoadClusters();
+  void UnLoad();
+  void UnLoadClusters();
 
-  TClonesArray *fDigits;
-  TClonesArray *fRecpoints;
+  AliPMDCalibData *GetCalibData() const;
 
-  Int_t fNpoint;
-  Int_t fDetNo;
+ protected:
+  AliRunLoader *fRunLoader; // Pointer to Run Loader
+  AliLoader    *fPMDLoader; // Pointer to specific detector loader
 
-  static const Int_t fTotSM = 27;
-  static const Int_t fNCell = 72;
-  Float_t fCPV[fTotSM][fNCell][fNCell];
-  Float_t fPMD[fTotSM][fNCell][fNCell];
+  AliPMDCalibData *fCalibData;  //! calibration data
 
- public:
+  TTree        *fTreeD;     // Digits tree
+  TTree        *fTreeR;     // Reconstructed points
 
-  AliPMDClusterFinder();
-  virtual ~AliPMDClusterFinder();
+  TClonesArray *fDigits;    // List of digits
+  TClonesArray *fRecpoints; // List of reconstructed points
+  TClonesArray *fRechits;   // List of cells associated with rec points
 
-  void OpengAliceFile(char * /* galice.root */, Option_t * /* option */);
+  Int_t   fNpoint;          // 
+  Int_t   fNhit;            // 
+  Int_t   fDetNo;           // Detector Number (0:PRE, 1:CPV)
+  Float_t fEcut;            // Energy/ADC cut per cell
 
-  void Digits2RecPoints(Int_t /* ievt */);
-  void AddRecPoint(Float_t * /* clusdata */);
-  void ResetCellADC();
-  void ResetRecpoint();
-  void UnLoad(Option_t * /* option */);
+  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
 
-  ClassDef(AliPMDClusterFinder,1)
+  ClassDef(AliPMDClusterFinder,10) // To run PMD clustering
 };
 #endif