* * $Id: locatf.F,v 1.5 2009-06-12 18:39:59 pam-rm2 Exp $ * * $Log: locatf.F,v $ * Revision 1.5 2009-06-12 18:39:59 pam-rm2 * - Introduced user-defined names of output files and random seeds number. * Users can do it use options of PamVMCApplication constructor: * PamVMCApplication(const char* name, const char *title, const char* * filename="pamtest", Int_t seed=0). * The Random object that I use is TRandom3 object which has astronomical * large period (in case of default initialization 0). All random generators * in the code use this object by calling of gRandom singleton which keeps * it. * * - Corrected TOF digitization routine. No problems with TDC hits due to * hadronic interactions anymore. * * - Some small changes was done to compile code under Root 5.23. + * geant4_vmc v. 2.6 without any warnings * * - Some classes of PamG4RunConfiguartion was changed for geant4_vmc v. * 2.6.Some obsolete classes was deleted as soon as developers implemented * regions. * * - Navigation was changed from "geomRootToGeant4" to "geomRoot", because on * VMC web page written that as soon as Geant4 has no option ONLY/MANY * translation of overlapped geometry to Geant4 through VGM could be wrong. * I'd like to stay with Root navigation: * http://root.cern.ch/root/vmc/Geant4VMC.html. This should be default * option. * * - New Tracker digitization routine written by Sergio was implemented * * - PamVMC again became compatible with geant4_vmc v.2.5 and ROOT 5.20. * The problem was that ROOT developers introduced in TVirtualMC class a new * method SetMagField and new base class:TVirtualMagField from which * user-defined classes shoukd be derived * * Revision 1.1 2009-02-19 17:46:26 nikolas * Cleaning up before releasing * * Revision 1.2 1996/05/24 10:56:52 jamie * add locatr entry for consistency with wrup * * Revision 1.1.1.1 1996/02/15 17:48:49 mclareni * Kernlib * * #if !defined(CERNLIB_QMIBMVF) *#include "kernnum/pilot.h" * * Name change (consistancy) * FUNCTION LOCATR(ARRAY,LENGTH,OBJECT) DIMENSION ARRAY(*) LOCATR=LOCATF(ARRAY,LENGTH,OBJECT) END FUNCTION LOCATF(ARRAY,LENGTH,OBJECT) C BINARY SEARCH THRU 'ARRAY' TO FIND 'OBJECT' C 'ARRAY' IS ASSUMED TO BE SORTED PRIOR TO CALL C IF MATCH IS FOUND, FUNCTION RETURNS POSITION OF ELEMENT C IF NO MATCH FOUND, FUNCTION GIVES NEGATIVE OF NEAREST ELEMENT C SMALLER THAN OBJECT C F. JAMES , SEPT.,1974 DIMENSION ARRAY(2) NABOVE = LENGTH + 1 NBELOW = 0 10 IF (NABOVE-NBELOW .LE. 1) GO TO 200 MIDDLE = (NABOVE+NBELOW) / 2 IF (OBJECT - ARRAY(MIDDLE)) 100, 180, 140 100 NABOVE = MIDDLE GO TO 10 140 NBELOW = MIDDLE GO TO 10 180 LOCATF = MIDDLE GO TO 300 200 LOCATF = -NBELOW 300 RETURN END #endif