Back to home page

sPhenix code displayed by LXR

 
 

    


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 /// Class declarations for use in the analysis module
0007 class PHCompositeNode;
0008 class TFile;
0009 class TTree;
0010 class TH1;
0011 class TH2;
0012 
0013 /// Definition of this analysis module class
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   /// Constructor
0030   MultiDetectorMultiplicity(const std::string &name = "MultiDetectorMultiplicity",
0031               const std::string &fname = "MultiDetectorMultiplicity.root");
0032 
0033   // Destructor
0034   virtual ~MultiDetectorMultiplicity();
0035 
0036   /// SubsysReco initialize processing method
0037   int Init(PHCompositeNode *);
0038 
0039   /// SubsysReco event processing method
0040   int process_event(PHCompositeNode *);
0041 
0042   /// SubsysReco end processing method
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   /// String to contain the outfile name containing the trees
0057   std::string _outfilename;
0058   const float _zVertexAcceptance = 10.; //cm
0059   const unsigned int _nlayers_maps = 3;
0060   const unsigned int _nlayers_intt = 4;
0061   const unsigned int _nlayers_tpc = 48;
0062 
0063   /// 2D Histograms
0064   TH2 *_tracks_EMCALenergy; // Track multiplicity (with selections) vs total EMCal energy
0065   TH2 *_tracks_IHCALenergy; // Track multiplicity (with selections) vs total IHCal energy
0066   TH2 *_tracks_OHCALenergy; // Track multiplicity (with selections) vs total OHCal energy
0067   TH2 *_tracks_AllCALenergy; // Track multiplicity (with selections) vs total EMCal+IHCal+OHCal energy
0068   TH2 *_tracks_MVTXclusters; // Track multiplicity (with selections) vs MVTX cluster multiplicity
0069 
0070   TH2 *_MVTXclusters_EMCALenergy; // MVTX cluster multiplicity vs total EMCal energy
0071   TH2 *_MVTXclusters_IHCALenergy; // MVTX cluster multiplicity vs total IHCal energy
0072   TH2 *_MVTXclusters_OHCALenergy; // MVTX cluster multiplicity vs total OHCal energy
0073   TH2 *_MVTXclusters_AllCALenergy; // MVTX cluster multiplicity vs total EMCal+IHCal+OHCal energy
0074 
0075   TH2 *_EMCALenergy_IHCALenergy; // Total EMCal energy vs total IHCal energy
0076   TH2 *_EMCALenergy_OHCALenergy; // Total EMCal energy vs total OHCal energy
0077   TH2 *_IHCALenergy_OHCALenergy; // Total IHCal energy vs total OHCal energy
0078 
0079   TH2 *_MBDcentrality_tracks; // Centrality percentile (MBD) vs track multiplicity (with selections)
0080   TH2 *_MBDcentrality_MVTXclusters; // Centrality percentile (MBD) vs MVTX cluster multiplicity
0081   TH2 *_MBDcentrality_EMCALenergy; // Centrality percentile (MBD) vs total EMCal energy
0082   TH2 *_MBDcentrality_IHCALenergy; // Centrality percentile (MBD) vs total IHCal energy
0083   TH2 *_MBDcentrality_OHCALenergy; // Centrality percentile (MBD) vs total OHCal energy
0084   TH2 *_MBDcentrality_AllCALenergy; // Centrality percentile (MBD) vs total EMCal+IHCal+OHCal energy
0085   TH2 *_MBDcentrality_EPDenergy; // Centrality percentile (MBD) vs total sEPD energy
0086 
0087   TH2 *_EPDcentrality_tracks; // Centrality percentile (sEPD) vs track multiplicity (with selections)
0088   TH2 *_EPDcentrality_MVTXclusters; // Centrality percentile (sEPD) vs MVTX cluster multiplicity
0089   TH2 *_EPDcentrality_EMCALenergy; // Centrality percentile (sEPD) vs total EMCal energy
0090   TH2 *_EPDcentrality_IHCALenergy; // Centrality percentile (sEPD) vs total IHCal energy
0091   TH2 *_EPDcentrality_OHCALenergy; // Centrality percentile (sEPD) vs total OHCal energy
0092   TH2 *_EPDcentrality_AllCALenergy; // Centrality percentile (sEPD) vs total EMCal+IHCal+OHCal energy
0093   TH2 *_EPDcentrality_EPDenergy; // Centrality percentile (sEPD) vs total sEPD energy
0094 
0095   TH2 *_EPDcentrality_MBDcentrality; // Centrality percentile (sEPD) vs centrality percentile (sEPD)
0096 
0097   TH2 *_EPDenergy_tracks; // Total sEPD energy vs track multiplicity (with selections)
0098   TH2 *_EPDenergy_MVTXclusters; // Total sEPD energy vs MVTX cluster multiplicity
0099   TH2 *_EPDenergy_EMCALenergy; // Total sEPD energy vs total EMCal energy
0100   TH2 *_EPDenergy_IHCALenergy; // Total sEPD energy vs total IHCal energy
0101   TH2 *_EPDenergy_OHCALenergy; // Total sEPD energy vs total OHCal energy
0102   TH2 *_EPDenergy_AllCALenergy; // Total sEPD energy vs total EMCal+IHCal+OHCal energy
0103 
0104   // This histo keeps track of the number of times certain objects were not found.
0105   // Ideally this histogram should be EMPTY!!!
0106   // For future updates including other objects, be sure to not reject the event before all objects are checked
0107   TH1 *_SubsystemObjectsFail;
0108 
0109 
0110 
0111   /// TFile to hold the following TTrees and histograms
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