Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-02-14 12:51:13

0001 #ifndef CondFormats_JetMETObjects_FFTJetCorrTypes_h
0002 #define CondFormats_JetMETObjects_FFTJetCorrTypes_h
0003 
0004 // FFTJet jet correction types. These types are essentially just
0005 // labels for ES records -- all ES record types must be unique.
0006 //
0007 // Why do we need this many correction types, there are, after all,
0008 // only several jet types in the system? The problem is really with
0009 // the event setup (ES) record dependency tracking. The dependency
0010 // tracking works for types only, there appears to be no way to add
0011 // record labels to the ES dependency tracking mechanism. It would
0012 // be very nice if we could say that record of type R1 with label L1
0013 // depends on record of type R2 with label L2. Then we could use only
0014 // the types we really need for R1 and R2 and use labels to distinguish
0015 // different records of the same type. Alas, things are not designed
0016 // this way -- we can only say that type R1 depends on type R2.
0017 // This means that we need to create as many R1 and R2 types as the
0018 // number of distinct R1 records one expects to use, even though all
0019 // records of type R2 could be associated with the same underlying
0020 // data structure type.
0021 //
0022 // Of course, to actually create these records one would use
0023 // a templated ESProducer, and the corresponding "produce" method
0024 // (or the whole producer class) would have to be instantiated for
0025 // every record type if we want to avoid changing the code and
0026 // recompiling things every time we want to add a new jet correction.
0027 // Such a nuisance.
0028 //
0029 // Igor Volobouev
0030 // Aug 3, 2012
0031 
0032 namespace fftcorrtypes {
0033   //
0034   // Fundamental records for jet correction factors
0035   //
0036   struct BasicJet {
0037     enum { value = 0 };
0038     inline static const char* classname() { return "BasicJet"; }
0039   };
0040 
0041   struct GenJet {
0042     enum { value = 1 };
0043     inline static const char* classname() { return "GenJet"; }
0044   };
0045 
0046   struct CaloJet {
0047     enum { value = 2 };
0048     inline static const char* classname() { return "CaloJet"; }
0049   };
0050 
0051   struct PFJet {
0052     enum { value = 3 };
0053     inline static const char* classname() { return "PFJet"; }
0054   };
0055 
0056   struct TrackJet {
0057     enum { value = 4 };
0058     inline static const char* classname() { return "TrackJet"; }
0059   };
0060 
0061   struct JPTJet {
0062     enum { value = 5 };
0063     inline static const char* classname() { return "JPTJet"; }
0064   };
0065 
0066   struct PFCHS0 {
0067     enum { value = 6 };
0068     inline static const char* classname() { return "PFCHS0"; }
0069   };
0070 
0071   struct PFCHS1 {
0072     enum { value = 7 };
0073     inline static const char* classname() { return "PFCHS1"; }
0074   };
0075 
0076   struct PFCHS2 {
0077     enum { value = 8 };
0078     inline static const char* classname() { return "PFCHS2"; }
0079   };
0080 
0081   //
0082   // Fundamental records for jet correction systematic errors
0083   //
0084   struct BasicJetSys {
0085     enum { value = 9 };
0086     inline static const char* classname() { return "BasicJetSys"; }
0087   };
0088 
0089   struct GenJetSys {
0090     enum { value = 10 };
0091     inline static const char* classname() { return "GenJetSys"; }
0092   };
0093 
0094   struct CaloJetSys {
0095     enum { value = 11 };
0096     inline static const char* classname() { return "CaloJetSys"; }
0097   };
0098 
0099   struct PFJetSys {
0100     enum { value = 12 };
0101     inline static const char* classname() { return "PFJetSys"; }
0102   };
0103 
0104   struct TrackJetSys {
0105     enum { value = 13 };
0106     inline static const char* classname() { return "TrackJetSys"; }
0107   };
0108 
0109   struct JPTJetSys {
0110     enum { value = 14 };
0111     inline static const char* classname() { return "JPTJetSys"; }
0112   };
0113 
0114   struct PFCHS0Sys {
0115     enum { value = 15 };
0116     inline static const char* classname() { return "PFCHS0Sys"; }
0117   };
0118 
0119   struct PFCHS1Sys {
0120     enum { value = 16 };
0121     inline static const char* classname() { return "PFCHS1Sys"; }
0122   };
0123 
0124   struct PFCHS2Sys {
0125     enum { value = 17 };
0126     inline static const char* classname() { return "PFCHS2Sys"; }
0127   };
0128 
0129   //
0130   // General pool of records -- it is nice not to have to
0131   // recompile everything when one just wants to include
0132   // an additional correction table on top of those already
0133   // made.
0134   //
0135   struct Gen0 {
0136     enum { value = 18 };
0137     inline static const char* classname() { return "Gen0"; }
0138   };
0139 
0140   struct Gen1 {
0141     enum { value = 19 };
0142     inline static const char* classname() { return "Gen1"; }
0143   };
0144 
0145   struct Gen2 {
0146     enum { value = 20 };
0147     inline static const char* classname() { return "Gen2"; }
0148   };
0149 
0150   struct PF0 {
0151     enum { value = 21 };
0152     inline static const char* classname() { return "PF0"; }
0153   };
0154 
0155   struct PF1 {
0156     enum { value = 22 };
0157     inline static const char* classname() { return "PF1"; }
0158   };
0159 
0160   struct PF2 {
0161     enum { value = 23 };
0162     inline static const char* classname() { return "PF2"; }
0163   };
0164 
0165   struct PF3 {
0166     enum { value = 24 };
0167     inline static const char* classname() { return "PF3"; }
0168   };
0169 
0170   struct PF4 {
0171     enum { value = 25 };
0172     inline static const char* classname() { return "PF4"; }
0173   };
0174 
0175   struct Calo0 {
0176     enum { value = 26 };
0177     inline static const char* classname() { return "Calo0"; }
0178   };
0179 
0180   struct Calo1 {
0181     enum { value = 27 };
0182     inline static const char* classname() { return "Calo1"; }
0183   };
0184 
0185   struct Calo2 {
0186     enum { value = 28 };
0187     inline static const char* classname() { return "Calo2"; }
0188   };
0189 
0190   struct Calo3 {
0191     enum { value = 29 };
0192     inline static const char* classname() { return "Calo3"; }
0193   };
0194 
0195   struct Calo4 {
0196     enum { value = 30 };
0197     inline static const char* classname() { return "Calo4"; }
0198   };
0199 
0200   //
0201   // Pool of records for calculating systematic errors
0202   //
0203   struct Gen0Sys {
0204     enum { value = 31 };
0205     inline static const char* classname() { return "Gen0Sys"; }
0206   };
0207 
0208   struct Gen1Sys {
0209     enum { value = 32 };
0210     inline static const char* classname() { return "Gen1Sys"; }
0211   };
0212 
0213   struct Gen2Sys {
0214     enum { value = 33 };
0215     inline static const char* classname() { return "Gen2Sys"; }
0216   };
0217 
0218   struct PF0Sys {
0219     enum { value = 34 };
0220     inline static const char* classname() { return "PF0Sys"; }
0221   };
0222 
0223   struct PF1Sys {
0224     enum { value = 35 };
0225     inline static const char* classname() { return "PF1Sys"; }
0226   };
0227 
0228   struct PF2Sys {
0229     enum { value = 36 };
0230     inline static const char* classname() { return "PF2Sys"; }
0231   };
0232 
0233   struct PF3Sys {
0234     enum { value = 37 };
0235     inline static const char* classname() { return "PF3Sys"; }
0236   };
0237 
0238   struct PF4Sys {
0239     enum { value = 38 };
0240     inline static const char* classname() { return "PF4Sys"; }
0241   };
0242 
0243   struct PF5Sys {
0244     enum { value = 39 };
0245     inline static const char* classname() { return "PF5Sys"; }
0246   };
0247 
0248   struct PF6Sys {
0249     enum { value = 40 };
0250     inline static const char* classname() { return "PF6Sys"; }
0251   };
0252 
0253   struct PF7Sys {
0254     enum { value = 41 };
0255     inline static const char* classname() { return "PF7Sys"; }
0256   };
0257 
0258   struct PF8Sys {
0259     enum { value = 42 };
0260     inline static const char* classname() { return "PF8Sys"; }
0261   };
0262 
0263   struct PF9Sys {
0264     enum { value = 43 };
0265     inline static const char* classname() { return "PF9Sys"; }
0266   };
0267 
0268   struct Calo0Sys {
0269     enum { value = 44 };
0270     inline static const char* classname() { return "Calo0Sys"; }
0271   };
0272 
0273   struct Calo1Sys {
0274     enum { value = 45 };
0275     inline static const char* classname() { return "Calo1Sys"; }
0276   };
0277 
0278   struct Calo2Sys {
0279     enum { value = 46 };
0280     inline static const char* classname() { return "Calo2Sys"; }
0281   };
0282 
0283   struct Calo3Sys {
0284     enum { value = 47 };
0285     inline static const char* classname() { return "Calo3Sys"; }
0286   };
0287 
0288   struct Calo4Sys {
0289     enum { value = 48 };
0290     inline static const char* classname() { return "Calo4Sys"; }
0291   };
0292 
0293   struct Calo5Sys {
0294     enum { value = 49 };
0295     inline static const char* classname() { return "Calo5Sys"; }
0296   };
0297 
0298   struct Calo6Sys {
0299     enum { value = 50 };
0300     inline static const char* classname() { return "Calo6Sys"; }
0301   };
0302 
0303   struct Calo7Sys {
0304     enum { value = 51 };
0305     inline static const char* classname() { return "Calo7Sys"; }
0306   };
0307 
0308   struct Calo8Sys {
0309     enum { value = 52 };
0310     inline static const char* classname() { return "Calo8Sys"; }
0311   };
0312 
0313   struct Calo9Sys {
0314     enum { value = 53 };
0315     inline static const char* classname() { return "Calo9Sys"; }
0316   };
0317 
0318   struct CHS0Sys {
0319     enum { value = 54 };
0320     inline static const char* classname() { return "CHS0Sys"; }
0321   };
0322 
0323   struct CHS1Sys {
0324     enum { value = 55 };
0325     inline static const char* classname() { return "CHS1Sys"; }
0326   };
0327 
0328   struct CHS2Sys {
0329     enum { value = 56 };
0330     inline static const char* classname() { return "CHS2Sys"; }
0331   };
0332 
0333   struct CHS3Sys {
0334     enum { value = 57 };
0335     inline static const char* classname() { return "CHS3Sys"; }
0336   };
0337 
0338   struct CHS4Sys {
0339     enum { value = 58 };
0340     inline static const char* classname() { return "CHS4Sys"; }
0341   };
0342 
0343   struct CHS5Sys {
0344     enum { value = 59 };
0345     inline static const char* classname() { return "CHS5Sys"; }
0346   };
0347 
0348   struct CHS6Sys {
0349     enum { value = 60 };
0350     inline static const char* classname() { return "CHS6Sys"; }
0351   };
0352 
0353   struct CHS7Sys {
0354     enum { value = 61 };
0355     inline static const char* classname() { return "CHS7Sys"; }
0356   };
0357 
0358   struct CHS8Sys {
0359     enum { value = 62 };
0360     inline static const char* classname() { return "CHS8Sys"; }
0361   };
0362 
0363   struct CHS9Sys {
0364     enum { value = 63 };
0365     inline static const char* classname() { return "CHS9Sys"; }
0366   };
0367 }  // namespace fftcorrtypes
0368 
0369 #endif  // CondFormats_JetMETObjects_FFTJetCorrTypes_h