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);
}
Exemple #2
0
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;
}