ATLAS Offline Software
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 
19 class TTree;
20 
21 namespace 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 
47  bool m_writeOut;
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
ClusterSeg::ClusterAnalysis::m_h_theta13
std::unique_ptr< TH1F > m_h_theta13
Definition: ClusterAnalysis.h:72
ClusterSeg::ClusterAnalysis::m_h_numseeds
std::unique_ptr< TH1F > m_h_numseeds
Definition: ClusterAnalysis.h:110
ClusterSeg::ClusterAnalysis::m_h_angle
std::unique_ptr< TH1F > m_h_angle
Definition: ClusterAnalysis.h:59
ClusterSeg::ClusterAnalysis::m_h_barcodes
std::unique_ptr< TH2F > m_h_barcodes
Definition: ClusterAnalysis.h:111
ClusterSeg::ClusterAnalysis::m_h_angle_t
std::unique_ptr< TH1F > m_h_angle_t
Definition: ClusterAnalysis.h:62
ClusterSeg::ClusterAnalysis::m_h_XY131
std::unique_ptr< TH1F > m_h_XY131
Definition: ClusterAnalysis.h:100
ClusterSeg::ClusterAnalysis::m_h_rz
std::unique_ptr< TH2F > m_h_rz
Definition: ClusterAnalysis.h:54
ClusterSeg::ClusterAnalysis::m_ang_cut
double m_ang_cut
Definition: ClusterAnalysis.h:48
ClusterSeg::ClusterAnalysis::createSpacePoints
static std::vector< SpacePoint > createSpacePoints(const std::vector< Cluster * > &clust)
Definition: ClusterAnalysis.cxx:423
ClusterSeg::ClusterAnalysis::createSeedsTwoLayers
void createSeedsTwoLayers(const std::vector< SpacePoint > &layer1Points, const std::vector< SpacePoint > &layer2Points, std::vector< std::vector< SpacePoint >> &seeds)
Definition: ClusterAnalysis.cxx:391
ClusterSeg::ClusterAnalysis::m_ncalls
int m_ncalls
Definition: ClusterAnalysis.h:45
tree
TChain * tree
Definition: tile_monitor.h:30
ClusterSeg::ClusterAnalysis::m_h_theta_t13
std::unique_ptr< TH1F > m_h_theta_t13
Definition: ClusterAnalysis.h:75
ClusterSeg::ClusterAnalysis::m_h_XY131_t
std::unique_ptr< TH1F > m_h_XY131_t
Definition: ClusterAnalysis.h:102
ClusterSeg::ClusterAnalysis::m_h_xy
std::unique_ptr< TH2F > m_h_xy
Definition: ClusterAnalysis.h:55
ClusterSeg::ClusterAnalysis::analyseWrite
void analyseWrite()
Definition: ClusterAnalysis.cxx:48
ClusterSeg::ClusterAnalysis::~ClusterAnalysis
virtual ~ClusterAnalysis()=default
ClusterSeg::ClusterAnalysis::m_h_XY232
std::unique_ptr< TH1F > m_h_XY232
Definition: ClusterAnalysis.h:105
ClusterSeg::ClusterAnalysis::m_h_angle_t13
std::unique_ptr< TH1F > m_h_angle_t13
Definition: ClusterAnalysis.h:76
ClusterSeg::ClusterAnalysis::m_h_phi_t12
std::unique_ptr< TH1F > m_h_phi_t12
Definition: ClusterAnalysis.h:67
ClusterSeg::ClusterAnalysis::m_h_phi_t13
std::unique_ptr< TH1F > m_h_phi_t13
Definition: ClusterAnalysis.h:74
ClusterSeg::ClusterAnalysis::m_h_phi23
std::unique_ptr< TH1F > m_h_phi23
Definition: ClusterAnalysis.h:78
ClusterSeg
Definition: MuonSpectrometer/MuonReconstruction/MuonRecUtils/MuonLinearSegmentMakerUtilities/MuonLinearSegmentMakerUtilities/Cluster.h:12
ClusterSeg::ClusterAnalysis::m_h_XY122_t
std::unique_ptr< TH1F > m_h_XY122_t
Definition: ClusterAnalysis.h:98
ClusterSeg::ClusterAnalysis::m_h_corr
std::unique_ptr< TH2F > m_h_corr
Definition: ClusterAnalysis.h:56
ClusterSeg::ClusterAnalysis::m_h_phi_t23
std::unique_ptr< TH1F > m_h_phi_t23
Definition: ClusterAnalysis.h:81
ClusterSeg::ClusterAnalysis::m_h_XY121_t
std::unique_ptr< TH1F > m_h_XY121_t
Definition: ClusterAnalysis.h:97
ClusterSeg::ClusterAnalysis::m_h_XY133
std::unique_ptr< TH1F > m_h_XY133
Definition: ClusterAnalysis.h:101
ClusterSeg::ClusterAnalysis
Definition: ClusterAnalysis.h:23
ClusterSeg::ClusterAnalysis::analyse
std::vector< std::vector< SpacePoint > > analyse(const std::vector< Cluster * > &clust)
Definition: ClusterAnalysis.cxx:236
ClusterSeg::ClusterAnalysis::m_dist_cut
double m_dist_cut
Definition: ClusterAnalysis.h:50
ClusterSeg::ClusterAnalysis::m_h_sizeL2
std::unique_ptr< TH1F > m_h_sizeL2
Definition: ClusterAnalysis.h:90
ClusterSeg::ClusterAnalysis::m_h_angle13
std::unique_ptr< TH1F > m_h_angle13
Definition: ClusterAnalysis.h:73
ClusterSeg::ClusterAnalysis::createTGCSeeds
std::vector< std::vector< SpacePoint > > createTGCSeeds(const std::vector< SpacePoint > &points)
Definition: ClusterAnalysis.cxx:245
ClusterSeg::ClusterAnalysis::m_h_XY133_t
std::unique_ptr< TH1F > m_h_XY133_t
Definition: ClusterAnalysis.h:103
ClusterSeg::ClusterAnalysis::m_h_theta_t
std::unique_ptr< TH1F > m_h_theta_t
Definition: ClusterAnalysis.h:61
ClusterSeg::ClusterAnalysis::m_h_sizeL3
std::unique_ptr< TH1F > m_h_sizeL3
Definition: ClusterAnalysis.h:91
ClusterSeg::ClusterAnalysis::createRPCSeeds
std::vector< std::vector< SpacePoint > > createRPCSeeds(const std::vector< SpacePoint > &points)
Definition: ClusterAnalysis.cxx:291
ClusterSeg::ClusterAnalysis::m_h_angle_t12
std::unique_ptr< TH1F > m_h_angle_t12
Definition: ClusterAnalysis.h:69
ClusterSeg::ClusterNtuple
Definition: ClusterNtuple.h:22
ClusterSeg::ClusterAnalysis::m_h_angle23
std::unique_ptr< TH1F > m_h_angle23
Definition: ClusterAnalysis.h:80
ClusterSeg::ClusterAnalysis::m_h_XY_t
std::unique_ptr< TH1F > m_h_XY_t
Definition: ClusterAnalysis.h:88
ClusterSeg::ClusterAnalysis::m_h_R
std::unique_ptr< TH1F > m_h_R
Definition: ClusterAnalysis.h:85
ClusterSeg::ClusterAnalysis::m_h_phi12
std::unique_ptr< TH1F > m_h_phi12
Definition: ClusterAnalysis.h:64
ClusterSeg::ClusterAnalysis::m_h_sizeL1L3
std::unique_ptr< TH1F > m_h_sizeL1L3
Definition: ClusterAnalysis.h:92
ClusterSeg::ClusterAnalysis::m_h_theta23
std::unique_ptr< TH1F > m_h_theta23
Definition: ClusterAnalysis.h:79
ClusterSeg::ClusterAnalysis::m_h_miss_RZ
std::unique_ptr< TH2F > m_h_miss_RZ
Definition: ClusterAnalysis.h:52
ClusterSeg::ClusterAnalysis::m_h_XY233_t
std::unique_ptr< TH1F > m_h_XY233_t
Definition: ClusterAnalysis.h:108
ClusterSeg::ClusterAnalysis::m_h_phi13
std::unique_ptr< TH1F > m_h_phi13
Definition: ClusterAnalysis.h:71
ClusterSeg::ClusterAnalysis::m_tree
TTree * m_tree
Definition: ClusterAnalysis.h:43
ClusterSeg::ClusterAnalysis::m_h_XY122
std::unique_ptr< TH1F > m_h_XY122
Definition: ClusterAnalysis.h:96
ClusterSeg::ClusterAnalysis::m_h_sizeL1
std::unique_ptr< TH1F > m_h_sizeL1
Definition: ClusterAnalysis.h:89
ClusterSeg::ClusterAnalysis::m_h_XY
std::unique_ptr< TH1F > m_h_XY
Definition: ClusterAnalysis.h:86
ClusterSeg::ClusterAnalysis::m_h_theta_t12
std::unique_ptr< TH1F > m_h_theta_t12
Definition: ClusterAnalysis.h:68
ClusterSeg::ClusterAnalysis::m_ntuple
ClusterNtuple m_ntuple
Definition: ClusterAnalysis.h:44
ClusterNtuple.h
ClusterSeg::ClusterAnalysis::m_h_phi
std::unique_ptr< TH1F > m_h_phi
Definition: ClusterAnalysis.h:57
ClusterSeg::ClusterAnalysis::m_h_theta
std::unique_ptr< TH1F > m_h_theta
Definition: ClusterAnalysis.h:58
ClusterSeg::ClusterAnalysis::m_ang2_cut
double m_ang2_cut
Definition: ClusterAnalysis.h:49
ClusterSeg::ClusterAnalysis::m_h_angle_t23
std::unique_ptr< TH1F > m_h_angle_t23
Definition: ClusterAnalysis.h:83
ClusterSeg::ClusterAnalysis::ClusterAnalysis
ClusterAnalysis()
Definition: ClusterAnalysis.cxx:26
ClusterSeg::ClusterAnalysis::m_h_R_t
std::unique_ptr< TH1F > m_h_R_t
Definition: ClusterAnalysis.h:87
ClusterSeg::ClusterAnalysis::m_h_XY121
std::unique_ptr< TH1F > m_h_XY121
Definition: ClusterAnalysis.h:95
ClusterSeg::ClusterAnalysis::m_writeOut
bool m_writeOut
Definition: ClusterAnalysis.h:47
ClusterSeg::ClusterAnalysis::createSeedsAllLayers
void createSeedsAllLayers(const std::vector< SpacePoint > &layer1Points, const std::vector< SpacePoint > &layer2Points, const std::vector< SpacePoint > &layer3Points, std::vector< std::vector< SpacePoint >> &seeds)
Definition: ClusterAnalysis.cxx:325
ClusterSeg::ClusterAnalysis::m_h_sizeL1L2L3
std::unique_ptr< TH1F > m_h_sizeL1L2L3
Definition: ClusterAnalysis.h:93
ClusterSeg::ClusterAnalysis::m_h_theta12
std::unique_ptr< TH1F > m_h_theta12
Definition: ClusterAnalysis.h:65
ClusterSeg::ClusterAnalysis::m_h_XY233
std::unique_ptr< TH1F > m_h_XY233
Definition: ClusterAnalysis.h:106
ClusterSeg::ClusterAnalysis::m_h_phi_t
std::unique_ptr< TH1F > m_h_phi_t
Definition: ClusterAnalysis.h:60
ClusterSeg::ClusterAnalysis::m_h_theta_t23
std::unique_ptr< TH1F > m_h_theta_t23
Definition: ClusterAnalysis.h:82
ClusterSeg::ClusterAnalysis::m_h_miss_XY
std::unique_ptr< TH2F > m_h_miss_XY
Definition: ClusterAnalysis.h:53
ClusterSeg::ClusterAnalysis::m_h_angle12
std::unique_ptr< TH1F > m_h_angle12
Definition: ClusterAnalysis.h:66
jobOptions.points
points
Definition: jobOptions.GenevaPy8_Zmumu.py:97
ClusterSeg::ClusterAnalysis::m_h_XY232_t
std::unique_ptr< TH1F > m_h_XY232_t
Definition: ClusterAnalysis.h:107