|
4 | 4 | #include "TString.h" |
5 | 5 | #include "SimulationDataFormat/MCTruthContainer.h" |
6 | 6 | #include "SimulationDataFormat/MCCompLabel.h" |
| 7 | +#include "SimulationDataFormat/ConstMCTruthContainer.h" |
| 8 | +#include "SimulationDataFormat/IOMCTruthContainerView.h" |
7 | 9 | #include "DataFormatsPHOS/MCLabel.h" |
8 | 10 | #include "DataFormatsFT0/MCLabel.h" |
9 | 11 | #include "DataFormatsFDD/MCLabel.h" |
@@ -78,17 +80,30 @@ void analyse(TTree* tr, const char* brname, Accumulator& prop) |
78 | 80 | if (!br) { |
79 | 81 | return; |
80 | 82 | } |
| 83 | + auto classname = br->GetClassName(); |
81 | 84 | auto entries = br->GetEntries(); |
82 | | - o2::dataformats::IOMCTruthContainerView* io2 = nullptr; |
83 | | - br->SetAddress(&io2); |
| 85 | + if (strcmp("IOMCTruthContainerView", classname) == 0) { |
| 86 | + o2::dataformats::IOMCTruthContainerView* io2 = nullptr; |
| 87 | + br->SetAddress(&io2); |
84 | 88 |
|
85 | | - for (int i = 0; i < entries; ++i) { |
86 | | - br->GetEntry(i); |
87 | | - o2::dataformats::ConstMCTruthContainer<LabelType> labels; |
88 | | - io2->copyandflatten(labels); |
| 89 | + for (int i = 0; i < entries; ++i) { |
| 90 | + br->GetEntry(i); |
| 91 | + o2::dataformats::ConstMCTruthContainer<LabelType> labels; |
| 92 | + io2->copyandflatten(labels); |
89 | 93 |
|
90 | | - for (int i = 0; i < (int)labels.getIndexedSize(); ++i) { |
91 | | - prop.addLabels(labels.getLabels(i)); |
| 94 | + for (int i = 0; i < (int)labels.getIndexedSize(); ++i) { |
| 95 | + prop.addLabels(labels.getLabels(i)); |
| 96 | + } |
| 97 | + } |
| 98 | + } else { |
| 99 | + // standard MC truth container |
| 100 | + o2::dataformats::MCTruthContainer<LabelType>* labels = nullptr; |
| 101 | + br->SetAddress(&labels); |
| 102 | + for (int i = 0; i < entries; ++i) { |
| 103 | + br->GetEntry(i); |
| 104 | + for (int i = 0; i < (int)labels->getIndexedSize(); ++i) { |
| 105 | + prop.addLabels(labels->getLabels(i)); |
| 106 | + } |
92 | 107 | } |
93 | 108 | } |
94 | 109 | }; |
|
0 commit comments