ROOT logo
#ifndef MAPS_DIGCLUSTER_H
#define MAPS_DIGCLUSTER_H

#include <TNamed.h>
#include <TList.h>
#include <TGraph.h>
#include "Riostream.h"
#include "vector"

// ROOT classes
#include "TString.h"
#include "TObject.h"
#include "TVector.h"
#include "TFile.h"
#include "TSystem.h"
#include "TRandom.h"
#include "TH1.h"
#include "TH2.h"
#include "TObjArray.h"
#include "TTree.h"
#include "TBranch.h"
#include "TClonesArray.h"
using namespace std;

class DIGInitialize;
class DIGPlane;
class DIGADC;
class DIGBeam;
class DIGTransport;
class DIGAction;
class DIGEvent;
class DIGMAPS;
//==============================================================================
class DIGCluster : public TObject {
 public:
  DIGCluster();
  DIGCluster(DIGCluster& adigCluster);
  virtual ~DIGCluster();
  void    Clear(const Option_t * /*option*/ = "");
  void PrintInfo();

  Int_t GetNpixels(){return fNpixels;}
  std::vector<Int_t> GetPixelMap(){return fPixelMap;}
  std::vector<Int_t> GetDigitalCharge(){return fDigitalChargeMap;}

  void AddPixel(Int_t DigitalCharge, Int_t PixelNumber);
  Int_t GetTotalCharge();
  Int_t Get1stCrownCharge(DIGPlane *myDIGPlane);
  Int_t Get2ndCrownCharge(DIGPlane *myDIGPlane);
  Int_t Get4NeigboursCharge(DIGPlane *myDIGPlane);

  Int_t GetMultiplicity(Int_t Threshold);
  Double_t GetXposition_CoG(){ return Xposition_CoG;}
  Double_t GetYposition_CoG(){ return Yposition_CoG;}
  void SetXposition_CoG(Double_t aXposition_CoG){Xposition_CoG = aXposition_CoG;}
  void SetYposition_CoG(Double_t aYposition_CoG){Yposition_CoG = aYposition_CoG ;}
  void Compute_CoG(DIGPlane *myDIGPlane);
  void Compute_SeedPixel(DIGPlane *myDIGPlane); // compute the seed pixel.
  Int_t GetSeedPixelIndex(); //return the seed pixel index in the pixel map.
  void SetSeedPixelIndex(Int_t Index);
  void GetXYPixelNumber(Int_t &Xpix, Int_t &Ypix, DIGPlane *myDIGPlane, Int_t PixelNumber);
  Bool_t IsPixelInThePlane(Int_t Xpix, Int_t Ypix, DIGPlane *myDIGPlane);

  std::vector<Int_t> Get4NeigboursPixelsIndex(DIGPlane *myDIGPlane);
  std::vector<Int_t> Get1stCrownPixelsIndex(DIGPlane *myDIGPlane);
  std::vector<Int_t> Get2ndCrownPixelsIndex(DIGPlane *myDIGPlane);


 protected:
  //
  Int_t fNpixels;
  vector< Int_t > fPixelMap;
  vector< Int_t > fDigitalChargeMap;
  Double_t Xposition_CoG;
  Double_t Yposition_CoG;
  Int_t fSeedPixelIndex;

  ClassDef(DIGCluster,1);
};



//==============================================================================

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