CbmRoot
Loading...
Searching...
No Matches
CbmMuchClustering.h
Go to the documentation of this file.
1/* Copyright (C) 2012-2020 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 * CbmMuchClustering.h
7 *
8 * Created on: Mar 5, 2012
9 * Author: kozlov
10 */
11
12#ifndef CBMMUCHCLUSTERING_H_
13#define CBMMUCHCLUSTERING_H_
14
15#include "CbmClusteringA1.h"
17#include "CbmClusteringSL.h"
18#include "CbmClusteringWard.h"
19#include "CbmMuchGeoScheme.h"
20#include "CbmMuchModuleGem.h"
21#include "FairTask.h"
22#include "TH1F.h"
23
24#include <map>
25#include <vector>
26
27class TClonesArray;
28class CbmDigiManager;
29
30class CbmMuchClustering : public FairTask {
31 public:
32 CbmMuchClustering(const char* digiFileName);
33 virtual ~CbmMuchClustering();
34 virtual InitStatus Init();
35 virtual void Exec(Option_t* opt);
36 virtual void Finish();
37
38 void SetAlgorithmVersion(Int_t AlgorithmVersion) { fAlgorithmVersion = AlgorithmVersion; }
39
41 void SetDigiCharges();
42 void ClearDigiCharges();
44
45 private:
46 void ReadDataBranches();
47
48 /* Clustering algorithms
49 * 1 - Developed algorithm, using all neighbors;
50 * 2 - Developed algorithm, do not using diagonal neighbors;
51 * 3 - Simple Single Linkage method, using all neighbors;
52 * 4 - Simple Single Linkage method, do not using diagonal neighbors;
53 * 5 - Ward's method (!) not tested
54 */
56 Int_t fNofModules; // Number of modules in detector
57 Int_t fNofClusters; // Number of clusters for event
58
59 CbmMuchGeoScheme* fScheme; // MuCh geometry scheme
60 TString fDigiFile; // Digitization file
61
62 std::vector<CbmClusteringGeometry*> fModulesGeometryArray;
63 std::map<Int_t, Int_t> fModulesByDetId;
64
66 TClonesArray* fCluster; // Output array of CbmMuchCluster
67 TClonesArray* fHit; // Output array of CbmMuchHit
68 Int_t fNofEvents; // Event counter
69
70 void ClusteringA1(CbmClusteringGeometry* m1, CbmMuchModuleGem* m2, Int_t Ver);
71 void ClusteringSL(CbmClusteringGeometry* m1, CbmMuchModuleGem* m2, Int_t Ver);
72 void ClusteringWard(CbmClusteringGeometry* m1, CbmMuchModuleGem* m2 /*, Int_t Ver*/);
73
76
78};
79
80#endif
CbmDigiManager.
std::map< Int_t, Int_t > fModulesByDetId
void SetAlgorithmVersion(Int_t AlgorithmVersion)
void ClusteringA1(CbmClusteringGeometry *m1, CbmMuchModuleGem *m2, Int_t Ver)
CbmMuchGeoScheme * fScheme
TClonesArray * fCluster
Interface to digi data.
virtual void Exec(Option_t *opt)
CbmDigiManager * fDigiMan
CbmMuchClustering & operator=(const CbmMuchClustering &)
ClassDef(CbmMuchClustering, 1)
CbmMuchClustering(const char *digiFileName)
void ClusteringSL(CbmClusteringGeometry *m1, CbmMuchModuleGem *m2, Int_t Ver)
CbmMuchClustering(const CbmMuchClustering &)
virtual InitStatus Init()
void ClusteringWard(CbmClusteringGeometry *m1, CbmMuchModuleGem *m2)
TClonesArray * fHit
std::vector< CbmClusteringGeometry * > fModulesGeometryArray