#include "UserAlg.h" #include #include "TROOT.h" #include "TStyle.h" #include "TH1F.h" #include "TCanvas.h" using std::vector; UserAlg::UserAlg(Event* event, Geometry* geo, Headers* runHeader):SystemAlg( event,geo,runHeader){ m_event = event; m_geo = geo; m_runHeader = runHeader; // create the new System Alg Objects m_noise = new NoiseAlg(m_event, m_geo, m_runHeader); vector algVector; algVector.push_back(m_noise); SystemAlg::setAlgs(algVector); } // initialize any variables here bool UserAlg::initialize(){ SystemAlg::initialize(); //do NOT remove this line return true; } // put any code you want executed per event here bool UserAlg::execute(){ SystemAlg::execute(); //do NOT remove this line return true; } //put any code here that you want executed after all the events have been processed. bool UserAlg::finalize(){ SystemAlg::finalize();//do NOT remove this line // read first (ref) hec noise file and store noise map m_noise->hecReadNoiseFile("hec_13188_noise.dat"); map hecNoiseMap1 = m_noise->hecNoiseMap(); // m_noise->hecPrintNoise(); // read second hec noise file m_noise->hecReadNoiseFile("hec_13182_noise.dat"); map hecNoiseMap2 = m_noise->hecNoiseMap(); // m_noise->hecPrintNoise(); // fractional noise differences // create a map and a histogram for plotting map hecFracMap; TH1F* hecFracH = new TH1F("hecFracH", "hec: runs 13188 (ref) and 13182", 100, -0.5, 0.5); for (map::iterator it = hecNoiseMap1.begin(); it != hecNoiseMap1.end(); ++it) { int febno = it->first; float noiseRef = it->second; if (noiseRef != 0.) { hecFracMap[febno] = hecNoiseMap2[febno]/noiseRef - 1.; hecFracH->Fill(hecFracMap[febno]); } } // read first (ref) emec noise file and store noise map m_noise->emecReadNoiseFile("emech_13188_noise.dat"); map emecNoiseMap1 = m_noise->emecNoiseMap(); // m_noise->emecPrintNoise(); // read second emec noise file m_noise->emecReadNoiseFile("emech_13182_noise.dat"); map emecNoiseMap2 = m_noise->emecNoiseMap(); // m_noise->emecPrintNoise(); // fractional noise differences // create a map and a histogram for plotting map emecFracMap; int nbin = 100; TH1F* emecFracH = new TH1F("emecFracH", "emec: runs 13188 (ref) and 13182", nbin, -0.5, 0.5); for (map::iterator it = emecNoiseMap1.begin(); it != emecNoiseMap1.end(); ++it) { int febno = it->first; float noiseRef = it->second; if (noiseRef != 0.) { emecFracMap[febno] = emecNoiseMap2[febno]/noiseRef - 1.; emecFracH->Fill(emecFracMap[febno]); } } // draw gROOT->SetStyle("Plain"); gStyle->SetOptStat(111110); gStyle->SetStatW(0.35); // statistics box (% of pad width?) gStyle->SetStatY(0.9); TCanvas* C = new TCanvas("C", "noise difference", 10, 10, 645, 500); // letter proportions C->Divide(2, 1); C->cd(1); hecFracH->GetXaxis()->SetTitle("fractional noise difference"); hecFracH->Draw(); C->cd(2); emecFracH->GetXaxis()->SetTitle("fractional noise difference"); emecFracH->Draw(); C->Update(); // m_geo->draw2DHec(hecFracMap, 0, false, 0, 0, "fractional noise difference"); m_geo->draw2DEmec(emecFracMap, 0, false, 0, 0, "fractional noise difference"); return true; }