File indexing completed on 2025-08-05 08:13:28
0001 #ifndef MULTIDETECTORMULTIPLICITY_H__
0002 #define MULTIDETECTORMULTIPLICITY_H__
0003
0004 #include <fun4all/SubsysReco.h>
0005
0006
0007 class PHCompositeNode;
0008 class TFile;
0009 class TTree;
0010 class TH1;
0011 class TH2;
0012
0013
0014 class MultiDetectorMultiplicity : public SubsysReco
0015 {
0016 public:
0017 enum OBJECT
0018 {
0019 VERTEX = 0,
0020 CENTRALITY = 1,
0021 TRACKS = 2,
0022 MVTXCLUSTERS = 3,
0023 EMCALTOWERS = 4,
0024 IHCALTOWERS = 5,
0025 OHCALTOWERS = 6,
0026 EPDTOWERS = 7
0027 };
0028
0029
0030 MultiDetectorMultiplicity(const std::string &name = "MultiDetectorMultiplicity",
0031 const std::string &fname = "MultiDetectorMultiplicity.root");
0032
0033
0034 virtual ~MultiDetectorMultiplicity();
0035
0036
0037 int Init(PHCompositeNode *);
0038
0039
0040 int process_event(PHCompositeNode *);
0041
0042
0043 int End(PHCompositeNode *);
0044
0045 void initializeObjects();
0046 float getFilteredNtracks(PHCompositeNode *topNode);
0047 float getMVTXnclusters(PHCompositeNode *topNode);
0048 float getEMCalTotalEnergy(PHCompositeNode *topNode);
0049 float getIHCalTotalEnergy(PHCompositeNode *topNode);
0050 float getOHCalTotalEnergy(PHCompositeNode *topNode);
0051 float getsEPDTotalEnergy(PHCompositeNode *topNode);
0052 void setCentralityHistoLabel(TH2 *histo, bool doYaxisLabels = false);
0053 bool isVertexAccepted(PHCompositeNode *topNode);
0054
0055 private:
0056
0057 std::string _outfilename;
0058 const float _zVertexAcceptance = 10.;
0059 const unsigned int _nlayers_maps = 3;
0060 const unsigned int _nlayers_intt = 4;
0061 const unsigned int _nlayers_tpc = 48;
0062
0063
0064 TH2 *_tracks_EMCALenergy;
0065 TH2 *_tracks_IHCALenergy;
0066 TH2 *_tracks_OHCALenergy;
0067 TH2 *_tracks_AllCALenergy;
0068 TH2 *_tracks_MVTXclusters;
0069
0070 TH2 *_MVTXclusters_EMCALenergy;
0071 TH2 *_MVTXclusters_IHCALenergy;
0072 TH2 *_MVTXclusters_OHCALenergy;
0073 TH2 *_MVTXclusters_AllCALenergy;
0074
0075 TH2 *_EMCALenergy_IHCALenergy;
0076 TH2 *_EMCALenergy_OHCALenergy;
0077 TH2 *_IHCALenergy_OHCALenergy;
0078
0079 TH2 *_MBDcentrality_tracks;
0080 TH2 *_MBDcentrality_MVTXclusters;
0081 TH2 *_MBDcentrality_EMCALenergy;
0082 TH2 *_MBDcentrality_IHCALenergy;
0083 TH2 *_MBDcentrality_OHCALenergy;
0084 TH2 *_MBDcentrality_AllCALenergy;
0085 TH2 *_MBDcentrality_EPDenergy;
0086
0087 TH2 *_EPDcentrality_tracks;
0088 TH2 *_EPDcentrality_MVTXclusters;
0089 TH2 *_EPDcentrality_EMCALenergy;
0090 TH2 *_EPDcentrality_IHCALenergy;
0091 TH2 *_EPDcentrality_OHCALenergy;
0092 TH2 *_EPDcentrality_AllCALenergy;
0093 TH2 *_EPDcentrality_EPDenergy;
0094
0095 TH2 *_EPDcentrality_MBDcentrality;
0096
0097 TH2 *_EPDenergy_tracks;
0098 TH2 *_EPDenergy_MVTXclusters;
0099 TH2 *_EPDenergy_EMCALenergy;
0100 TH2 *_EPDenergy_IHCALenergy;
0101 TH2 *_EPDenergy_OHCALenergy;
0102 TH2 *_EPDenergy_AllCALenergy;
0103
0104
0105
0106
0107 TH1 *_SubsystemObjectsFail;
0108
0109
0110
0111
0112 TFile *_outfile;
0113 float _mbd_centrality;
0114 float _epd_centrality;
0115
0116 const int _nbins = 100;
0117 const float _track_bin_max = 1000.;
0118 const float _mvtx_bin_max = 20000.;
0119 const float _emcal_bin_max = 2000.;
0120 const float _ihcal_bin_max = 200.;
0121 const float _ohcal_bin_max = 500.;
0122 const float _allcal_bin_max = _emcal_bin_max+_ihcal_bin_max+_ohcal_bin_max;
0123 const float _epd_bin_max = 20000.;
0124
0125 };
0126
0127 #endif