//void emc_pidtest(const char* inFile,const char* simFile, const char* digiFile, const char* clusFile, const char* outFile, const char* parafile) void emc_pidtest() { // Macro created 02/10/2012 by S.Spataro // It loads a reconstruction file and computes PID information // Verbosity level (0=quiet, 1=event level, 2=track level, 3=debug) Int_t iVerbose = 1; // Number of events to process Int_t nEvents = 0; // if 0 all the events will be processed // Parameter file // TString parFile = parafile; // at the moment you do not need it TString parFile = "simparams_hc7g5kG4.root"; // Digitisation parameter file (ascii) TString EdigiFile = "emc.par"; /* TString prefixIn = "dtdtau_test/hc/hc7g5k_repackDIST_HR"; TString prefixOut = "dtdtau_test/hc/hc7g5k_PID_DIST_HR"; TString prefixFriend = "dtdtau_test/hc/hc7g5k_DIST_HR"; TString connect = "_"; TString suffix = "M1.root"; TString sdtau; TString sdt; // Output file TString outFile = prefixOut+sdtau.Itoa(dtau,10)+connect+sdt.Itoa(dt,10)+suffix; // Input file TString inFile = prefixIn+sdtau.Itoa(dtau,10)+connect+sdt.Itoa(dt,10)+suffix;*/ // Output file TString outFile = "PID_DIST_HRauto_hc.root"; // Input file TString inFile = "repackDIST_HRauto_hc.root"; TString digiFile = "digiHR_hc.root"; TString simFile = "sim_hc7g5kG4.root"; TString clusFile = "DIST_HRauto_hc.root"; // ----- Timer -------------------------------------------------------- TStopwatch timer; // ------------------------------------------------------------------------ // ----- Reconstruction run ------------------------------------------- FairRunAna *fRun= new FairRunAna(); fRun->SetInputFile(inFile); // repack file fRun->AddFriend(digiFile); // digi file // fRun->AddFriend(prefixFriend+sdtau.Itoa(dtau,10)+connect+sdt.Itoa(dt,10)+suffix); // reco file (not repacked) fRun->AddFriend(clusFile); // reco file (not repacked) fRun->AddFriend(simFile); // sim file fRun->SetOutputFile(outFile); fRun->SetGenerateRunInfo(kFALSE); fRun->SetUseFairLinks(kTRUE); FairGeane *Geane = new FairGeane(); fRun->AddTask(Geane); // ----- Parameter database -------------------------------------------- TString emcDigiFile = gSystem->Getenv("VMCWORKDIR"); emcDigiFile += "/macro/params/"; emcDigiFile += EdigiFile; FairRuntimeDb* rtdb = fRun->GetRuntimeDb(); FairParRootFileIo* parInput1 = new FairParRootFileIo(); parInput1->open(parFile.Data()); FairParAsciiFileIo* parIo1 = new FairParAsciiFileIo(); parIo1->open(emcDigiFile.Data(),"in"); rtdb->setFirstInput(parInput1); rtdb->setSecondInput(parIo1); // ------------------------------------------------------------------------ // PndPidCorrelator* corr = new PndPidCorrelator(); PndPidCorrelatorMod* corr = new PndPidCorrelatorMod(); corr->SetVerbose(iVerbose); /* corr->SetInputBranch("SttMvdGemGenTrack"); corr->SetInputIDBranch("SttMvdGemGenTrackID"); corr->SetInputBranch2("FtsIdealGenTrack"); corr->SetInputIDBranch2("FtsIdealGenTrackID");*/ //corr->SetDebugMode(kTRUE); //corr->SetFast(kTRUE); //corr->SetBackPropagate(kFALSE); corr->SetMvdMode(0); // MVD Mode: 0 no MVD corr->SetSttMode(0); // STT Mode: 0 no STT corr->SetFtsMode(0); // FTS Mode: 0 no FTS corr->SetTofMode(0); // TOF Mode: 0 no TOF corr->SetFtofMode(0); // FTOF Mode:0 no FTOF corr->SetMdtMode(0); // MDT Mode: 0 no MDT corr->SetDrcMode(0); // DRC Mode: 0 no DRC corr->SetDskMode(0); // DSK Mode: 0 no DSK // corr->SetRichMode(0); // RICH Mode: 0 no RICH //corr->SetEmcMode(2); // EMC Mode: 0= no EMC, 2=force clusters, 3=force bumps, DEFAULT=autodetect bumps fRun->AddTask(corr); PndMcCloner *clone = new PndMcCloner(); fRun->AddTask(clone); PndPidIdealAssociatorTask *assMC= new PndPidIdealAssociatorTask(); fRun->AddTask(assMC); /* PndPidMvdAssociatorTask *assMvd= new PndPidMvdAssociatorTask(); fRun->AddTask(assMvd); PndPidMdtHCAssociatorTask *assMdt= new PndPidMdtHCAssociatorTask(); fRun->AddTask(assMdt); PndPidDrcAssociatorTask *assDrc= new PndPidDrcAssociatorTask(); fRun->AddTask(assDrc); PndPidDiscAssociatorTask *assDisc= new PndPidDiscAssociatorTask(); fRun->AddTask(assDisc); PndPidSttAssociatorTask *assStt= new PndPidSttAssociatorTask(); fRun->AddTask(assStt);*/ PndPidEmcBayesAssociatorTask *assEMC= new PndPidEmcBayesAssociatorTask(); fRun->AddTask(assEMC); // ----- Intialise and run -------------------------------------------- PndEmcMapper::Init(1); cout << "fRun->Init()" << endl; fRun->Init(); timer.Start(); fRun->Run(0,nEvents); // ------------------------------------------------------------------------ // ----- Finish ------------------------------------------------------- timer.Stop(); Double_t rtime = timer.RealTime(); Double_t ctime = timer.CpuTime(); cout << endl << endl; cout << "Macro finished successfully." << endl; cout << "Input file was " << inFile << endl; cout << "Output file is " << outFile << endl; cout << "Parameter file is " << parFile << endl; cout << "Real time " << rtime << " s, CPU time " << ctime << " s" << endl; cout << endl; // ------------------------------------------------------------------------ exit(0); }