Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

StandardHistogramMaker.h

Go to the documentation of this file.
00001 // ================================================
00002 //StandardHistogramMaker class description
00003 // ================================================
00004 //
00005 // THIS TEXT TO BE REPLACED BY ATLAS STANDARD FORMAT
00006 //
00007 //
00008 // This version....
00009 //
00010 //
00011 // Namespace Atlfast::
00012 //
00013 // class: StandardHistogramMaker
00014 //
00015 // Description: 
00016 //
00017 //  Algorithm which makes some standard Atlfast debug histograms
00018 //
00019 //
00020 // ................................................................
00021 //
00022 
00023 #ifndef ATLFAST_STANDARDHISTOGRAMMAKER_H
00024 #define ATLFAST_STANDARDHISTOGRAMMAKER_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 //***************************************************************
00048 //                 StandardHistogramMaker class declaration
00049 //
00050 // A "Gaudi algorithm" is something which gets scheduled and controlled
00051 // by the framework. In its simplest definition it is something which
00052 //  - gets clled for each event 
00053 //  - can get anything it wants out of the Transient Event Store"
00054 //  - can put anything it makes into the store.
00055 //
00056 // It must inherit from the  Algorithm base class
00057 //****************************************************************
00058  
00059 namespace Atlfast {
00060   using std::string;
00064 class StandardHistogramMaker : public Algorithm
00065 {
00066 
00067  public:
00068 
00069   //-------------------------
00070   // Constructors/Destructors
00071   //
00072   // Gaudi requires that the constructor takes certain arguments
00073   // (and passes them directly to the constructor of the base class)
00074   //-------------------------
00075 
00076   StandardHistogramMaker( const std::string& name, ISvcLocator* pSvcLocator ) ; 
00077   ~StandardHistogramMaker();
00078 
00079 
00080   //------------------------------------------------------
00081   // Methods used by Gaudi to run the algorithm
00082   //------------------------------------------------------
00083 
00084   StatusCode initialize() ;
00085   StatusCode execute() ;
00086   StatusCode finalize() ;
00087 
00088 
00089 
00090  private:
00091 
00092 
00093   //-------------------------------
00094   // Private methods
00095   //-------------------------------
00096  
00097   void bookElectronHistograms();
00098   void bookPhotonHistograms();
00099   void bookIsolatedElectronHistograms();
00100   void bookIsolatedPhotonHistograms();
00101   void bookCellHistograms();
00102   void bookClusterHistograms();
00103 
00104   void fillElectronHistograms() ;
00105   void fillPhotonHistograms() ;
00106   void fillIsolatedElectronHistograms();
00107   void fillIsolatedPhotonHistograms();
00108   void fillCellHistograms();
00109   void fillClusterHistograms();
00110 
00111   TesIO* m_tesIO;
00112 
00113 
00114   // the following data members tell the
00115   // algorithm where to retrieve its input particles from
00116   // in the TES. These are written by the job Options service.
00117 
00118   std::string m_electronLocation ;
00119   std::string m_isolatedElectronLocation;
00120   std::string m_photonLocation ;
00121   std::string m_isolatedPhotonLocation;
00122   std::string m_cellLocation;
00123   std::string m_clusterLocation;
00124   std::string m_mcTruthLocation;
00125 
00126 
00127   // the following data members tell the
00128   // algorithm whether or not certain sets of histograms
00129   // are required
00130 
00131   bool m_doElectronHistograms ;
00132   bool m_doIsolatedElectronHistograms ;
00133   bool m_doPhotonHistograms ;
00134   bool m_doIsolatedPhotonHistograms ;
00135   bool m_doCellHistograms ;
00136   bool m_doClusterHistograms ;
00137 
00138   // The following are the actual histograms
00139   // htp has added his own naming convention here
00140   // m_h_ means a histogram!
00141 
00142   // electron histograms
00143   IHistogram1D* m_h_electronMultiplicity;
00144   IHistogram1D* m_h_electronPt;
00145 
00146   // isolated electron histograms
00147   IHistogram1D* m_h_isolatedElectronMultiplicity;
00148   IHistogram1D* m_h_isolatedElectronPt;
00149 
00150   // photon histograms
00151   IHistogram1D* m_h_photonMultiplicity;
00152   IHistogram1D* m_h_photonPt;
00153 
00154   // isolated photon histograms
00155   IHistogram1D* m_h_isolatedPhotonMultiplicity;
00156   IHistogram1D* m_h_isolatedPhotonPt;
00157 
00158   // cell histograms
00159   IHistogram1D* m_h_cellMultiplicity;
00160   IHistogram1D* m_h_cellPt;
00161 
00162   // cluster histograms
00163   IHistogram1D* m_h_clusterMultiplicity;
00164   IHistogram1D* m_h_clusterPt;
00165 
00166 
00167   // histogram numbers, start at...
00168   int m_histStart;
00169   // and current count
00170   int m_nHist;
00171 };
00172 
00173 
00174 } // end of namespace bracket
00175 
00176 #endif
00177 
00178 
00179 
00180 
00181 
00182 
00183 
00184 
00185 
00186 
00187 

Generated on Wed May 1 14:11:32 2002 for AtlfastAlgs by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001