00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef __Atlfast_example__
00023 #define __Atlfast_example__
00024
00025
00026 #include <string>
00027 #include <vector>
00028
00029
00030 #include "GaudiKernel/ISvcLocator.h"
00031 #include "GaudiKernel/IAlgorithm.h"
00032 #include "GaudiKernel/Algorithm.h"
00033 #include "GaudiKernel/MsgStream.h"
00034 #include "GaudiKernel/DataObject.h"
00035 #include "GaudiKernel/ObjectVector.h"
00036 #include "GaudiKernel/IHistogram1D.h"
00037 #include "GaudiKernel/IHistogram2D.h"
00038 #include "GaudiKernel/IHistogramSvc.h"
00039
00040
00041 #include "HepMC/GenParticle.h"
00042 #include "AtlfastCode/HepMC_helper.h"
00043
00044
00045 #include "AtlfastCode/IKinematic.h"
00046 #include "AtlfastCode/KinematicHelper.h"
00047
00048
00049 #include "AtlfastCode/ReconstructedParticle.h"
00050 #include "AtlfastCode/ReconstructedParticleCollection.h"
00051 #include "AtlfastCode/Cell.h"
00052 #include "AtlfastCode/CellCollection.h"
00053 #include "AtlfastCode/Cluster.h"
00054 #include "AtlfastCode/ClusterCollection.h"
00055 #include "AtlfastCode/TesIO.h"
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065 #define DEFAULT_rCellIsolation 0.2
00066
00067 #define DEFAULT_particleLocation "/Event/AtlfastIsolatedElectrons"
00068 #define DEFAULT_cellLocation "/Event/AtlfastCells"
00069 #define DEFAULT_clusterLocation "/Event/AtlfastClusters"
00070
00071 #define DEFAULT_histStart 1000
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087 namespace Atlfast {
00092 class ExampleAnalysis : public Algorithm
00093 {
00094
00095 public:
00096
00097
00098
00099
00100
00101
00102
00104 ExampleAnalysis( const std::string& name, ISvcLocator* pSvcLocator ) ;
00106 virtual ~ExampleAnalysis();
00107
00108
00109
00110
00111
00113 StatusCode initialize() ;
00115 StatusCode execute() ;
00117 StatusCode finalize() ;
00118
00119
00120
00121 private:
00122
00123
00124
00125
00126
00128 IHistogram1D* m_hist_pT;
00129
00131 IHistogram1D* m_hist_isolation;
00132
00134 IHistogram2D* m_hist_cellFlow;
00135 IHistogram2D* m_hist_clusterFlow;
00136
00137 TesIO* m_tesIO;
00138
00139
00140
00141
00142
00143
00146 double m_rCellIsolation;
00147
00149 std::string m_particleLocation ;
00151 std::string m_cellLocation ;
00153 std::string m_clusterLocation ;
00154
00156 int m_histStart ;
00157
00158
00159
00160
00161
00162
00163
00164
00166 KinematicHelper m_kinehelp ;
00167
00168
00169
00170
00171
00172
00173
00174
00175
00176 void dumpParticles( MsgStream&,
00177 std::vector<ReconstructedParticle*>&);
00178
00179
00181 void plotIsolation( MsgStream&,
00182 std::vector<ReconstructedParticle*>&,
00183 std::vector<Cell*>& );
00184
00185
00187 void plotEnergyFlow( MsgStream&,
00188 std::vector<Cluster*>&,
00189 std::vector<Cell*>& );
00190
00191 };
00192
00193 }
00194
00195
00196 #endif
00197
00198
00199
00200
00201
00202
00203
00204
00205
00206
00207