ITruthSvc.h 1.47 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/*
  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
*/

///////////////////////////////////////////////////////////////////
// ITruthSvc.h, (c) ATLAS Detector software
///////////////////////////////////////////////////////////////////
#ifndef ISF_INTERFACES_ITRUTHSVC_H
#define ISF_INTERFACES_ITRUTHSVC_H 1

// framework includes
#include "GaudiKernel/IInterface.h"
#include "GaudiKernel/StatusCode.h"

// DetectorDescription
#include "AtlasDetDescr/AtlasRegion.h"

// forward declarations
class G4Step;

namespace ISF {

  class ITruthIncident;
    
  /** @ class ITruthSvc
  
      Interface for the central truth record service to be used by
      the different simulation services.
  
      @ author Andreas.Salzburger -at- cern.ch , Elmar.Ritsch -at- cern.ch
     */
    class ITruthSvc : virtual public IInterface { 

      public: 
35
36
        /// Creates the InterfaceID and interfaceID() method
        DeclareInterfaceID(ITruthSvc, 1, 0);
37
38
39
40
41
      
        /** virtual desctructor */
        virtual ~ITruthSvc() { }

        /** Register a truth incident */
42
      virtual void registerTruthIncident( ITruthIncident& truthincident, bool saveAllChildren=false) const = 0;
43
44
45
46
47
48
49
50
51
52
53
        
        /** Initialize the Truth Svc at the beginning of each event */
        virtual StatusCode initializeTruthCollection() = 0;
        
        /** Finalize the Truth Svc at the end of each event*/
        virtual StatusCode releaseEvent() = 0;
  }; 
}

#endif //> !ISF_INTERFACES_ITRUTHSVC_H