Belle II Software  release-05-02-19
FilterID.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2010 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Jakob Lettenbichler *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 
12 #pragma once
13 
14 #include <string>
15 #include <boost/array.hpp>
16 
17 
18 namespace Belle2 {
30  class FilterID {
31  public:
33  enum filterTypes {
34  // 2hit:
35  distance3D,
36  distanceXY,
37  distanceZ,
42  //2+1hit:
52  //3hit:
57  pT,
58  distance2IP,
60  deltaSOverZ,
64  //3+1hit:
69  //4hit:
70  deltapT,
74  //Collector FilterIDs
75  nbFinderLost,
79  // trackletFilters:
80  ziggZaggXY,
82  ziggZaggRZ,
88  //TF-steps:
94  overlapping,
97  // for display: silent kills
103  // tests which are only for debugging and validation processes
110  random2Hit,
111  random3Hit,
115  // other stuff
122  };
123 
124 
125 
126  // 2hit:
127  const static std::string nameDistance3D;
128  const static std::string nameDistanceXY;
129  const static std::string nameDistanceZ;
130  const static std::string nameSlopeRZ;
131  const static std::string nameNormedDistance3D;
134  //2+1hit:
135  const static std::string nameAnglesHighOccupancy3D;
136  const static std::string nameAnglesHighOccupancyXY;
137  const static std::string nameAnglesHighOccupancyRZ;
138  const static std::string nameDistanceHighOccupancy2IP;
139  const static std::string nameDeltaSlopeHighOccupancyRZ;
140  const static std::string namePTHighOccupancy;
141  const static std::string nameHelixParameterHighOccupancyFit;
144  //3hit:
145  const static std::string nameAngles3D;
146  const static std::string nameAnglesRZ;
147  const static std::string nameAnglesXY;
148  const static std::string nameDeltaSlopeRZ;
149  const static std::string namePT;
150  const static std::string nameDistance2IP;
151  const static std::string nameHelixParameterFit;
152  const static std::string nameDeltaSOverZ;
153  const static std::string nameDeltaSlopeZOverS;
156  //3+1hit:
157  const static std::string nameDeltapTHighOccupancy;
158  const static std::string nameDeltaDistanceHighOccupancy2IP;
161  //4hit:
162  const static std::string nameDeltapT;
163  const static std::string nameDeltaDistance2IP;
166  //Collector FilterIDs
167  const static std::string nameNbFinderLost;
168  const static std::string nameCellularAutomaton;
171  // trackletFilters:
172  const static std::string nameZiggZaggXY;
173  const static std::string nameZiggZaggXYWithSigma;
174  const static std::string nameZiggZaggRZ;
175  const static std::string nameCirclefit;
176  const static std::string nameHelixfit;
177  const static std::string nameSimpleLineFit3D;
180  //TF-steps:
181  const static std::string nameHopfield;
182  const static std::string nameGreedy;
183  const static std::string nameTcDuel;
184  const static std::string nameTcFinderCurr;
185  const static std::string nameCalcQIbyKalman;
186  const static std::string nameOverlapping;
187 
189 
190  // for display: silent kills
191  const static std::string nameSilentTcc;
192  const static std::string nameSilentHitFinder;
193  const static std::string nameSilentSegFinder;
196  // tests which are only for debugging and validation processes
197  const static std::string nameAlwaysTrue2Hit;
198  const static std::string nameAlwaysFalse2Hit;
199  const static std::string nameAlwaysTrue3Hit;
200  const static std::string nameAlwaysFalse3Hit;
201  const static std::string nameAlwaysTrue4Hit;
202  const static std::string nameAlwaysFalse4Hit;
203  const static std::string nameRandom2Hit;
204  const static std::string nameRandom3Hit;
205  const static std::string nameRandom4Hit;
208  // other stuff
209  const static std::string nameOverHighestAllowedLayer;
210  const static std::string nameOutOfSectorRange;
214  const static boost::array<std::string, numFilters>
215  nameVector;
217  const static boost::array<FilterID::filterTypes, FilterID::numFilters>
221  FilterID() {}
222 
224  ~FilterID() {}
225 
227  static filterTypes getFilterType(const std::string& filterString);
228 
230  static filterTypes getFilterType(int filterInt);
231 
233  static std::string getFilterString(filterTypes filterType) { return getTypeName(filterType); }
234 
236  static std::string getFilterString(int filterType);
237 
239  static std::string getTypeName(filterTypes filterType);
240 
242  static filterTypes getTypeEnum(const std::string& filterString) {return getFilterType(filterString); }
243 
244  protected:
245  }; //end class FilterID
247 } //end namespace Belle2
Belle2::FilterID::distanceZ
@ distanceZ
string name of filter dZ
Definition: FilterID.h:45
Belle2::FilterID::nbFinderLost
@ nbFinderLost
Nb Finder filter.
Definition: FilterID.h:83
Belle2::FilterID::namePT
const static std::string namePT
string name of filter pT
Definition: FilterID.h:157
Belle2::FilterID::nameAnglesXY
const static std::string nameAnglesXY
string name of filter aXY
Definition: FilterID.h:155
Belle2::FilterID::helixParameterFit
@ helixParameterFit
string name of filter helix Paramater Fit
Definition: FilterID.h:67
Belle2::FilterID::anglesHighOccupancy3D
@ anglesHighOccupancy3D
string name of filter a3D high occupancy
Definition: FilterID.h:51
Belle2::FilterID::alwaysTrue3Hit
@ alwaysTrue3Hit
a filter with this ID will always say True
Definition: FilterID.h:114
Belle2::FilterID::normedDistance3D
@ normedDistance3D
string name of filter nd3D
Definition: FilterID.h:47
Belle2::FilterID::nameCirclefit
const static std::string nameCirclefit
string name Circlefit filter
Definition: FilterID.h:183
Belle2::FilterID::numFilters
@ numFilters
knows number of filters existing.
Definition: FilterID.h:128
Belle2::FilterID::random4Hit
@ random4Hit
a filter with this ID will say yes or no by random choice
Definition: FilterID.h:120
Belle2::FilterID::nameSimpleLineFit3D
const static std::string nameSimpleLineFit3D
string name SimpleLineFit3D filter
Definition: FilterID.h:185
Belle2::FilterID::nameDeltaSlopeRZ
const static std::string nameDeltaSlopeRZ
string name of filter dslopeRZ
Definition: FilterID.h:156
Belle2::FilterID::silentHitFinder
@ silentHitFinder
Silent Kill HitFinder filter.
Definition: FilterID.h:107
Belle2::FilterID::angles3D
@ angles3D
string name of filter a3D
Definition: FilterID.h:61
Belle2::FilterID::nameDistanceXY
const static std::string nameDistanceXY
string name of filter dXY
Definition: FilterID.h:136
Belle2::FilterID::nameRandom4Hit
const static std::string nameRandom4Hit
string name of a filter which will say yes or no by random choice
Definition: FilterID.h:213
Belle2::FilterID::overHighestAllowedLayer
@ overHighestAllowedLayer
OverHighestAllowedLayer Filter.
Definition: FilterID.h:124
Belle2::FilterID::alwaysTrue4Hit
@ alwaysTrue4Hit
a filter with this ID will always say True
Definition: FilterID.h:116
Belle2::FilterID::getFilterString
static std::string getFilterString(filterTypes filterType)
converts existing enum value into suitable string with name of filter type.
Definition: FilterID.h:241
Belle2::FilterID::tcDuel
@ tcDuel
TC Duel filter.
Definition: FilterID.h:99
Belle2::FilterID::ziggZaggRZ
@ ziggZaggRZ
ziggZaggRZ filter
Definition: FilterID.h:90
Belle2::FilterID::nameAngles3D
const static std::string nameAngles3D
string name of filter a3D
Definition: FilterID.h:153
Belle2::FilterID::nameVector
const static boost::array< std::string, numFilters > nameVector
array storing all the strings where the enums can be used to access their position
Definition: FilterID.h:223
Belle2::FilterID::nameRandom3Hit
const static std::string nameRandom3Hit
string name of a filter which will say yes or no by random choice
Definition: FilterID.h:212
Belle2::FilterID::nameAnglesHighOccupancy3D
const static std::string nameAnglesHighOccupancy3D
string name of filter a3D high occupancy
Definition: FilterID.h:143
Belle2::FilterID::nameDeltaSlopeHighOccupancyRZ
const static std::string nameDeltaSlopeHighOccupancyRZ
string name of filter dslopeRZ high occupancy
Definition: FilterID.h:147
Belle2::FilterID::ziggZaggXY
@ ziggZaggXY
ziggZaggXY filter
Definition: FilterID.h:88
Belle2::FilterID::nameTcDuel
const static std::string nameTcDuel
string name TC Duel filter
Definition: FilterID.h:191
Belle2::FilterID::slopeRZ
@ slopeRZ
string name of filter slopeRZ
Definition: FilterID.h:46
Belle2::FilterID::random2Hit
@ random2Hit
a filter with this ID will say yes or no by random choice
Definition: FilterID.h:118
Belle2::FilterID::nameTcFinderCurr
const static std::string nameTcFinderCurr
string name TC Finder Curr filter
Definition: FilterID.h:192
Belle2::FilterID::anglesRZ
@ anglesRZ
string name of filter aRZ
Definition: FilterID.h:62
Belle2::FilterID::nameCalcQIbyKalman
const static std::string nameCalcQIbyKalman
string name CalcQIbyKalman filter
Definition: FilterID.h:193
Belle2::FilterID::~FilterID
~FilterID()
Destructor.
Definition: FilterID.h:232
Belle2::FilterID::pT
@ pT
string name of filter pT
Definition: FilterID.h:65
Belle2::FilterID::deltaSlopeZOverS
@ deltaSlopeZOverS
deltaSlopeZOverS Filter
Definition: FilterID.h:69
Belle2::FilterID::deltapT
@ deltapT
string name of filter dPt
Definition: FilterID.h:78
Belle2::FilterID::enumVector
const static boost::array< FilterID::filterTypes, FilterID::numFilters > enumVector
array storing all the enums where ints can be used to access their position (this is needed since enu...
Definition: FilterID.h:226
Belle2::FilterID::nameHelixParameterHighOccupancyFit
const static std::string nameHelixParameterHighOccupancyFit
string name of filter hFit high occupancy
Definition: FilterID.h:149
Belle2::FilterID::nameSilentSegFinder
const static std::string nameSilentSegFinder
string name Silent Kill Seg Finder filter
Definition: FilterID.h:201
Belle2::FilterID::nameHelixfit
const static std::string nameHelixfit
string name Helix Fit filter
Definition: FilterID.h:184
Belle2::FilterID::nameOutOfSectorRange
const static std::string nameOutOfSectorRange
string name out of sector range filter
Definition: FilterID.h:218
Belle2::FilterID::distance2IP
@ distance2IP
string name of filter d2IP
Definition: FilterID.h:66
Belle2::FilterID::nameGreedy
const static std::string nameGreedy
string name Greedy filter
Definition: FilterID.h:190
Belle2::FilterID::deltapTHighOccupancy
@ deltapTHighOccupancy
string name of filter dPt high occupancy
Definition: FilterID.h:73
Belle2::FilterID::nameDistance3D
const static std::string nameDistance3D
string name of filter d3D
Definition: FilterID.h:135
Belle2::FilterID::nameZiggZaggRZ
const static std::string nameZiggZaggRZ
string name ZiggZaggRZ filter
Definition: FilterID.h:182
Belle2::FilterID::nameDistanceHighOccupancy2IP
const static std::string nameDistanceHighOccupancy2IP
string name of filter d2IP high occupancy
Definition: FilterID.h:146
Belle2::FilterID::nameAnglesRZ
const static std::string nameAnglesRZ
string name of filter aRZ
Definition: FilterID.h:154
Belle2::FilterID::calcQIbyKalman
@ calcQIbyKalman
calcQIbyKalman filter
Definition: FilterID.h:101
Belle2::FilterID::distanceXY
@ distanceXY
string name of filter dXY
Definition: FilterID.h:44
Belle2::FilterID::cellularAutomaton
@ cellularAutomaton
CA filter.
Definition: FilterID.h:84
Belle2::FilterID::nameDeltaDistance2IP
const static std::string nameDeltaDistance2IP
string name of filter dd2IP
Definition: FilterID.h:171
Belle2::FilterID::nameAnglesHighOccupancyRZ
const static std::string nameAnglesHighOccupancyRZ
string name of filter aRZ high occupancy
Definition: FilterID.h:145
Belle2::FilterID::nameHopfield
const static std::string nameHopfield
string name Hopfield filter
Definition: FilterID.h:189
Belle2::FilterID::distanceHighOccupancy2IP
@ distanceHighOccupancy2IP
string name of filter d2IP high occupancy
Definition: FilterID.h:54
Belle2::FilterID::hopfield
@ hopfield
Hopfield filter.
Definition: FilterID.h:97
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::FilterID::nameDistance2IP
const static std::string nameDistance2IP
string name of filter d2IP
Definition: FilterID.h:158
Belle2::FilterID::pTHighOccupancy
@ pTHighOccupancy
string name of filter pT high occupancy
Definition: FilterID.h:56
Belle2::FilterID::nameHelixParameterFit
const static std::string nameHelixParameterFit
string name of filter helix Parameter Fit
Definition: FilterID.h:159
Belle2::FilterID::tcFinderCurr
@ tcFinderCurr
TC Finder Curr filter.
Definition: FilterID.h:100
Belle2::FilterID::nameSlopeRZ
const static std::string nameSlopeRZ
string name of filter slopeRZ
Definition: FilterID.h:138
Belle2::FilterID::deltaDistance2IP
@ deltaDistance2IP
string name of filter dd2IP
Definition: FilterID.h:79
Belle2::FilterID::silentTcc
@ silentTcc
Silent Kill TCC filter.
Definition: FilterID.h:106
Belle2::FilterID::nameOverlapping
const static std::string nameOverlapping
string name Overlapping filter
Definition: FilterID.h:194
Belle2::FilterID::nameDeltaDistanceHighOccupancy2IP
const static std::string nameDeltaDistanceHighOccupancy2IP
string name of filter dd2IP high occupancy
Definition: FilterID.h:166
Belle2::FilterID::nameNormedDistance3D
const static std::string nameNormedDistance3D
string name of filter nd3D
Definition: FilterID.h:139
Belle2::FilterID::nameAlwaysFalse3Hit
const static std::string nameAlwaysFalse3Hit
string name of a filter which will always say no
Definition: FilterID.h:208
Belle2::FilterID::anglesHighOccupancyXY
@ anglesHighOccupancyXY
string name of filter aXY high occupancy
Definition: FilterID.h:52
Belle2::FilterID::getFilterType
static filterTypes getFilterType(const std::string &filterString)
converts existing string with name of filter type into suitable enum value.
Definition: FilterID.cc:290
Belle2::FilterID::namePTHighOccupancy
const static std::string namePTHighOccupancy
string name of filter pT high occupancy
Definition: FilterID.h:148
Belle2::FilterID::FilterID
FilterID()
Constructor.
Definition: FilterID.h:229
Belle2::FilterID::nameZiggZaggXYWithSigma
const static std::string nameZiggZaggXYWithSigma
string name ZiggZaggXYWithSigma filter
Definition: FilterID.h:181
Belle2::FilterID::distance3D
@ distance3D
string name of filter d3D
Definition: FilterID.h:43
Belle2::FilterID::getTypeName
static std::string getTypeName(filterTypes filterType)
returns name of given type, needed for compatibility with other modules
Definition: FilterID.cc:437
Belle2::FilterID::nameSilentHitFinder
const static std::string nameSilentHitFinder
string name Silent Kill Hit Finder filter
Definition: FilterID.h:200
Belle2::FilterID::nameAlwaysTrue2Hit
const static std::string nameAlwaysTrue2Hit
string name of a filter which will always say yes
Definition: FilterID.h:205
Belle2::FilterID::nameDistanceZ
const static std::string nameDistanceZ
string name of filter dZ
Definition: FilterID.h:137
Belle2::FilterID::nameNbFinderLost
const static std::string nameNbFinderLost
string name Nb Finder filter
Definition: FilterID.h:175
Belle2::FilterID::alwaysFalse3Hit
@ alwaysFalse3Hit
a filter with this ID will always say False
Definition: FilterID.h:115
Belle2::FilterID::greedy
@ greedy
Greedy filter.
Definition: FilterID.h:98
Belle2::FilterID::random3Hit
@ random3Hit
a filter with this ID will say yes or no by random choice
Definition: FilterID.h:119
Belle2::FilterID::nameCellularAutomaton
const static std::string nameCellularAutomaton
string name CA filter
Definition: FilterID.h:176
Belle2::FilterID::outOfSectorRange
@ outOfSectorRange
out of sector range filter
Definition: FilterID.h:125
Belle2::FilterID::circlefit
@ circlefit
circlefit filter
Definition: FilterID.h:91
Belle2::FilterID::deltaDistanceHighOccupancy2IP
@ deltaDistanceHighOccupancy2IP
string name of filter dd2IP high occupancy
Definition: FilterID.h:74
Belle2::FilterID::filterTypes
filterTypes
filterTyoes contains enums assigning unique values for each filter type allowing fast filter type rec...
Definition: FilterID.h:41
Belle2::FilterID::getTypeEnum
static filterTypes getTypeEnum(const std::string &filterString)
returns type of given name, needed for compatibility with other modules.
Definition: FilterID.h:250
Belle2::FilterID::nameDeltaSOverZ
const static std::string nameDeltaSOverZ
string name deltaSOverZ Filter
Definition: FilterID.h:160
Belle2::FilterID::nameAlwaysTrue4Hit
const static std::string nameAlwaysTrue4Hit
string name of a filter which will always say yes
Definition: FilterID.h:209
Belle2::FilterID::overlapping
@ overlapping
overlapping filter
Definition: FilterID.h:102
Belle2::FilterID::nameDeltapTHighOccupancy
const static std::string nameDeltapTHighOccupancy
string name of filter dPt high occupancy
Definition: FilterID.h:165
Belle2::FilterID::silentSegFinder
@ silentSegFinder
Silent Kill SefFinder filter.
Definition: FilterID.h:108
Belle2::FilterID::anglesXY
@ anglesXY
string name of filter aXY
Definition: FilterID.h:63
Belle2::FilterID::simpleLineFit3D
@ simpleLineFit3D
simpleLineFit3D filter
Definition: FilterID.h:93
Belle2::FilterID::helixfit
@ helixfit
Helix Fit filter.
Definition: FilterID.h:92
Belle2::FilterID::nameSilentTcc
const static std::string nameSilentTcc
WARNING FIXME TODO some things are missing here (calcQIbyLineFit) and similar stuff.
Definition: FilterID.h:199
Belle2::FilterID::deltaSlopeRZ
@ deltaSlopeRZ
string name of filter dslopeRZ
Definition: FilterID.h:64
Belle2::FilterID::ziggZaggXYWithSigma
@ ziggZaggXYWithSigma
ziggZaggXYWithSigma filter
Definition: FilterID.h:89
Belle2::FilterID::alwaysFalse2Hit
@ alwaysFalse2Hit
a filter with this ID will always say False
Definition: FilterID.h:113
Belle2::FilterID::alwaysTrue2Hit
@ alwaysTrue2Hit
a filter with this ID will always say True
Definition: FilterID.h:112
Belle2::FilterID::nameAlwaysTrue3Hit
const static std::string nameAlwaysTrue3Hit
string name of a filter which will always say yes
Definition: FilterID.h:207
Belle2::FilterID::nameAlwaysFalse2Hit
const static std::string nameAlwaysFalse2Hit
string name of a filter which will always say no
Definition: FilterID.h:206
Belle2::FilterID::nameOverHighestAllowedLayer
const static std::string nameOverHighestAllowedLayer
string name of OverHighestAllowedLayer Filter
Definition: FilterID.h:217
Belle2::FilterID::nameRandom2Hit
const static std::string nameRandom2Hit
string name of a filter which will say yes or no by random choice
Definition: FilterID.h:211
Belle2::FilterID::deltaSOverZ
@ deltaSOverZ
deltaSOverZ Filter
Definition: FilterID.h:68
Belle2::FilterID::nameAlwaysFalse4Hit
const static std::string nameAlwaysFalse4Hit
string name of a filter which will always say no
Definition: FilterID.h:210
Belle2::FilterID::alwaysFalse4Hit
@ alwaysFalse4Hit
a filter with this ID will always say False
Definition: FilterID.h:117
Belle2::FilterID::anglesHighOccupancyRZ
@ anglesHighOccupancyRZ
string name of filter aRZ high occupancy
Definition: FilterID.h:53
Belle2::FilterID::nameDeltaSlopeZOverS
const static std::string nameDeltaSlopeZOverS
string name deltaSlopeZOverS Filter
Definition: FilterID.h:161
Belle2::FilterID::nameZiggZaggXY
const static std::string nameZiggZaggXY
string name ZiggZaggXY filter
Definition: FilterID.h:180
Belle2::FilterID::nameDeltapT
const static std::string nameDeltapT
string name of filter dPt
Definition: FilterID.h:170
Belle2::FilterID::helixParameterHighOccupancyFit
@ helixParameterHighOccupancyFit
string name of filter hFit high occupancy
Definition: FilterID.h:57
Belle2::FilterID::deltaSlopeHighOccupancyRZ
@ deltaSlopeHighOccupancyRZ
string name of filter dslopeRZ high occupancy
Definition: FilterID.h:55
Belle2::FilterID::nameAnglesHighOccupancyXY
const static std::string nameAnglesHighOccupancyXY
string name of filter aXY high occupancy
Definition: FilterID.h:144