ATLAS Offline Software
Loading...
Searching...
No Matches
TBTree_CaloClusterH6.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef TBREC_TBTREE_CALOCLUSTERH6_H
6#define TBREC_TBTREE_CALOCLUSTERH6_H
7
8//
9// TBTree_CaloClusterH6:
10// Make ROOT TTree for CaloClusters for H6 CBT
11//
15
16#include <TRandom.h>
17
18class TFile;
19class TTree;
20class CaloCell_ID;
21class CaloCluster;
22class IToolSvc;
24class ILArPedestal;
25
27 public:
28
29 TBTree_CaloClusterH6(const std::string& name, ISvcLocator* pSvcLocator);
30 virtual ~TBTree_CaloClusterH6();
31 virtual StatusCode initialize() override;
32 virtual StatusCode execute() override;
33 virtual StatusCode finalize() override;
34
35 private:
36 void clear();
38 StatusCode getXcryoYtable(float &x, float &y, float &eBeam);
39
40 std::string m_suffix;
41 int m_nEvent; // counter
42 int m_nEventRejected; // counter
43 int m_nEventAccepted; // counter
44 int m_nEventRandomTrigger; // counter
52 bool m_first; // First event flag
53
54 // Run header
55 int m_nRun;
56 float m_beamMom;
57 float m_xCryo;
58 float m_yTable;
59 float m_zCalo;
61
62 // Variables to be in the TTree
63 //--------------------------
64 // Event type
65 unsigned short m_evType;
66 // Parameters of the sum of clusters (TB particle)
67 float m_eTotal;
70 float m_eEME2;
71 float m_eEME3;
72 float m_eHEC0;
73 float m_eHEC1;
74 float m_eHEC2;
75 float m_eFCAL0;
76 float m_eFCAL1;
77 float m_eFCAL2;
78 // Claster parameters
80 std::vector<int>* m_nCellCluster;
81 std::vector<float>* m_eCluster;
82 std::vector<float>* m_etaCluster;
83 std::vector<float>* m_phiCluster;
84 // Cluster moments
85 std::vector<float>* m_m1_eta;
86 std::vector<float>* m_m1_phi;
87 std::vector<float>* m_m2_r;
88 std::vector<float>* m_m2_lambda;
89 std::vector<float>* m_delta_phi;
90 std::vector<float>* m_delta_theta;
91 std::vector<float>* m_delta_alpha;
92 std::vector<float>* m_center_x;
93 std::vector<float>* m_center_y;
94 std::vector<float>* m_center_z;
95 std::vector<float>* m_center_lambda;
96 std::vector<float>* m_lateral;
97 std::vector<float>* m_longitudinal;
98 std::vector<float>* m_eng_frac_em;
99 std::vector<float>* m_eng_frac_max;
100 std::vector<float>* m_eng_frac_core;
101 std::vector<float>* m_m1_dens;
102 std::vector<float>* m_m2_dens;
103 // Cell parameters
105 std::vector<int>* m_cell_id;
106 std::vector<int>* m_cell_ind_cluster;
107 std::vector<float>* m_cell_energy;
108 std::vector<int>* m_cell_gain;
109 std::vector<float>* m_cell_time;
110 std::vector<float>* m_cell_quality;
111
112 // Beam track parameters
121
122 // Warm TailCatcher data: one word per layer (6 layers at all)
123 std::vector<short>* m_wtcNOverflow;
124 std::vector<float>* m_wtcSignal;
125
126 // Names and pointers
127 std::string m_caloCellContainerName; // Cell container name
128 std::string m_clusterContainerName; // Cluster container
129 std::string m_WTCContainerName; // Warm TailCatcher
130 std::string m_TBTreeName; // TBTree name
131 std::string m_rootfile_name; // name of the ROOT file with TBTree
132 TFile* m_rootfile; // and its pointer
133 TTree* m_tree; // TBTree pointer
134
135 const CaloCell_ID* m_calo_id{nullptr};
136
138 { this, "ElecNoiseKey", "electronicNoise", "SG key for electronic noise" };
139
141 std::string m_txtFileWithXY;
142};
143
144#endif
#define y
#define x
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
Helper class for offline cell identifiers.
Definition CaloCell_ID.h:34
Principal data class for CaloCell clusters.
Container class for LArDigit.
std::string m_txtFileWithXY
Text file containing xCryo and yTable.
std::vector< float > * m_delta_phi
std::vector< float > * m_m1_phi
std::vector< float > * m_eng_frac_em
std::vector< float > * m_eng_frac_max
std::vector< float > * m_m2_r
std::vector< float > * m_cell_quality
std::vector< int > * m_nCellCluster
std::vector< float > * m_eng_frac_core
std::vector< float > * m_center_z
float m_xCryo
Beam momentum.
std::vector< float > * m_etaCluster
std::vector< float > * m_m2_lambda
unsigned short m_evType
z-coordinate of the calorimeter surface at which beam coordinates calculated
TBTree_CaloClusterH6(const std::string &name, ISvcLocator *pSvcLocator)
virtual StatusCode initialize() override
std::vector< float > * m_eCluster
std::vector< float > * m_longitudinal
std::vector< float > * m_center_lambda
std::vector< float > * m_lateral
std::vector< int > * m_cell_gain
std::vector< float > * m_phiCluster
std::vector< int > * m_cell_id
std::vector< float > * m_m1_eta
std::vector< float > * m_center_x
StatusCode getXcryoYtable(float &x, float &y, float &eBeam)
Get Xcryo and Ytable from a text file.
std::vector< float > * m_cell_time
std::vector< float > * m_m1_dens
const CaloCell_ID * m_calo_id
std::vector< float > * m_center_y
SG::ReadCondHandleKey< CaloNoise > m_elecNoiseKey
virtual StatusCode finalize() override
std::vector< short > * m_wtcNOverflow
std::vector< float > * m_wtcSignal
virtual StatusCode execute() override
std::vector< float > * m_delta_alpha
std::vector< int > * m_cell_ind_cluster
std::vector< float > * m_delta_theta
std::vector< float > * m_cell_energy
std::vector< float > * m_m2_dens