void hist_filler(const char *tag="QGSP_INCLXX_EMV_MOM_0.5_pip") { TString inFile = Form("output/data_%s.root",tag); //TString outFile= Form("hists_clust_mult/hist_%s.root",tag); TString outFile= Form("tmp_hist_%s.root",tag); cout << "hist_filler inFile= " << inFile << endl; cout << "hist_filler outFile= " << outFile << endl; gROOT->Macro("$VMCWORKDIR/gconfig/rootlogon.C"); gSystem->Load("libhistfillertask"); FairLogger::GetLogger()->SetLogToFile(kFALSE); FairRunAna* fRun = new FairRunAna(); FairRuntimeDb* rtdb = fRun->GetRuntimeDb(); fRun->SetInputFile(inFile); fRun->SetOutputFile(outFile); HistFillerTask *hft = new HistFillerTask(0.35,0.45); fRun->AddTask(hft); fRun->Init(); fRun->Run(1000,0); }
void MCMonitoring( const UInt_t num_events, const TString base_name, const TString base_path = "." ) { TStopwatch timer; timer.Start(); const TString sim_file = base_path + "/r3bsim." + base_name + ".root"; const TString par_file = base_path + "/r3bpar." + base_name + ".root"; const TString out_file = base_path + "/mcmon." + base_name + ".root"; FairRunAna* run = new FairRunAna(); run->SetInputFile(sim_file); run->SetOutputFile(out_file); ConnectParFileToRuntimeDb(par_file, run->GetRuntimeDb()); run->AddTask(new R3BNeulandMCMon()); run->Init(); run->Run(0, num_events); timer.Stop(); cout << endl; cout << "Macro finished succesfully!" << endl; cout << "Output file writen: " << out_file << endl; cout << "Parameter file writen: " << par_file << endl; cout << "Real time: " << timer.RealTime() << "s, CPU time: " << timer.CpuTime() << "s" << endl; cout << endl; }
void run(TString runNumber) { TStopwatch timer; timer.Start(); TString dirIn1 = "/Volumes/Data/kresan/s438/data/"; TString dirIn2 = "/Volumes/Data/kresan/s438/tcal/"; TString dirOut = "/Volumes/Data/kresan/s438/digi/"; TString tdiffParName = "tdiff_" + runNumber + ".dat"; TString inputFileName1 = dirIn2 + runNumber + "_tcal.root"; // name of input file TString parFileName = dirIn1 + "params_" + runNumber + "_raw.root"; // name of parameter file TString outputFileName = dirOut + runNumber + "_digi.root"; // name of output file // Create analysis run ------------------------------------------------------- FairRunAna* run = new FairRunAna(); run->SetInputFile(inputFileName1.Data()); run->SetOutputFile(outputFileName.Data()); // --------------------------------------------------------------------------- // ----- Runtime DataBase info ----------------------------------------------- FairRuntimeDb* rtdb = run->GetRuntimeDb(); FairParRootFileIo* parIo1 = new FairParRootFileIo(); parIo1->open(parFileName); rtdb->setFirstInput(parIo1); rtdb->setOutput(parIo1); rtdb->saveOutput(); // --------------------------------------------------------------------------- // Tdiff calibration --------------------------------------------------------- R3BLandTdiff* landTdiff = new R3BLandTdiff("LandTdiff", 1); landTdiff->SetTdiffParName(tdiffParName.Data()); run->AddTask(landTdiff); // --------------------------------------------------------------------------- // Analysis ------------------------------------------------------------------ R3BLandAna* landAna = new R3BLandAna("LandAna", 1); landAna->SetNofBars(100); run->AddTask(landAna); // --------------------------------------------------------------------------- // Initialize ---------------------------------------------------------------- run->Init(); FairLogger::GetLogger()->SetLogScreenLevel("INFO"); // --------------------------------------------------------------------------- // Run ----------------------------------------------------------------------- run->Run(); // --------------------------------------------------------------------------- timer.Stop(); Double_t rtime = timer.RealTime(); Double_t ctime = timer.CpuTime(); cout << endl << endl; cout << "Macro finished succesfully." << endl; cout << "Output file is " << outputFileName << endl; cout << "Parameter file is " << parFileName << endl; cout << "Real time " << rtime << " s, CPU time " << ctime << "s" << endl << endl; }
void AnalysisTaskXi(TString pre = "", int nevts=0, double mom=2.7){ TDatabasePDG::Instance()-> AddParticle("pbarpSystem","pbarpSystem", 1.9, kFALSE, 0.1, 0,"", 88888); //Output File if (pre==""){ TString Path = "/private/puetz/mysimulations/analysis/pbarp_Xiplus_Ximinus/idealtracking/10000_events/"; TString outPath = Path; TString OutputFile = outPath + "analysis_output_test.root"; //Input simulation Files TString inPIDFile = Path + "pid_complete.root"; TString inParFile = Path + "simparams.root"; } else{ TString Path = pre; TString outPath = Path + "_test_"; TString OutputFile = Path + "_analysis_output.root"; //Input simulation Files TString inPIDFile = Path + "_pid_complete.root"; TString inParFile = Path + "_simparams.root"; } TString PIDParFile = TString( gSystem->Getenv("VMCWORKDIR")) + "/macro/params/all.par"; //Initialization FairLogger::GetLogger()->SetLogToFile(kFALSE); FairRunAna* RunAna = new FairRunAna(); FairRuntimeDb* rtdb = RunAna->GetRuntimeDb(); RunAna->SetInputFile(inPIDFile); //setup parameter database FairParRootFileIo* parIo = new FairParRootFileIo(); parIo->open(inParFile); FairParAsciiFileIo* parIoPID = new FairParAsciiFileIo(); parIoPID->open(PIDParFile.Data(),"in"); rtdb->setFirstInput(parIo); rtdb->setSecondInput(parIoPID); rtdb->setOutput(parIo); RunAna->SetOutputFile(OutputFile); // *** HERE OUR TASK GOES! AnalysisTask *anaTask = new AnalysisTask(); anaTask->SetOutPutDir(outPath); anaTask->SetNEvents(nevts); anaTask->SetMom(mom); RunAna->AddTask(anaTask); RunAna->Init(); RunAna->Run(0.,1.); exit(0);
void ana(int iplab = 0, int itype = 0, int brem = 1, int fid=0, int nevts = 10000) { gSystem->Load("libanatda"); gSystem->ListLibraries(); //double plab[3] = {5.513, 8., 12.}; //const char *tt[2] = {"pip_pim","jpsi"}; //const char *cbrem[2] = {"raw","brem"}; //TString inPidFile = Form("output/pid/pbar_p_%s_pi0_plab%3.1f_%d.root", tt[itype], plab[iplab], fid); //TString inParFile = Form("output/par/pbar_p_%s_pi0_plab%3.1f_%d.root", tt[itype], plab[iplab], fid); //TString outFile = Form("test/ana_%s_%s_plab%3.1f_%d.root", tt[itype], cbrem[brem], plab[iplab], fid); //cout << "inPidFile= " << inPidFile << endl; //cout << "inParFile= " << inParFile << endl; //cout << " tt= " << tt[itype] << " Outfile= " << outFile << endl; const char *tt[2] = {"pi0pipm_dpm","pi0jpsi"}; const char *cbrem[2] = {"raw","brem"}; const char *dir = Form("/vol0/panda/work/jpsi_pi0/grid.out/tda/%s/runall.%d.%d", tt[itype], iplab, fid); TString inPidFile = Form("%s/pid_complete.root",dir); TString inParFile = Form("%s/simparams.root",dir); TString outFile = Form("%s/ana_%s.root",dir,cbrem[brem]); cout << "inPidFile= " << inPidFile << endl; cout << "inParFile= " << inParFile << endl; cout << "outFile= " << outFile << endl; // *** initialization FairLogger::GetLogger()->SetLogToFile(kFALSE); FairRunAna* fRun = new FairRunAna(); fRun->SetInputFile(inPidFile); FairRuntimeDb* rtdb = fRun->GetRuntimeDb(); FairParRootFileIo* parIO = new FairParRootFileIo(); parIO->open(inParFile); FairParAsciiFileIo* parIOPid = new FairParAsciiFileIo(); parIOPid->open((TString(gSystem->Getenv("VMCWORKDIR"))+"/macro/params/all.par").Data(),"in"); rtdb->setFirstInput(parIO); rtdb->setSecondInput(parIOPid); rtdb->setOutput(parIO); AnaTda *atda = new AnaTda(iplab, itype, brem); atda->set_verbosity(0); fRun->AddTask(atda); fRun->SetOutputFile(outFile); fRun->Init(); fRun->Run(0,nevts); cout << "Done with: " << outFile << endl; }
void run_reco() { FairLogger *logger = FairLogger::GetLogger(); logger -> SetLogFileName("genieLog.log"); logger -> SetLogToFile(kTRUE); logger -> SetLogToScreen(kTRUE); logger -> SetLogVerbosityLevel("MEDIUM"); FairRunAna* run = new FairRunAna(); run -> SetInputFile("data/test.mc_youngstest.root"); run -> SetOutputFile("ha.root"); TString file = "../parameters/ST.parameters.par"; FairRuntimeDb* rtdb = run->GetRuntimeDb(); FairParAsciiFileIo* parIo1 = new FairParAsciiFileIo(); parIo1 -> open(file.Data(), "in"); FairParRootFileIo* parIo2 = new FairParRootFileIo(); parIo2 -> open("./data/params_youngstest.root"); rtdb -> setFirstInput(parIo2); rtdb -> setSecondInput(parIo1); // STDigiPar *digiPar = (STDigiPar *) rtdb -> getContainer("STDigiPar"); STDecoderTask *decoderTask = new STDecoderTask(); decoderTask -> SetGraw("../../../cosmic_RIKEN_20140715/CoBo_AsAd0-2014-07-11T18-56-57.670_0000.graw"); decoderTask -> SetPedestal("../../../cosmic_RIKEN_20140715/CoBo_AsAd0-2014-07-11T18-56-57.670_0000.graw.root"); // decoderTask -> SetGraw("../../../cosmic_RIKEN_20140715/CoBo_AsAd0_2014-07-11T19-34-57.035_0000.graw"); // decoderTask -> SetPedestal("../../../cosmic_RIKEN_20140715/CoBo_AsAd0_2014-07-11T19-34-57.035_0000.graw.root"); decoderTask -> SetNumTbs(512); decoderTask -> SetPersistence(); run -> AddTask(decoderTask); STPSATask *psaTask = new STPSATask(); psaTask -> SetPersistence(); psaTask -> SetThreshold(100); run -> AddTask(psaTask); STHitClusteringTask *hcTask = new STHitClusteringTask(); hcTask -> SetPersistence(); hcTask -> SetVerbose(2); run -> AddTask(hcTask); run->Init(); run->Run(0, 194); // run->Run(0, 194); }
void findHits(TString inputFile="", TString outputFile="", Int_t nEvents = 0) { // ----- Timer -------------------------------------------------------- TStopwatch timer; timer.Start(); // ------------------------------------------------------------------------ // ----- Create analysis run ---------------------------------------- FairRunAna* fRun = new FairRunAna(); fRun->SetInputFile(inputFile); fRun->SetOutputFile(outputFile); // Hit finder R3BCalifaCrystalCal2Hit *hitFinder = new R3BCalifaCrystalCal2Hit(); // Select s438b Demonstrator Geometry hitFinder->SelectGeometryVersion(0x438b); hitFinder->SetAngularWindow(6.0*TMath::Pi()/180.0, 6.0*TMath::Pi()/180.0, 0); fRun->AddTask(hitFinder); fRun->Init(); FairLogger::GetLogger()->SetLogScreenLevel("INFO"); // FairLogger::GetLogger()->SetLogVerbosityLevel("HIGH"); fRun->Run(0,nEvents); delete fRun; // ----- Finish ------------------------------------------------------- timer.Stop(); Double_t rtime = timer.RealTime(); Double_t ctime = timer.CpuTime(); cout << endl << endl; cout << "Macro finished succesfully." << endl; cout << "Real time " << rtime << " s, CPU time " << ctime << " s" << endl; cout << endl; // ------------------------------------------------------------------------ }
radlen() { string version = "TGeant3"; // OR "TGeant3"; TString outFile= Form("radlen_20k_%s.root",version.c_str()); cout << "hist_filler outFile= " << outFile << endl; gROOT->Macro("$VMCWORKDIR/gconfig/rootlogon.C"); gSystem->Load("libradlendata"); FairLogger::GetLogger()->SetLogToFile(kFALSE); FairRunAna* fRun = new FairRunAna(); FairRuntimeDb* rtdb = fRun->GetRuntimeDb(); //fRun->SetInputFile(inFile); //fRun->SetInputFile(Form("sim_complete_20k_upto_%s.root",upto_det.c_str())); //fRun->SetInputFile("sim_complete_upto_GEM_200k_evt.root"); fRun->SetInputFile(Form("output/sim_complete_%s_0.root",version.c_str())); fRun->AddFile(Form("output/sim_complete_%s_1.root",version.c_str())); fRun->AddFile(Form("output/sim_complete_%s_2.root",version.c_str())); fRun->AddFile(Form("output/sim_complete_%s_3.root",version.c_str())); fRun->AddFile(Form("output/sim_complete_%s_4.root",version.c_str())); fRun->SetOutputFile(outFile); RadLenData *rld = new RadLenData(); fRun->AddTask(rld); fRun->Init(); fRun->Run(0,0); }
void global_reco104(Int_t nEvents = 100, // number of events Int_t seed = 555) { gRandom->SetSeed(seed); TString script = TString(gSystem->Getenv("LIT_SCRIPT")); TString parDir = TString(gSystem->Getenv("VMCWORKDIR")) + TString("/parameters"); // Input and output data //TString dir = "/Users/andrey/Development/cbm/d/events/sts_tof/"; // Output directory TString dir = "data/"; // Output directory TString mcFile = dir + "auaumbias4.mc.root"; // MC transport file TString parFile = dir + "auaumbias4.params.root"; // Parameters file TString globalRecoFile = dir + "auaumbias4.global.reco.root"; // Output file with reconstructed tracks and hits // Digi files TList *parFileList = new TList(); TObjString stsDigiFile = parDir + "/sts/sts_v12b_std.digi.par"; // STS digi file TString stsMatBudgetFileName = parDir + "/sts/sts_matbudget_v12b.root"; TString TofGeoPar = "/parameters/tof/par_tof_V12a.txt"; // 10 m version // Directory for output results TString resultDir = "./data/auaumbias104/"; // Reconstruction parameters TString globalTrackingType = "branch"; // Global tracking type TString stsHitProducerType = "real"; // STS hit producer type: real, ideal // Normalization for efficiency Int_t normStsPoints = 4; Int_t normTrdPoints = 0; Int_t normMuchPoints = 0; Int_t normTofPoints = 1; Int_t normTrdHits = 0; Int_t normMuchHits = 0; Int_t normTofHits = 1; if (script == "yes") { mcFile = TString(gSystem->Getenv("LIT_MC_FILE")); parFile = TString(gSystem->Getenv("LIT_PAR_FILE")); globalRecoFile = TString(gSystem->Getenv("LIT_GLOBAL_RECO_FILE")); resultDir = TString(gSystem->Getenv("LIT_RESULT_DIR")); } parFileList->Add(&stsDigiFile); Int_t iVerbose = 1; TStopwatch timer; timer.Start(); gROOT->LoadMacro("$VMCWORKDIR/macro/littrack/loadlibs.C"); loadlibs(); gSystem->Load("libHadron"); FairRunAna *run = new FairRunAna(); run->SetInputFile(mcFile); run->SetOutputFile(globalRecoFile); // ----- STS REAL reconstruction ----------------------------------------------- // ----- STS digitizer ------------------------------------------------- Double_t threshold = 4; Double_t noiseWidth = 0.01; Int_t nofBits = 12; Double_t ElectronsPerAdc = 10.; Double_t StripDeadTime = 0.1; CbmStsDigitize* stsDigitize = new CbmStsDigitize("STS Digitiser", iVerbose); stsDigitize->SetRealisticResponse(); stsDigitize->SetFrontThreshold (threshold); stsDigitize->SetBackThreshold (threshold); stsDigitize->SetFrontNoiseWidth(noiseWidth); stsDigitize->SetBackNoiseWidth (noiseWidth); stsDigitize->SetFrontNofBits (nofBits); stsDigitize->SetBackNofBits (nofBits); stsDigitize->SetFrontNofElPerAdc (ElectronsPerAdc); stsDigitize->SetBackNofElPerAdc (ElectronsPerAdc); stsDigitize->SetStripDeadTime (StripDeadTime); run->AddTask(stsDigitize); // ------------------------------------------------------------------------- FairTask* stsClusterFinder = new CbmStsClusterFinder("STS Cluster Finder",iVerbose); run->AddTask(stsClusterFinder); FairTask* stsFindHits = new CbmStsFindHits("STS Hit Finder", iVerbose); run->AddTask(stsFindHits); FairTask* stsMatchHits = new CbmStsMatchHits("STS Hit Matcher", iVerbose); run->AddTask(stsMatchHits); FairTask* kalman = new CbmKF(); run->AddTask(kalman); CbmL1* l1 = new CbmL1(); l1->SetMaterialBudgetFileName(stsMatBudgetFileName); run->AddTask(l1); CbmStsTrackFinder* trackFinder = new CbmL1StsTrackFinder(); FairTask* findTracks = new CbmStsFindTracks(iVerbose, trackFinder); run->AddTask(findTracks); FairTask* stsMatchTracks = new CbmStsMatchTracks("STSMatchTracks", iVerbose); run->AddTask(stsMatchTracks); // ------------------------------------------------------------------------ // ------ TOF hits -------------------------------------------------------- CbmTofHitProducer* tofHitProd = new CbmTofHitProducer("TOF HitProducer", 1); tofHitProd->SetParFileName(std::string(TofGeoPar)); run->AddTask(tofHitProd); // ------------------------------------------------------------------------ // ------ Global track reconstruction ------------------------------------- CbmLitFindGlobalTracks* finder = new CbmLitFindGlobalTracks(); // Tracking method to be used // "branch" - branching tracking // "nn" - nearest neighbor tracking // "nn_parallel" - nearest neighbor parallel tracking finder->SetTrackingType(std::string(globalTrackingType)); // Hit-to-track merger method to be used // "nearest_hit" - assigns nearest hit to the track finder->SetMergerType("nearest_hit"); run->AddTask(finder); // ------------------------------------------------------------------------ // ------------------------------------------------------------------------ CbmRichHitProducer* richHitProd = new CbmRichHitProducer(); //run->AddTask(richHitProd); CbmRichReconstruction* richReco = new CbmRichReconstruction(); //run->AddTask(richReco); CbmRichMatchRings* matchRings = new CbmRichMatchRings(); //run->AddTask(matchRings); // ------------------------------------------------------------------------ // ----- Primary vertex finding --------------------------------------- CbmPrimaryVertexFinder* pvFinder = new CbmPVFinderKF(); CbmFindPrimaryVertex* findVertex = new CbmFindPrimaryVertex(pvFinder); run->AddTask(findVertex); // ------------------------------------------------------------------------ // ----- Track finding QA check ------------------------------------ CbmLitTrackingQa* trackingQa = new CbmLitTrackingQa(); trackingQa->SetMinNofPointsSts(normStsPoints); trackingQa->SetMinNofPointsTrd(normTrdPoints); trackingQa->SetMinNofPointsMuch(normMuchPoints); trackingQa->SetMinNofPointsTof(normTofPoints); trackingQa->SetQuota(0.7); trackingQa->SetMinNofHitsTrd(normTrdHits); trackingQa->SetMinNofHitsMuch(normMuchHits); trackingQa->SetMinNofHitsRich(7); trackingQa->SetQuotaRich(0.6); trackingQa->SetVerbose(normTofHits); trackingQa->SetOutputDir(std::string(resultDir)); run->AddTask(trackingQa); // ------------------------------------------------------------------------ CbmLitFitQa* fitQa = new CbmLitFitQa(); fitQa->SetMvdMinNofHits(0); fitQa->SetStsMinNofHits(normStsPoints); fitQa->SetMuchMinNofHits(normMuchPoints); fitQa->SetTrdMinNofHits(normTrdPoints); fitQa->SetOutputDir(std::string(resultDir)); run->AddTask(fitQa); CbmLitClusteringQa* clusteringQa = new CbmLitClusteringQa(); clusteringQa->SetOutputDir(std::string(resultDir)); run->AddTask(clusteringQa); CbmProduceDst *produceDst = new CbmProduceDst(); // in hadron run->AddTask(produceDst); CbmHadronAnalysis *HadronAna = new CbmHadronAnalysis(); // in hadron run->AddTask(HadronAna); // ----- Parameter database -------------------------------------------- FairRuntimeDb* rtdb = run->GetRuntimeDb(); FairParRootFileIo* parIo1 = new FairParRootFileIo(); FairParAsciiFileIo* parIo2 = new FairParAsciiFileIo(); parIo1->open(parFile.Data()); parIo2->open(parFileList, "in"); rtdb->setFirstInput(parIo1); rtdb->setSecondInput(parIo2); rtdb->setOutput(parIo1); rtdb->saveOutput(); // ------------------------------------------------------------------------ // ----- Initialize and run -------------------------------------------- run->Init(); run->Run(0, nEvents); // ------------------------------------------------------------------------ // ----- Finish ------------------------------------------------------- timer.Stop(); cout << endl << endl; cout << "Macro finished successfully." << endl; cout << "Test passed"<< endl; cout << " All ok " << endl; cout << "Output file is " << globalRecoFile << endl; cout << "Parameter file is " << parFile << endl; cout << "Real time " << timer.RealTime() << " s, CPU time " << timer.CpuTime() << " s" << endl; cout << endl; // ------------------------------------------------------------------------ }
void run_digi_dTof() { // ----- Files --------------------------------------------------------------- TString inFile = "sim.root"; TString parFile = "par.root"; TString outFile = "r3bhits_dTof.root"; // --------------------------------------------------------------------------- // ----- Timer --------------------------------------------------------------- TStopwatch timer; timer.Start(); // --------------------------------------------------------------------------- // ----- Digitization -------------------------------------------------------- FairRunAna* run = new FairRunAna(); run->SetInputFile(inFile); run->SetOutputFile(outFile); // --------------------------------------------------------------------------- // dTOF R3BdTofDigitizer* dtof_digitizer = new R3BdTofDigitizer(); run->AddTask(dtof_digitizer); dtof_digitizer->SetSigma_y( 1. ); dtof_digitizer->SetSigma_t( 0.03 ); dtof_digitizer->SetSigma_ELoss( 0.014 ); //0.0015 // --------------------------------------------------------------------------- // ----- Runtime DataBase info ----------------------------------------------- FairRuntimeDb* rtdb = run->GetRuntimeDb(); FairParRootFileIo* parIo1 = new FairParRootFileIo(); parIo1->open(parFile.Data()); rtdb->setFirstInput(parIo1); rtdb->setOutput(parIo1); rtdb->saveOutput(); // --------------------------------------------------------------------------- // ----- Intialise and run --------------------------------------------------- run->Init(); run->Run(); // --------------------------------------------------------------------------- // ----- Finish -------------------------------------------------------------- timer.Stop(); Double_t rtime = timer.RealTime(); Double_t ctime = timer.CpuTime(); cout << endl << endl; cout << "Macro finished succesfully." << endl; cout << "Output file writen: " << outFile << endl; cout << "Parameter file writen " << parFile << endl; cout << "Real time " << rtime << " s, CPU time " << ctime << " s" << endl; cout << endl; cout << " Test passed" << endl; cout << " All ok " << endl; cout << " Digitization successful." << endl; // --------------------------------------------------------------------------- RemoveGeoManager(); }
void run_trac_its(Int_t nEvents = 10, TString mcEngine = "TGeant3"){ // Initialize logger FairLogger *logger = FairLogger::GetLogger(); logger->SetLogVerbosityLevel("LOW"); logger->SetLogScreenLevel("INFO"); // Input and output file name std::stringstream inputfile, outputfile, paramfile; inputfile << "AliceO2_" << mcEngine << ".clus_" << nEvents << "_event.root"; paramfile << "AliceO2_" << mcEngine << ".params_" << nEvents << ".root"; outputfile << "AliceO2_" << mcEngine << ".trac_" << nEvents << "_event.root"; // Setup timer TStopwatch timer; // Setup FairRoot analysis manager FairRunAna * fRun = new FairRunAna(); FairFileSource *fFileSource = new FairFileSource(inputfile.str().c_str()); fRun->SetSource(fFileSource); fRun->SetOutputFile(outputfile.str().c_str()); // Setup Runtime DB FairRuntimeDb* rtdb = fRun->GetRuntimeDb(); FairParRootFileIo* parInput1 = new FairParRootFileIo(); parInput1->open(paramfile.str().c_str()); rtdb->setFirstInput(parInput1); // Setup tracker // To run with n threads call AliceO2::ITS::CookedTrackerTask(n) AliceO2::ITS::CookedTrackerTask *trac = new AliceO2::ITS::CookedTrackerTask; fRun->AddTask(trac); fRun->Init(); AliceO2::Field::MagneticField* fld = (AliceO2::Field::MagneticField*)fRun->GetField(); if (!fld) { std::cout << "Failed to get field instance from FairRunAna" << std::endl; return; } trac->setBz(fld->solenoidField()); //in kG timer.Start(); fRun->Run(); std::cout << std::endl << std::endl; // Extract the maximal used memory an add is as Dart measurement // This line is filtered by CTest and the value send to CDash FairSystemInfo sysInfo; Float_t maxMemory=sysInfo.GetMaxMemory(); std::cout << "<DartMeasurement name=\"MaxMemory\" type=\"numeric/double\">"; std::cout << maxMemory; std::cout << "</DartMeasurement>" << std::endl; timer.Stop(); Double_t rtime = timer.RealTime(); Double_t ctime = timer.CpuTime(); Float_t cpuUsage=ctime/rtime; cout << "<DartMeasurement name=\"CpuLoad\" type=\"numeric/double\">"; cout << cpuUsage; cout << "</DartMeasurement>" << endl; cout << endl << endl; cout << "Macro finished succesfully." << endl; std::cout << endl << std::endl; std::cout << "Output file is " << outputfile.str() << std::endl; //std::cout << "Parameter file is " << parFile << std::endl; std::cout << "Real time " << rtime << " s, CPU time " << ctime << "s" << endl << endl; }
void califaAna_batch(Int_t nEvents=1, Int_t fGeoVer=1, Double_t fThres=0.000050, Double_t fExpRes=5., Double_t fDelPolar=3.2, Double_t fDelAzimuthal=3.2) { cout << "Running califaAna_batch with arguments:" <<endl; cout << "Number of events: " << nEvents <<endl; cout << "CALIFA geo version: " << fGeoVer <<endl; cout << "Threshold: " << fThres <<endl<<endl; cout << "Experimental resolution: " << fExpRes <<endl<<endl; // In general, the following parts need not be touched // ======================================================================== // ---- Debug option ------------------------------------------------- gDebug = 0; // ------------------------------------------------------------------------ // ----- Timer -------------------------------------------------------- TStopwatch timer; timer.Start(); // ------------------------------------------------------------------------ // ----- Create analysis run ---------------------------------------- FairRunAna* fRun = new FairRunAna(); FairRuntimeDb* rtdb = fRun->GetRuntimeDb(); FairParRootFileIo* parIo1 = new FairParRootFileIo(); parIo1->open("r3bpar.root"); rtdb->setFirstInput(parIo1); rtdb->print(); fRun->SetInputFile("r3bsim.root"); fRun->SetOutputFile("califaAna.root"); // ----- Analysis routines for CALIFA R3BCaloHitFinder* caloHF = new R3BCaloHitFinder(); //Selecting the geometry version // 0- CALIFA 5.0, including BARREL and ENDCAP. // 1- CALIFA 7.05, only BARREL // 2- CALIFA 7.07, only BARREL // 3- CALIFA 7.09, only BARREL (ongoing work) // 4- CALIFA 7.17, only ENDCAP (in CsI[Tl]) // 5- CALIFA 7.07+7.17, // 6- CALIFA 7.09+7.17, (ongoing work) // 10- CALIFA 8.11, only BARREL (ongoing work) // ... caloHF->SelectGeometryVersion(fGeoVer); //caloHF->SelectGeometryVersion(10); caloHF->SetDetectionThreshold(fThres); //50 KeV [fThres in GeV] caloHF->SetExperimentalResolution(fExpRes); //5% at 1 MeV caloHF->SetAngularWindow(fDelPolar,fDelAzimuthal); //[0.25 around 14.3 degrees, 3.2 for the complete calorimeter] fRun->AddTask(caloHF); fRun->Init(); fRun->Run(0, nEvents); // ----- Finish ------------------------------------------------------- timer.Stop(); Double_t rtime = timer.RealTime(); Double_t ctime = timer.CpuTime(); cout << endl << endl; cout << "Macro finished succesfully." << endl; cout << "Real time " << rtime << " s, CPU time " << ctime << " s" << endl; cout << endl; // ------------------------------------------------------------------------ }
void global_reco(Int_t nEvents = 100, Int_t seed = 555) { gRandom->SetSeed(seed); TTree::SetMaxTreeSize(90000000000); TString script = TString(gSystem->Getenv("LIT_SCRIPT")); TString parDir = TString(gSystem->Getenv("VMCWORKDIR")) + TString("/parameters"); // Input and output data TString dir = "events/much_anna_omega_8gev_10k/"; // Output directory TString mcFile = dir + "mc.0000.root"; // MC transport file TString parFile = dir + "param.0000.root"; // Parameters file TString globalRecoFile = dir + "global.reco.0000.root"; // Output file with reconstructed tracks and hits // Digi files TList* parFileList = new TList(); TObjString stsDigiFile = parDir + "/sts/sts_v12b_std.digi.par"; // STS digi file TObjString trdDigiFile = parDir + "/trd/trd_v13g.digi.par"; // TRD digi file TString muchDigiFile = parDir + "/much/much_v12c.digi.root"; // MUCH digi file TString stsMatBudgetFile = parDir + "/sts/sts_matbudget_v12b.root"; TObjString tofDigiFile = parDir + "/tof/tof_v13b.digi.par";// TOF digi file // Reconstruction parameters TString globalTrackingType = "nn"; // Global tracking type TString trdHitProducerType = "smearing"; // TRD hit producer type: smearing, digi, clustering TString muchHitProducerType = "advanced"; // MUCH hit producer type: simple, advanced if (script == "yes") { mcFile = TString(gSystem->Getenv("LIT_MC_FILE")); parFile = TString(gSystem->Getenv("LIT_PAR_FILE")); globalRecoFile = TString(gSystem->Getenv("LIT_GLOBAL_RECO_FILE")); stsDigiFile = TString(gSystem->Getenv("LIT_STS_DIGI")); trdDigiFile = TString(gSystem->Getenv("LIT_TRD_DIGI")); muchDigiFile = TString(gSystem->Getenv("LIT_MUCH_DIGI")); tofDigiFile = TString(gSystem->Getenv("LIT_TOF_DIGI")); stsMatBudgetFile = TString(gSystem->Getenv("LIT_STS_MAT_BUDGET_FILE")); } parFileList->Add(&stsDigiFile); parFileList->Add(&trdDigiFile); parFileList->Add(&tofDigiFile); Int_t iVerbose = 1; TStopwatch timer; timer.Start(); gROOT->LoadMacro("$VMCWORKDIR/macro/littrack/loadlibs.C"); loadlibs(); FairRunAna *run = new FairRunAna(); run->SetInputFile(mcFile); run->SetOutputFile(globalRecoFile); // ----- STS ------------------------------------------------- Double_t threshold = 4; Double_t noiseWidth = 0.01; Int_t nofBits = 12; Double_t ElectronsPerAdc = 10.; Double_t StripDeadTime = 0.1; CbmStsDigitize* stsDigitize = new CbmStsDigitize("STS Digitiser", iVerbose); stsDigitize->SetRealisticResponse(); stsDigitize->SetFrontThreshold(threshold); stsDigitize->SetBackThreshold(threshold); stsDigitize->SetFrontNoiseWidth(noiseWidth); stsDigitize->SetBackNoiseWidth(noiseWidth); stsDigitize->SetFrontNofBits(nofBits); stsDigitize->SetBackNofBits(nofBits); stsDigitize->SetFrontNofElPerAdc(ElectronsPerAdc); stsDigitize->SetBackNofElPerAdc(ElectronsPerAdc); stsDigitize->SetStripDeadTime(StripDeadTime); run->AddTask(stsDigitize); FairTask* stsClusterFinder = new CbmStsClusterFinder("STS Cluster Finder",iVerbose); run->AddTask(stsClusterFinder); FairTask* stsFindHits = new CbmStsFindHits("STS Hit Finder", iVerbose); run->AddTask(stsFindHits); FairTask* stsMatchHits = new CbmStsMatchHits("STS Hit Matcher", iVerbose); run->AddTask(stsMatchHits); FairTask* kalman = new CbmKF(); run->AddTask(kalman); CbmL1* l1 = new CbmL1(); //l1->SetExtrapolateToTheEndOfSTS(true); l1->SetMaterialBudgetFileName(stsMatBudgetFile); run->AddTask(l1); CbmStsTrackFinder* trackFinder = new CbmL1StsTrackFinder(); FairTask* findTracks = new CbmStsFindTracks(iVerbose, trackFinder); run->AddTask(findTracks); FairTask* stsMatchTracks = new CbmStsMatchTracks("STSMatchTracks", iVerbose); run->AddTask(stsMatchTracks); // ------------------------------------------------------------------------ if (IsMuch(parFile)) { // -------- MUCH digitization ------------ CbmMuchDigitizeGem* digitize = new CbmMuchDigitizeGem(muchDigiFile.Data()); if (muchHitProducerType == "simple") { digitize->SetAlgorithm(0); } else if (muchHitProducerType == "advanced") { digitize->SetAlgorithm(1); } run->AddTask(digitize); CbmMuchFindHitsGem* findHits = new CbmMuchFindHitsGem(muchDigiFile.Data()); run->AddTask(findHits); CbmMuchDigitizeStraws* strawDigitize = new CbmMuchDigitizeStraws("MuchDigitizeStraws", muchDigiFile.Data(), iVerbose); run->AddTask(strawDigitize); CbmMuchFindHitsStraws* strawFindHits = new CbmMuchFindHitsStraws("MuchFindHitsStraws", muchDigiFile.Data(), iVerbose); strawFindHits->SetMerge(1); run->AddTask(strawFindHits); // ----------------------------------------------------------------- } if (IsTrd(parFile)) { // ----- TRD reconstruction----------------------------------------- // Update of the values for the radiator F.U. 17.08.07 Int_t trdNFoils = 130; // number of polyetylene foils Float_t trdDFoils = 0.0013; // thickness of 1 foil [cm] Float_t trdDGap = 0.02; // thickness of gap between foils [cm] Bool_t simpleTR = kTRUE; // use fast and simple version for TR production CbmTrdRadiator *radiator = new CbmTrdRadiator(simpleTR, trdNFoils, trdDFoils, trdDGap); if (trdHitProducerType == "smearing") { CbmTrdHitProducerSmearing* trdHitProd = new CbmTrdHitProducerSmearing(radiator); trdHitProd->SetUseDigiPar(false); run->AddTask(trdHitProd); } else if (trdHitProducerType == "digi") { CbmTrdDigitizer* trdDigitizer = new CbmTrdDigitizer(radiator); run->AddTask(trdDigitizer); CbmTrdHitProducerDigi* trdHitProd = new CbmTrdHitProducerDigi(); run->AddTask(trdHitProd); } else if (trdHitProducerType == "clustering") { // ----- TRD clustering ----- CbmTrdDigitizerPRF* trdClustering = new CbmTrdDigitizerPRF("TRD Clusterizer", "TRD task", radiator, false, true); run->AddTask(trdClustering); CbmTrdClusterFinderFast* trdClusterfindingfast = new CbmTrdClusterFinderFast(true, true, false, 5.0e-7); run->AddTask(trdClusterfindingfast); CbmTrdHitProducerCluster* trdClusterHitProducer = new CbmTrdHitProducerCluster(); run->AddTask(trdClusterHitProducer); // ----- End TRD Clustering ----- } // ------------------------------------------------------------------------ } if (IsTof(parFile)) { // ------ TOF hits -------------------------------------------------------- CbmTofHitProducerNew* tofHitProd = new CbmTofHitProducerNew("TOF HitProducerNew",iVerbose); tofHitProd->SetInitFromAscii(kFALSE); run->AddTask(tofHitProd); // ------------------------------------------------------------------------ } // ------ Global track reconstruction ------------------------------------- CbmLitFindGlobalTracks* finder = new CbmLitFindGlobalTracks(); //CbmLitFindGlobalTracksParallel* finder = new CbmLitFindGlobalTracksParallel(); // Tracking method to be used // "branch" - branching tracking // "nn" - nearest neighbor tracking // "nn_parallel" - nearest neighbor parallel tracking finder->SetTrackingType(std::string(globalTrackingType)); // Hit-to-track merger method to be used // "nearest_hit" - assigns nearest hit to the track finder->SetMergerType("nearest_hit"); run->AddTask(finder); if (IsTrd(parFile)) { CbmTrdMatchTracks* trdMatchTracks = new CbmTrdMatchTracks(); run->AddTask(trdMatchTracks); } if (IsMuch(parFile)) { CbmMuchMatchTracks* muchMatchTracks = new CbmMuchMatchTracks(); run->AddTask(muchMatchTracks); } // ----- Primary vertex finding -------------------------------------- CbmPrimaryVertexFinder* pvFinder = new CbmPVFinderKF(); CbmFindPrimaryVertex* findVertex = new CbmFindPrimaryVertex(pvFinder); run->AddTask(findVertex); // ----------------------------------------------------------------------- // ----- Parameter database -------------------------------------------- FairRuntimeDb* rtdb = run->GetRuntimeDb(); FairParRootFileIo* parIo1 = new FairParRootFileIo(); FairParAsciiFileIo* parIo2 = new FairParAsciiFileIo(); parIo1->open(parFile.Data()); parIo2->open(parFileList, "in"); rtdb->setFirstInput(parIo1); rtdb->setSecondInput(parIo2); rtdb->setOutput(parIo1); rtdb->saveOutput(); // ------------------------------------------------------------------------ // ----- Initialize and run -------------------------------------------- run->Init(); run->Run(0, nEvents); // ------------------------------------------------------------------------ // ----- Finish ------------------------------------------------------- timer.Stop(); cout << "Macro finished successfully." << endl; cout << "Test passed"<< endl; cout << " All ok " << endl; cout << "Output file is " << globalRecoFile << endl; cout << "Parameter file is " << parFile << endl; cout << "Real time " << timer.RealTime() << " s, CPU time " << timer.CpuTime() << " s" << endl; // ------------------------------------------------------------------------ }
void run_unpack_proto_v2(){ // ----- Timer -------------------------------------------------------- TStopwatch timer; timer.Start(); // ------------------------------------------------------------------------ gSystem->Load("libXMLParser.so"); TString scriptfile = "LookupProto20150331.xml"; TString protomapfile = "proto.map"; TString dir = getenv("VMCWORKDIR"); TString scriptdir = dir + "/scripts/"+ scriptfile; TString protomapdir = dir + "/scripts/"+ protomapfile; TString geo = "proto_geo_hires.root"; FairLogger *logger = FairLogger::GetLogger(); logger -> SetLogFileName("ATTPCLog.log"); logger -> SetLogToFile(kTRUE); logger -> SetLogToScreen(kTRUE); logger -> SetLogVerbosityLevel("MEDIUM"); FairRunAna* run = new FairRunAna(); //run -> SetInputFile("mc.dummy_proto.root"); run -> SetOutputFile("output_proto.root"); //run -> SetGeomFile("../geometry/ATTPC_Proto_v1.0.root"); TString file = "../../parameters/AT.parameters.par"; FairRuntimeDb* rtdb = run->GetRuntimeDb(); FairParAsciiFileIo* parIo1 = new FairParAsciiFileIo(); parIo1 -> open(file.Data(), "in"); //FairParRootFileIo* parIo2 = new FairParRootFileIo(); //parIo2 -> open("param.dummy_proto.root"); // rtdb -> setFirstInput(parIo2); rtdb -> setSecondInput(parIo1); ATDecoderTask *decoderTask = new ATDecoderTask(); //decoderTask ->SetDebugMode(kTRUE); decoderTask ->SetMapOpt(1); // ATTPC : 0 - Prototype: 1 |||| Default value = 0 //decoderTask -> AddData("/home/ayyadlim/Desktop/Yassid/ATTPC/Data/Notre_Dame_data/CoBo_AsAd0_2015-01-27T15_19_34.962_0000.graw");//12B //decoderTask -> AddData("/home/ayyadlim/Desktop/Yassid/ATTPC/Data/Notre_Dame_data/CoBo_AsAd0_2015-01-27T07_16_00.696_0000.graw"); //decoderTask -> AddData("/Users/yassidayyad/Desktop/ATTPC/Data/Notre_Dame_data/CoBo_AsAd0_2015-01-27T15_19_34.962_0000.graw"); //decoderTask ->AddData("/home/ayyadlim/Desktop/Yassid/ATTPC/Data/Notre_Dame_data/CoBo_AsAd0_2015-01-26T19_33_23.451_0003.graw"); //12N //decoderTask -> AddData("/home/ayyadlim/Desktop/Yassid/ATTPC/Data/Notre_Dame_data/CoBo_AsAd0_2015-01-28T07:02:50.291_0000.graw");//12B High Pressure //decoderTask -> AddData("/home/ayyadlim/Desktop/Yassid/ATTPC/Data/Notre_Dame_data/CoBo_AsAd0_2015-01-28T16:56:24.135_0000.graw");//12B Low Pressure decoderTask -> AddData("/home/ayyadlim/Desktop/Yassid/ATTPC/Data/TRIUMF/CoBo_AsAd0_2015-12-01T07_35_27.482_0009.graw");//8He TRIUMF // decoderTask -> AddData("/home/ayyadlim/Desktop/Yassid/ATTPC/Data/Notre_Dame_data/10Be/CoBo_2013-02-21_12-52-57_0006.graw"); //10Be //decoderTask -> AddData("/home/s1257/fair_install_ROOT6/data/CoBo_AsAd0_2015-12-03T05:47:43.571_0001.graw");//12B Low Pressure //decoderTask -> AddData("/home/daq/Desktop/Data/run_0014/CoBo_AsAd0_2015-07-29T15_45_17.971_0000.graw"); //decoderTask->AddData("/home/daq/Desktop/Data/run_0028/CoBo_AsAd0_2015-07-29T19_02_32.783_0000.graw"); decoderTask ->SetGeo(geo.Data()); decoderTask ->SetProtoMap(protomapdir.Data()); decoderTask ->SetMap((Char_t const*) scriptdir.Data()); decoderTask -> SetPositivePolarity(kTRUE); decoderTask -> SetFPNPedestal(6); //decoderTask->SetInternalPedestal(); decoderTask -> SetNumTbs(512); //decoderTask -> SetPersistence(); decoderTask -> SetGetRawEventMode(1); run -> AddTask(decoderTask); ATPSATask *psaTask = new ATPSATask(); psaTask -> SetPersistence(); psaTask -> SetBackGroundPeakFinder(kFALSE); // Suppress background of each pad for noisy data (Larger computing Time) psaTask -> SetThreshold(20); psaTask -> SetPeakFinder(); //Note: For the moment not affecting the prototype PSA Task run -> AddTask(psaTask); ATPhiRecoTask *phirecoTask = new ATPhiRecoTask(); phirecoTask -> SetPersistence(); run -> AddTask(phirecoTask); /*ATHoughTask *HoughTask = new ATHoughTask(); HoughTask->SetPhiReco(); HoughTask->SetPersistence(); HoughTask->SetLinearHough(); HoughTask->SetRadiusThreshold(3.0); // Truncate Hough Space Calculation //HoughTask ->SetCircularHough(); run ->AddTask(HoughTask);*/ run->Init(); run->Run(0,100); // Number must be lower than the number of events in dummy // ----- Finish ------------------------------------------------------- timer.Stop(); Double_t rtime = timer.RealTime(); Double_t ctime = timer.CpuTime(); cout << endl << endl; cout << "Macro finished succesfully." << endl; cout << "Real time " << rtime << " s, CPU time " << ctime << " s" << endl; cout << endl; // ------------------------------------------------------------------------ }
void run_unpack_alpha (TString dataFile = "runfiles/NSCL/alphas/alpha_run_0100.txt",TString parameterFile = "ATTPC.alpha.par", TString mappath="/data/ar46/run_0085/") { // ----- Timer -------------------------------------------------------- TStopwatch timer; timer.Start(); // ------------------------------------------------------------------------ gSystem->Load("libXMLParser.so"); // ----------------------------------------------------------------- // Set file names TString scriptfile = "Lookup20150611.xml"; TString dir = getenv("VMCWORKDIR"); TString scriptdir = dir + "/scripts/"+ scriptfile; TString dataDir = dir + "/macro/data/"; TString geomDir = dir + "/geometry/"; gSystem -> Setenv("GEOMPATH", geomDir.Data()); //TString inputFile = dataDir + name + ".digi.root"; //TString outputFile = dataDir + "output.root"; TString outputFile = "output.root"; //TString mcParFile = dataDir + name + ".params.root"; TString loggerFile = dataDir + "ATTPCLog.log"; TString digiParFile = dir + "/parameters/" + parameterFile; TString geoManFile = dir + "/geometry/ATTPC_v1.2.root"; TString inimap = mappath + "inhib.txt"; TString lowgmap = mappath + "lowgain.txt"; TString xtalkmap = mappath + "beampads_e15503b.txt"; // ----------------------------------------------------------------- // Logger FairLogger *fLogger = FairLogger::GetLogger(); fLogger -> SetLogFileName(loggerFile); fLogger -> SetLogToScreen(kTRUE); fLogger -> SetLogToFile(kTRUE); fLogger -> SetLogVerbosityLevel("LOW"); FairRunAna* run = new FairRunAna(); run -> SetOutputFile(outputFile); //run -> SetGeomFile("../geometry/ATTPC_Proto_v1.0.root"); run -> SetGeomFile(geoManFile); FairRuntimeDb* rtdb = run->GetRuntimeDb(); FairParAsciiFileIo* parIo1 = new FairParAsciiFileIo(); parIo1 -> open(digiParFile.Data(), "in"); //FairParRootFileIo* parIo2 = new FairParRootFileIo(); //parIo2 -> open("param.dummy_proto.root"); // rtdb -> setFirstInput(parIo2); rtdb -> setSecondInput(parIo1); // Settings Bool_t fUseDecoder = kTRUE; if (dataFile.IsNull() == kTRUE) fUseDecoder = kFALSE; Bool_t fUseSeparatedData = kFALSE; if (dataFile.EndsWith(".txt")) fUseSeparatedData = kTRUE; /* * Unpacking options: * - SetUseSeparatedData: To be used with 10 CoBo files without merging. Mainly for the ATTPC. Enabled if the input file is a txt. * - SetPseudoTopologyFrame: Used to force the graw file to have a Topology frame. * - SetPersistance: Save the unpacked data into the root file. * - SetMap: Chose the lookup table. * - SetMapOpt Chose the pad plane geometry. In addition forces the unpacker to use Basic Frames for 1 single file (p-ATTPC case) of Layered * Frames for Merged Data (10 Cobos merged data). */ ATDecoder2Task *fDecoderTask = new ATDecoder2Task(); fDecoderTask -> SetUseSeparatedData(fUseSeparatedData); if(fUseSeparatedData) fDecoderTask -> SetPseudoTopologyFrame(kTRUE);//! This calls the method 10 times so for less than 10 CoBos ATCore2 must be modified //fDecoderTask -> SetPositivePolarity(kTRUE); fDecoderTask -> SetPersistence(kFALSE); fDecoderTask -> SetMap(scriptdir.Data()); //fDecoderTask -> SetInhibitMaps(inimap,lowgmap,xtalkmap); // TODO: Only implemented for fUseSeparatedData!!!!!!!!!!!!!!!!!!!1 fDecoderTask -> SetMapOpt(0); // ATTPC : 0 - Prototype: 1 |||| Default value = 0 fDecoderTask -> SetNumCobo(9); fDecoderTask -> SetEventID(0); /*if (!fUseSeparatedData) fDecoderTask -> AddData(dataFile); else { std::ifstream listFile(dataFile.Data()); TString dataFileWithPath; Int_t iCobo = 0; while (dataFileWithPath.ReadLine(listFile)) { if (dataFileWithPath.Contains(Form("CoBo%i",iCobo)) ) fDecoderTask -> AddData(dataFileWithPath, iCobo); else{ iCobo++; fDecoderTask -> AddData(dataFileWithPath, iCobo); } } }*/ fDecoderTask -> AddData("/data/ND/2013/buffer/NSCL_Alpha/run_0100/CoBo0_run_0100_11Dec14_22h03m15s.graw",0); fDecoderTask -> AddData("/data/ND/2013/buffer/NSCL_Alpha/run_0100/CoBo1_run_0100_11Dec14_22h03m15s.graw",1); fDecoderTask -> AddData("/data/ND/2013/buffer/NSCL_Alpha/run_0100/CoBo2_run_0100_11Dec14_22h03m15s.graw",2); fDecoderTask -> AddData("/data/ND/2013/buffer/NSCL_Alpha/run_0100/CoBo2_run_0100_11Dec14_22h03m15s.1.graw",2); fDecoderTask -> AddData("/data/ND/2013/buffer/NSCL_Alpha/run_0100/CoBo3_run_0100_11Dec14_22h03m16s.graw",3); fDecoderTask -> AddData("/data/ND/2013/buffer/NSCL_Alpha/run_0100/CoBo4_run_0100_11Dec14_22h03m16s.graw",4); fDecoderTask -> AddData("/data/ND/2013/buffer/NSCL_Alpha/run_0100/CoBo6_run_0100_11Dec14_22h03m16s.graw",5); fDecoderTask -> AddData("/data/ND/2013/buffer/NSCL_Alpha/run_0100/CoBo7_run_0100_11Dec14_22h03m16s.graw",6); fDecoderTask -> AddData("/data/ND/2013/buffer/NSCL_Alpha/run_0100/CoBo7_run_0100_11Dec14_22h03m16s.1.graw",6); fDecoderTask -> AddData("/data/ND/2013/buffer/NSCL_Alpha/run_0100/CoBo8_run_0100_11Dec14_22h03m16s.graw",7); fDecoderTask -> AddData("/data/ND/2013/buffer/NSCL_Alpha/run_0100/CoBo9_run_0100_11Dec14_22h03m16s.graw",8); run -> AddTask(fDecoderTask); ATPSATask *psaTask = new ATPSATask(); psaTask -> SetPersistence(kTRUE); psaTask -> SetThreshold(20); psaTask -> SetPSAMode(1); //NB: 1 is ATTPC - 2 is pATTPC //psaTask -> SetPeakFinder(); //NB: Use either peak finder of maximum finder but not both at the same time psaTask -> SetMaxFinder(); psaTask -> SetBaseCorrection(kTRUE); //Directly apply the base line correction to the pulse amplitude to correct for the mesh induction. If false the correction is just saved psaTask -> SetTimeCorrection(kFALSE); //Interpolation around the maximum of the signal peak run -> AddTask(psaTask); ATHoughTask *HoughTask = new ATHoughTask(); HoughTask ->SetPersistence(); HoughTask ->SetLinearHough(); //HoughTask ->SetCircularHough(); HoughTask ->SetHoughThreshold(100.0); // Charge threshold for Hough HoughTask ->SetHoughDistance(5.0);//This is the distance to reject points from a given linear Hough Space run -> AddTask(HoughTask); run -> Init(); //run -> RunOnTBData(); run->Run(0,200); std::cout << std::endl << std::endl; std::cout << "Macro finished succesfully." << std::endl << std::endl; std::cout << "- Output file : " << outputFile << std::endl << std::endl; // ----- Finish ------------------------------------------------------- timer.Stop(); Double_t rtime = timer.RealTime(); Double_t ctime = timer.CpuTime(); cout << endl << endl; cout << "Real time " << rtime << " s, CPU time " << ctime << " s" << endl; cout << endl; // ------------------------------------------------------------------------ //gApplication->Terminate(); }
void run_digi_Fi4() { // ----- Files --------------------------------------------------------------- TString inFile = "sim2.root"; TString parFile = "par2.root"; TString outFile = "hits2.root"; // --------------------------------------------------------------------------- // ----- Timer --------------------------------------------------------------- TStopwatch timer; timer.Start(); // --------------------------------------------------------------------------- // ----- Digitization -------------------------------------------------------- FairRunAna* run = new FairRunAna(); run->SetInputFile(inFile); run->SetOutputFile(outFile); // --------------------------------------------------------------------------- // ----- Connect the Digitization Task --------------------------------------- /*R3BCalifaCrystalCal2Hit* califa_digitizer = new R3BCalifaCrystalCal2Hit(); run->AddTask(califa_digitizer); // mTOF R3BmTofDigitizer* mtof_digitizer = new R3BmTofDigitizer(); run->AddTask(mtof_digitizer); // STaRTrack R3BSTaRTraHitFinder* tra_digitizer = new R3BSTaRTraHitFinder(); run->AddTask(tra_digitizer); // MFI R3BMfiDigitizer* mfi_digitizer = new R3BMfiDigitizer(); run->AddTask(mfi_digitizer); // PSP R3BPspDigitizer* psp_digitizer = new R3BPspDigitizer(); run->AddTask(psp_digitizer);*/ // Fi4,5,6 R3BFi4Digitizer* Fi4_digitizer = new R3BFi4Digitizer(0.001,0.01,1); run->AddTask(Fi4_digitizer); // sfi R3BsfiDigitizer* sfi_digitizer = new R3BsfiDigitizer(0.001,0.01); run->AddTask(sfi_digitizer); // --------------------------------------------------------------------------- // ----- Runtime DataBase info ----------------------------------------------- FairRuntimeDb* rtdb = run->GetRuntimeDb(); FairParRootFileIo* parIo1 = new FairParRootFileIo(); parIo1->open(parFile.Data()); rtdb->setFirstInput(parIo1); rtdb->setOutput(parIo1); rtdb->saveOutput(); // --------------------------------------------------------------------------- // ----- Intialise and run --------------------------------------------------- run->Init(); run->Run(); // --------------------------------------------------------------------------- // ----- Finish -------------------------------------------------------------- timer.Stop(); Double_t rtime = timer.RealTime(); Double_t ctime = timer.CpuTime(); cout << endl << endl; cout << "Macro finished succesfully." << endl; cout << "Output file writen: " << outFile << endl; cout << "Parameter file writen " << parFile << endl; cout << "Real time " << rtime << " s, CPU time " << ctime << " s" << endl; cout << endl; cout << " Test passed" << endl; cout << " All ok " << endl; cout << " Digitization successful." << endl; // --------------------------------------------------------------------------- RemoveGeoManager(); }
void run(TString runNumber) { TStopwatch timer; timer.Start(); const Int_t nModules = 200; TString dirIn1 = "/Volumes/Data/kresan/s438/data/"; TString dirIn2 = "/Volumes/Data/kresan/s438/tcal/"; TString dirOut = "/Volumes/Data/kresan/s438/tcal/"; TString inputFileName1 = dirIn1 + runNumber + "_tcal.root"; // name of input file TString inputFileName2 = dirIn2 + runNumber + "_tcal_1.root"; // name of input file TString parFileName = dirIn1 + "params_" + runNumber + "_tcal.root"; // name of parameter file TString outputFileName = dirOut + runNumber + "_tcal_temp.root"; // name of output file // Create analysis run ------------------------------------------------------- Int_t nFiles; if (0 == runNumber.CompareTo("r122")) { nFiles = 22; } else if (0 == runNumber.CompareTo("r126")) { nFiles = 2; } // Create analysis run ------------------------------------------------------- FairRunAna* run = new FairRunAna(); run->SetInputFile(inputFileName1.Data()); run->AddFriend(inputFileName2.Data()); for (Int_t i = 1; i < nFiles; i++) { inputFileName1 = dirIn1 + runNumber + "_tcal_"; inputFileName1 += i; inputFileName1 += ".root"; run->AddFile(inputFileName1.Data()); } run->SetOutputFile(outputFileName.Data()); // --------------------------------------------------------------------------- // ----- Runtime DataBase info ----------------------------------------------- FairRuntimeDb* rtdb = run->GetRuntimeDb(); FairParRootFileIo* parIo1 = new FairParRootFileIo(); parIo1->open(parFileName); rtdb->setFirstInput(parIo1); rtdb->setOutput(parIo1); // Set the SQL IO as second input FairParTSQLIo* inp = new FairParTSQLIo(); inp->SetVerbosity(1); inp->open(); rtdb->setFirstInput(inp); rtdb->saveOutput(); // --------------------------------------------------------------------------- // Time calibration ---------------------------------------------------------- R3BLandTcal* landTcal = new R3BLandTcal("LandTcal", 1); landTcal->SetNofModules(nModules, 40); run->AddTask(landTcal); R3BLosTcal* losTcal = new R3BLosTcal("LosTcal", 1); losTcal->SetNofModules(20); run->AddTask(losTcal); // --------------------------------------------------------------------------- // Initialize ---------------------------------------------------------------- run->Init(); FairLogger::GetLogger()->SetLogScreenLevel("INFO"); // --------------------------------------------------------------------------- // Run ----------------------------------------------------------------------- run->Run(0, 100000); // --------------------------------------------------------------------------- timer.Stop(); Double_t rtime = timer.RealTime(); Double_t ctime = timer.CpuTime(); cout << endl << endl; cout << "Macro finished succesfully." << endl; cout << "Output file is " << outputFileName << endl; cout << "Parameter file is " << parFileName << endl; cout << "Real time " << rtime << " s, CPU time " << ctime << "s" << endl << endl; }
void run_digi_tpc(Int_t nEvents = 10, TString mcEngine = "TGeant3"){ // Initialize logger FairLogger *logger = FairLogger::GetLogger(); logger->SetLogVerbosityLevel("LOW"); logger->SetLogScreenLevel("INFO"); // Input and output file name std::stringstream inputfile, outputfile, paramfile; inputfile << "AliceO2_" << mcEngine << ".tpc.mc_" << nEvents << "_event.root"; paramfile << "AliceO2_" << mcEngine << ".tpc.params_" << nEvents << ".root"; outputfile << "AliceO2_" << mcEngine << ".tpc.digi_" << nEvents << "_event.root"; // Setup timer TStopwatch timer; // Setup FairRoot analysis manager FairRunAna * fRun = new FairRunAna(); FairFileSource *fFileSource = new FairFileSource(inputfile.str().c_str()); fRun->SetSource(fFileSource); fRun->SetOutputFile(outputfile.str().c_str()); // Setup Runtime DB FairRuntimeDb* rtdb = fRun->GetRuntimeDb(); FairParRootFileIo* parInput1 = new FairParRootFileIo(); parInput1->open(paramfile.str().c_str()); rtdb->setFirstInput(parInput1); // TGeoManager::Import("geofile_full.root"); // Setup digitizer AliceO2::ITS::DigitizerTask *digi = new AliceO2::ITS::DigitizerTask; fRun->AddTask(digi); AliceO2::TPC::DigitizerTask *digiTPC = new AliceO2::TPC::DigitizerTask; fRun->AddTask(digiTPC); fRun->Init(); timer.Start(); fRun->Run(); std::cout << std::endl << std::endl; // Extract the maximal used memory an add is as Dart measurement // This line is filtered by CTest and the value send to CDash FairSystemInfo sysInfo; Float_t maxMemory=sysInfo.GetMaxMemory(); std::cout << "<DartMeasurement name=\"MaxMemory\" type=\"numeric/double\">"; std::cout << maxMemory; std::cout << "</DartMeasurement>" << std::endl; timer.Stop(); Double_t rtime = timer.RealTime(); Double_t ctime = timer.CpuTime(); Float_t cpuUsage=ctime/rtime; cout << "<DartMeasurement name=\"CpuLoad\" type=\"numeric/double\">"; cout << cpuUsage; cout << "</DartMeasurement>" << endl; cout << endl << endl; std::cout << "Macro finished succesfully." << std::endl; std::cout << endl << std::endl; std::cout << "Output file is " << outputfile.str() << std::endl; //std::cout << "Parameter file is " << parFile << std::endl; std::cout << "Real time " << rtime << " s, CPU time " << ctime << "s" << endl << endl; }
void run_reco_proto(TString dataFile = "output_proto.root",TString parameterFile = "pATTPC.TRIUMF2015.par"){ // ----- Timer -------------------------------------------------------- TStopwatch timer; timer.Start(); // ------------------------------------------------------------------------ gSystem->Load("libXMLParser.so"); TString scriptfile = "LookupProto20150331.xml"; TString protomapfile = "proto.map"; TString dir = getenv("VMCWORKDIR"); TString scriptdir = dir + "/scripts/"+ scriptfile; TString protomapdir = dir + "/scripts/"+ protomapfile; TString geo = "proto_geo_hires.root"; TString paraDir = dir + "/parameters/"; FairLogger *logger = FairLogger::GetLogger(); logger -> SetLogFileName("ATTPC_RecoLog.log"); logger -> SetLogToFile(kTRUE); logger -> SetLogToScreen(kTRUE); logger -> SetLogVerbosityLevel("MEDIUM"); FairRunAna* run = new FairRunAna(); run -> SetInputFile(dataFile.Data()); run -> SetOutputFile("output_proto_reco.root"); //run -> SetGeomFile("../geometry/ATTPC_Proto_v1.0.root"); TString paramterFileWithPath = paraDir + parameterFile; FairRuntimeDb* rtdb = run->GetRuntimeDb(); FairParAsciiFileIo* parIo1 = new FairParAsciiFileIo(); parIo1 -> open(paramterFileWithPath.Data(), "in"); //FairParRootFileIo* parIo2 = new FairParRootFileIo(); //parIo2 -> open("param.dummy_proto.root"); // rtdb -> setFirstInput(parIo2); rtdb -> setSecondInput(parIo1); ATPhiRecoTask *phirecoTask = new ATPhiRecoTask(); phirecoTask -> SetPersistence(); run -> AddTask(phirecoTask); ATHoughTask *HoughTask = new ATHoughTask(); HoughTask->SetPhiReco(); HoughTask->SetPersistence(); HoughTask->SetLinearHough(); HoughTask->SetRadiusThreshold(3.0); // Truncate Hough Space Calculation //HoughTask ->SetCircularHough(); run ->AddTask(HoughTask); run->Init(); run->Run(0,2000000); //run -> RunOnTBData(); // ----- Finish ------------------------------------------------------- timer.Stop(); Double_t rtime = timer.RealTime(); Double_t ctime = timer.CpuTime(); cout << endl << endl; cout << "Macro finished succesfully." << endl; cout << "Real time " << rtime << " s, CPU time " << ctime << " s" << endl; cout << endl; // ------------------------------------------------------------------------ }