// ----------------------------------------------------------------------------- // ----- merge_TIS_calib.C ----- // ----- ----- // ----- created by C. Simon on 2020-04-15 ----- // ----- ----- // ----------------------------------------------------------------------------- void merge_TIS_calib(Int_t iNTISBins) { TList tMergedHistograms; TH1* tSelTypeNNResidualX_WidthTIS(NULL); TH1* tSelTypeNNResidualY_WidthTIS(NULL); TH1* tSelTypeNNResidualT_WidthTIS(NULL); TFile::Open("./../../FindChi2Sigmas/calib_ana.cor_out.root", "READ"); if(!gFile) { cout<<"Could not open TIS integral calibration file. Abort macro execution."<GetListOfKeys()); TKey* tKey; TClass* tClass; TObject* tObject; while((tKey = dynamic_cast(tNextKey()))) { tClass = TClass::GetClass(tKey->GetClassName()); if(tClass->InheritsFrom(TH1::Class())) { tObject = gFile->Get(tKey->GetName()); dynamic_cast(tObject)->SetDirectory(gROOT); tMergedHistograms.AddLast(tObject); if(0 == strcmp(tObject->GetName(), "hSelTypeNNResidualX_WidthTIS")) { tSelTypeNNResidualX_WidthTIS = dynamic_cast(tObject); } if(0 == strcmp(tObject->GetName(), "hSelTypeNNResidualY_WidthTIS")) { tSelTypeNNResidualY_WidthTIS = dynamic_cast(tObject); } if(0 == strcmp(tObject->GetName(), "hSelTypeNNResidualT_WidthTIS")) { tSelTypeNNResidualT_WidthTIS = dynamic_cast(tObject); } } } gFile->Close(); TH1* tHisto; for(Int_t iTISBin = 1; iTISBin <= iNTISBins; iTISBin++) { TFile::Open(Form("./../../TIS_%d/FindChi2Sigmas/calib_ana.cor_out.root", iTISBin), "READ"); if(!gFile) { cout<(gFile->FindObjectAny("hSelTypeNNResidualX_WidthTIS")); tSelTypeNNResidualX_WidthTIS->SetBinContent(1, iTISBin, tHisto->GetBinContent(1, iTISBin)); tHisto = dynamic_cast(gFile->FindObjectAny("hSelTypeNNResidualY_WidthTIS")); tSelTypeNNResidualY_WidthTIS->SetBinContent(1, iTISBin, tHisto->GetBinContent(1, iTISBin)); tHisto = dynamic_cast(gFile->FindObjectAny("hSelTypeNNResidualT_WidthTIS")); tSelTypeNNResidualT_WidthTIS->SetBinContent(1, iTISBin, tHisto->GetBinContent(1, iTISBin)); gFile->Close(); } TFile::Open("./calib_ana.cor_in.root", "RECREATE"); if(!gFile) { cout<<"Could not recreate TIS merged calibration file. Abort macro execution."<(tObject)->SetDirectory(gFile); } tMergedHistograms.Clear(); gFile->Write(); gFile->Close(); }