1 #ifndef DQMOnline_Trigger_HLTDQMHist_h 2 #define DQMOnline_Trigger_HLTDQMHist_h 36 template <
typename ObjType>
50 template <
typename ObjType,
typename ValType>
62 if(globalRangeCuts(obj,varName_) && localRangeCuts_(obj)){
63 hist_->Fill(var_(obj));
67 std::function<ValType(const ObjType&)>
var_;
73 template <
typename ObjType,
typename XValType,
typename YValType=XValType>
82 localRangeCuts_(
std::
move(rangeCuts)),hist_(hist){}
88 if(globalRangeCuts(obj,std::vector<std::string>{xVarName_,yVarName_}) &&
89 localRangeCuts_(obj)){
90 hist_->Fill(xVar_(obj),yVar_(obj));
94 std::function<XValType(const ObjType&)>
xVar_;
95 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)