ATLAS Offline Software
PadTdsValidationTree.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef NSWL1_PADTDSVALIDATIONTREE_H
6 #define NSWL1_PADTDSVALIDATIONTREE_H
7 
10 #include "GaudiKernel/ITHistSvc.h"
11 #include "GeoPrimitives/GeoPrimitives.h" // Amg::Vector3D (cannot fw declare typedef)
12 #include "TTree.h"
13 
14 #include <string>
15 #include <utility> // pair
16 #include <vector>
17 
18 class Identifier;
19 
20 // namespace for the NSW LVL1 related classes
21 namespace NSWL1 {
22 
23 class PadOfflineData;
24 
25 /*
26  * @brief TTree maker to store the variables used to validate the input/output to the PadTdsOfflineTool
27  * Sept 2014 : davide.gerbaudo@gmail.com
28  * Major updates for Release 22: francesco.giuseppe.gravili@cern.ch
29  */
30 
32  public:
35 
38  bool init_tree(TTree *tree);
39  bool reset_ntuple_variables();
40  void fill_num_pad_hits(size_t num) const;
41  void fill_hit_global_pos(const Amg::Vector3D& pos) const;
42  void fill_hit_global_corner_pos(const std::vector<Amg::Vector3D> &pos) const;
43  void fill_truth_hit_global_pos(const Amg::Vector3D& pos) const;
44 
49  void fill_offlineid_info(const PadOfflineData &o, float bin_offset) const;
50  void fill_matched_old_id_new_id(const std::pair<int,int> &old_id, std::pair<int,int> &new_id) const;
51 
52  private:
53  std::string m_treename;
54  TTree* m_tree{nullptr};
55  std::vector<int>* m_nPadHits{nullptr};
56  std::vector<float>* m_padGlobalX{nullptr};
57  std::vector<float>* m_padGlobalY{nullptr};
58  std::vector<float>* m_padGlobalZ{nullptr};
59  std::vector<float>* m_padDelayedTime{nullptr};
60  std::vector<int>* m_padBCHR{nullptr};
61  std::vector<float>* m_padGlobalCornerX{nullptr};
62  std::vector<float>* m_padGlobalCornerY{nullptr};
63  std::vector<float>* m_padGlobalCornerZ{nullptr};
64  std::vector<float>* m_padTruthHitGlobalX{nullptr};
65  std::vector<float>* m_padTruthHitGlobalY{nullptr};
66  std::vector<float>* m_padTruthHitGlobalZ{nullptr};
67  std::vector<int>* m_padEtaIdFromOfflineId{nullptr};
68  std::vector<int>* m_padPhiIdFromOfflineId{nullptr};
69  std::vector<int>* m_padSectorIdFromOfflineId{nullptr};
70  std::vector<int>* m_padSectorTypeFromOfflineId{nullptr};
71  std::vector<int>* m_padGasGapIdFromOfflineId{nullptr};
72  std::vector<int>* m_padModuleIdFromOfflineId{nullptr};
73  std::vector<int>* m_padMultipletIdFromOfflineId{nullptr};
74  std::vector<int>* m_padSideIdFromOfflineId{nullptr};
75  std::vector<int>* m_offlineIdPadEtaConverted{nullptr};
76  std::vector<int>* m_offlineIdPadPhiConverted{nullptr};
77  std::vector<int>* m_padEtaIdFromOldSimu{nullptr};
78  std::vector<int>* m_padPhiIdFromOldSimu{nullptr};
79  }; // PadTdsValidationTree
80 } // NSWL1
81 #endif
tree
TChain * tree
Definition: tile_monitor.h:30
NSWL1::PadTdsValidationTree
Definition: PadTdsValidationTree.h:31
NSWL1::ATLAS_NOT_THREAD_SAFE
StatusCode PadTdsOfflineTool::fill_pad_validation_id ATLAS_NOT_THREAD_SAFE(std::vector< std::vector< std::shared_ptr< PadData >> > &pad_cache) const
Definition: PadTdsOfflineTool.cxx:114
GeoPrimitives.h
NSWL1::PadOfflineData
class modeling the pad hit fragment for the NSW L1 offline simulation
Definition: PadOfflineData.h:36
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
trigbs_pickEvents.num
num
Definition: trigbs_pickEvents.py:76
PadOfflineData.h
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
NSWL1::PadTdsValidationTree::m_treename
std::string m_treename
Definition: PadTdsValidationTree.h:53
checker_macros.h
Define macros for attributes used to control the static checker.
NSWL1
A trigger trigger candidate for a stgc sector.
Definition: NSWL1Simulation.cxx:9