1 |
nikolas |
1.1 |
#ifndef PAMVMCCALOSD_H |
2 |
|
|
#define PAMVMCCALOSD_H |
3 |
|
|
#include <iostream> |
4 |
|
|
|
5 |
|
|
#include "PamVMCDetectorSD.h" |
6 |
|
|
|
7 |
|
|
#define NOCALHIT 4224 |
8 |
|
|
|
9 |
|
|
using std::cout; |
10 |
|
|
using std::endl; |
11 |
|
|
|
12 |
|
|
class PamVMCCaloSD: public PamVMCDetectorSD{ |
13 |
|
|
|
14 |
|
|
|
15 |
|
|
public: |
16 |
|
|
PamVMCCaloSD(): PamVMCDetectorSD("PamVMCDetectorHit","CAST",NOCALHIT){ |
17 |
|
|
|
18 |
|
|
} |
19 |
|
|
|
20 |
|
|
|
21 |
|
|
virtual void FillHit(fin f,TVirtualMC *g){ |
22 |
|
|
|
23 |
|
|
switch(f) { |
24 |
|
|
case ENTERING: |
25 |
|
|
CleanHit(); |
26 |
|
|
FillVolID(); |
27 |
|
|
InitHit(); |
28 |
|
|
|
29 |
|
|
default: |
30 |
|
|
UpdateHit(g); |
31 |
|
|
break; |
32 |
|
|
} |
33 |
|
|
|
34 |
|
|
switch(f){ |
35 |
|
|
case EXITING: |
36 |
|
|
|
37 |
|
|
// Save hit if energy release is greater than zero |
38 |
|
|
if(fhit->GetEREL()){ |
39 |
|
|
if(fdetID->FillVolID()){ |
40 |
|
|
|
41 |
|
|
SaveHit(fdetID->GetID( )); |
42 |
|
|
|
43 |
|
|
} else { |
44 |
|
|
cout << "Calorimeter FillVolID false" <<endl; |
45 |
|
|
} |
46 |
|
|
} |
47 |
|
|
break; |
48 |
|
|
default: |
49 |
|
|
break; |
50 |
|
|
} |
51 |
|
|
} |
52 |
|
|
|
53 |
|
|
Int_t GetPlaneID(){ |
54 |
|
|
return ((int)fhit->GetPOS()/192); |
55 |
|
|
} |
56 |
|
|
|
57 |
|
|
Int_t GetViewID(){ |
58 |
|
|
return ((int)fhit->GetPOS()/96%2==0?0:1); |
59 |
|
|
} |
60 |
|
|
Int_t GetStripID(){ |
61 |
|
|
return (fhit->GetPOS()%96); |
62 |
|
|
} |
63 |
|
|
|
64 |
|
|
|
65 |
|
|
|
66 |
|
|
ClassDef(PamVMCCaloSD,1) |
67 |
|
|
|
68 |
|
|
}; |
69 |
|
|
|
70 |
|
|
#endif // PAMVMCCALOSD_H |