Skip to content

Commit d0411c8

Browse files
author
miranov25
committed
Adding unit test for the tree diff and time series comparison
1 parent e6bd040 commit d0411c8

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

UTILS/Parsers/treeFastCacheND.C

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,10 @@ int registerMapND(const std::string& name,
6868
std::string expr = valueVar + ":" + nearestDim;
6969
for (const auto& dim : exactDims) expr += ":" + dim;
7070
int entries = tree->Draw(expr.c_str(), selection.c_str(), "goff");
71+
if (entries>=tree->GetEstimate()){
72+
tree->SetEstimate(entries*2);
73+
entries = tree->Draw(expr.c_str(), selection.c_str(), "goff");
74+
}
7175
if (entries <= 0) {
7276
std::cerr << "[registerMapND] No entries selected." << std::endl;
7377
return mapID;
@@ -179,3 +183,39 @@ void exampleTimeSeries() {
179183
setNearestNDAlias(tree, "mDCAr_A_NTracks_median_interp", "dcar_vs_time", "time", {"subentry"});
180184
tree->Draw("mTSITSTPC.mDCAr_A_NTracks_median:mDCAr_A_NTracks_median_interp", "indexType==1", "", 10000);
181185
}
186+
187+
/// Example usage for time series ND lookup
188+
void test_exampleTimeSeries() {
189+
TFile *f5 = TFile::Open("timeSeries10000_LHC23zzx_apass5.root");
190+
TTree *tree5 = (TTree*)f5->Get("timeSeries");
191+
TFile *f4 = TFile::Open("timeSeries10000_LHC23zz_combo_apass4.root");
192+
TTree *tree4 = (TTree*)f4->Get("timeSeries");
193+
int mapID5A = registerMapND("mDCAr_A_Median_median5", tree5, {"subentry"}, "time", "mTSITSTPC.mDCAr_A_Median_median", "1");
194+
int mapID5C = registerMapND("mDCAr_C_Median_median5", tree5, {"subentry"}, "time", "mTSITSTPC.mDCAr_C_Median_median", "1");
195+
int mapID4A = registerMapND("mDCAr_A_Median_median4", tree4, {"subentry"}, "time", "mTSITSTPC.mDCAr_A_Median_median", "1");
196+
int mapID4C = registerMapND("mDCAr_C_Median_median4", tree4, {"subentry"}, "time", "mTSITSTPC.mDCAr_C_Median_median", "1");
197+
//
198+
setNearestNDAlias(tree5, "mDCAr_A_Median_median_interp5", "mDCAr_A_Median_median5", "time", {"subentry"});
199+
setNearestNDAlias(tree5, "mDCAr_C_Median_median_interp5", "mDCAr_C_Median_median5", "time", {"subentry"});
200+
setNearestNDAlias(tree4, "mDCAr_C_Median_median_interp5", "mDCAr_A_Median_median5", "time", {"subentry"});
201+
//
202+
setNearestNDAlias(tree5, "mDCAr_A_Median_median_interp4", "mDCAr_A_Median_median4", "time", {"subentry"});
203+
setNearestNDAlias(tree4, "mDCAr_A_Median_median_interp4", "mDCAr_A_Median_median4", "time", {"subentry"});
204+
205+
tree5->Draw("mTSITSTPC.mDCAr_A_Median_median:mDCAr_A_Median_median_interp4", "indexType==1", "", 10000);
206+
// make unit test -RMS should be 0
207+
int val5=tree5->Draw("mTSITSTPC.mDCAr_A_Median_median==mDCAr_A_Median_median_interp5", "indexType==1", "");
208+
float rms5=tree5->GetHistogram()->GetRMS();
209+
float mean5=tree5->GetHistogram()->GetMean();
210+
//make unit test like output rms5==0, mean5==1
211+
int va4l=tree4->Draw("mTSITSTPC.mDCAr_A_Median_median==mDCAr_A_Median_median_interp4", "indexType==1", "");
212+
float rms4=tree4->GetHistogram()->GetRMS();
213+
float mean4=tree4->GetHistogram()->GetMean();
214+
//make unit test like output rms5==0, mean5==1
215+
if ( std::abs(rms4) < 1e-5 && std::abs(mean4 - 1.0) < 1e-5) {
216+
std::cout << "[UnitTest] OK - Interpolation match for apass4 is exact." << std::endl;
217+
} else {
218+
std::cerr << "[UnitTest] ERROR - Interpolation mismatch for apass4. RMS=" << rms4 << ", Mean=" << mean4 << std::endl;
219+
}
220+
}
221+

0 commit comments

Comments
 (0)