//////////////////////////////////// // KRATTA DST visualisator // for the Asy-Eos experiment // TKratDstVisualisator DEFINITION // Feb 2013 // revison 02/2013 // E.d.F ver 1.0 // sebastian.kupny@uj.edu.pl // Changes: //////////////////////////////////// #include "TKratDstVisualisator.h" using std::cout; using std::endl; //______________________________________________________________________ TKratDstVisualisator::TKratDstVisualisator (const char* name, Int_t iVerbose ) : FairTask("KRATTA Digital S. Tape analyser"), krattaPt(0) { fVerbose = iVerbose; fASYEventName = "KRATTA_ASYEVENT_CLONE"; } //______________________________________________________________________ TKratDstVisualisator::~TKratDstVisualisator() { } //______________________________________________________________________ void TKratDstVisualisator::SetParContainers() { // Get run and runtime database FairRunAna* run = FairRunAna::Instance(); if ( ! run ) Fatal("SetParContainers", "No analysis run"); FairRuntimeDb* rtdb = run->GetRuntimeDb(); if ( ! rtdb ) Fatal("SetParContainers", "No runtime database"); } //______________________________________________________________________ InitStatus TKratDstVisualisator::Init() { //fLogger->Info(MESSAGE_ORIGIN," TKratDstVisualisator::Init()------------------Start "); //Farroot version: v-13.05 cout << "TKratDstVisualisator::Init()------------------Start" << endl; /// Configure Fairroot instances FairRootManager* ioman = FairRootManager::Instance(); if ( ! ioman ) Fatal("Init", "No FairRootManager"); ///Get access to fairroot data source fASYEventCopy =(TClonesArray*) ioman->GetObject( fASYEventName ); fASYEvent = (ASYEvent*)fASYEventCopy; fHistRunNo = new TH1F("TKratDstVisualisatorCanvasfHistRunNo","Run number",2000,0,2000); fHistPeakNo = new TH1F("TKratDstVisualisatorCanvasfHistPeakNo","Number of peaks",20,0.,20); fDeltaEE = new TH2F("TKratDstVisualisatorCanvasfDeltaEE","DeltaE-E",1000,-100.,10000.,1000,-100.,10000.); fC1 = new TCanvas("TKratDstVisualisatorCanvas1", "Delta E-E",5, 10, 400, 400); fC1->SetLogz(); fDeltaEE->SetMaximum( 10000 ); fDeltaEE->Draw("COLZ"); fC2 = new TCanvas("TKratDstVisualisatorCanvas2", "Runs",410, 10, 300, 300); fHistRunNo->Draw(); fC3 = new TCanvas("TKratDstVisualisatorCanvas3", "Peak number",720, 500, 300, 300); fC3->SetLogy(); fHistPeakNo->Draw(); //fC1->Divide(2,2); //fC1->cd(1); //fC1->cd(2); //fC1->cd(3); //fC1->cd(4) fModuleToAnalyse = 7; fEventsBetweenUpdatingToStore = 100; fRunNo = 0; fPeaksNo = 0; fAmp1 = 0; fAmp2 = 0; cout << "TKratDstVisualisator::Init()------------------End" << endl; return kSUCCESS; } //______________________________________________________________________ void TKratDstVisualisator::Exec(Option_t* opt) { //cout << *fASYEvent << endl; fRunNo = fASYEvent->run; fPeaksNo = fASYEvent->npeak; fHistRunNo ->Fill( fRunNo ); fHistPeakNo ->Fill( fPeaksNo ); fKrattaAsyPeakClonesArray = fASYEvent->peak; //if (fPeaksNo != fKrattaAsyPeakClonesArray -> GetEntries()) throw {an exception, that peak numbers are different}; for (Int_t pi = 0; pi < fPeaksNo; pi++ ) { krattaPt = (ASYFadcPeak*) (*fKrattaAsyPeakClonesArray)[pi]; if ( krattaPt->mod == fModuleToAnalyse ){ fAmp1 = 0.; fAmp2 = 0.; fAmp1 = krattaPt->am1; fAmp2 = krattaPt->am2; fDeltaEE->Fill( fAmp2, fAmp1 ); if ( Int_t(fDeltaEE -> GetEntries()) % fEventsBetweenUpdatingToStore == 0 ){ fC1-> Modified(); fC1 ->Update(); } } } if ( Int_t(fASYEvent->evt ) % 10000*fEventsBetweenUpdatingToStore == 0 ){ fC2-> Modified(); fC2 ->Update(); fC3-> Modified(); fC3 ->Update(); } } //______________________________________________________________________ void TKratDstVisualisator::Reset() { // Clear the structure // cout << " -I- Digit Reset() called " << endl; // pc if (fLandDigi ) fLandDigi->Clear(); } //______________________________________________________________________ void TKratDstVisualisator::Finish() { delete fHistRunNo; delete fHistPeakNo; delete fDeltaEE; delete fC1; delete fC2; delete fC3; } ClassImp( TKratDstVisualisator )