// ----------------------------------------------------------------------------- // ----- ----- // ----- R3BCaloRawAna ----- // ----- Version 0.1 ----- // ----- Created 03.02.2014 by Y.Gonzalez ----- // ----- ----- // ----------------------------------------------------------------------------- #include "TClonesArray.h" #include "TH1F.h" #include "TH2F.h" #include "FairRootManager.h" #include "FairRunOnline.h" #include "FairLogger.h" #include "R3BCaloRawHit.h" #include "R3BCaloRawAna.h" R3BCaloRawAna::R3BCaloRawAna() { fnEvents = 0; } R3BCaloRawAna::~R3BCaloRawAna() { } InitStatus R3BCaloRawAna::Init() { FairRootManager *fMan = FairRootManager::Instance(); fRawData = (TClonesArray*) fMan->GetObject("CaloRawHit"); CreateHistos(); firstTs = 0; return kSUCCESS; } void R3BCaloRawAna::Exec(Option_t *option) { Int_t nHits = fRawData->GetEntries(); R3BCaloRawHit *hit; for(Int_t i = 0; i < nHits; i++) { hit = (R3BCaloRawHit*) fRawData->At(i); if(firstTs == 0) firstTs = hit->GetTime(); thc->Fill(hit->GetCrystalId()); the->Fill(hit->GetEnergy()); tht->Fill((double)(hit->GetTime() - firstTs)/(double)1E9); } if(0 == (fnEvents%10000)) { LOG(INFO) << fnEvents << " events, multiplicity: " << nHits << FairLogger::endl; } fnEvents += 1; } void R3BCaloRawAna::FinishTask() { WriteHistos(); } void R3BCaloRawAna::CreateHistos() { thc = new TH1I("hCrystalId", "Crystal ID", 128, 0, 127); the = new TH1I("hEnergy", "Energy", 1000, -0x8000, 0x7fff); tht = new TH1D("hTime", "Time", 10000, 0, 7200); FairRunOnline *run = FairRunOnline::Instance(); run->AddObject(thc); run->AddObject(the); run->AddObject(tht); } void R3BCaloRawAna::WriteHistos() { thc->Write(); the->Write(); tht->Write(); LOG(INFO) << "R3BCaloRawAna --- Histograms written to Root File ..." << FairLogger::endl; } ClassImp(R3BCaloRawAna)