// %%%%%%%%%% // G4 headers // %%%%%%%%%% #include "G4UnitsTable.hh" // %%%%%%%%%%%%% // gemc headers // %%%%%%%%%%%%% #include "CTOF_hitprocess.h" PH_output CTOF_HitProcess :: ProcessHit(MHit* aHit, gemc_opts Opt) { string hd_msg = Opt.args["LOG_MSG"].args + " CTOF Hit Process " ; double HIT_VERBOSITY = Opt.args["HIT_VERBOSITY"].arg; PH_output out; out.identity = aHit->GetId(); HCname = "CTOF Hit Process"; // %%%%%%%%%%%%%%%%%%% // Raw hit information // %%%%%%%%%%%%%%%%%%% int nsteps = aHit->GetPos().size(); // Get Total Energy deposited double Etot = 0; vector Edep = aHit->GetEdep(); for(int s=0; s pos = aHit->GetPos(); vector Lpos = aHit->GetLPos(); if(Etot>0) for(int s=0; s times = aHit->GetTime(); for(int s=0; sGetE(); out.raws.push_back(Etot); out.raws.push_back(x); out.raws.push_back(y); out.raws.push_back(z); out.raws.push_back(lx); out.raws.push_back(ly); out.raws.push_back(lz); out.raws.push_back(time); out.raws.push_back((double) aHit->GetPID()); out.raws.push_back(aHit->GetVert().getX()); out.raws.push_back(aHit->GetVert().getY()); out.raws.push_back(aHit->GetVert().getZ()); out.raws.push_back(Ene); out.raws.push_back((double) aHit->GetmPID()); out.raws.push_back(aHit->GetmVert().getX()); out.raws.push_back(aHit->GetmVert().getY()); out.raws.push_back(aHit->GetmVert().getZ()); // %%%%%%%%%%%% // Digitization // %%%%%%%%%%%% int paddle = out.identity[0].id; if(HIT_VERBOSITY>4) cout << hd_msg << " paddle: " << paddle << " x=" << x/cm << " y=" << y/cm << " z=" << z/cm << endl; out.dgtz.push_back(paddle); return out; } vector CTOF_HitProcess :: ProcessID(vector id, G4Step *step, detector Detector) { return id; }