void test_xmoments(TString inFile = "emc.root") { gROOT->LoadMacro("$VMCWORKDIR/gconfig/basiclibs.C"); basiclibs(); gSystem->Load("libGeoBase"); gSystem->Load("libParBase"); gSystem->Load("libBase"); gSystem->Load("libTrkBase"); gSystem->Load("libField"); gSystem->Load("libGen"); gSystem->Load("libGeom"); gSystem->Load("libPassive"); gSystem->Load("libPndData"); gSystem->Load("libEmc"); TFile file(inFile); TTree *tree = (TTree *)file.Get("cbmsim"); PndEmcMapper::Instance(1); // set to mapper type used TClonesArray *clusters = new TClonesArray("PndEmcCluster"); tree->SetBranchAddress("EmcCluster", &clusters); for (Long64_t i = 0; i < tree->GetEntriesFast(); ++i) { tree->GetEntry(i); cout << endl << "----- Event #" << i << endl; PndEmcCluster *cluster = (PndEmcCluster *)clusters->At(0); cout << "Xmoments used directly - " << cluster->Xmoments().AbsZernikeMoment(2, 0) << endl; PndEmcXClMoments xmoments(*cluster); cout << "Separate Xmoments - " << xmoments.AbsZernikeMoment(2, 0) << endl; } tree->ResetBranchAddresses(); delete clusters; }