/* * NicaUnigenSource.cxx * * Created on: 27 mar 2017 * Author: Daniel Wielanek * E-mail: daniel.wielanek@gmail.com * Warsaw University of Technology, Faculty of Physics */ #include "NicaUnigenSource.h" #include "FairRootManager.h" #include "FairLogger.h" #include #include #include "UEvent.h" #include "UParticle.h" NicaUnigenSource::NicaUnigenSource():fUnigenChain(NULL),fFileName("data.root"),fEvent(NULL){ } NicaUnigenSource::NicaUnigenSource(TString inFile): fUnigenChain(NULL),fFileName(inFile),fEvent(NULL){ } NicaUnigenSource::~NicaUnigenSource() { if(fUnigenChain) delete fUnigenChain; } Bool_t NicaUnigenSource::Init() { FairRootManager *mngr = FairRootManager::Instance(); fUnigenChain= new TChain("events"); if(fFileName.EndsWith(".root")){ LOG(debug)<<"NicaUnigenSource: opening single file"<Add(fFileName); }else{// this is long list std::ifstream list; list.open(fFileName); do{ TString temp; list>>temp; if(temp.Length()>1){ fUnigenChain->Add(temp); }else{ break; } LOG(debug)<<"Adding file "<GetBranch("event")){ fUnigenChain->Print(); fUnigenChain->SetBranchStatus("event",1); fUnigenChain->SetBranchAddress("event",&fEvent); }else{ std::cout<<"Event read II"<SetBranchStatus("UEvent.",1); fUnigenChain->SetBranchAddress("UEvent.",&fEvent); } mngr->SetInChain(fUnigenChain,-1);\ mngr->Register("UEvent.","UEvent",(TNamed*)fEvent,kFALSE); return kTRUE; } Int_t NicaUnigenSource::ReadEvent(UInt_t unsignedInt) { //std::cout<<"READING EVENT " <GetEntry(unsignedInt); // std::cout<<"xxx"<GetNpa();i++){ UParticle *p = fEvent->GetParticle(i); TLorentzVector mom = p->GetMomentum(); TLorentzVector pos = p->GetPosition(); mom.Boost(vx,vy,vz); pos.Boost(vx,vy,vz); p->SetMomentum(mom); p->SetPosition(pos); } } Int_t NicaUnigenSource::CheckMaxEventNo(Int_t /*int1*/) { return fUnigenChain->GetEntries(); }