30 inline std::vector<std::string>
TokenizeString(
const std::string &input,
const char separator) {
31 std::vector<std::string> result;
33 for (
auto iter = cbegin(input);; ) {
34 auto sepIter = std::find(iter,
end(input), separator);
36 result.emplace_back(iter, sepIter);
38 if (sepIter == cend(input))
40 iter = std::next(sepIter);
130 158.920, 53.060, 29.228, 25.212, 1.698, -2.318, -25.212, -29.228,
131 -135.882, 64.425, 61.325, -62.875, -64.425, 0, -142.732, -159.382};
135 "Layer1",
"Layer2",
"Layer3",
"Layer4",
"Layer5",
"Layer6",
"Layer7",
"Layer8",
136 "Layer9",
"TofLayer0",
"TofLayer1",
"TofLayer2",
"TofLayer3",
"EcalCOG",
"EcalTop",
"EcalBottom"};
165 static const std::array<std::string, numSpans>
spanNames{
"InnerOnly",
"InnerL1",
"InnerL9",
"FullSpan",
166 "UpperHalfInner",
"LowerHalfInner",
"InnerNoMS"};
181 static const std::array<std::string, numFits>
fitNames{
"Choutko",
"Kalman",
"KalmanElectron"};
191 static const std::array<std::string, numTrGeos>
trGeoNames{
"Default",
"InnerOnly",
"InnerL1",
"FullSpan"};
201 static const std::array<std::string, numSides>
sideNames{
"X",
"Y"};
213 static const std::array<std::string, numTrackDistances>
trackDistanceNames{
"OnTrack",
"Onemm",
"Onecm",
"Twocm",
214 "Fivecm",
"Tencm",
"AllLayer"};
232 static const std::array<std::string, numChargeTypes>
recoNames{
"Total",
"Upper",
"Lower"};
243 static const std::array<std::string, numLikelihoodTypes>
likelihoodNames{
"Electron",
"Proton",
"Helium"};
258 static const std::array<std::string, numLikelihoodRTypes>
likelihoodRNames{
"ep",
"eHe",
"pHe"};
271 static const std::array<std::string, numQualTypes>
qualNames{
"OnTrack",
"OffTrack"};
291 constexpr std::array<EnergyRecoType, numEnergyRecos>
recoTypes{
295 static const std::array<std::string, numEnergyRecos>
recoNames{
"EnergyD",
"EnergyE",
"EnergyCorrEneE_E",
296 "EnergyCorrEne2017",
"EcalKEle"};
315 static const std::array<std::string, numBDTTypes>
BDTNames{
"v5std",
"v5ada",
"v7std",
"v7ada"};
335 static const std::array<std::string, numChargeTypes>
recoNames{
"Total",
"Upper",
"Lower"};
348 static const std::array<std::string, numBetaTypes>
betaNames{
"BetaH",
"Evgeni"};
367 enum MCHeight {
GenerationPoint = 0,
L1,
UpperTof,
L2,
L3,
L4,
L5,
L6,
L7,
L8,
LowerTof,
RichRadiator,
L9,
Ecal };
384 constexpr std::array<float, numMCHeights>
MCHeightsZ{std::numeric_limits<float>::max(),
412 static const std::array<std::string, numBetaTypes>
betaNames{
"CIEMAT",
"LIP"};
static const std::array< std::string, numQualTypes > qualNames
constexpr std::array< ChargeRecoType, numChargeRecos > recoTypes
constexpr unsigned int numMCHeights
Tof standalone data is available for this event.
This event is classified as charge 2 according to tof (1.5 < Q < 2.5)
static const std::array< std::string, numChargeTypes > recoNames
TrTrack data is available for this event.
Track constructed with the upper part of the inner tracker (layers 2 to 6)
constexpr unsigned int numTrackDistances
Rich data is available for this event.
static const std::array< std::string, numTrackDistances > trackDistanceNames
static const std::array< std::string, numLikelihoodTypes > likelihoodNames
constexpr std::array< BetaType, numBetaTypes > betaTypes
constexpr unsigned int numTrGeos
Track constructed with the upper part of the inner tracker (layers 3 to 8)
proton/helium likelihood ratio
constexpr std::array< Span, numSpans > spanTypes
constexpr std::array< QualType, numQualTypes > qualTypes
This event is classified as charge >2 according to tof (Q > 2.5)
TRD standalone data is available for this event.
constexpr std::array< MCHeight, numMCHeights > MCHeights
constexpr std::array< FitPositionHeight, numTrLayers > layerPositionHeights
constexpr std::array< float, numMCHeights > MCHeightsZ
Ecal energy (W. Xu 3D reconstruction)
static const std::array< std::string, numBetaClusterTypes > betaClusterTypeNames
This event is classified as charge 1 according to tracker (0.5 < Q < 1.5)
electron/helium likelihood ratio
Track constructed with inner tracker + layer 1 hits.
constexpr std::array< float, numFitPositionHeights > fitPositionHeightZ
static const std::array< std::string, numTrGeos > trGeoNames
static const std::array< std::string, numSides > sideNames
Charge estimated using the upper half of the TRD.
static const std::array< std::string, numFits > fitNames
constexpr unsigned int numBetaTypes
constexpr unsigned int numQualTypes
constexpr std::array< LikelihoodRType, numLikelihoodRTypes > likelihoodRTypes
constexpr unsigned int numFits
constexpr unsigned int numFitPositionHeights
std::map< unsigned int, T > LayerVariable
Hits laying off the TRD track (all the rest)
static const std::array< std::string, numLikelihoodRTypes > likelihoodRNames
constexpr std::array< Fit, numFits > fitTypes
constexpr unsigned int numLikelihoodTypes
Ecal data is available for this event.
TRD data is available for this event.
static const std::array< std::string, numBDTTypes > BDTNames
Track constructed with inner tracker + layer9 hits.
constexpr std::array< Side, numSides > sides
GenFit kalman filter track fit.
This event is classified as charge 1 according to tof (0.5 < Q < 1.5)
static const std::array< std::string, numFitPositionHeights > fitPositionNames
Ecal energy (2017 reconstruction)
constexpr unsigned int numChargeRecos
constexpr unsigned int numBDTTypes
Track constructed with all available hits (inner tracker + layer 1 + layer 9)
This event is classified as charge 2 according to tracker (1.5 < Q < 2.5)
Ecal energy (standard reconstruction)
Total deposited energy in Ecal.
constexpr unsigned int numEnergyRecos
Charge estimated using the whole TRD.
SingleTreeChain::EventItr end(SingleTreeChain &chain)
constexpr std::array< LikelihoodType, numLikelihoodTypes > likelihoodTypeNames
constexpr unsigned int numBetaClusterTypes
constexpr std::array< LikelihoodType, numLikelihoodTypes > likelihoodTypes
#define ENABLE_BITMASK_OPERATORS(x)
Type safe implementation of a bitmask enum.
constexpr std::array< BetaClusterType, numBetaClusterTypes > betaClusterTypes
std::vector< std::string > TokenizeString(const std::string &input, const char separator)
Utility function that splits a string according to the provided separator.
constexpr unsigned int numChargeTypes
This event is classified as charge >2 according to tracker (Q > 2.5)
Track constructed without correcting for multiple scattering.
GenFit kalman filter track fit assuming electron mass.
Ecal energy (electron hypothesys, Using different methods to recover anode efficiency, rear leakage, lateral leakage and temperature effects)
constexpr unsigned int numTrLayers
constexpr std::array< DistanceFromTrack, numTrackDistances > trackDistances
constexpr std::array< TrGeometry, numTrGeos > trGeoTypes
electron/proton likelihood ratio
static const std::array< std::string, numBetaTypes > betaNames
Track constructed with only inner tracker hits.
static const std::array< std::string, numSpans > spanNames
constexpr unsigned int numSpans
constexpr unsigned int numLikelihoodRTypes
Standard tracker charge reconstruction.
Tof data is available for this event.
constexpr std::array< FitPositionHeight, numFitPositionHeights > fitPositionHeights
constexpr std::array< BDTType, numBDTTypes > BDTTypes
Charge estimated using the lower half of the TRD.
constexpr unsigned int numSides