ATLAS Offline Software
Loading...
Searching...
No Matches
ClusterAnalysis.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
9#ifndef CLUSTERANALYSIS_H
10#define CLUSTERANALYSIS_H
11
12
14#include "TH1F.h"
15#include "TH2F.h"
16#include <vector>
17#include <memory>
18
19class TTree;
20
21namespace ClusterSeg {
22
24 public:
25
27 ClusterAnalysis( TTree& tree );
28 virtual ~ClusterAnalysis() = default;
29
30 std::vector<std::vector<SpacePoint>> analyse(const std::vector<Cluster*>& clust);
31 void analyseWrite();
32
33 private:
34
35 std::vector<std::vector<SpacePoint>> createTGCSeeds(const std::vector<SpacePoint>& points);
36 std::vector<std::vector<SpacePoint>> createRPCSeeds(const std::vector<SpacePoint>& points);
37 void createSeedsAllLayers(const std::vector<SpacePoint>& layer1Points,const std::vector<SpacePoint>& layer2Points,const std::vector<SpacePoint>& layer3Points,
38 std::vector<std::vector<SpacePoint>>& seeds);
39 void createSeedsTwoLayers(const std::vector<SpacePoint>& layer1Points,const std::vector<SpacePoint>& layer2Points,
40 std::vector<std::vector<SpacePoint>>& seeds);
41 static std::vector<SpacePoint> createSpacePoints(const std::vector<Cluster*>& clust);
42
43 TTree* m_tree;
45 int m_ncalls{};
46
48 double m_ang_cut;
49 double m_ang2_cut;
50 double m_dist_cut;
51
52 std::unique_ptr<TH2F> m_h_miss_RZ;
53 std::unique_ptr<TH2F> m_h_miss_XY;
54 std::unique_ptr<TH2F> m_h_rz;
55 std::unique_ptr<TH2F> m_h_xy;
56 std::unique_ptr<TH2F> m_h_corr;
57 std::unique_ptr<TH1F> m_h_phi;
58 std::unique_ptr<TH1F> m_h_theta;
59 std::unique_ptr<TH1F> m_h_angle;
60 std::unique_ptr<TH1F> m_h_phi_t;
61 std::unique_ptr<TH1F> m_h_theta_t;
62 std::unique_ptr<TH1F> m_h_angle_t;
63
64 std::unique_ptr<TH1F> m_h_phi12;
65 std::unique_ptr<TH1F> m_h_theta12;
66 std::unique_ptr<TH1F> m_h_angle12;
67 std::unique_ptr<TH1F> m_h_phi_t12;
68 std::unique_ptr<TH1F> m_h_theta_t12;
69 std::unique_ptr<TH1F> m_h_angle_t12;
70
71 std::unique_ptr<TH1F> m_h_phi13;
72 std::unique_ptr<TH1F> m_h_theta13;
73 std::unique_ptr<TH1F> m_h_angle13;
74 std::unique_ptr<TH1F> m_h_phi_t13;
75 std::unique_ptr<TH1F> m_h_theta_t13;
76 std::unique_ptr<TH1F> m_h_angle_t13;
77
78 std::unique_ptr<TH1F> m_h_phi23;
79 std::unique_ptr<TH1F> m_h_theta23;
80 std::unique_ptr<TH1F> m_h_angle23;
81 std::unique_ptr<TH1F> m_h_phi_t23;
82 std::unique_ptr<TH1F> m_h_theta_t23;
83 std::unique_ptr<TH1F> m_h_angle_t23;
84
85 std::unique_ptr<TH1F> m_h_R;
86 std::unique_ptr<TH1F> m_h_XY;
87 std::unique_ptr<TH1F> m_h_R_t;
88 std::unique_ptr<TH1F> m_h_XY_t;
89 std::unique_ptr<TH1F> m_h_sizeL1;
90 std::unique_ptr<TH1F> m_h_sizeL2;
91 std::unique_ptr<TH1F> m_h_sizeL3;
92 std::unique_ptr<TH1F> m_h_sizeL1L3;
93 std::unique_ptr<TH1F> m_h_sizeL1L2L3;
94
95 std::unique_ptr<TH1F> m_h_XY121;
96 std::unique_ptr<TH1F> m_h_XY122;
97 std::unique_ptr<TH1F> m_h_XY121_t;
98 std::unique_ptr<TH1F> m_h_XY122_t;
99
100 std::unique_ptr<TH1F> m_h_XY131;
101 std::unique_ptr<TH1F> m_h_XY133;
102 std::unique_ptr<TH1F> m_h_XY131_t;
103 std::unique_ptr<TH1F> m_h_XY133_t;
104
105 std::unique_ptr<TH1F> m_h_XY232;
106 std::unique_ptr<TH1F> m_h_XY233;
107 std::unique_ptr<TH1F> m_h_XY232_t;
108 std::unique_ptr<TH1F> m_h_XY233_t;
109
110 std::unique_ptr<TH1F> m_h_numseeds;
111 std::unique_ptr<TH2F> m_h_barcodes;
112
113 };
114}
115
116#endif
std::unique_ptr< TH1F > m_h_angle13
std::unique_ptr< TH2F > m_h_barcodes
std::unique_ptr< TH1F > m_h_theta_t
std::unique_ptr< TH1F > m_h_phi23
std::unique_ptr< TH1F > m_h_theta13
std::unique_ptr< TH1F > m_h_numseeds
std::unique_ptr< TH1F > m_h_XY131
std::unique_ptr< TH1F > m_h_theta
std::unique_ptr< TH2F > m_h_miss_RZ
std::unique_ptr< TH1F > m_h_XY_t
std::unique_ptr< TH1F > m_h_R
virtual ~ClusterAnalysis()=default
std::vector< std::vector< SpacePoint > > analyse(const std::vector< Cluster * > &clust)
std::unique_ptr< TH1F > m_h_XY233_t
std::unique_ptr< TH1F > m_h_phi_t13
std::unique_ptr< TH1F > m_h_phi_t12
std::unique_ptr< TH2F > m_h_miss_XY
std::unique_ptr< TH1F > m_h_XY122
std::unique_ptr< TH1F > m_h_R_t
std::unique_ptr< TH1F > m_h_sizeL1L2L3
void createSeedsAllLayers(const std::vector< SpacePoint > &layer1Points, const std::vector< SpacePoint > &layer2Points, const std::vector< SpacePoint > &layer3Points, std::vector< std::vector< SpacePoint > > &seeds)
std::unique_ptr< TH2F > m_h_corr
std::unique_ptr< TH1F > m_h_sizeL3
std::unique_ptr< TH1F > m_h_phi_t23
std::unique_ptr< TH1F > m_h_angle_t
std::unique_ptr< TH1F > m_h_angle_t23
std::unique_ptr< TH1F > m_h_sizeL1L3
std::vector< std::vector< SpacePoint > > createTGCSeeds(const std::vector< SpacePoint > &points)
std::unique_ptr< TH2F > m_h_rz
std::unique_ptr< TH1F > m_h_theta12
std::vector< std::vector< SpacePoint > > createRPCSeeds(const std::vector< SpacePoint > &points)
std::unique_ptr< TH1F > m_h_theta23
std::unique_ptr< TH1F > m_h_sizeL1
std::unique_ptr< TH1F > m_h_phi
std::unique_ptr< TH1F > m_h_theta_t23
std::unique_ptr< TH1F > m_h_XY121
std::unique_ptr< TH1F > m_h_sizeL2
std::unique_ptr< TH1F > m_h_XY232
std::unique_ptr< TH1F > m_h_phi_t
std::unique_ptr< TH1F > m_h_angle12
std::unique_ptr< TH1F > m_h_XY121_t
std::unique_ptr< TH1F > m_h_phi13
std::unique_ptr< TH1F > m_h_XY233
std::unique_ptr< TH1F > m_h_XY
std::unique_ptr< TH1F > m_h_theta_t12
std::unique_ptr< TH1F > m_h_XY122_t
std::unique_ptr< TH1F > m_h_phi12
std::unique_ptr< TH1F > m_h_XY131_t
std::unique_ptr< TH1F > m_h_theta_t13
std::unique_ptr< TH1F > m_h_angle_t12
std::unique_ptr< TH1F > m_h_angle23
std::unique_ptr< TH1F > m_h_angle
std::unique_ptr< TH1F > m_h_XY133
std::unique_ptr< TH2F > m_h_xy
std::unique_ptr< TH1F > m_h_angle_t13
void createSeedsTwoLayers(const std::vector< SpacePoint > &layer1Points, const std::vector< SpacePoint > &layer2Points, std::vector< std::vector< SpacePoint > > &seeds)
std::unique_ptr< TH1F > m_h_XY133_t
std::unique_ptr< TH1F > m_h_XY232_t
static std::vector< SpacePoint > createSpacePoints(const std::vector< Cluster * > &clust)
TChain * tree