/
types.go
107 lines (101 loc) · 2.58 KB
/
types.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
// Copyright 2017 The go-hep Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package lcio
import (
"fmt"
"strings"
)
func typeFrom(name string) interface{} {
switch name {
case "MCParticle":
return new(McParticleContainer)
case "SimTrackerHit":
return new(SimTrackerHitContainer)
case "SimCalorimeterHit":
return new(SimCalorimeterHitContainer)
case "LCFloatVec":
return new(FloatVec)
case "LCIntVec":
return new(IntVec)
case "LCStrVec":
return new(StrVec)
case "RawCalorimeterHit":
return new(RawCalorimeterHitContainer)
case "CalorimeterHit":
return new(CalorimeterHitContainer)
case "TrackerData":
return new(TrackerDataContainer)
case "TrackerHit":
return new(TrackerHitContainer)
case "TrackerHitPlane":
return new(TrackerHitPlaneContainer)
case "TrackerHitZCylinder":
return new(TrackerHitZCylinderContainer)
case "TrackerPulse":
return new(TrackerPulseContainer)
case "TrackerRawData":
return new(TrackerRawDataContainer)
case "Track":
return new(TrackContainer)
case "Cluster":
return new(ClusterContainer)
case "Vertex":
return new(VertexContainer)
case "ReconstructedParticle":
return new(RecParticleContainer)
case "LCGenericObject":
return new(GenericObject)
case "LCRelation":
return new(RelationContainer)
}
if strings.HasSuffix(name, "_References") {
return new(References)
}
panic(fmt.Errorf("unhandled type %q", name))
}
func typeName(t interface{}) string {
switch t.(type) {
case *McParticleContainer:
return "MCParticle"
case *SimTrackerHitContainer:
return "SimTrackerHit"
case *SimCalorimeterHitContainer:
return "SimCalorimeterHit"
case *FloatVec:
return "LCFloatVec"
case *IntVec:
return "LCIntVec"
case *StrVec:
return "LCStrVec"
case *RawCalorimeterHitContainer:
return "RawCalorimeterHit"
case *CalorimeterHitContainer:
return "CalorimeterHit"
case *TrackerDataContainer:
return "TrackerData"
case *TrackerHitContainer:
return "TrackerHit"
case *TrackerHitPlaneContainer:
return "TrackerHitPlane"
case *TrackerHitZCylinderContainer:
return "TrackerHitZCylinder"
case *TrackerPulseContainer:
return "TrackerPulse"
case *TrackerRawDataContainer:
return "TrackerRawData"
case *TrackContainer:
return "Track"
case *ClusterContainer:
return "Cluster"
case *VertexContainer:
return "Vertex"
case *RecParticleContainer:
return "ReconstructedParticle"
case *GenericObject:
return "LCGenericObject"
case *RelationContainer:
return "LCRelation"
}
panic(fmt.Errorf("lcio: unhandled type %T", t))
}