Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
RawClusterBuilderTemplate.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file RawClusterBuilderTemplate.h
1 #ifndef CALORECO_RAWCLUSTERBUILDERTEMPLATE_H
2 #define CALORECO_RAWCLUSTERBUILDERTEMPLATE_H
3 
4 #include <fun4all/SubsysReco.h>
5 
6 #include <string>
7 
8 class PHCompositeNode;
11 class BEmcRec;
12 class TowerInfo;
13 class RawTower;
14 
16 {
17  public:
18  explicit RawClusterBuilderTemplate(const std::string& name = "RawClusterBuilderTemplate");
19  ~RawClusterBuilderTemplate() override;
20 
21  int InitRun(PHCompositeNode* topNode) override;
22  int process_event(PHCompositeNode* topNode) override;
23  void Detector(const std::string& d);
24 
26  void SetPlanarGeometry();
27  void PrintGeometry() { bPrintGeom = true; } // Prints it at InitRun time
28  void PrintCylGeom(RawTowerGeomContainer* towergeom, const std::string& fname);
29  void SetProfileProb(bool pprob) { bProfProb = pprob; }
30  void SetProbNoiseParam(float rn) { fProbNoiseParam = rn; }
31 
32  void set_threshold_energy(const float e) { _min_tower_e = e; }
33  void setEnergyNorm(const float norm) { fEnergyNorm = norm; }
34  void checkenergy(const int i = 1) { chkenergyconservation = i; }
35  void LoadProfile(const std::string& fname);
36 
37  void set_UseTowerInfo(const int useMode)
38  { // 0 only old tower, 1 only new (TowerInfo based),
39  m_UseTowerInfo = useMode;
40  }
41 
43  {
45  }
46 
47  void set_UseAltZVertex(const int useAltZMode)
48  { // 0 use global vtx, 1 only bbcout bbczvtx , 2 use NO zvtx[set to 0]
49  m_UseAltZVertex = useAltZMode;
50  }
51 
52  void setOutputClusterNodeName(const std::string& inpNodenm)
53  {
54  m_outputnodename = inpNodenm;
55  }
56 
57  // !!! note : next fn NOT implemented for RawTowers
58  // only TowerInfo mode
59  void setInputTowerNodeName(const std::string& inpNodenm)
60  {
61  m_inputnodename = inpNodenm;
62  }
63 
64  private:
65  void CreateNodes(PHCompositeNode* topNode);
66  bool Cell2Abs(RawTowerGeomContainer* towergeom, float phiC, float etaC, float& phi, float& eta);
69 
71  // BEmcProfile *_emcprof;
72 
73  BEmcRec* bemc = nullptr;
74  float fEnergyNorm = 1.;
75 
76  float _min_tower_e = 0.020;
78 
81 
82  int BINX0 = 0;
83  int NBINX = 0;
84  int BINY0 = 0;
85  int NBINY = 0;
86 
87  bool bPrintGeom = false;
88  bool bProfProb = false;
89  float fProbNoiseParam = 0.04;
90 
91  int m_UseTowerInfo = 0; // 0 only old tower, 1 only new (TowerInfo based),
92 
93  bool m_do_tower_selection = true;
94 
96 
97  int m_UseAltZVertex = 2;
98  // 0 - use GlobalVtxMap
99  // 1 - use BbcReco ZVtx
100  // 2 - use NO zvertex (zvtx = 0)
101 
104 };
105 
106 #endif /* RawClusterBuilderTemplate_H__ */