ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
CCaloSD.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file CCaloSD.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
//
27
// File: CCaloSD.hh
28
// Description: Stores hits of calorimetric type in appropriate container
29
//
30
// Use in your geometry routine:
31
// CCaloSD* caloSD = new CCaloSD(SDname, new CalorimeterOrganization);
32
// G4SDManager::GetSDMpointer()->AddNewDetector(caloSD);
33
// and then for every Logical Volume to be declared as sensitive
34
// logVolume->SetSensitiveDetector(caloSD);
35
//
37
38
#ifndef CCaloSD_h
39
#define CCaloSD_h 1
40
41
#include "
CCalG4HitCollection.hh
"
42
#include "
CCalG4Hit.hh
"
43
44
#include "
G4VPhysicalVolume.hh
"
45
#include "
G4LogicalVolume.hh
"
46
#include "
G4Track.hh
"
47
#include "
G4ParticleDefinition.hh
"
48
#include "
G4Step.hh
"
49
#include "
G4TransportationManager.hh
"
50
#include "
G4VSensitiveDetector.hh
"
51
52
#include <iostream>
53
#include <fstream>
54
55
class
CCalVOrganization
;
56
57
//#define debug
58
59
class
CCaloSD
:
public
G4VSensitiveDetector
60
{
61
62
public
:
63
64
CCaloSD
(
G4String
aSDname,
CCalVOrganization
* numberingScheme);
65
virtual
~CCaloSD
();
66
67
void
Initialize
(
G4HCofThisEvent
*HCE);
68
G4bool
ProcessHits
(
G4Step
*aStep,
G4TouchableHistory
*ROhist);
69
void
EndOfEvent
(
G4HCofThisEvent
*HCE);
70
void
clear
();
71
void
DrawAll
();
72
void
PrintAll
();
73
74
public
:
75
76
void
SetPrimaryID
(
G4int
i) {
PrimaryID
= i;}
77
G4int
GetPrimaryID
( ) {
return
PrimaryID
;}
78
void
SetOrganization
(
CCalVOrganization
* org);
79
80
private
:
81
82
G4ThreeVector
SetToLocal
(
const
G4ThreeVector
& globalPoint)
const
;
83
void
getStepInfo
(
const
G4Step
* aStep);
84
G4bool
hitExists
();
85
void
createNewHit
();
86
void
updateHit
();
87
void
StoreHit
(
CCalG4Hit
* ahit);
88
void
ResetForNewPrimary
();
89
void
summarize
();
90
G4double
curve_LY
(
const
G4StepPoint
* stepPoint);
91
92
// Data relative to primary particle (the one which triggers a shower)
93
// These data are common to all Hits of a given shower.
94
// One shower is made of several hits which differ by the
95
// unit ID (cristal/fiber/scintillator) and the Time slice ID.
96
97
G4ThreeVector
EntrancePoint
;
98
G4float
IncidentEnergy
;
99
G4int
PrimID
;
//@@ ID of the primary particle.
100
101
G4int
HCID
;
102
G4String
SDname
;
103
CCalG4HitCollection
*
theHC
;
104
105
G4int
TSID
;
106
CCalG4Hit
*
CurrentHit
;
107
const
G4Track
*
theTrack
;
108
G4VPhysicalVolume
*
CurrentPV
;
109
G4VPhysicalVolume
*
PreviousPV
;
110
unsigned
int
UnitID
,
PreviousUnitID
;
111
G4int
PrimaryID
,
TSliceID
;
112
G4double
TSlice
;
113
114
const
G4StepPoint
*
PreStepPoint
;
115
const
G4StepPoint
*
PostStepPoint
;
116
G4float
EdepositEM
,
EdepositEHAD
;
117
G4ThreeVector
HitPoint
;
118
119
CCalVOrganization
*
theDescription
;
120
121
};
122
123
#endif
geant4
tree
geant4-10.6-release
examples
advanced
composite_calorimeter
include
CCaloSD.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:24:56
using
1.8.2 with
ECCE GitHub integration