ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4ScintillationTrackInformation.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4ScintillationTrackInformation.hh
1 //
2 // ********************************************************************
3 // * License and Disclaimer *
4 // * *
5 // * The Geant4 software is copyright of the Copyright Holders of *
6 // * the Geant4 Collaboration. It is provided under the terms and *
7 // * conditions of the Geant4 Software License, included in the file *
8 // * LICENSE and available at http://cern.ch/geant4/license . These *
9 // * include a list of copyright holders. *
10 // * *
11 // * Neither the authors of this software system, nor their employing *
12 // * institutes,nor the agencies providing financial support for this *
13 // * work make any representation or warranty, express or implied, *
14 // * regarding this software system or assume any liability for its *
15 // * use. Please see the license in the file LICENSE and URL above *
16 // * for the full disclaimer and the limitation of liability. *
17 // * *
18 // * This code implementation is the result of the scientific and *
19 // * technical work of the GEANT4 collaboration. *
20 // * By using, copying, modifying or distributing the software (or *
21 // * any work based on the software) you agree to acknowledge its *
22 // * use in resulting scientific publications, and indicate your *
23 // * acceptance of all terms of the Geant4 Software license. *
24 // ********************************************************************
25 //
26 //
27 //
28 // Author : Valentin Libioulle valentin.libioulle@usherbrooke.ca (3IT - GRAMS)
29 //
30 //---------------------------------------------------------------
31 //
32 // G4ScintillationTrackInformation
33 //
34 // Class Description:
35 //
36 // Concrete class of G4VUserTrackInformation used to store information
37 // linked to the track generated in a scintillation process.
38 //
39 
40 #ifndef G4SCINTILLATIONTRACKINFORMATION_H
41 #define G4SCINTILLATIONTRACKINFORMATION_H
42 
44 
45 // Represents the scintillation type used to create the track (opticalphoton).
47 
49 {
50  public:
51 
54 
55  // Required by G4VUserTrackInformation
56  void *operator new(size_t);
57  void operator delete(void *aScintillationTI);
58 
59  // Copy Constructor/instruction
61  G4ScintillationTrackInformation& operator=(const G4ScintillationTrackInformation&);
62 
63  virtual void Print() const override;
64 
66 
67  // Static class allowing to check if a G4VUserTrackInformation is a
68  // G4ScintillationTrackInformation and cast it without changing the
69  // pointer of the pointed data.
71  static G4ScintillationTrackInformation* Cast(const G4VUserTrackInformation* const);
72 
73  private:
74 
76  // String given to G4VUserTrackInformation to identify this concrete class
77  static const G4String BaseType;
78 };
79 
81 // Inline methods
83 
84 #include "G4Allocator.hh"
85 
86 // Forward declaration for the Allocator
88 
89 #if defined G4EM_ALLOC_EXPORT
91 #else
93 #endif
94 
95 inline void* G4ScintillationTrackInformation::operator new(size_t)
96 {
98  return (void *) aScintillationTIAllocator()->MallocSingle();
99 }
100 
101 inline void G4ScintillationTrackInformation::operator delete(void *aScintillationTI)
102 {
103  aScintillationTIAllocator()->FreeSingle((G4ScintillationTrackInformation *) aScintillationTI);
104 }
105 
106 #endif // G4SCINTILLATIONTRACKINFORMATION_H