1 #ifndef MEtoEDMFormat_h
2 #define MEtoEDMFormat_h
21 #include <TProfile2D.h>
22 #include <TObjString.h>
33 #define METOEDMFORMAT_DEBUG 0
72 const size_t nObjects = newMEtoEDMObject.size();
78 if (nObjects != nOldObjects) {
79 std::cout <<
"WARNING MEtoEDM::mergeProducts(): the lists of histograms to be merged have different sizes: new=" << nObjects <<
", old=" << nOldObjects << std::endl;
82 for (
unsigned int i = 0;
i < nObjects; ++
i) {
93 if (j >= nOldObjects) {
95 #if METOEDMFORMAT_DEBUG
96 std::cout <<
"WARNING MEtoEDM::mergeProducts(): adding new histogram '" << name <<
"'" << std::endl;
99 }
else if (
MEtoEdmObject[j].
object.TestBit(TH1::kCanRebin) ==
true && newMEtoEDMObject[
i].
object.TestBit(TH1::kCanRebin) ==
true) {
101 list.Add((TObject*)&newMEtoEDMObject[
i].
object);
103 std::cout <<
"ERROR MEtoEDM::mergeProducts(): merge failed for '" << name <<
"'" << std::endl;
107 if (
MEtoEdmObject[j].
object.GetNbinsX() == newMEtoEDMObject[
i].
object.GetNbinsX() &&
108 MEtoEdmObject[j].
object.GetXaxis()->GetXmin() == newMEtoEDMObject[
i].
object.GetXaxis()->GetXmin() &&
109 MEtoEdmObject[j].
object.GetXaxis()->GetXmax() == newMEtoEDMObject[
i].
object.GetXaxis()->GetXmax() &&
110 MEtoEdmObject[j].
object.GetNbinsY() == newMEtoEDMObject[
i].
object.GetNbinsY() &&
111 MEtoEdmObject[j].
object.GetYaxis()->GetXmin() == newMEtoEDMObject[
i].
object.GetYaxis()->GetXmin() &&
112 MEtoEdmObject[j].
object.GetYaxis()->GetXmax() == newMEtoEDMObject[
i].
object.GetYaxis()->GetXmax() &&
113 MEtoEdmObject[j].
object.GetNbinsZ() == newMEtoEDMObject[
i].
object.GetNbinsZ() &&
114 MEtoEdmObject[j].
object.GetZaxis()->GetXmin() == newMEtoEDMObject[
i].
object.GetZaxis()->GetXmin() &&
115 MEtoEdmObject[j].
object.GetZaxis()->GetXmax() == newMEtoEDMObject[
i].
object.GetZaxis()->GetXmax()) {
118 std::cout <<
"ERROR MEtoEDM::mergeProducts(): found histograms with different axis limits, '" << name <<
"' not merged" << std::endl;
119 #if METOEDMFORMAT_DEBUG
122 std::cout <<
MEtoEdmObject[
j].object.GetXaxis()->GetXmin() <<
" " << newMEtoEDMObject[
i].object.GetXaxis()->GetXmin() << std::endl;
123 std::cout <<
MEtoEdmObject[
j].object.GetXaxis()->GetXmax() <<
" " << newMEtoEDMObject[
i].object.GetXaxis()->GetXmax() << std::endl;
125 std::cout <<
MEtoEdmObject[
j].object.GetYaxis()->GetXmin() <<
" " << newMEtoEDMObject[
i].object.GetYaxis()->GetXmin() << std::endl;
126 std::cout <<
MEtoEdmObject[
j].object.GetYaxis()->GetXmax() <<
" " << newMEtoEDMObject[
i].object.GetYaxis()->GetXmax() << std::endl;
128 std::cout <<
MEtoEdmObject[
j].object.GetZaxis()->GetXmin() <<
" " << newMEtoEDMObject[
i].object.GetZaxis()->GetXmin() << std::endl;
129 std::cout <<
MEtoEdmObject[
j].object.GetZaxis()->GetXmax() <<
" " << newMEtoEDMObject[
i].object.GetZaxis()->GetXmax() << std::endl;
151 const size_t nObjects = newMEtoEDMObject.size();
157 if (nObjects != nOldObjects) {
158 std::cout <<
"WARNING MEtoEDM::mergeProducts(): the lists of histograms to be merged have different sizes: new=" << nObjects <<
", old=" << nOldObjects << std::endl;
161 for (
unsigned int i = 0;
i < nObjects; ++
i) {
172 if (j >= nOldObjects) {
174 #if METOEDMFORMAT_DEBUG
175 std::cout <<
"WARNING MEtoEDM::mergeProducts(): adding new histogram '" << name <<
"'" << std::endl;
188 const size_t nObjects = newMEtoEDMObject.size();
194 if (nObjects != nOldObjects) {
195 std::cout <<
"WARNING MEtoEDM::mergeProducts(): the lists of histograms to be merged have different sizes: new=" << nObjects <<
", old=" << nOldObjects << std::endl;
198 for (
unsigned int i = 0;
i < nObjects; ++
i) {
209 if (j >= nOldObjects) {
211 #if METOEDMFORMAT_DEBUG
212 std::cout <<
"WARNING MEtoEDM::mergeProducts(): adding new histogram '" << name <<
"'" << std::endl;
217 if (
MEtoEdmObject[j].name.find(
"EventInfo/processedEvents") != std::string::npos ) {
220 if (
MEtoEdmObject[j].name.find(
"EventInfo/iEvent") != std::string::npos ||
221 MEtoEdmObject[
j].name.find(
"EventInfo/iLumiSection") != std::string::npos) {
236 const size_t nObjects = newMEtoEDMObject.size();
242 if (nObjects != nOldObjects) {
243 std::cout <<
"WARNING MEtoEDM::mergeProducts(): the lists of histograms to be merged have different sizes: new=" << nObjects <<
", old=" << nOldObjects << std::endl;
246 for (
unsigned int i = 0;
i < nObjects; ++
i) {
257 if (j >= nOldObjects) {
259 #if METOEDMFORMAT_DEBUG
260 std::cout <<
"WARNING MEtoEDM::mergeProducts(): adding new histogram '" << name <<
"'" << std::endl;
265 if (
MEtoEdmObject[j].name.find(
"EventInfo/processedEvents") != std::string::npos ) {
268 if (
MEtoEdmObject[j].name.find(
"EventInfo/iEvent") != std::string::npos ||
269 MEtoEdmObject[
j].name.find(
"EventInfo/iLumiSection") != std::string::npos) {
284 const size_t nObjects = newMEtoEDMObject.size();
290 if (nObjects != nOldObjects) {
291 std::cout <<
"WARNING MEtoEDM::mergeProducts(): the lists of histograms to be merged have different sizes: new=" << nObjects <<
", old=" << nOldObjects << std::endl;
294 for (
unsigned int i = 0;
i < nObjects; ++
i) {
305 if (j >= nOldObjects) {
307 #if METOEDMFORMAT_DEBUG
308 std::cout <<
"WARNING MEtoEDM::mergeProducts(): adding new histogram '" << name <<
"'" << std::endl;
void swap(MEtoEDM< T > &iOther)
MEtoEDM(size_t reservedSize)
bool mergeProduct(const MEtoEDM< T > &newMEtoEDM)
Container::value_type value_type
const MEtoEdmObjectVector & getMEtoEdmObject() const
std::vector< MEtoEDMObject > MEtoEdmObjectVector
std::vector< uint32_t > TagList
void putMEtoEdmObject(const std::string &name, const TagList &tags, const T &object)
MEtoEdmObjectVector MEtoEdmObject
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger list("!*","!HLTx*"if it matches 2 triggers or more) will accept the event if all the matching triggers are FAIL.It will reject the event if any of the triggers are PASS or EXCEPTION(this matches the behavior of"!*"before the partial wildcard feature was incorporated).Triggers which are in the READY state are completely ignored.(READY should never be returned since the trigger paths have been run