1 |
nikolas |
1.1 |
#ifndef PAMVMCCALOID_H |
2 |
|
|
#define PAMVMCCALOID_H |
3 |
|
|
#include <iostream> |
4 |
|
|
#include "TVirtualMC.h" |
5 |
|
|
#include "pGeoID.h" |
6 |
|
|
|
7 |
|
|
#define CALSD "CAST" |
8 |
|
|
#define CALOF 3 |
9 |
|
|
|
10 |
|
|
using std::cout; |
11 |
|
|
using std::endl; |
12 |
|
|
|
13 |
|
|
struct pCalID: public pGeoID { |
14 |
|
|
Int_t casiNo; |
15 |
|
|
Int_t caplNo; |
16 |
|
|
Int_t castNo; |
17 |
|
|
|
18 |
|
|
pCalID(): casiNo(-1), caplNo(-1), castNo(-1) {}; |
19 |
|
|
pCalID(Int_t offset): pGeoID(offset), casiNo(-1), caplNo(-1), castNo(-1) {}; |
20 |
|
|
pCalID & operator = (const pCalID &pid) { |
21 |
|
|
casiNo=pid.casiNo; |
22 |
|
|
caplNo=pid.caplNo; |
23 |
|
|
castNo=pid.castNo; |
24 |
|
|
return *this; |
25 |
|
|
} |
26 |
|
|
|
27 |
|
|
Bool_t FillVolID(){ |
28 |
|
|
Bool_t t=kFALSE; |
29 |
|
|
if(gMC) { |
30 |
|
|
// if(gMC->CurrentEvent()){ |
31 |
|
|
gMC->CurrentVolID(castNo); |
32 |
|
|
gMC->CurrentVolOffID(1,casiNo); |
33 |
|
|
gMC->CurrentVolOffID(2,caplNo); |
34 |
|
|
t= kTRUE; |
35 |
|
|
//Print(); |
36 |
|
|
//} |
37 |
|
|
} |
38 |
|
|
return t; |
39 |
|
|
} |
40 |
|
|
|
41 |
|
|
Int_t GetID() const { |
42 |
|
|
Int_t fact; |
43 |
|
|
switch(casiNo){ |
44 |
|
|
case 1: |
45 |
|
|
case 4: |
46 |
|
|
case 7: |
47 |
|
|
fact=0; |
48 |
|
|
break; |
49 |
|
|
case 2: |
50 |
|
|
case 5: |
51 |
|
|
case 8: |
52 |
|
|
fact=32; |
53 |
|
|
break; |
54 |
|
|
case 3: |
55 |
|
|
case 6: |
56 |
|
|
case 9: |
57 |
|
|
fact=64; |
58 |
|
|
break; |
59 |
|
|
default: |
60 |
|
|
fact=0; |
61 |
|
|
break; |
62 |
|
|
} |
63 |
|
|
return (caplNo-1)*96+fact+castNo; |
64 |
|
|
} |
65 |
|
|
|
66 |
|
|
void Print(const Option_t* ="") const { |
67 |
|
|
cout << " pCalID : castNo " << castNo |
68 |
|
|
<< ", casiNo " << casiNo << ", caplNo " << caplNo |
69 |
|
|
<< ", actual POS " << GetID() << endl; |
70 |
|
|
} |
71 |
|
|
|
72 |
|
|
}; |
73 |
|
|
|
74 |
|
|
// class PamVMCCaloID: public PamVMCGeoID { |
75 |
|
|
|
76 |
|
|
// private: |
77 |
|
|
|
78 |
|
|
// pCalID fcalid; |
79 |
|
|
|
80 |
|
|
// public: |
81 |
|
|
// PamVMCCaloID() : PamVMCGeoID(CALSD ,CALOF) {}; |
82 |
|
|
// void FillVolID(pGeoID *gid){ fcalid = *(pCalID *)gid; }; |
83 |
|
|
|
84 |
|
|
// //ClassDef(PamVMCCaloID,1) |
85 |
|
|
|
86 |
|
|
// }; |
87 |
|
|
|
88 |
|
|
|
89 |
|
|
#endif // PAMVMCCALOID_H |