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 |
|
|
gMC->CurrentVolID(castNo); |
31 |
|
|
gMC->CurrentVolOffID(1,casiNo); |
32 |
|
|
gMC->CurrentVolOffID(2,caplNo); |
33 |
|
|
t= kTRUE; |
34 |
|
|
} |
35 |
|
|
return t; |
36 |
|
|
} |
37 |
|
|
|
38 |
|
|
Int_t GetID() const { |
39 |
|
|
Int_t fact; |
40 |
|
|
switch(casiNo){ |
41 |
|
|
case 1: |
42 |
|
|
case 2: |
43 |
|
|
case 3: |
44 |
|
|
fact=0; |
45 |
|
|
break; |
46 |
|
|
case 4: |
47 |
|
|
case 5: |
48 |
|
|
case 6: |
49 |
|
|
fact=32; |
50 |
|
|
break; |
51 |
|
|
case 7: |
52 |
|
|
case 8: |
53 |
|
|
case 9: |
54 |
|
|
fact=64; |
55 |
|
|
break; |
56 |
|
|
default: |
57 |
|
|
fact=0; |
58 |
|
|
break; |
59 |
|
|
} |
60 |
|
|
// cout<<"Strip Hit pl,st:"<<caplNo-1<<" "<<castNo<<endl; |
61 |
|
|
return (caplNo-1)*96+fact+castNo; |
62 |
|
|
} |
63 |
|
|
|
64 |
|
|
void Print(const Option_t* ="") const { |
65 |
|
|
cout << " pCalID : castNo " << castNo |
66 |
|
|
<< ", casiNo " << casiNo << ", caplNo " << caplNo |
67 |
|
|
<< ", actual POS " << GetID() << endl; |
68 |
|
|
} |
69 |
|
|
|
70 |
|
|
}; |
71 |
|
|
|
72 |
|
|
|
73 |
|
|
#endif // PAMVMCCALOID_H |