CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_4_5_patch3/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 fiducial 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       //---Morse------
00034       //R9            =0x00000800,
00035       MINR9         =0x00000800,
00036       MAXR9         =0x00100000,
00037       //--------------
00038       //std isolation cuts
00039       ISOLEM        =0x00001000,
00040       ISOLHAD       =0x00002000,
00041       ISOLPTTRKS    =0x00004000,
00042       ISOLNRTRKS    =0x00008000,
00043       //hlt isolation cuts
00044       HLTISOLTRKSELE=0x00010000,
00045       HLTISOLTRKSPHO=0x00020000,
00046       HLTISOLHAD    =0x00040000,
00047       HLTISOLEM     =0x00080000,
00048       //track quaility cuts (hlt track algo isnt very forgiving)
00049       CTFTRACK      =0x00010000,
00050       //hlt quantities that are slightly different to reco
00051       HLTDETAIN     =0x00020000,
00052       HLTDPHIIN     =0x00040000,
00053       HLTINVEINVP   =0x00080000,
00054       //flag that if its set, shows the code is invalid
00055       INVALID       =0x80000000
00056       
00057     };
00058 
00059   private:
00060     static ComCodes codes_;
00061     
00062   private:
00063     EgCutCodes(){} //not going to allow instainitiation
00064     ~EgCutCodes(){}
00065     
00066   public:
00067     static int getCode(const std::string& descript){return codes_.getCode(descript.c_str());}
00068     static void getCodeName(int code,std::string& id){return codes_.getCodeName(code,id);}
00069     
00070   private:
00071     static ComCodes setCodes_();
00072     
00073   };
00074 }
00075 #endif