readTsaFexOffline.C 3.51 KiB
/* Copyright (C) 2017 Institute for Computer Science, Goethe-Universitaet Frankfurt, Frankfurt
SPDX-License-Identifier: GPL-3.0-only
Authors: Cruz de Jesus Garcia Chavez [committer] */
void readTsaFexOffline(TString inFile =
//"data/43_sps2016.tsa"
//"/Users/fairbanks/fairbanks/dev/data/tsa/14_debug_spadic1p1.tsa"
"/Volumes/fairbanksNAS-1/iri/data/testbeams/2016/sps/118_sps2016.tsa",
Bool_t highP = false)
{
// --- Specify input file name (this is just an example)
//TString inFile = "spadic_dlm_trigger_2014-11-15_noepoch.tsa";
//TString inFile1 = "spadic_noise_trigger_2014-11-15_withepoch.tsa";
// --- Specify number of events to be produced.
// --- -1 means run until the end of the input file.
Int_t nEvents = -1;
// --- Specify output file name (this is just an example)
TString outFile = inFile; //"data/test_online.root";
outFile.ReplaceAll(".tsa", ".root");
// --- Set log output levels
FairLogger::GetLogger()->SetLogScreenLevel("INFO");
FairLogger::GetLogger()->SetLogVerbosityLevel("LOW");
// --- Set debug level
gDebug = 0;
std::cout << std::endl;
std::cout << ">>> readTsa: input file is " << inFile << std::endl;
std::cout << ">>> readTsa: output file is " << outFile << std::endl;
// ========================================================================
// ========================================================================
std::cout << std::endl;
std::cout << ">>> readTsa: Initialising..." << std::endl;
// Spadic Unpacker
//CbmTSUnpackSpadic11OnlineMonitor* spadic_unpacker = new CbmTSUnpackSpadic11OnlineMonitor(highP);
CbmTSUnpackSpadicOnlineFex* spadic_unpacker = new CbmTSUnpackSpadicOnlineFex(highP);
// NXyter Unpacker
CbmTSUnpackNxyter* nxyter_unpacker = new CbmTSUnpackNxyter();
CbmTSUnpackTrb* trb_unpacker = new CbmTSUnpackTrb();
// --- Source task
CbmFlibFileSourceNew* source = new CbmFlibFileSourceNew();
//source->SetHostName("cbmflib01");
source->SetFileName(inFile);
//source->AddFile(inFile1);
source->AddUnpacker(trb_unpacker, 0xE0); // RICH + REF
//source->AddUnpacker(nxyter_unpacker, 0x10);//fhodo or cherenkov or pb glass???
source->AddUnpacker(nxyter_unpacker, 0xE1); //HODO 1 + 2
source->AddUnpacker(spadic_unpacker, 0x40); // test beam 2014
//source->AddUnpacker(spadic_unpacker, 0xE0); // Lab muenster
// --- Event header
// FairEventHeader* event = new CbmTbEvent();
// event->SetRunId(260);
// --- Run
FairRunOnline* run = new FairRunOnline(source);
run->SetOutputFile(outFile);
run->ActivateHttpServer(100);
run->SetAutoFinish(kFALSE);
// run->SetEventHeader(event);
// gDebug=2;
//FairTask* spadicRawBeam = new CbmTrdTimeCorrel();
//run->AddTask(spadicRawBeam);
run->Init();
// --- Start run
TStopwatch timer;
timer.Start();
std::cout << ">>> readTsa: Starting run..." << std::endl;
run->Run(nEvents, 0); // run until end of input file
timer.Stop();
// --- End-of-run info
Double_t rtime = timer.RealTime();
Double_t ctime = timer.CpuTime();
std::cout << std::endl << std::endl;
std::cout << ">>> readTsa: Macro finished successfully." << std::endl;
std::cout << ">>> readTsa: Output file is " << outFile << std::endl;
std::cout << ">>> readTsa: Real time " << rtime << " s, CPU time " << ctime << " s" << std::endl;
std::cout << std::endl;
/// --- Screen output for automatic tests
std::cout << " Test passed" << std::endl;
std::cout << " All ok " << std::endl;
}