CbmRoot
Loading...
Searching...
No Matches
CbmClusteringA1.h
Go to the documentation of this file.
1/* Copyright (C) 2012-2016 GSI/JINR-LIT, Darmstadt/Dubna
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Grigory Kozlov, Andrey Lebedev [committer], Florian Uhlig */
4
5/*
6 * CbmClusteringA1.h
7 *
8 * Created on: Apr 4, 2012
9 * Author: kozlov
10 */
11
12#ifndef CBMCLUSTERINGA1_H_
13#define CBMCLUSTERINGA1_H_
14
16#include "FairTask.h"
17
18#include <vector>
19
21 public:
24 virtual ~CbmClusteringA1();
25
27 Int_t algVersion); //Clustering function
28 void ChangeClusters(CbmClusteringGeometry* moduleGeo, Int_t nPad, Int_t Cl0, Int_t Cl1, 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
Int_t GetNofActivePads() const
std::vector< Int_t > GetPads(Int_t iCluster)
Int_t GetPadInCluster(Int_t iCluster, Int_t iPad)
Int_t GetNofClusters() const
CbmClusteringA1(const CbmClusteringA1 &)
UInt_t GetPadCharge(Int_t iCluster, Int_t iPad)
Int_t GetNPadInCluster(Int_t iCluster, Int_t iPad)
virtual ~CbmClusteringA1()
CbmClusteringA1 & operator=(const CbmClusteringA1 &)
Int_t GetCluster(Int_t iCluster)
void MainClusteringA1(CbmClusteringGeometry *moduleGeo, Int_t algVersion)
void ChangeClusters(CbmClusteringGeometry *moduleGeo, Int_t nPad, Int_t Cl0, Int_t Cl1, Int_t algVersion)
Int_t GetNofPads() const
Float_t GetX0(Int_t iCluster)
Float_t GetY0(Int_t iCluster)
UInt_t GetClCharge(Int_t iCluster)
std::vector< Int_t > fNPadsInCluster
std::vector< Int_t > fPadsInCluster
std::vector< Int_t > fPadsCharges