Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2024-09-28 07:02:49

0001 /**
0002  \file
0003  Declaration of class Smear::AcceSmearerptance.
0004  
0005  \author    Michael Savastio
0006  \date      2011-08-19
0007  \copyright 2011 Brookhaven National Lab
0008  */
0009 
0010 #ifndef INCLUDE_EICSMEAR_SMEAR_SMEARER_H_
0011 #define INCLUDE_EICSMEAR_SMEAR_SMEARER_H_
0012 
0013 #include <TObject.h>
0014 
0015 #include "eicsmear/smear/Acceptance.h"
0016 
0017 namespace erhic {
0018 
0019 class VirtualParticle;
0020 
0021 }  // namespace erhic
0022 
0023 namespace Smear {
0024 
0025 class ParticleMCS;
0026 
0027 /**
0028  Abstract base class for objects performing smearing.
0029  Has no constructors or assignemt operator, as it is an abstract class.
0030  \todo Data hiding for Acceptance, but need to address more general data
0031  hiding issues in smearing code first.
0032  */
0033 class Smearer : public TObject {
0034  public:
0035   /**
0036    Destructor.
0037    */
0038   virtual ~Smearer() { }
0039 
0040   /**
0041    Inherited from TObject.
0042    */
0043   virtual Smearer* Clone(const char* = "") const = 0;
0044 
0045   /**
0046    Smears the input ParticleMC and stores the result(s) in the ParticleMCS.
0047    */
0048   virtual void Smear(const erhic::VirtualParticle&, ParticleMCS&) = 0;
0049 
0050   Acceptance Accept;
0051 
0052   ClassDef(Smear::Smearer, 1)
0053 };
0054 
0055 }  // namespace Smear
0056 
0057 #endif  // INCLUDE_EICSMEAR_SMEAR_SMEARER_H_