ATLAS Offline Software
AnomalyDetectionBDT.h
Go to the documentation of this file.
1 /*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 
4 // AnomalyDetectionBDT.h
5 // Created by Santiago CanĂ© on 4/15/2025
6 */
7 
8 #ifndef __TopoCore__AnomalyDetectionBDT__
9 #define __TopoCore__AnomalyDetectionBDT__
10 
11 #include <iostream>
12 #include <vector>
14 #include "nlohmann/json.hpp"
15 
16 namespace TCS {
17  class Bin {
18  public:
19  // constructor
20  Bin(const nlohmann::json& obj, int nVars);
21 
22  // check if input event is inside the bin
23  bool isInside(const std::vector<int64_t>& inputEvent) const;
24 
25  // output streaming
26  friend std::ostream& operator<<(std::ostream& os, const Bin& bin);
27 
28  int64_t score; // score of the bin
29 
30  private:
31  int nVar; // dimension
32  std::vector<int64_t> minVals; // lower bin limit for each dimension
33  std::vector<int64_t> maxVals; // upper bin limit for each dimension
34  };
35 
36  class Tree {
37  public:
38  // constructor
39  Tree(const nlohmann::json& obj, int nVars);
40 
41  // score for input event (score of bin which contains the input event)
42  int64_t getTreeScore(const std::vector<int64_t>& inputEvent) const;
43 
44  private:
45  std::vector<Bin> bins; // all bins of the tree
46  };
47 
48 
50  public:
51  AnomalyDetectionBDT(const std::string & name);
52  virtual ~AnomalyDetectionBDT();
53 
54  virtual StatusCode initialize();
55 
56  virtual StatusCode processBitCorrect(const std::vector<TCS::TOBArray const *> & input,
57  const std::vector<TCS::TOBArray *> & output,
58  Decision & decision);
59 
60  virtual StatusCode process(const std::vector<TCS::TOBArray const *> & input,
61  const std::vector<TCS::TOBArray *> & output,
62  Decision & decision);
63 
64  private:
65  std::vector<Tree> m_trees; // list of all trees
66  int m_nVar{0}; // dimension of the BDT
67  int64_t m_totalScore{0}; // score of the input event
68  float m_mu1_ptmin{0}, m_mu1_ptmax{0}, m_mu1_etamin{0}, m_mu1_etamax{0}, m_mu1_phimin{0}, m_mu1_phimax{0}; // range of the first muon
69  float m_mu2_ptmin{0}, m_mu2_ptmax{0}, m_mu2_etamin{0}, m_mu2_etamax{0}, m_mu2_phimin{0}, m_mu2_phimax{0}; // range of the second muon
70  std::string m_sim_mode; //Simulation mode. Can be "lut" (Look Up Table) or "math"
71  parType_t p_ScoreThreshold[2] = { 0, 0 };
74  size_t p_MaxTob{3}; //Number of TOBs (e.g., 3 muon events)
75  };
76 }
77 
78 #endif
79 
TCS::Bin::score
int64_t score
Definition: AnomalyDetectionBDT.h:28
TCS::Tree::bins
std::vector< Bin > bins
Definition: AnomalyDetectionBDT.h:45
TCS::AnomalyDetectionBDT::p_minEt1
parType_t p_minEt1
Definition: AnomalyDetectionBDT.h:72
TCS::parType_t
uint32_t parType_t
Definition: Parameter.h:22
TCS::Bin::maxVals
std::vector< int64_t > maxVals
Definition: AnomalyDetectionBDT.h:33
json
nlohmann::json json
Definition: HistogramDef.cxx:9
TCS::AnomalyDetectionBDT::m_mu2_ptmin
float m_mu2_ptmin
Definition: AnomalyDetectionBDT.h:69
TCS::AnomalyDetectionBDT::m_mu2_phimax
float m_mu2_phimax
Definition: AnomalyDetectionBDT.h:69
TCS::Bin::isInside
bool isInside(const std::vector< int64_t > &inputEvent) const
Definition: AnomalyDetectionBDT.cxx:351
TCS::AnomalyDetectionBDT::~AnomalyDetectionBDT
virtual ~AnomalyDetectionBDT()
Definition: AnomalyDetectionBDT.cxx:396
TCS::Bin::Bin
Bin(const nlohmann::json &obj, int nVars)
Definition: AnomalyDetectionBDT.cxx:339
bin
Definition: BinsDiffFromStripMedian.h:43
TCS::AnomalyDetectionBDT::m_mu1_etamin
float m_mu1_etamin
Definition: AnomalyDetectionBDT.h:68
TCS::Bin
Definition: AnomalyDetectionBDT.h:17
TCS::AnomalyDetectionBDT::m_mu2_etamax
float m_mu2_etamax
Definition: AnomalyDetectionBDT.h:69
TCS::AnomalyDetectionBDT::m_mu1_ptmin
float m_mu1_ptmin
Definition: AnomalyDetectionBDT.h:68
TCS::Tree
Definition: AnomalyDetectionBDT.h:36
TCS::AnomalyDetectionBDT::p_MaxTob
size_t p_MaxTob
Definition: AnomalyDetectionBDT.h:74
TCS::AnomalyDetectionBDT::m_sim_mode
std::string m_sim_mode
Definition: AnomalyDetectionBDT.h:70
TCS::DecisionAlg
Definition: Trigger/TrigT1/L1Topo/L1TopoInterfaces/L1TopoInterfaces/DecisionAlg.h:22
TCS::AnomalyDetectionBDT::m_mu1_ptmax
float m_mu1_ptmax
Definition: AnomalyDetectionBDT.h:68
TCS::AnomalyDetectionBDT::p_minEt2
parType_t p_minEt2
Definition: AnomalyDetectionBDT.h:73
TCS::Tree::getTreeScore
int64_t getTreeScore(const std::vector< int64_t > &inputEvent) const
Definition: AnomalyDetectionBDT.cxx:371
TCS::AnomalyDetectionBDT::m_mu2_phimin
float m_mu2_phimin
Definition: AnomalyDetectionBDT.h:69
TCS::AnomalyDetectionBDT::processBitCorrect
virtual StatusCode processBitCorrect(const std::vector< TCS::TOBArray const * > &input, const std::vector< TCS::TOBArray * > &output, Decision &decision)
Definition: AnomalyDetectionBDT.cxx:467
TCS::AnomalyDetectionBDT::process
virtual StatusCode process(const std::vector< TCS::TOBArray const * > &input, const std::vector< TCS::TOBArray * > &output, Decision &decision)
Definition: AnomalyDetectionBDT.cxx:616
TCS::AnomalyDetectionBDT::m_totalScore
int64_t m_totalScore
Definition: AnomalyDetectionBDT.h:67
TCS::ConfigurableAlg::name
const std::string & name() const
Definition: ConfigurableAlg.h:48
TCS::AnomalyDetectionBDT::m_nVar
int m_nVar
Definition: AnomalyDetectionBDT.h:66
TCS::Bin::operator<<
friend std::ostream & operator<<(std::ostream &os, const Bin &bin)
Definition: AnomalyDetectionBDT.cxx:49
TCS::Bin::minVals
std::vector< int64_t > minVals
Definition: AnomalyDetectionBDT.h:32
ReadFromCoolCompare.os
os
Definition: ReadFromCoolCompare.py:231
TCS::Decision
Definition: L1Topo/L1TopoInterfaces/L1TopoInterfaces/Decision.h:19
TCS::AnomalyDetectionBDT::m_mu1_phimin
float m_mu1_phimin
Definition: AnomalyDetectionBDT.h:68
DecisionAlg.h
TCS::AnomalyDetectionBDT::initialize
virtual StatusCode initialize()
Definition: AnomalyDetectionBDT.cxx:400
TCS::AnomalyDetectionBDT
Definition: AnomalyDetectionBDT.h:49
TCS::AnomalyDetectionBDT::m_mu1_etamax
float m_mu1_etamax
Definition: AnomalyDetectionBDT.h:68
TCS::AnomalyDetectionBDT::m_mu2_etamin
float m_mu2_etamin
Definition: AnomalyDetectionBDT.h:69
TCS::AnomalyDetectionBDT::m_trees
std::vector< Tree > m_trees
Definition: AnomalyDetectionBDT.h:65
TCS
Definition: Global/GlobalSimulation/src/IO/Decision.h:18
TCS::AnomalyDetectionBDT::m_mu2_ptmax
float m_mu2_ptmax
Definition: AnomalyDetectionBDT.h:69
TCS::Tree::Tree
Tree(const nlohmann::json &obj, int nVars)
Definition: AnomalyDetectionBDT.cxx:364
TCS::AnomalyDetectionBDT::m_mu1_phimax
float m_mu1_phimax
Definition: AnomalyDetectionBDT.h:68
python.PyAthena.obj
obj
Definition: PyAthena.py:132
TCS::Bin::nVar
int nVar
Definition: AnomalyDetectionBDT.h:31
TCS::AnomalyDetectionBDT::p_ScoreThreshold
parType_t p_ScoreThreshold[2]
Definition: AnomalyDetectionBDT.h:71
TCS::AnomalyDetectionBDT::AnomalyDetectionBDT
AnomalyDetectionBDT(const std::string &name)
Definition: AnomalyDetectionBDT.cxx:383
TCS::StatusCode
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/L1TopoCommon/StatusCode.h:15