// ----------------------------------------------------------------------------- // ----- ----- // ----- R3BStarTrackSortRawAna ----- // ----- Version 0.1 ----- // ----- Created 28.04.2014 by M. Labiche ----- // ----- ----- // ----------------------------------------------------------------------------- #include using namespace std; #include "TClonesArray.h" #include "TTree.h" #include "TH1F.h" #include "TH2F.h" #include "FairRootManager.h" #include "FairRunOnline.h" #include "FairLogger.h" #include "R3BStarTrackRawHit.h" #include "R3BStarTrackSortRawAna.h" R3BStarTrackSortRawAna::R3BStarTrackSortRawAna() : fOutname(""), fOutfile(0), fSortRawData(new TClonesArray("R3BStarTrackRawHit")) { fnEvents = 0; } R3BStarTrackSortRawAna::~R3BStarTrackSortRawAna() { if (fMan) { delete fMan; // who is responsible fMan=0; } } InitStatus R3BStarTrackSortRawAna::Init() { //FairRootManager *fMan = FairRootManager::Instance(); fMan = FairRootManager::Instance(); fRawData = (TClonesArray*) fMan->GetObject("StarTrackRawHit"); // Creating a new TClonearray of raw hit but time ordered fMan->Register("StarTrackSortRawHit", "Ordered Raw data from R3B Si Tracker", fSortRawData, kTRUE); return kSUCCESS; } void R3BStarTrackSortRawAna::Exec(Option_t *option) { Int_t nHits = fRawData->GetEntries(); //cout << "-I- R3BStarTrackRawAna::Exec : event " << fnEvents << ", multiplicity " << nHits << endl; R3BStarTrackRawHit *hit; for(Int_t i = 0; i < nHits; i++) { hit = (R3BStarTrackRawHit*) fRawData->At(i); my_type = hit->GetWordType(); my_hit = hit->GetHitBit(); my_det_id = hit->GetModuleId(); my_side = hit->GetSide(); my_asic_id = hit->GetAsicId(); my_ch_id = hit->GetStripId(); my_adc_data = hit->GetADCdata(); my_ts = hit->GetTime(); my_info_field = hit->GetInfoField(); my_info_code = hit->GetInfoCode(); my_new_type = my_type; my_new_hit = my_hit; my_new_det_id = my_det_id; my_new_side = my_side; my_new_asic_id = my_asic_id; my_new_ch_id = my_ch_id; my_new_adc_data = my_adc_data; my_new_ts = my_ts; my_new_info_field = my_info_field; my_new_info_code = my_info_code; new ((*fSortRawData)[nHits]) R3BStarTrackRawHit(my_new_type, my_new_hit, my_new_det_id, my_new_side, my_new_asic_id, my_new_ch_id, my_new_adc_data, my_new_ts, my_new_info_field, my_new_info_code); } if(0 == (fnEvents%100)) { cout << fnEvents << " " << nHits << endl; } fnEvents += 1; } void R3BStarTrackSortRawAna::FinishTask() { } //_____________________________________________________________________________ void R3BStarTrackSortRawAna::SetOutputFile(const char* fname) { fOutname=fname; fOutfile = fMan->OpenOutFile(fOutname); } //_____________________________________________________________________________ //_____________________________________________________________________________ void R3BStarTrackSortRawAna::SetOutputFile(TFile* f) { fOutname=f->GetName(); fMan->OpenOutFile(f); fOutfile = f; } //_____________________________________________________________________________ void R3BStarTrackSortRawAna::CreateSortTree() { /* FairRunOnline *run = FairRunOnline::Instance(); run->AddObject(thw); run->AddObject(thh); run->AddObject(thm); run->AddObject(thsd); run->AddObject(tha); run->AddObject(thst); run->AddObject(the); run->AddObject(tht); run->AddObject(thif); run->AddObject(thic); */ } void R3BStarTrackSortRawAna::WriteSortTree() { LOG(INFO) << "R3BStarTrackSortRawAna --- writed to the Root File ..." << FairLogger::endl; } ClassImp(R3BStarTrackSortRawAna)