ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ExN04CalorimeterHit.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file ExN04CalorimeterHit.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 //
29 //
30 
31 #ifndef ExN04CalorimeterHit_h
32 #define ExN04CalorimeterHit_h 1
33 
34 
35 //MSH_include_begin
36 #include "MarshaledG4String.h"
37 //MSH_include_end
38 
39 
40 #include "G4VHit.hh"
41 #include "G4THitsCollection.hh"
42 #include "G4Allocator.hh"
43 #include "G4ThreeVector.hh"
44 #include "G4LogicalVolume.hh"
45 #include "G4Transform3D.hh"
46 #include "G4RotationMatrix.hh"
47 
48 
49 //MSH_BEGIN
50 class ExN04CalorimeterHit : public G4VHit
51 {
52  public:
53 
60 
61  inline void *operator new(size_t);
62  inline void operator delete(void *aHit);
63 
64  void Draw();
65  void Print();
66 
67  private:
68 
69  G4int ZCellID; /*MSH: primitive
70  [elementGet: { $ELEMENT = $THIS->GetZ(); }]
71  [elementSet: { $THIS->SetCellID($ELEMENT, $THIS->GetPhi()); }] */
72 
73  G4int PhiCellID; /*MSH: primitive
74  [elementGet: { $ELEMENT = $THIS->GetPhi(); }]
75  [elementSet: { $THIS->SetCellID($THIS->GetZ(), $ELEMENT); }] */
76 
77 
78  G4double edep; /*MSH: primitive
79  [elementGet: { $ELEMENT = $THIS->GetEdep(); }]
80  [elementSet: { $THIS->SetEdep($ELEMENT); }] */
81 
82  G4ThreeVector pos; /*MSH: primitive
83  [elementGet: { $ELEMENT = $THIS->GetPos(); }]
84  [elementSet: { $THIS->SetPos($ELEMENT); }] */
85 
88 
89 
90 
91  public:
92  inline void SetCellID(G4int z,G4int phi)
93  {
94  ZCellID = z;
95  PhiCellID = phi;
96  }
97  inline G4int GetZ() { return ZCellID; }
98  inline G4int GetPhi() { return PhiCellID; }
99  inline void SetEdep(G4double de)
100  { edep = de; }
101  inline void AddEdep(G4double de)
102  { edep += de; }
103  inline G4double GetEdep()
104  { return edep; }
105  inline void SetPos(G4ThreeVector xyz)
106  { pos = xyz; }
108  { return pos; }
109  inline void SetRot(G4RotationMatrix rmat)
110  { rot = rmat; }
112  { return rot; }
113  inline const G4LogicalVolume * GetLogV()
114  { return pLogV; }
115 
116 };
117 //MSH_END
118 
120 
122 
123 inline void* ExN04CalorimeterHit::operator new(size_t)
124 {
125  void *aHit;
126  aHit = (void *) ExN04CalorimeterHitAllocator.MallocSingle();
127  return aHit;
128 }
129 
130 inline void ExN04CalorimeterHit::operator delete(void *aHit)
131 {
132  ExN04CalorimeterHitAllocator.FreeSingle((ExN04CalorimeterHit*) aHit);
133 }
134 
135 #endif
136 
137