ISmearer.h

Go to the documentation of this file.
00001 // ISmearer Class
00002 // 
00003 // Namespace Atlfast::
00004 //
00005 //--------------------------------------------------------
00006 //
00007 // This pure Abstract Base Class defines the interface
00008 // for Atlfast smearer objects.
00009 //
00010 // A smearer object provides a single public service,
00011 // returning a smeared four-vector given an input four-vector,
00012 // so this interface is particularly simple for the moment.
00013 // (So simple that it might even prove unnecessary in the end!)
00014 //
00015 //
00016 // Note in passing that we hope that smearers can be
00017 // made into Gaudi "Tools" or whatever the Athena
00018 // equivalent turns out to be. So this interface is rather
00019 // provisional and will probably be extended at that time
00020 // This will allow reading of parameters via jobOptions etc.
00021 //
00022 //
00023 //
00024 // Authors: H.T.Phillips, P. Clarke, E. Richter-Was, P. Sherwood, R. Steward
00025 //
00026 //
00027 
00028 #ifndef ATLFAST_ISMEARER_H
00029 #define ATLFAST_ISMEARER_H
00030 
00031 //cct: needed this so as to use stl vectors
00032 #include <vector>
00033 
00034 #include "CLHEP/Vector/LorentzVector.h"
00035 #include "HepMC/GenParticle.h"
00036 
00037 namespace Atlfast {
00038 
00040   class ISmearer {
00041   public:
00042 
00044     virtual HepLorentzVector smear( const HepMC::GenParticle& ) = 0;
00046     virtual HepLorentzVector smear( const HepLorentzVector& ) = 0;
00047     
00049     virtual int setSmearParameters( const std::vector<double>& )= 0;
00051     virtual int setSmearParamSchema( const int ) =0;
00052 
00054     virtual ~ISmearer(){}
00055 
00056   };
00057 
00058 
00059 } // end of namespace bracket
00060 
00061 #endif
00062 
00063 
00064 

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