Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:14:32

0001 // Tell emacs that this is a C++ source
0002 //  -*- C++ -*-.
0003 #ifndef PI0EFFICIENCY_H
0004 #define PI0EFFICIENCY_H
0005 
0006 #include <fun4all/SubsysReco.h>
0007 
0008 #include <string>
0009 
0010 class PHCompositeNode;
0011 //TopNode
0012 class PHCompositeNode;
0013 //histos and stuff
0014 class TH1F;
0015 class TH3F;
0016 class TH2F;
0017 class TH2I;
0018 class TString;
0019 //emcal stuff
0020 class RawClusterContainer;
0021 class RawCluster;
0022 class RawTowerGeomContainer;
0023 class RawTowerContainer; 
0024 class RawTower;
0025 //tracking for iso cone
0026 class SvtxTrackMap;
0027 //vertex info
0028 class GlobalVertexMap;
0029 class GlobalVertex;
0030 //Fun4all
0031 class Fun4AllHistoManager;
0032 class TFile;
0033 class PHG4TruthInfoContainer;
0034 class PHG4Particle;
0035 class PHG4VtxPoint;
0036 
0037 const int nEtaBins = 5;
0038 
0039 class pi0Efficiency : public SubsysReco
0040 {
0041  public:
0042 
0043   pi0Efficiency(const std::string &name, const std::string &outName);
0044 
0045   ~pi0Efficiency() override;
0046 
0047  
0048   int Init(PHCompositeNode *topNode) override;
0049 
0050   int InitRun(PHCompositeNode *topNode) override;
0051 
0052   int process_event(PHCompositeNode *topNode) override;
0053 
0054   /// Clean up internals after each event.
0055   int ResetEvent(PHCompositeNode *topNode) override;
0056 
0057   /// Called at the end of each run.
0058   int EndRun(const int runnumber) override;
0059 
0060   /// Called at the end of all processing.
0061   int End(PHCompositeNode *topNode) override;
0062 
0063   /// Reset
0064   int Reset(PHCompositeNode * /*topNode*/) override;
0065 
0066   void Print(const std::string &what = "ALL") const override;
0067 
0068  private:
0069   //functors
0070   int getEtaBin(float eta);
0071   float getEta(PHG4Particle *particle);
0072   //this thing
0073   std::string OutFile;
0074   //histos
0075   TH3F *ePi0InvMassEcut[nEtaBins];
0076   TH1F *clusterE;
0077   TH1F *photonE;
0078   TH1F *prim_pi0_E[nEtaBins];
0079   TH2F *pi0EScale;
0080   TH2F *unmatchedLocale;
0081   TH1F *unmatchedE;
0082   TH2F *truthPi0EDeltaR;
0083   TH2F *truthPi0EAsym;
0084   TH1F *hMassRat;
0085   
0086   Fun4AllHistoManager *hm = nullptr;
0087   TFile *out;
0088 };
0089 
0090 #endif // PI0EFFICIENCY_H