Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-06 08:13:18

0001 // ----------------------------------------------------------------------------
0002 // 'SMakeTrackQATuple.h'
0003 // Derek Anderson
0004 // 12.29.2023
0005 //
0006 // SCorrelatorQAMaker plugin to produce QA tuples
0007 // for tracks.
0008 // ----------------------------------------------------------------------------
0009 
0010 #ifndef SCORRELATORQAMAKER_SMAKETRACKQATUPLE_H
0011 #define SCORRELATORQAMAKER_SMAKETRACKQATUPLE_H
0012 
0013 // c++ utilities
0014 #include <string>
0015 #include <vector>
0016 #include <utility>
0017 // root utilities
0018 #include <TF1.h>
0019 #include <TNtuple.h>
0020 #include <Math/Vector3D.h>
0021 // f4a libraries
0022 #include <fun4all/SubsysReco.h>
0023 #include <fun4all/Fun4AllReturnCodes.h>
0024 #include <fun4all/Fun4AllHistoManager.h>
0025 // phool libraries
0026 #include <phool/phool.h>
0027 #include <phool/getClass.h>
0028 #include <phool/PHIODataNode.h>
0029 #include <phool/PHNodeIterator.h>
0030 #include <phool/PHCompositeNode.h>
0031 // tracking libraries
0032 #include <trackbase_historic/SvtxTrack.h>
0033 #include <trackbase_historic/SvtxTrackMap.h>
0034 #include <trackbase_historic/TrackAnalysisUtils.h>
0035 // analysis utilities
0036 #include <scorrelatorutilities/Tools.h>
0037 #include <scorrelatorutilities/Types.h>
0038 #include <scorrelatorutilities/Constants.h>
0039 #include <scorrelatorutilities/Interfaces.h>
0040 // plugin definitions
0041 #include "SBaseQAPlugin.h"
0042 #include "SMakeTrackQATupleConfig.h"
0043 
0044 // make common namespaces implicit
0045 using namespace std;
0046 
0047 
0048 
0049 namespace SColdQcdCorrelatorAnalysis {
0050 
0051   // SMakeTrackQATuple definition ----------------------------------------------
0052 
0053   class SMakeTrackQATuple : public SubsysReco, public SBaseQAPlugin<SMakeTrackQATupleConfig> {
0054 
0055     public:
0056 
0057       // ctor/dtor
0058       SMakeTrackQATuple(const string& name = "TrackQATuple") : SubsysReco(name) {};
0059       ~SMakeTrackQATuple() {};
0060 
0061       // F4A methods
0062       int Init(PHCompositeNode*)          override;
0063       int process_event(PHCompositeNode*) override;
0064       int End(PHCompositeNode*)           override;
0065 
0066     private:
0067 
0068       // internal methods
0069       void InitTuple();
0070       void SaveOutput();
0071       void DoTrackLoop(PHCompositeNode* topNode);
0072       bool IsGoodTrack(SvtxTrack* track, PHCompositeNode* topNode);
0073 
0074       // for tuple leaves
0075       vector<float> m_vecTrackLeaves;
0076 
0077       // root members
0078       TNtuple* m_ntTrackQA;
0079 
0080   };  // end SMakeTrackQATuple
0081 
0082 }  // end SColdQcdCorrelatorAnalysis namespace
0083 
0084 #endif
0085 
0086 // end -----------------------------------------------------------------------