1 package org.lcsim.geometry.subdetector;
2
3
4
5
6
7
8 public enum BarrelEndcapFlag
9 {
10 UNKNOWN( -1 ), BARREL( 0 ), ENDCAP_NORTH( 1 ), ENDCAP_SOUTH( 2 ), ENDCAP( 3 );
11
12 private int flag;
13
14 BarrelEndcapFlag( int flag )
15 {
16 if ( flag < -1 || flag > 3 )
17 {
18 throw new IllegalArgumentException( "Bad BarrelEndcapFlag value: " + flag );
19 }
20
21 this.flag = flag;
22 }
23
24 public boolean isBarrel()
25 {
26 return this == BARREL;
27 }
28
29 public boolean isEndcap()
30 {
31 return flag > 0;
32 }
33
34 public boolean isEndcapNorth()
35 {
36 return this == ENDCAP_NORTH;
37 }
38
39 public boolean isEndcapSouth()
40 {
41 return this == ENDCAP_SOUTH;
42 }
43
44 public int getFlag()
45 {
46 return flag;
47 }
48
49 public static BarrelEndcapFlag createBarrelEndcapFlag( int flag )
50 {
51 if ( flag == 0 )
52 {
53 return BARREL;
54 }
55 else if ( flag == 1 )
56 {
57 return ENDCAP_NORTH;
58 }
59 else if ( flag == 2 )
60 {
61 return ENDCAP_SOUTH;
62 }
63 else if ( flag == -1 )
64 {
65 return UNKNOWN;
66 }
67 else
68 {
69 throw new IllegalArgumentException( "Bad flag value: " + flag );
70 }
71 }
72 };