ReconstructedParticleHistogramMaker.h

Go to the documentation of this file.
00001 // ================================================
00002 //ReconstructedParticleHistogramMaker class description
00003 // ================================================
00004 //
00005 // THIS TEXT TO BE REPLACED BY ATLAS ReconstructedParticle FORMAT
00006 //
00007 //
00008 // This version....
00009 //
00010 //
00011 // Namespace Atlfast::
00012 //
00013 // class: ReconstructedParticleHistogramMaker
00014 //
00015 // Description: 
00016 //
00017 //  Algorithm which makes debug histograms for ReconstructedParticles
00018 //
00019 //
00020 // ................................................................
00021 //
00022 
00023 #ifndef ATLFAST_RECONSTRUCTEDPARTICLEHISTOGRAMMAKER_H
00024 #define ATLFAST_RECONSTRUCTEDPARTICLEHISTOGRAMMAKER_H
00025 
00026 // STL
00027 #include <vector>
00028 #include <string>
00029 
00030 // Gaudi 
00031 #include "GaudiKernel/ISvcLocator.h"
00032 #include "GaudiKernel/Algorithm.h"
00033 #include "GaudiKernel/MsgStream.h"
00034 #include "GaudiKernel/DataObject.h"
00035 
00036 class IHistogram1D;  // forward declaration
00037 
00038 // Other
00039 #include "CLHEP/Vector/LorentzVector.h"
00040 #include "HepMC/GenEvent.h"
00041 #include "HepMC/GenParticle.h"
00042 
00043 // Atlfast
00044 #include "AtlfastEvent/ReconstructedParticle.h"
00045 #include "AtlfastUtils/TesIO.h"
00046  
00047 namespace HepMC_helper{
00048   class IMCselector;
00049 }
00050 namespace Atlfast {
00051   using std::string;
00055   class ReconstructedParticleHistogramMaker : public Algorithm{
00056     
00057   public:
00058     
00059     //-------------------------
00060     // Constructors/Destructors
00061     //
00062     // Gaudi requires that the constructor takes certain arguments
00063     // (and passes them directly to the constructor of the base class)
00064     //-------------------------
00065     
00066     ReconstructedParticleHistogramMaker( const std::string& name, ISvcLocator* pSvcLocator ) ; 
00067     ~ReconstructedParticleHistogramMaker();
00068     
00069     
00070     //------------------------------------------------------
00071     // Methods used by Gaudi to run the algorithm
00072     //------------------------------------------------------
00073     
00074     StatusCode initialize() ;
00075     StatusCode execute() ;
00076     StatusCode finalize() ;
00077     
00078     
00079     
00080   private:
00081     TesIO* m_tesIO;
00082     //holds the Stotegate MC location
00083     std::string m_mcLocation;
00084 
00085     //-------------------------------
00086     // Private methods
00087     //-------------------------------
00088     void book(
00089               std::vector<IHistogram1D*> & start, 
00090               const std::string title, 
00091               const int nbins, 
00092               const double xmin, 
00093               const double xmax,
00094               const double xminDiff,
00095               const double xmaxDiff
00096               );
00097     
00098     void fill(
00099               std::vector<IHistogram1D*> & start, 
00100               const double rec, 
00101               const double tru
00102               );
00103     
00104     // the following data members tell the
00105     // algorithm where to retrieve its input particles from
00106     // in the TES. These are written by the job Options service.
00107     
00108     std::string m_inputLocation ;
00109     std::string m_mcTruthLocation;
00110     
00111     
00112     
00113     // The following are the actual histograms
00114     // htp has added his own naming convention here
00115     // m_h_ means a histogram!
00116     
00117     // Each quantity to be histogrammed has a vector[4] of histograms
00118     // these correspond to
00119     // [0] = Rec = reconstructed
00120     // [1] = Tru = true
00121     // [2] = Dif = difference, true-rec
00122     // [3] = Res = residual, (true-rec)/true
00123     
00124     // Multiplicity
00125     std::vector<IHistogram1D*> m_h_multiplicity ;
00126     // Energy
00127     std::vector<IHistogram1D*> m_h_energy ;
00128     // Pt
00129     std::vector<IHistogram1D*> m_h_pt ; 
00130     // eta
00131     std::vector<IHistogram1D*> m_h_eta ;
00132     // phi
00133     std::vector<IHistogram1D*> m_h_phi ;
00134     // theta
00135     std::vector<IHistogram1D*> m_h_theta ;
00136     
00137     
00138     
00139     // histogram numbers, start at...
00140     int m_histStart;
00141     // and current count
00142     int m_nHist;
00143     
00144     // particle type to look at
00145     int m_particleType ;
00146     
00147     // prefix for histogram titles
00148     std::string m_histTitle ;
00149     
00150     
00151   //-----------------------------------------------------------------
00152   // Selector to select only those truth particles which are required
00153   //-----------------------------------------------------------------
00154     HepMC_helper::IMCselector*  m_ncutter ;
00155   };
00156   
00157 } // end of namespace bracket
00158 
00159 #endif

Generated on Mon Sep 24 14:19:11 2007 for AtlfastAlgs by  doxygen 1.5.1