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__ 00029 #define __Atlfast_ismearer__ 00030 00031 00032 class HepLorentzVector; // forward declaration 00033 00034 namespace Atlfast { 00035 00040 class ISmearer { 00041 public: 00046 virtual HepLorentzVector smear( const HepLorentzVector& ) = 0; 00047 00048 }; 00049 00050 00051 } // end of namespace bracket 00052 00053 #endif 00054 00055 00056