Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:09:49

0001 #ifndef DQMOFFLINE_TRIGGER_EGHLTEGCUTCODES
0002 #define DQMOFFLINE_TRIGGER_EGHLTEGCUTCODES
0003 
0004 #include "DQMOffline/Trigger/interface/EgHLTComCodes.h"
0005 
0006 #include <cstring>
0007 
0008 #include <string>
0009 #include <iostream>
0010 
0011 namespace egHLT {
0012   class EgCutCodes {  //class to handle the cutcodes used in electron cutting
0013 
0014   public:
0015     enum CutCode {
0016       //kinematic and fiducial cuts
0017       ET = 0x00000001,
0018       PT = 0x00000002,
0019       DETETA = 0x00000004,
0020       CRACK = 0x00000008,
0021       //track cuts
0022       DETAIN = 0x00000010,
0023       DPHIIN = 0x00000020,
0024       INVEINVP = 0x00000040,
0025 
0026       //supercluster cuts
0027       SIGMAETAETA = 0x00000080,
0028       HADEM = 0x00000100,
0029       SIGMAIETAIETA = 0x00000200,
0030       E2X5OVER5X5 = 0x00000400,
0031       //---Morse------
0032       //R9            =0x00000800,
0033       MINR9 = 0x00000800,
0034       MAXR9 = 0x00100000,
0035       //--------------
0036       //std isolation cuts
0037       ISOLEM = 0x00001000,
0038       ISOLHAD = 0x00002000,
0039       ISOLPTTRKS = 0x00004000,
0040       ISOLNRTRKS = 0x00008000,
0041       //hlt isolation cuts
0042       HLTISOLTRKSELE = 0x00010000,
0043       HLTISOLTRKSPHO = 0x00020000,
0044       HLTISOLHAD = 0x00040000,
0045       HLTISOLEM = 0x00080000,
0046       //track quaility cuts (hlt track algo isnt very forgiving)
0047       CTFTRACK = 0x01000000,
0048       //hlt quantities that are slightly different to reco
0049       HLTDETAIN = 0x02000000,
0050       HLTDPHIIN = 0x04000000,
0051       HLTINVEINVP = 0x08000000,
0052       //flag that if its set, shows the code is invalid
0053       INVALID = 0x80000000
0054 
0055     };
0056 
0057   private:
0058     static const ComCodes codes_;
0059 
0060   private:
0061     EgCutCodes() = default;  //not going to allow instainitiation
0062     ~EgCutCodes() = default;
0063 
0064   public:
0065     static int getCode(const std::string& descript) { return codes_.getCode(descript.c_str()); }
0066     static void getCodeName(int code, std::string& id) { return codes_.getCodeName(code, id); }
0067 
0068   private:
0069     static ComCodes setCodes_();
0070   };
0071 }  // namespace egHLT
0072 #endif