ROOT logo
#ifndef ALIMUONPRECLUSTERFINDERV3_H
#define ALIMUONPRECLUSTERFINDERV3_H

/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice                               */

// $Id$

/// \ingroup rec
/// \class AliMUONPreClusterFinderV3
/// \brief A basic pre-cluster finder
/// 
// Author Laurent Aphecetche, Subatech

#ifndef AliMUONVCLUSTERFINDER_H
#  include "AliMUONVClusterFinder.h"
#endif

class TIterator;
class AliMUONPad;

class AliMUONPreClusterFinderV3 : public AliMUONVClusterFinder
{
public:
  AliMUONPreClusterFinderV3();
  virtual ~AliMUONPreClusterFinderV3();
  
  virtual Bool_t NeedSegmentation() const { return kTRUE; }
  
  using AliMUONVClusterFinder::Prepare;

  virtual Bool_t Prepare(Int_t detElemId,                         
                         TObjArray* pads[2],
                         const AliMpArea& area,
                         const AliMpVSegmentation* seg[2]);
  
  virtual AliMUONCluster* NextCluster();

  virtual Bool_t UsePad(const AliMUONPad& pad);
  
private:
  /// Not implemented
  AliMUONPreClusterFinderV3(const AliMUONPreClusterFinderV3& rhs);
  /// Not implemented
  AliMUONPreClusterFinderV3& operator=(const AliMUONPreClusterFinderV3& rhs);

  void AddPad(AliMUONCluster& cluster, AliMUONPad* pad);
  void AddPreCluster(AliMUONCluster& cluster, AliMUONCluster* preCluster);
  void MakeCathodePreClusters(Int_t cathode);
  void MakeClusters();
  
  void DumpPreClusters() const;
  
private:
  TClonesArray* fClusters; //!< the clusters we've found (owner)
  const AliMpVSegmentation** fkSegmentations; //!< segmentations (not owner)
  TObjArray** fPads; //!< the pads corresponding to the digits (not owner)
  TClonesArray* fPreClusters[2]; //!< the preclusters per cathode (owner)
  Int_t fDetElemId; //!< which DE we're considering
  TIterator* fIterator; //!< iterator on fClusters
  
  ClassDef(AliMUONPreClusterFinderV3,2) // A basic pre-cluster finder
};

#endif
 AliMUONPreClusterFinderV3.h:1
 AliMUONPreClusterFinderV3.h:2
 AliMUONPreClusterFinderV3.h:3
 AliMUONPreClusterFinderV3.h:4
 AliMUONPreClusterFinderV3.h:5
 AliMUONPreClusterFinderV3.h:6
 AliMUONPreClusterFinderV3.h:7
 AliMUONPreClusterFinderV3.h:8
 AliMUONPreClusterFinderV3.h:9
 AliMUONPreClusterFinderV3.h:10
 AliMUONPreClusterFinderV3.h:11
 AliMUONPreClusterFinderV3.h:12
 AliMUONPreClusterFinderV3.h:13
 AliMUONPreClusterFinderV3.h:14
 AliMUONPreClusterFinderV3.h:15
 AliMUONPreClusterFinderV3.h:16
 AliMUONPreClusterFinderV3.h:17
 AliMUONPreClusterFinderV3.h:18
 AliMUONPreClusterFinderV3.h:19
 AliMUONPreClusterFinderV3.h:20
 AliMUONPreClusterFinderV3.h:21
 AliMUONPreClusterFinderV3.h:22
 AliMUONPreClusterFinderV3.h:23
 AliMUONPreClusterFinderV3.h:24
 AliMUONPreClusterFinderV3.h:25
 AliMUONPreClusterFinderV3.h:26
 AliMUONPreClusterFinderV3.h:27
 AliMUONPreClusterFinderV3.h:28
 AliMUONPreClusterFinderV3.h:29
 AliMUONPreClusterFinderV3.h:30
 AliMUONPreClusterFinderV3.h:31
 AliMUONPreClusterFinderV3.h:32
 AliMUONPreClusterFinderV3.h:33
 AliMUONPreClusterFinderV3.h:34
 AliMUONPreClusterFinderV3.h:35
 AliMUONPreClusterFinderV3.h:36
 AliMUONPreClusterFinderV3.h:37
 AliMUONPreClusterFinderV3.h:38
 AliMUONPreClusterFinderV3.h:39
 AliMUONPreClusterFinderV3.h:40
 AliMUONPreClusterFinderV3.h:41
 AliMUONPreClusterFinderV3.h:42
 AliMUONPreClusterFinderV3.h:43
 AliMUONPreClusterFinderV3.h:44
 AliMUONPreClusterFinderV3.h:45
 AliMUONPreClusterFinderV3.h:46
 AliMUONPreClusterFinderV3.h:47
 AliMUONPreClusterFinderV3.h:48
 AliMUONPreClusterFinderV3.h:49
 AliMUONPreClusterFinderV3.h:50
 AliMUONPreClusterFinderV3.h:51
 AliMUONPreClusterFinderV3.h:52
 AliMUONPreClusterFinderV3.h:53
 AliMUONPreClusterFinderV3.h:54
 AliMUONPreClusterFinderV3.h:55
 AliMUONPreClusterFinderV3.h:56
 AliMUONPreClusterFinderV3.h:57
 AliMUONPreClusterFinderV3.h:58
 AliMUONPreClusterFinderV3.h:59
 AliMUONPreClusterFinderV3.h:60
 AliMUONPreClusterFinderV3.h:61
 AliMUONPreClusterFinderV3.h:62
 AliMUONPreClusterFinderV3.h:63
 AliMUONPreClusterFinderV3.h:64
 AliMUONPreClusterFinderV3.h:65