CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch13/src/DQMOffline/Trigger/interface/EgHLTEgCutCodes.h

Go to the documentation of this file.
00001 #ifndef DQMOFFLINE_TRIGGER_EGHLTEGCUTCODES
00002 #define DQMOFFLINE_TRIGGER_EGHLTEGCUTCODES
00003 
00004 
00005 #include "DQMOffline/Trigger/interface/EgHLTComCodes.h"
00006 
00007 #include <cstring>
00008 
00009 #include <string>
00010 #include <iostream>
00011 
00012 namespace egHLT {
00013   class EgCutCodes { //class to handle the cutcodes used in electron cutting
00014     
00015   public:
00016     
00017     enum CutCode{
00018       //kinematic and fiduicual cuts
00019       ET            =0x00000001,
00020       PT            =0x00000002,
00021       DETETA        =0x00000004,
00022       CRACK         =0x00000008,
00023       //track cuts
00024       DETAIN        =0x00000010,
00025       DPHIIN        =0x00000020,
00026       INVEINVP      =0x00000040,
00027     
00028       //supercluster cuts
00029       SIGMAETAETA   =0x00000080,
00030       HADEM         =0x00000100,
00031       SIGMAIETAIETA =0x00000200,
00032       E2X5OVER5X5   =0x00000400,
00033       R9            =0x00000800,
00034       //std isolation cuts
00035       ISOLEM        =0x00001000,
00036       ISOLHAD       =0x00002000,
00037       ISOLPTTRKS    =0x00004000,
00038       ISOLNRTRKS    =0x00008000,
00039       //hlt isolation cuts
00040       HLTISOLTRKSELE=0x00010000,
00041       HLTISOLTRKSPHO=0x00020000,
00042       HLTISOLHAD    =0x00040000,
00043       HLTISOLEM     =0x00080000,
00044       //track quaility cuts (hlt track algo isnt very forgiving)
00045       CTFTRACK      =0x00010000,
00046       //hlt quantities that are slightly different to reco
00047       HLTDETAIN     =0x00020000,
00048       HLTDPHIIN     =0x00040000,
00049       HLTINVEINVP   =0x00080000,
00050       //flag that if its set, shows the code is invalid
00051       INVALID       =0x80000000
00052       
00053     };
00054 
00055   private:
00056     static ComCodes codes_;
00057     
00058   private:
00059     EgCutCodes(){} //not going to allow instainitiation
00060     ~EgCutCodes(){}
00061     
00062   public:
00063     static int getCode(const std::string& descript){return codes_.getCode(descript.c_str());}
00064     static void getCodeName(int code,std::string& id){return codes_.getCodeName(code,id);}
00065     
00066   private:
00067     static ComCodes setCodes_();
00068     
00069   };
00070 }
00071 #endif