Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
#include <TFile.h>
#include <TTree.h>
#include <TPad.h>
#include <TH1F.h>
#include <iostream>

bool isValidFile(const TString& fileName) {
  TFile* file = TFile::Open(fileName, "read");
  if (!file || file->IsZombie()) {
    std::cout << "Error: Invalid file or file is a zombie.\n";
    return false;
  }
  return true;
}

void printParameters(const TString& fileName) {
  if (!isValidFile(fileName)) {
    exit(EXIT_FAILURE);
  }

  TFile* file = TFile::Open(fileName, "read");
  TTree* tree = static_cast<TTree*>(file->Get("zMuMuMassConstraintParameterFinder/di_muon_from_Z"));
  tree->Draw("di_muon_mass>>htemp", "in_mass_window");
  TH1F* htemp = static_cast<TH1F*>(gPad->GetPrimitive("htemp"));

  std::cout << "\n========================================\n";
  std::cout << "'Z -> mu mu' mass constraint parameters:\n";
  std::cout << "----------------------------------------\n";
  std::cout << "  PrimaryMass  = " << htemp->GetMean() << "\n";
  std::cout << "  PrimaryWidth = " << htemp->GetRMS() << "\n";
  std::cout << "========================================\n";

  exit(EXIT_SUCCESS);
}