Back to home page

sPhenix code displayed by LXR

 
 

    


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

0001 #ifndef __AnaSvtxTracksForGenFit_H__
0002 #define __AnaSvtxTracksForGenFit_H__
0003 
0004 #include <fun4all/SubsysReco.h>
0005 #include <string>
0006 
0007 //Forward declerations
0008 class PHCompositeNode;
0009 class PHG4TruthInfoContainer;
0010 class SvtxClusterMap;
0011 class SvtxEvalStack;
0012 class TFile;
0013 class TTree;
0014 
0015 
0016 //Brief: basic ntuple and histogram creation for sim evaluation
0017 class AnaSvtxTracksForGenFit: public SubsysReco
0018 {
0019  public: 
0020   //Default constructor
0021   AnaSvtxTracksForGenFit(const std::string &name="AnaSvtxTracksForGenFit");
0022 
0023   //Initialization, called for initialization
0024   int Init(PHCompositeNode *);
0025 
0026   //Process Event, called for each event
0027   int process_event(PHCompositeNode *);
0028 
0029   //End, write and close files
0030   int End(PHCompositeNode *);
0031 
0032   //Change output filename
0033   void set_filename(const char* file)
0034   { if(file) _outfile = file; }
0035 
0036   //Flags of different kinds of outputs
0037   enum Flag
0038   {
0039     //all disabled
0040     NONE = 0,
0041   };
0042 
0043   //Set the flag
0044   //Flags should be set like set_flag(AnaSvtxTracksForGenFit::TRUTH, true) from macro
0045   void set_flag(const Flag& flag, const bool& value)
0046   {
0047    if(value) _flags |= flag;
0048    else _flags &= (~flag);
0049   }
0050 
0051   //User modules
0052   void fill_tree(PHCompositeNode*);
0053   void reset_variables();
0054 
0055  private:
0056   //output filename
0057   std::string _outfile;
0058    
0059   //Event counter
0060   int _event;
0061 
0062   //Get all the nodes
0063   void GetNodes(PHCompositeNode *);
0064   
0065   //flags
0066   unsigned int _flags;
0067 
0068   //TTrees
0069   TTree* _tracks;
0070   int event;
0071   //-- truth
0072   int gtrackID;
0073   int gflavor;
0074   float gpx;
0075   float gpy;
0076   float gpz;
0077   float gvx;
0078   float gvy;
0079   float gvz;
0080   //-- reco
0081   int trackID;
0082   int charge;
0083   int nhits;
0084   float px;
0085   float py;
0086   float pz;
0087   float dca2d;
0088   //-- clusters
0089   int clusterID[7];
0090   int layer[7];
0091   float x[7];
0092   float y[7];
0093   float z[7];
0094   float size_dphi[7];
0095   float size_dz[7];
0096 
0097   //Node pointers
0098   PHG4TruthInfoContainer* _truth_container;
0099   SvtxClusterMap* _clustermap;
0100 
0101   // eval stack
0102   SvtxEvalStack* _svtxevalstack;
0103 
0104 };
0105 
0106 #endif //* __AnaSvtxTracksForGenFit_H__ *//