// --------------------------------------------------------------------- // ----- KrattaSpectrum source file ----- // ----- Created 10/11/13 by P. Pawlowski ----- // --------------------------------------------------------------------- #include "KrattaSpectrum.hxx" //#include "KrattaFile.hxx" #include "TFile.h" #include "TROOT.h" #include #include "KrattaCalib.hxx" KrattaSpectrum::KrattaSpectrum(const char *title, int module, const char *formula, const char *condition, funct * xfun, funct * yfun, cond * cfun) : Nx(DefaultNx), Xmin(DefaultXmin), Xmax(DefaultXmax), Ny(DefaultNy), Ymin(DefaultYmin), Ymax(DefaultYmax), hspect(0), Title(title), Module(module), Name(Form("%s_%02d",title,module)), Formula(formula), Xfun(xfun), Yfun(yfun), Cfun(cfun) { SetCondition(condition); MyDirectory = gDirectory->GetPath(); } KrattaSpectrum::~KrattaSpectrum(){ if(hspect) delete hspect; } int KrattaSpectrum::Fill(TTree * tree){ if(!tree) return 0; gDirectory->Cd(MyDirectory); if(!hspect) CreateSpectrum(); return tree->Project(Name, Formula, Condition); } void KrattaSpectrum::SetSpectrum(TH2F * h){ hspect = h; Nx = hspect->GetNbinsX(); Xmin = hspect->GetXaxis()->GetXmin(); Xmax = hspect->GetXaxis()->GetXmax(); Ny = hspect->GetNbinsY(); Ymin = hspect->GetYaxis()->GetXmin(); Ymax = hspect->GetYaxis()->GetXmax(); } void KrattaSpectrum::SetSpectrum(Int_t nx, Float_t xmin, Float_t xmax, Int_t ny, Float_t ymin, Float_t ymax){ Nx = nx; Xmin = xmin; Xmax = xmax; Ny = ny; Ymin = ymin; Ymax = ymax; } /// Functions Fill - not to use in Asyeosroot. Used only in test stage as external software. //int KrattaSpectrum::Fill(){ // KrattaFile f(Module); // TTree * tree = f.GetTree(); // return tree ? Fill(tree): 0; //} //int KrattaSpectrum::Fill(const ASYFadcPeak * peak){ // if(!hspect) CreateSpectrum(); // if(peak->mod == Module && GetCondition(peak)) // return hspect->Fill(GetX(peak),GetY(peak)); // else return 0; //} //void KrattaSpectrum::Draw(){ // if(!hspect) Fill(); // hspect->SetMinimum(1); // hspect->Draw("col"); //} void KrattaSpectrum::Reset(){ if(hspect) delete hspect; hspect = 0; } void KrattaSpectrum::ls(){ //std::cout<< "[KrattaSpectrum:] "<< Name <<" at " << Form("0x%08x: ", ((unsigned int) this)) << Formula << " " << Condition << std::endl; std::cout<< "[KrattaSpectrum:] "<< Name <<" at " << this << ": " << Formula << " " << Condition << std::endl; }