1 #ifndef DQMOnline_Trigger_HLTDQMHist_h 2 #define DQMOnline_Trigger_HLTDQMHist_h 30 template <
typename ObjType>
44 template <
typename ObjType,
typename ValType>
56 if(globalRangeCuts(obj,varName_) && localRangeCuts_(obj)){
57 hist_->Fill(var_(obj));
61 std::function<ValType(const ObjType&)>
var_;
67 template <
typename ObjType,
typename XValType,
typename YValType=XValType>
76 localRangeCuts_(
std::
move(rangeCuts)),hist_(hist){}
82 if(globalRangeCuts(obj,std::vector<std::string>{xVarName_,yVarName_}) &&
83 localRangeCuts_(obj)){
84 hist_->Fill(xVar_(obj),yVar_(obj));
88 std::function<XValType(const ObjType&)>
xVar_;
89 std::function<YValType(const ObjType&)>
yVar_;
virtual void fill(const ObjType &objType, const edm::Event &event, const edm::EventSetup &setup, const VarRangeCutColl< ObjType > &rangeCuts)=0
HLTDQMHist1D(TH1 *hist, std::string varName, std::function< ValType(const ObjType &)> func, VarRangeCutColl< ObjType > rangeCuts)
def setup(process, global_tag, zero_tesla=False)
virtual ~HLTDQMHist()=default
std::function< XValType(const ObjType &)> xVar_
std::function< ValType(const ObjType &)> var_
VarRangeCutColl< ObjType > localRangeCuts_
void fill(const ObjType &obj, const edm::Event &event, const edm::EventSetup &setup, const VarRangeCutColl< ObjType > &globalRangeCuts) override
void fill(const ObjType &obj, const edm::Event &event, const edm::EventSetup &setup, const VarRangeCutColl< ObjType > &globalRangeCuts) override
std::function< YValType(const ObjType &)> yVar_
VarRangeCutColl< ObjType > localRangeCuts_
HLTDQMHist2D(TH2 *hist, std::string xVarName, std::string yVarName, std::function< XValType(const ObjType &)> xFunc, std::function< YValType(const ObjType &)> yFunc, VarRangeCutColl< ObjType > rangeCuts)