forked from sPHENIX-Collaboration/coresoftware
/
DetermineTowerBackground.h
76 lines (59 loc) · 2.01 KB
/
DetermineTowerBackground.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#ifndef JETBACKGROUND_DETERMINETOWERBACKGROUND_H
#define JETBACKGROUND_DETERMINETOWERBACKGROUND_H
//===========================================================
/// \file DetermineTowerBackground.h
/// \brief UE background calculator
/// \author Dennis V. Perepelitsa
//===========================================================
#include <fun4all/SubsysReco.h>
// system includes
#include <string>
#include <vector>
// forward declarations
class PHCompositeNode;
/// \class DetermineTowerBackground
///
/// \brief UE background calculator
///
/// This module constructs dE/deta vs. eta and v2 estimates given an
/// (unsubtracted) set of calorimeter towers and possible a set of
/// exclusion jets (seeds)
///
class DetermineTowerBackground : public SubsysReco
{
public:
DetermineTowerBackground(const std::string &name = "DetermineTowerBackground");
~DetermineTowerBackground() override {}
int InitRun(PHCompositeNode *topNode) override;
int process_event(PHCompositeNode *topNode) override;
void SetBackgroundOutputName(const std::string &name) { _backgroundName = name; }
void SetSeedType(int seed_type) { _seed_type = seed_type; }
void SetFlow(int do_flow) { _do_flow = do_flow; };
void SetSeedJetD(float D) { _seed_jet_D = D; };
void SetSeedJetPt(float pt) { _seed_jet_pt = pt; };
private:
int CreateNode(PHCompositeNode *topNode);
void FillNode(PHCompositeNode *topNode);
int _do_flow;
float _v2;
float _Psi2;
std::vector<std::vector<float> > _UE;
int _nStrips;
int _nTowers;
int _HCAL_NETA;
int _HCAL_NPHI;
std::vector<std::vector<float> > _EMCAL_E;
std::vector<std::vector<float> > _IHCAL_E;
std::vector<std::vector<float> > _OHCAL_E;
// 1-D energies vs. phi (integrated over eta strips with complete
// phi coverage, and all layers)
std::vector<float> _FULLCALOFLOW_PHI_E;
std::vector<float> _FULLCALOFLOW_PHI_VAL;
std::string _backgroundName;
int _seed_type;
float _seed_jet_D;
float _seed_jet_pt;
std::vector<float> _seed_eta;
std::vector<float> _seed_phi;
};
#endif