void KVINDRA_VAMOS::GetDetectorEvent(KVDetectorEvent* detev, const TSeqCollection* fired_params) { // This method is obsolete. To have access to the detector events of INDRA // and VAMOS prefer using: // gIndra->GetDetectorEvent( detev, fired_params ) // gVamos->GetDetectorEvent( detev, fired_params ) // separately. IGNORE_UNUSED(detev); IGNORE_UNUSED(fired_params); }
void CsICalib::Bisection(Int_t A, Double_t chan) //UShort_t chan { IGNORE_UNUSED(chan); Int_t middle, it = 0; good_bisection = kTRUE; if ((A - 5) > 0) { left = A - 5; } else { left = 1; } right = A + 10; Int_t factor = 1; Double_t difference = 0.; Double_t diffright = 0.; SetFragmentA(left); CompleteSimulation(); difference = eEnergySi - sEnergySi; if (difference > 0) { factor = -1; } difference *= factor; SetFragmentA(right); CompleteSimulation(); difference = eEnergySi - sEnergySi; if (difference > 0) good_bisection = kFALSE; difference *= factor; diffright = difference; if (difference < 0) { while (diffright < 0) { if ((left - 1) > 0) left = left - 1; else left = 1; SetFragmentA(left); CompleteSimulation(); difference = eEnergySi - sEnergySi; if (difference > 0) { factor = -1; } diffright *= factor; if (left == 1) { cout << "Bisection error : Lower value of A not found" << endl; good_bisection = kFALSE; break; } } } //loop: bisection while ((right - left) > 1) { middle = (left + right + 1) / 2; SetFragmentA(middle); CompleteSimulation(); esi2 = sEnergySi; ecsi2 = sEnergyCsI; difference = factor * (eEnergySi - sEnergySi); if (difference < 0) { left = middle; } else right = middle; it++; } //simulated energies for two values of A closest to the point of zero //difference between the simulated energy for Si and the one from calibration SetFragmentA(left); CompleteSimulation(); esi1 = sEnergySi; ecsi1 = sEnergyCsI; SetFragmentA(right); CompleteSimulation(); esi2 = sEnergySi; ecsi2 = sEnergyCsI; }