CbmRoot
CbmClusteringA1.h
Go to the documentation of this file.
1 /*
2  * CbmClusteringA1.h
3  *
4  * Created on: Apr 4, 2012
5  * Author: kozlov
6  */
7 
8 #ifndef CBMCLUSTERINGA1_H_
9 #define CBMCLUSTERINGA1_H_
10 
11 #include "CbmClusteringGeometry.h"
12 #include "FairTask.h"
13 
14 #include <vector>
15 
17 public:
20  virtual ~CbmClusteringA1();
21 
23  Int_t algVersion); //Clustering function
24  void ChangeClusters(CbmClusteringGeometry* moduleGeo,
25  Int_t nPad,
26  Int_t Cl0,
27  Int_t Cl1,
28  Int_t algVersion);
29 
30  Int_t GetNofClusters() const { return fNofClusters; }
31  Int_t GetNofPads() const { return fNofPads; }
32  Int_t GetNofActivePads() const { return fNofActivePads; }
33 
34  Int_t GetCluster(Int_t iCluster);
35  Float_t GetX0(Int_t iCluster);
36  Float_t GetY0(Int_t iCluster);
37  UInt_t GetClCharge(Int_t iCluster);
38  Int_t GetNofPads(Int_t iCluster);
39  Int_t GetPadInCluster(Int_t iCluster, Int_t iPad);
40  Int_t GetNPadInCluster(Int_t iCluster, Int_t iPad);
41  UInt_t GetPadCharge(Int_t iCluster, Int_t iPad);
42  std::vector<Int_t> GetPads(Int_t iCluster);
43 
44 private:
45  Int_t fNofPads; //Number of pads in module
46  Int_t fNofActivePads; //Number of charged pads in module
47 
48  UInt_t* fA1; //Primary array of charges
49  UInt_t* fA2; //Secondary array of charges
50  Bool_t* fS; //Array of states
51  Int_t* fNumbersOfPads; //Array of relations Pad/Cluster
52 
53  Int_t fNofClusters; //Number of found clusters in module
54  struct Cluster { //Description of clusters
55  Int_t fNCluster;
56  Float_t fX;
57  Float_t fY;
58  UInt_t fCharge;
59  Int_t fNofPads;
60  std::vector<Int_t> fPadsInCluster;
61  std::vector<Int_t> fNPadsInCluster;
62  std::vector<Int_t> fPadsCharges;
63  };
65 
68 };
69 
70 #endif
CbmClusteringA1::GetX0
Float_t GetX0(Int_t iCluster)
Definition: CbmClusteringA1.cxx:188
CbmClusteringGeometry.h
CbmClusteringA1::fS
Bool_t * fS
Definition: CbmClusteringA1.h:50
CbmClusteringA1::fA2
UInt_t * fA2
Definition: CbmClusteringA1.h:49
CbmClusteringA1::fNofClusters
Int_t fNofClusters
Definition: CbmClusteringA1.h:53
CbmClusteringA1::~CbmClusteringA1
virtual ~CbmClusteringA1()
Definition: CbmClusteringA1.cxx:62
CbmClusteringA1::CbmClusteringA1
CbmClusteringA1()
Definition: CbmClusteringA1.cxx:30
CbmClusteringA1::fNofActivePads
Int_t fNofActivePads
Definition: CbmClusteringA1.h:46
CbmClusteringA1::operator=
CbmClusteringA1 & operator=(const CbmClusteringA1 &)
CbmClusteringA1::Cluster::fNCluster
Int_t fNCluster
Definition: CbmClusteringA1.h:55
CbmClusteringA1::GetNofClusters
Int_t GetNofClusters() const
Definition: CbmClusteringA1.h:30
CbmClusteringA1::Cluster
Definition: CbmClusteringA1.h:54
CbmClusteringA1::GetPadInCluster
Int_t GetPadInCluster(Int_t iCluster, Int_t iPad)
Definition: CbmClusteringA1.cxx:200
CbmClusteringA1::fA1
UInt_t * fA1
Definition: CbmClusteringA1.h:48
CbmClusteringA1::MainClusteringA1
void MainClusteringA1(CbmClusteringGeometry *moduleGeo, Int_t algVersion)
Definition: CbmClusteringA1.cxx:70
CbmClusteringA1::ChangeClusters
void ChangeClusters(CbmClusteringGeometry *moduleGeo, Int_t nPad, Int_t Cl0, Int_t Cl1, Int_t algVersion)
Definition: CbmClusteringA1.cxx:168
CbmClusteringA1::Cluster::fPadsInCluster
std::vector< Int_t > fPadsInCluster
Definition: CbmClusteringA1.h:60
CbmClusteringA1::GetPads
std::vector< Int_t > GetPads(Int_t iCluster)
Definition: CbmClusteringA1.cxx:208
CbmClusteringA1::Cluster::fCharge
UInt_t fCharge
Definition: CbmClusteringA1.h:58
CbmClusteringA1::GetNofActivePads
Int_t GetNofActivePads() const
Definition: CbmClusteringA1.h:32
CbmClusteringA1::fNumbersOfPads
Int_t * fNumbersOfPads
Definition: CbmClusteringA1.h:51
CbmClusteringA1::CbmClusteringA1
CbmClusteringA1(const CbmClusteringA1 &)
CbmClusteringA1::GetY0
Float_t GetY0(Int_t iCluster)
Definition: CbmClusteringA1.cxx:191
CbmClusteringA1
Definition: CbmClusteringA1.h:16
CbmClusteringA1::GetPadCharge
UInt_t GetPadCharge(Int_t iCluster, Int_t iPad)
Definition: CbmClusteringA1.cxx:212
CbmClusteringA1::fClusters
Cluster * fClusters
Definition: CbmClusteringA1.h:64
CbmClusteringA1::GetCluster
Int_t GetCluster(Int_t iCluster)
Definition: CbmClusteringA1.cxx:185
CbmClusteringA1::Cluster::fNPadsInCluster
std::vector< Int_t > fNPadsInCluster
Definition: CbmClusteringA1.h:61
CbmClusteringA1::GetNPadInCluster
Int_t GetNPadInCluster(Int_t iCluster, Int_t iPad)
Definition: CbmClusteringA1.cxx:204
CbmClusteringA1::GetClCharge
UInt_t GetClCharge(Int_t iCluster)
Definition: CbmClusteringA1.cxx:194
CbmClusteringGeometry
Definition: CbmClusteringGeometry.h:17
CbmClusteringA1::Cluster::fPadsCharges
std::vector< Int_t > fPadsCharges
Definition: CbmClusteringA1.h:62
CbmClusteringA1::Cluster::fX
Float_t fX
Definition: CbmClusteringA1.h:56
CbmClusteringA1::Cluster::fY
Float_t fY
Definition: CbmClusteringA1.h:57
CbmClusteringA1::Cluster::fNofPads
Int_t fNofPads
Definition: CbmClusteringA1.h:59
CbmClusteringA1::fNofPads
Int_t fNofPads
Definition: CbmClusteringA1.h:45
CbmClusteringA1::GetNofPads
Int_t GetNofPads() const
Definition: CbmClusteringA1.h:31