7.131 Function to print used corrections had been added to PaCalorimCell HO04 digits are excluded from "production discarding mode" (-D 7 option) as well as it had been done before for CEDAR and RPD digits (PaEventDiscard.cc) New option "-T txt" had been added to pass string type flag(s) to user's code. Accessible via Phast::Ref().TextUserFlag(i) (similar to -U option) Target polarizations and RICH refractive index MetaDBs were updated. 7.129 Patch for Makefile.macos from Sebastian.Uhl@cern.ch had been applied. As "using namespace CLHEP" was removed from CORAL headers, this declaration was added to the scope of few ./coral/*.cc files 7.128 PaCaloClus: uncorrected X,Y converted to [cm] Output files (mDST and histograms) compression factor and compression algorithm could be changed now by means of environment variable PHAST_OUTPUT_COMPRESSION. (request of thiemo.nagel@ph.tum.de). Algorithm number and compression level has to be packed following way: 100*algo + level algo 0: "ROOT default (ZIP)" algo 1: ZLIB algo 2: LZMA Recommended settings (by thiemo.nagel@ph.tum.de) - highest throughput: 101 - high throughput: 105 - small data size / moderate throughput: 201 Currently, default value is 5. 7.127 "post-copy" mode works now also in the case of multiple streams output. Backward compatibility fixes in ./coral/CsPhast.h and ./coral/main_for_CORAL.cc Fixes done by Sebastian.Uhl@cern.ch in CORALs CsField.cc had been incorporated to PaField.cc 3 new persistent data-members had been added to PaCaloClus: uncorrected E,X,Y (request of thiemo.nagel@ph.tum.de) 7.126 Bug fix in PaMaterialMaps::InMaterialMap() (now in case of ROOT geometry function always return "true") PaTrack.h - temporary maps (size 0 in mDST) was tagged as not-persistent. Bug fixed in PaMCtrack.cc. (Number of hit-map words had assumed to be == 10. Changed to HIT_MAP_SIZE) 7.125 Maps with associated correction coefficients (obtained in pi0 calibration) had been added to PaCalorimCell class. ./coral/Makefile had been modified to use automatically the same CERNLIB as CORAL PaMaterialMaps::getRadLength() and PaMaterialMaps::getdE() was updated to be "in sync" with CORAL functions (ROOT geometry part only). PaMaterialMaps::getdE() has 2 algorithms to calculate energy losses, controlled by persistent flag "simpleELoss" (defined by options in CORAL. Saved to mDST) PaMaterialMaps::getdEStraggling() had been added (Copy of CsMaterialMaps::getdEStraggling()) PaTPar::Extrapolate() was modified to add energy loss fluctuation to covariance matrix (copied from src/track/traffic/THlcExtrapolate.cc of CORAL) PaTPar.h - persistent data member "Eloss" had been added (to store total energy loss along extrapolation trajectory) 7.124 ./coral/PaEventImportRD.cc: Check that Nclusters of CsTrack must be equal to number of bits set in "fired detectors bitmap" was removed. (request of Yann.Bedfer@cern.ch) Bug (introduced in v 7.122) is fix in PaEventPrepare(). Because of this bug, every PaParticles had double entries in vecCalorim (references to calorimeter clusters). Thanks to Sebastian.Uhl@cern.ch for finding this problem. 7.123 Compatibility with both types of materials description, (MaterialMaps (old) and ROOTGeometry (new)) had been implemented. (based on modification of Phast v.7.108 made by tobias.schlueter@physik.uni-muenchen.de) 7.122 Reties loop had been added to the function PaUtils::StagerCmd() to be protected against CASTOR service timeouts. PaParticle class: New data-member "mass" had been added. "vecCalorim" data members became persistent. 7.121 Multiple streams output (MSO) functionality had been added (request of Stephan.Paul@ph.tum.de) Now user may open more than one output mDST (output streams) and afterward (in UserEvent(s)) specify (if it's needed) to which output stream event has to be stored. Example of how to use it could be found in ./user/u40_multiple_ouput_streams.cc Output mDST maximal file size (default is 2.e+9 bytes) could be redefined now by means of environment variable PHAST_mDST_MAX_SIZE (works also for MSO mode) Bug introduced in v 7.111 is fixed in PaTPar::ExtrapNeutral() 7.113 explicit initialization of the base class TObject had been added constructors of all ROOT-persistent classes to avoid multiple warnings in the case of compilations with "-Wextra" (thanks to Julian.Taylor@cern.ch for the patch) 7.112 Modification to Makefiles by Sebastian.Uhl@cern.ch to allow parallel build (using "make -j") Special mode to override PaSetup object had been introduced (by Vinicio Duic (uinni) ) If environment variable PASETUP_FROM is set to some mDST file name, PaSetup object will be taken from this mDST and it will override PaSetup(s) of input file(s) regardless it's run number. (src/main.cc) More methods and fixes related to Kalman fit. PaAlgo::GetTargetLocation() modifications by Federica.Sozzi@cern.ch Bug fixed in PaCalorimeter::iCell() function (thanks to Tobias.Schlueter@physik.uni-muenchen.de for finding) Documentation updates 7.111 Kalman fit had been added to PaTrack class. Multiple changes in PaTPar, PaSetup etc. related to fit. To use Kalman fit, mDST has to contain PaHits. user/u45_fit_and_smoothing.cc contains example of track piece refit and smoothing. 7.108 RICH refraction index metaDB had been updated. At the "merging" mode (-m option) error opening input file is done fatal again (was changed to "non-fatal" in 7.065). Error in PaUtils::PostCopy() is also done fatal in the case of "merging" mode. (request of Vinicio Duic ) PaMCtrack::LzVec() had been changed to use known MC particle energy instead of mass. (request of thiemo.nagel@tum.de) PaUtils::StagerCmd(): -S '*' option is appending to stager_qry command (request of Vinicio Duic ) 7.107 Number of changes in PaMaterialMaps.cc to be "in sync" with bug fixes done in CORAL's geom/CaMaterialMap.cc Omega(782) particle had been added in lib/G3part.h (as particle #94) PaCalorimeter::iCell() function had been speed up. New function PaCaloClus::iCell() had been added for quick search of cluster's central cell (works only if PaCaloClus::vCellNumber() is not empty). Extra information on Primakoff trigger timing (bitmap) is stored in last element of PaEvent::vecOnlFlt container. (requested by Stefan Huber (hubers@cern.ch). Available for CORAL's newer than 09.11.2010) Makefile.lyon_slc5_64 for compilation on Lyon farm had been added (thanks to Ana.Sofia.Nunes@cern.ch) DstProdMon.cc update by Alex (aaust@cern.ch) 7.106 "-a0" option (pre-stage CASTOR files "in advance") now use more efficient "stager_get -f file_list" command. (only if input files are specified with "-l" option) PaUtils::Stagein(): CASTOR file staging status "CANBEMIGR" is treated now the same way as "STAGED" (request of Vinicio Duic ) Updates of ./coral/DstProMon.cc by Albert.Lehmann@physik.uni-erlangen.de New persistent data-member of PaTrack had been added: number of measurements on the track used in fit. (Not equal to Nhits as pixel detectors has to be counted as 2 measurements. Taken from CsTrack::getNDFs function) PaTRack::Ndf() use now this data-member to calculate number of degrees of freedom. (request of Yann.Bedfer@cern.ch and pawel.sznajder@cern.ch) Few PaTrack accessors had been modified (to const type&) 7.105 Protection for use of GetRow/Column had been added to coral/PaSetupCalorim.cc Unique cell name had been added to PaCalorimCell class (could be accessed by PaCalorimCell::Name()) 2 new options had been introduced: "-q" - quiet mode. All prints during procession are off (to avoid interference with user's printouts) "-E txt_file" - process only events specified in txt_file. File format: 3 numbers per line (space separated) 'run number' 'spill number' 'event number in the spill' Patches to muon ID functions by konrad.klimaszewski@gazeta.pl had been applied. Following files had been patched: contrib/RemoveBadMiddleTrigger.cc lib/PaParticle.cc lib/PaTrack.cc lib/PaVertex.cc 7.104 PaMetaDB.* have been moved from ./src/ to ./lib/ (request of thiemo.nagel@ph.tum.de) New accessor TVector3 Pos() had been added to PaTPar class. New flag to tag "best primary vertex" had been added to PaVertex. It is what is returned by CsVertex::isBestVertex() function of Coral. New function PaEvent::iBestCoralPrimaryVertex() returns the index of the vertex tagged as "best primary" in Coral. 7.103 New CORAL+PHAST option "AllScalersTriggerMask" had been introduced (Sebastian.Schopferer@cern.ch) to store more scalers in the case of DVCS data (coral/CsPhastGetOptions.*, coral/PaEventImportScalers.cc) More options to delete unnecessary information in mDSTs had been added to PaEventDiscard.cc PaCalorimeter::iCell() function had been modified (more arguments) Non-const version of accessors PaCaloClus::vCellNumber() and PaCaloClus::CalorimName() had been added. 7.102 Bug fix in coral/PaEventExtraTriggInfo.cc (protection of NULL Master Trigger pointer in the case of empty trigger mask had been added). Thanks to Sebastian Uhl. Output mDST "volume" number file name suffix had been changed from 2 to 3 digits. Maximal allowed number of "volumes" had been increased to 999. Updated documentation for PaPid class (by Federica Sozzi and Alex Austregesilo) Bug fix in PaUtils::StagerCmd() function. 7.101 The scattered muon identification based on CORAL is replaced with a new more strict one by Konrad.Klimaszewski@cern.ch: "The old CORAL based mu' identification is still available as: PaVertex::iMuPrimCoral() PaVertex::iOutMuPrimCoral() PaParticle::IsMuPrimCoral() However PID for muons is now set _ONLY_ based on X/X0 passed. To have the previous behaviour with the old CORAL mu' ID check if positive tracks have PaParticle::IsMuPrimCoral() set to true. Methods that compose the new mu' ID : PaVertex::iMuPrim() PaVertex::iOutMuPrim() PaVertex::nMuPrim() PaVertex::MuPrimCalled() PaParticle::IsMuPrim() PaParticle::IsMuPrimFast() PaTrack::CanBeMuon() PaTrack::CrossYokeSM2() PaTrack::PointsHodoscopes() Brief description of the algorithm: Mu' candidates are searched only in Primary Vertices. A mu' candidate is a track that: - Has passed >30XX0 - Has Zlast after the Muon Filter 1 - Has the same sign as the beam particle (checked based on SM2 polarisation) - Belongs to a PV that does not contain other outgoing muon tracks (mu track passes 3 previous requirements) - It's extrapolation goes through the active area of a pair of hodoscopes that gave the trigger - It does not cross the yoke of SM2 - It belongs to an event that does not contain a track that goes through the hole in the absorber system Part of the checks can be turned off via options. Results of the checks are cached for future use. The preffered way to use the new mu' ID is to call PaVertex::iMuPrim() for the vertex the user is interested in. In case one is interested in events with more then one possible mu' in the PV use PaVertex::iMuPrim(true, false) which will returned the fastest candidate. Rest of the candidates can be then identified by PaParticle::IsMuPrimFast()" (For more details and impact see the presentation on Analysis Meeting by Konrad Klimaszewski from November 2009) Modified files are: PaEventPrepare.cc, PaVertex.*, PaParticle.*, PaTrack.* ---- Fixes of Sebastian Uhl for ./coral/DstProdMon.cc and ./coral/Makefile and been incorporated. (for SLC5 compatibiliry). Master trigger (trigger which was used to calculate trigger time) is saved now into mDST. New function PaEvent::MasterTriggerMask() could be used to retrieve this mask. 7.073 ../coral/DstProdMon.cc and ../coral/main_for_CORAL.cc had been modified by Albert.Lehmann@pi4.physik.uni-erlangen.de to remove smoothed track parameters at every detector of a track in the case of activated efficiency/residual histograms (CORAL options "Monitoring Residuals ON" "Monitoring Efficiency ON") PaUtils had been modified to avoid compilation of some CASTOR related code in case of "make NO_RFIO=1" (for MacOS compatibility) Makefile system had been improved (by Konrad.Klimaszewski@cern.ch) for MacOS compatibility. Masses of mesons in particle table lib/G3part.h had been updated (according to PDG 2009) PaCaloClus::SigmaT() function had been added. It returns time resolution of calorimeter clusters. Currently time resolution is calculated (using empirical parametrization) only for ECAL1 and ECAL2 clusters for 2008 data. 7.072 Dilution factor calculations code (fortran/df2007.F) had been updated (by Barbara.Badelek@fuw.edu.pl): - bug fixing - changes in the treatment of the target packing factor "The differences in the diff itself, due to the above, are about 1% at lowest x until a permille at highest x. The error is 10% smaller at all x. This is true for both inclusive and hadronic dilfac" Bug fix in lib/PaPid.cc by Federica.Sozzi@cern.ch 7.071 PaAlgo modifications by Konrad.Klimaszewski@cern.ch: - Modifications in target cuts for MC cases (see docs) - void PaAlgo::GetRadiativeWeight(x, y, flag, rc) is deprecated now. (Calling it will stop PHAST with an error message) - New function was added: float PaAlgo::GetRadiativeWeight(x, y, flag) (new function returns exactly the eta but not 1/eta as it was) Modifications to Phast makefiles system (by Konrad.Klimaszewski@cern.ch): - main makefile had been split on few makefiles specific for different platforms: Makefile.lxplus_slc4_32 Makefile.lxplus_slc4_64 Makefile.lxplus_slc5_32 Makefile.lxplus_slc5_64 Makefile.lyon_slc4_32 Makefile.lyon_slc4_64 Makefile.macos - Default (just "make") is stays the same: 32 bit slc4 (also works on gridka) - to compile Phast on platform different form default, use -f option: E.g. "make -f Makefile.lxplus_slc5_64" - "make" parameter SLC4_64=1 is obsolete now. - INSTALL file (installation instructions) has been updated 7.069 Bug in Phast::OpenOutTree() had fixed (in the case of "-c" option "post-copy" of temporary file didn't work if output file is on the CASTOR and if not new Turl sintax is used for the file name) 7.068 HIT_MAP_SIZE 12 had been increased to 13 (PaSetup.h) If option "-c DIR" is specified not only input files but also output mDST files are created as temporary disk files. After closure every file is copied to it's destination. This modification is dedicated to overcome CASTOR writing timeouts. Extrapolation error prints was switched off in PaAlgoRKutta.cc (Reminder: when you are using extrapolation please check return value of the function. "true" means "extrapolated successfully") 7.067 User function number (UserEven[N], UserRunEnd[N], UserJobEnd[N]) is not limited anymore by range [0 - 50]. I.e. [N] could be any positive integer. Number of simultaneously called user functions is also not limited. (Please remember that user functions are called one after another in arithmetical order disregarding order of "-u N" options in Phast command line). New flow control flag had been introduced: bool Phast::next_event. If user set this flag (Phast::Ref().next_event=true;) in some UserEventN, all other UserEventM (M>N) will be skipped for this event. This could be used, for example, to separate event selection code and physics analysis code. In this case event selection cuts must be in the UserEvent with number smaller then analysis UserEvent(s) and if event selection criteria are not fulfilled this flag has to be set to "true". Printout of spill-by-spill fluxes (SciFi scalers) had been improved (activated by "-p" option). Script (./misc/flux.py) for parsing Phast logs and correct summing of the fluxes counted in different jobs had been provided by Alexander.Zvyagin@cern.ch. 7.066 Chi2 and NDF of cluster fit had been added to calorimeter cluster class PaCaloClus. (./coral/PaEventImportRD.cc) Functions returning error of coordinates (Xerr(), Yerr(), Zerr()) had been added to PaCaloClus (Just to simplify access to covariance matrix) Function iCell() had been added to PaCalorimeter. For specified X,Y it returns corresponding cell number and cell center coordinates. Bug (introduced in v 7.065) was fixed in PaEventDiscard.cc: for "-D 7" (this bitmask used in production scripts) CsDigits (if present in megaDST) was not erased. Meaning of bits to control discard procedure was changed a bit (see comments in ./lib/PaEventDiscard.cc) "-D 7" is reserved now as unique production mode discarding mask. Documentation had been updated. 7.065 At the "merging" mode (-m option) error opening input file is not fatal anymore. File is skipped, error is logged. New attribute had been added to PaCaloClus of ECAL1: Probability to be charged cluster as it is determined by Rich Wall. Accessor function: PaCaloClus::RWprob() Possibility to increase maximal mDST file size had been implemented. If you are using LINUX/disks without 2/4 Gb file size limitation you may change constants in the head of ./lib/Phast.cc file (see comments there) and recompile Phast to get bigger output mDST "volumes". 7.064 PaAlgo::GetDilutionFactor() was updated to provide dilution factors for 2007. (by Barbara.Badelek@cen.ch and Alexandre.Korzenev@cern.ch) 7.063 Stageing with timeout had been implemented (PaUtils::CastoreStagin()) (works only if -c option is used). Timeout is set to 3 hours (could be changed in the code of PaUtils::CasorStagin()) PaEventDiscard.cc had been temporary modified for hadron run purposes to avoid modifications of production scripts. 7.062 Updated ./coral/DstProdMon.cc Update of target polarizations MetaDB for 2007 data Improvements in PaTrigger class (by Sebastian Neubert ) Vector to store CEDARs information had been added to PaEvent. 7.061 Misc. fixes for gcc 4.43 (by Vladimir.Rapatskiy@cern.ch) Periodic autosaving of histogram file had been introduced. Few fixes in ./coral/DstProdMon.cc Bug fix in coral/PaEventImportRD.cc (CsEvent::getDaqEvent() was called for MC data) (thanks to Sebastian Uhl ) 7.059 New class PaTrigger had been added. Currently it contains function to simulate "2004 hadron" online filter algorithm (by thiemo.nagel@ph.tum.de) PaMataDB class functions requiring run number as an argument had been modified such way, that if this argument is missing, this means "current run number" (request of korzenev@cern.ch) Bug in PaAlgo::GetDilutionFactor() (for 3-cell case) is fixed (Konrad.Klimaszewski@fuw.edu.pl) New assessor PaCaloClus::iCalorim() returns calorimeter index. MetaDB had been updated. Documentation had been updated. 7.058 Updated target position in PaAlgo.cc had been added for 2007 transv. period. Target polarizations and RICH refractive index MetaDBs were updated. 7.057 Preprocessor directive "#define PHAST_VERSION XXYYYY" (XX.YYYY - current version) had been added to Phast.h (to provide possibility to write version-dependent user's code) New function to calculate radiative correction weight had been added (PaAlgo::GetRadiativeWeight()) by Konrad.Klimaszewski@cern.ch Minor bug fix in PaDetect::InActive() function (thanks to Konrad.Klimaszewski@cern.ch) 7.056 New Phast mode had been introduced for reading raw data files and conversion it to mDST files with DAQ digits inside. This "raw data -> mDST" conversion code had been put into ./daqdeco/ directory (cd daqdeco; make) will create ddd_phast.exe which could be used following way: ./ddd_phast.exe -m maping_directory raw_file_name.raw -o rDST.root Output rDST.root is normal Phast mDST with only DAQ digits (PaDigit) inside. Please note that such "raw DST" files has to be read with special new option "-0" (minus zero) Example how to access written DAQ digits one can find in ./user/UserEvent4.cc (this is the usual way of accessing DaqDigits if they had been written to mDST) ./fortran/d2006.F (dilution factor calculation) function had been modified (by Alexandre.Korzenev@cern.ch) 7.055 DAQ data decoding error are stored now event-per-event (./coral/PaEventImportRD.cc) New function PaEvent::DaqDecoErrors() could be used to retrieve error IDs end corresponding error counters (how many times this type of error had occurred at decoding of the current event). Short descriptions of decoding errors (decoding library dependent) are stored in PaSetup object (./coral/PaSetupImport.cc) and could be accessed by means of PaSetup::DaqDecoErrorName(unsigned int error_id) function MySQL DB query scripts (./misc/get_Target_Polarizations and ./misc/get_Target3_Polarizations) had been modified such way, that in the case if "tb_run.stoptime" is missing in the DB (e.g.for abnormally terminated run) and usual time interval for polarizations query [tb_run.starttime - 10min; tb_run.stoptime + 10min] can't be used, following time interval [tb_run.starttime - 10min; tb_run.starttime + 20min] is tried as recovery procedure. (By request of susanne.koblitz@cern.ch and mstolars@mail.cern.ch) Target polarization MetaDB had been updated (for 2 and 3 cell targets). Due to above mentioned recovery procedure, polarizations for 1269 extra runs had added to MetaDB. New interface function for calculation of dilution factor (works for 2- and 3-cell targets) had been added to PaAlgo class. Corresponding Fortran functions had been added / modified in ./fortran/) Documentation for PaAlgo:GetDilutionFactor() had been updated. (by Alexandre.Korzenev@cern.ch and Roland.Windmolders@cern.ch) Call to Fortran subroutine r1990_ had been replaced by call to r1998_ in PaAlgo::GetR() method. ` 7.054 Interface of PaTrack::Extrapolate() function had been changed. Function PaMCtrack::sAllMChitRef() had been added. It is similar to PaMCtrack::sMChitRef() but returns references to _all_ MC hits of current MC track including "non-original" ones (i.e. produced indirectly by showers and delta rays) Fixed problem with storage of raw data chunk number in the event header (didn't work if input file was not from "standard" Castor directory with raw data) Return value of PaEvent::UnixSeconds() had been changed to "int" (was "double") 2 functions PaEvent::Date() had been added to simplify decoding of date and time when event had been received by DAQ. Code to restore Track->Hit references had been added to PaEvent::Parepare() Manipulations with STAGE_POOL variable (related to CASTOR 1) had been removed from ./lib/Phast.cc 7.053 3-cell version of PaAlog::GetTargetPosition(...) function had been added (by Alexandre.Korzenev@cern.ch). Function PaAlgo::InTarget(...) also had been modified to work with 3-cell target. For the case when Phast has to be executed in the environment in which directories of Phast is not "seen" (e.g. GRID machines) new compilation option had been introduced: "make REL_LIB_PATH=1" In this case Phast executable will be linked with relative pass to libPhast and libUser They are assumed to be ./lib/libPhast.so and ./user/libUser.so "./" is the directory with phast* executable. (request of helena@lip.pt) By default, full pass to libPhast.so and libUser.so is linked into executable. This allows to run Phast from any place (if Phast "home" directory is accessible) Please also remember that "-L" option of Phast allows explicitly specify path to libUser you want to use. Few functions (suggested by Thiemo Nagel ) had been added to PaTrack (see docs) 'help' and 'docs' targets had been added to Makefile. Modifications of ./coral/DstProdMon.cc by Albert.Lehmann@pi4.physik.uni-erlangen.de (efficiency and residuals histograms) had been included. New histograms could be switch on/of by CORAL options: Monitoring Residuals ON/OFF Monitoring Efficiency ON/OFF 7.052 Problem of backward compatibility with CORAL older than 29.10.2004 had been fixed (./coral/PaSetupImportCalorim.cc) Function to get number of degrees of freedom in vertex fit had been added: int PaVertex::Ndf() Function PaEvent::SubTriggerMask() had been added to access bit-mask of calorimeter sub-triggers (created by new PaEvent::ExtraTriggInfo() function) See docs for details. Meaning of bit #4 of -D option (discard extra info) had been changed: now it discards all PaTPar objects of tracks excluding first and last (before only the first one was kept) DAQ dead time scalers are stored into element #42 and #43 of PaEvent::vecScaler vector. Request of thiemo.nagel@ph.tum.de. (Accessor "const vector& PaEvent::vMiscScalers()" had been added) Output file size limit had been increased to 2.0 Gb Function "int PaEvent::Year()" had been added. It returns data taking year. 7.051 "Neutral" CsParticles will be stored now in mDST. I.e. mDST will contain PaParticle objects with reference(s) to calorimeter cluster(s) only. This had been done to provide logical links of original calorimetric clusters with output of more sophisticated "combined" reconstruction algorithms. Currently it is the case for ECAL clusters and RichWall+ECAL "clusters". WARNING: If you have in user's code loops over PaParticle objects and you are interested in only charged particles, please insert a check of charge. E.g. if(abs(particle.Q()) != 1) continue; Please also remember that mDST may contain particles with unknown charge. (For example, track piece with unknown momentum, associated with calorimeter cluster) 7.049 Bug fixed in storage of PaDetector::pitch. Improved storage of CORAL runtime environment. 7.048 PaCaloClus::CalorimName() returns name even for mDST written with ver. < 7.047 Calorimeter name finding in this case done by comparison Z position of cluster and Z of calorimeter. (request of Thiemo Nagel ) Bug fix: PaParticle::BitFlags() returns now correct type: "Byte_t" Fixes in CORAL CaField.cc had been done in PaField.cc as well (getFieldSol(..) function) Main Mafelile: dependency from $(ULIB) had been added to $(EXE) target. (request of Nikolai.Vlasov@cern.ch) Patch to ./user/Makefile (from Thiemo Nagel ) to improve automatic dictionary generation for user classes. 7.047 ./coral/DstProdMon.cc is enabled back (dependence of CsOutput.h was removed) Bits #3 and # 4 of PaParticle are set by new CsTrack::hasShower() function introduced by Yann.Bedfer@cern.ch (coral/PaEventImportRD.cc) Calorimeter name had beed added to PaCaloClus objects with corresponding accessor (const string& PaCaloClus::CalorimName()). Please note: Combined RichWall-ECal01 clusters have names "RW_EC01" and stored in the same vector of PaCaloClus objects. 7.046 Fix in coral/PaSetupImport.cc (function to get MC RICH refractive index) for backward compatibility with old CORALs. Phast routine for DST monitoring (./coral/DstProdMon.cc by Paolo Pagano ) is disabled in the case of compiling Phast with CORAL newer than 13.03.2007 as CsOutput.h (used in DstProdMon) is not in CORAL anymore since this date. Bug fix in saving of CsCluster::getLRProb() return value ("is not a mirror hit" probability) as persistent data-member of PaHit (./coral/PaEventImportHits.cc and PaHit.h) 7.045 SciFi (SC02P1sf) scalers are taken directly from DAQ digits and not via CORAL functions CsEvent::ev->getSC99P2_* (./coral/PaEventImportScalers.cc) not only for year > 2004 (as it was done in v 7.034) but for all periods. This is a fix for the problem with flux scalers for hadron run 2004. Target polarizations MetaDB had been updated. TCSphase() function had been added to PaEvent to retrieve TCS clock phase time [ns] 7.044 New "make" option had been introduced: make SLC4_64=1 It compiles Phast (on lxplus.cern.ch) in 64 bit mode. Default is 32 bit mode. (the same for "make" in ./coral/) Please pay attention that it is user's responsibility to use correct (32 or 64 bit) ROOT version. Current Phast had been tested with: /afs/cern.ch/sw/lcg/external/root/5.14.00b/slc4_ia32_gcc34/root /afs/cern.ch/sw/lcg/external/root/5.14.00b/slc4_amd64_gcc34/root (CORAL+PHAST mode - only linking) Energy losses in detector volume had been added to PaMChit class. Could be accessed by ELos() function. Extra information vector had been added to PaHit (to store such information like LRProb) 7.043 -fPIC had been added to gcc/g77 options to compile on 64 bit SPC4. 7.042 Number of changes in PaMetaDB class had been done to deal with 2 refractive indexes of upgraded RICH. To access this information new function "vector vNminusOne(int irun)" has to be used. Old "float NminusOne(int irun)" is left unchanged for backward compatibility. "const" qualifiers had beed added to all PaMetaDB accessors. Option "-L path" to change default path to user's library (./user/libUser.so) had been added (request of Alexander.Zvyagin@cern.ch) 7.041 New output selection bit had been introduced in "mDST select" bitmask. If bit #3 (i.e. 0x8) is set, only first and last track parameters are saved. "Pre-copy" (option -c) support had been added for HPSS system (Lyon farm) by Yann.Bedfer.cern.ch COMPASS target dipole field map and interpolation code had been added to persistent PaField class. (corresponding map storage code had been added to ./coral/PaFieldExport.cc) Problem with 2-d method of beam flux estimation (IntegratedBeamFlux()) had been fixed. Part of code had been moved from PaEvent::Prepare() to Phast::CountBeamFlux() to make it working also in merging mode. 7.038 Dynamic loading of user functions (with number of various changes in Makfiles) had been implemented by Roland Kuhn (rkuhn@e18.physik.tu-muenchen.de) to make Phast working in MacOS environment. Class (PaPid.h and PaPid.cc) with a set of functions for a treatment of RICH information (provided by Federica Sozzi ) had been added to ./lib/. See ./lib/PaPid.cc comments for functions' description. 7.036 Operation performed by "-D 7" option (discard all DAQ digits, CsDigits and hits) was speed up (PaEventDiscard.cc) Accessor with write permission float* XYZ(int i) had been added to lib/PaCaloClus.h to provide possibility to correct calorimeter clusters coordinates. Not for general use. (Request of aguskov@mail.cern.ch) Bug had been fixed in example UserEvent0.cc (access to pion parameters of K* candidate) Bug had been fixed in example UserEvent0.cc (best vertex selection) Thanks to Rainer.Joosten@cern.ch New option -U xxx (where "xxx" an is integer) had been introduced to pass user defined flags (could be specified more then ones) to user's code. It is accessible via Phast::Ref().UserFlag(i) (i = 0,1,2...) from any place in the code. New function bool PaMetaDB::TargetSpinZproj(int irun, vector& polar); to access target cells deuteron polarizations in projection on Z (beam direction). 2006 polarizations had been added to MetaDB with corresponding changes in PaMetaDB.h and PaMetaDB.cc 7.035 New data members had been added to PaCalorimCell class: column and row where this cell is located. Accessors: iColumm() and iRow() (doesn't work yet for ECAL1) Event-dependent solenoid scaling factor is stored in vecMisc as for real data (as it was) and also for MC (even if it is const) New (direct) accessor to "found" hitmap had been added. Event time in spill is accessed directly via scaler SCMSC1__ (not via CORAL's CsEvent::getTimeInSpill() as it doesn't work now) ./coral/PaEventImportScalers.cc New memory allocation histogram had been added ("malloc + mmap") in PaUtils.cc. Histogram upper limit depends on "-N" option. Otherwise: 100000 events. 7.034 SciFi (SC02P1sf) scalers are taken now directly from DAQ digits but not via CORAL functions (./coral/PaEventImportScalers.cc) Small bug fixed in ./coral/PaEventImportRD.cc 7.033 New type ChipAPVRICH::Digit had been addeed to PaEventImportDAQdigits.cc Bug in ./coral/PaFieldImport.cc was fixed (was introduced with changes of previous version) 7.032 ./coral/PaFieldImport.cc had been modified to skip copy of solenoid map if solenoid field scaling factor is set to 0 (e.g. in hadron data) Non "const" accessors to associated vectors had been added to PaTrack.h (Warning: It allows to modify reconstructed track information. Not for general use) 7.031 -fPIC option had been added also to fortran compiler (it is not a default on SuSe) RICH refractive index is obtaining now by CsRCRecConst::CFRefInd() (it returns constant what was used in RICH1 identification code) Before it was CsRICH1Detector::getIndex() (interface to refractive index in DB) which works only for real data (./coral/PaSetupImport.cc) More scalers are saved in PaEvent::vScalers() vector (request of Roman Hermann ) starting from element #8 (42 elements more): Scaler name Channel numbers SC01P1sf 0,1,2,3,4,5 SC02P1sf 0,1,2,3,4,5 SC02P2sf 0,1,2,3,4,5 SC02P3sf 0,1,2,3,4,5 SC02P4sf 0,1,2,3,4,5 SC02P5sf 0,1,2,3,4,5 SC02P6sf 0,1,2,3,4,5 (./coral/PaEventImportScalers.cc) New CORAL+PHAST option ("mDST selectTrigger") had been introduced to save events with specific triggers unconditionally (i.e. regardless what selection level was chosen by "mDST select" option). Read ./coral/README for details. (request of Roman Hermann ) E.g. "mDST selectTrigger 2048" will save (for 2004 muon data) all random trigger events. Default (if this option is missing) is 0 (i.e. no "privileged" triggers) 7.029 bug fixed in Makefiles (shared library linking problem was observed with gcc 3.3.5 SUSE Linux compiler) bug fixed in example ./user/UserEvent1.cc Meaning of "-n" option is changed: now it is number of events "to read" (was "to process"). This change plays a role _only_ if there is some event filtration such as "bad spills", or "trigger mask" (request of Alexandre.Korzenev@cern.ch) "-pedantic" option was removed out of list gcc options v.7.028 '-j' option was introduced to save only 1 PaSetup object in muli-run output mDST. In this case this PaSetup is tagged such way, that at reading it will be conform to all events in the file regardless their run number. This option could be used to reduce size of multi-run mDST if run-dependent information stored in PaSetup is not relevant for your analysis (changes in ./src/main.cc and ./lib/Phast.cc) PrintRaw() function had been added to PaDigit. Protection against calling of CsEvent::getDaqEvent().GetOnlineFilter() in the case of MC data had been added to coral/PaEventImportRD.cc MetaDB had been updated. v.7.027 New parametrization of R (R1998 function) provided by Barbara Badelek had replaced obsolete R1990 (called by PaAlgo::GetR() function in file ./lib/PaAlgo.cc) New option '-D m' had been introduced to give possibility to discard selected pieces of information in the event before writing it to output tree. 'm' is a bitmask to control what to discard (see comments in ./lib/PaEventDiscard.cc) Has no effect without '-o' option. v.7.026 Option '-a N' (staging in advance) also works now for dCache files (command 'dccp -P' is used) Calibration constants had been added to calorimeter cells properties (coral/PaSetupImportCalorim.cc) v.7.025 Input file names are converted to "canonical" form: i.e. without "." or ".." and with resolved links. Possibility to save CsDigits of calorimeters had been added to coral/PaEventImportCsDigits.cc WARNING: Option 'mDST digits' is not valid anymore: Option 'mDST digits' had been substituted by 2 new options: 'mDST DAQdigits' - to save 'raw' digits (DAQ digits of CORAL) 'mDST Digits' - to save what is stored in CsDigits of CORAL) v.7.024 PaAlgo::GetTargetLocation(), PaAlgo::CrossCells() and PaAlgo::InTarget() updated (by Alexandre.Korzenev@cern.ch) WARNING: Please note the change in function arguments. It's the "run number" now (it was "data taking year" before). v.7.023 Modification to I/O part to treat Gridka "dCache" system similar way CASTOR is treated. Dedicated stage pool for CASTOR mDSTs was introduced. If input file is from /castor/cern.ch/compass/data/ tree, STAGE_POOL environment variable is automatically set to "compassmdst". Initial value of this variable is restored after file is opened. Vertex fit with mass constrain (by summer student Kfir.Blum@cern.ch) had been added to ./contrib/ MetaDB had been updated. Bug fixed in ./coral/PaEventImportDAQdigits.cc and in ./coral/PaEventImportCsDigits.cc This bug gave "assert" stop (or crash if compiled with -DNDEBUG) in the case when MegaDST with both "hits" and "digits" has been requested. v.7.022 Code structure in./coral/PaEventImport*.cc files had been changed, so some files had been added/renamed in ./coral/ References to PaMChits (instead of PaMCtracks) are stored now in vecAux[2...] of PaDigit of RICH. Temporary file created in "-c TMPDIR" mode is "unlink"ed now right after opening (Phast.cc). So, in the case of job crash file will be removed automatically by the system. (Thanks to Roland Kuhn for the hint) v.7.021 Solenoid scaling factor (updated every event in Phast::SolScale) is applied to solenoid field in PaField. "Chi2CutFlag" (it's what "bool CsBeam::getChi2CutFlag()" returns) had been added as bit #2 to PaParticle::flag (by request of Konrad.Klimaszewski@fuw.edu.pl) PaEvent::Prepare() had been moved downstream PaSetup::Prepare() in src/main.cc (as in PaEvent::Prepare() some flags of PaSetup are used) Order of track parameters (PaTrack::vecTPar) for beam tracks had been reversed (request of Yann.Bedfer@cern.ch). Now first parameter is closest to target. (coral/PaEventImport.cc) Please note: for beam tracks ZLast() function still returns Z of most downstream detector, i.e. in case of beam track ZFirst() and Zlast() are the same. It is because Zfirst taken from the first track parameter (PaTPar) while ZLast is taken from position of detector corresponding to last bit in the track's hit pattern. The way of access to MC info for RICH digits had been changed in ./coral/PaEventImportDigits.cc v.7.019 "Reversed multiple scattering" mode had been added to PaTPar::Extrapolate() (new "bool reverse_ms = false" parameter). In this mode multiple scattering contribution is not added but _subtracted_ from the covariance matrix of trajectory parameter. This mode was introduced for very special use inside minimization algorithms (longstanding request of Jan Friedrich ) Small changes in PaUtils.h PaUtils.cc and in Makefile, ./coral/Makefile to save path to PHAST "home" directory at compilation time. Updates in PaAlgo::CrossCells() and PaAlgoGetTargetLocation() by Alexandre.Korzenev@cern.ch Changes in ./coral/PaFieldImport(): now one saves "original" (not scaled) solenoid map. Save solenoid field scaling factor in the element #0 of PaEvent::vecMisc vector (in this version only saving. Not yet used to scale) Check of available space on "tmp" dir had been added to PaUtils::PreCopy() Now, in the case of problem with temporary copy, original file will be processed (PaUtils::PreCopy()) 2 new converters had been added to PaTPar to get parameters as TVector and to get cov. matrix as TMatrix (PaTPar::ParVect() and PaTPar::CovMatrix()) v.7.018 Temporary fix for wrong value of time error for SciFi returned by CsCluster:getTimeError() had been removed from PaEventImportHits.cc (it was forces to be 1.0 ns) 2 vector had been added to PaHit to store what is returned by CsCluster::getAllAnalogData() and CsCluster::getAllAnalogDataErrors() MetaDB had been updated. PLEASE NOTE following changes in target polarization data: o Target polarizations information in offline DB had been changed (for more details ask , , Fabrice.Gautheron@cern.ch>,) to have more on polarizations of short runs. o Time interval for averaging of target polarization (and solenoid current) measurements had been extended from [SOR-1min; EOR+1min] to [SOR-10min; EOR+10min] as it was recommended by target group. (./misc/get_Target_Polarizations) As the result, MetaDB contains polarizations for 1345 runs more then in previous version. v.7.017 Bug fixed in ./coral/PaEventImportHits.cc (error on cluster's time was not stored) "itype" parameter had been removed from PaAlgo::GetR() and PaAlgo::GetDepolarizationFactor(). (as it is fixed anyhow to value "3" inside fortran/f1990.F by request of Mario.Leberig@cern.ch and Barbara.Badelek@cern.ch 21.09.2004) Bugs fixed in PaTrack methods Zlast(), NHits() and NHitsFoundInDetect() (only 320 bits of hit-maps was scanned there, while in 2004 we had 324 detectors) MetaDB had been updated. v.7.016 New examples of how to save objects of user-defined class into output event tree had been added. ./user/UserEvent5.cc - how to write. ./user/UserEvent6.cc - how to read. Example of ROOT-persistent user's class: ./user/UserInfo.* New persistent data-member had been added to PaParticle class: vecOutVtx - vector of references to "outgoing" vertex(s) produced by particle (decays, secondary interactions etc). Not used in "standard" mDST (i.e. vector is always empty). Modified code: PaParticle.*, PaEventPrepare.cc MetaDB had been updated. v.7.015 Makefile and ./lib/Makefile had been modified to include ./fortran/*.o into ./lib/libPhast.* (it is needed for C++ wrappers of Fortran functions) 3 ./lib/PaUser*.cc functions had been moved to ./src/ and renamed to User* ./coral/Makefile had been modified to be able to link with ./user/libUser.so Other minor modifications of */Makefile had been done To speed up "merging" ("-m" option) following things was deactivated in this mode: - check of events doubling - call to PaEvent::Prepare() - memory monitoring histogram. (mods in main.cc by request of Jiawei Zhao ) Meaning of "make" option OPT was changed. Default compilation option is now "-O2" (max. optimization level which works for gcc 3.2) To compile in "debug mode" (former default option): $make OPT=-g ./user/UserEvent0 and ./user/UserEvent1 examples had been updated to created user's histograms in separate ROOT directories: 1 directory per UserEvent* function. v.7.014 ./Makefile and ./user/Makefile had been modified: - include search pass "-I ../lib/" had been added to "rootcint" - dependencies from ./lib/*.h had been introduced for "make" calls in ./user/ and in ./src/ Missing accessor to sigmaTime had been added to PaTrack.h Improvement of GetBeamPol( float mom, int year ) function speed by Roland Kuhn 2 versions of GetDepolarizationFactor() function and wrapper to Fortran function for dilution factor calculations had been added to PaAlgo class by Roland Kuhn (see docs for more details) wrappers to Fortran functions for dilution factor and "R" calculation had been added to PaAlgo (by Roland Kuhn) Set of small modifications had been added to calorimeters' geometry classes (PaCalo*) by Vladimir.Kolosov@cern.ch Few functions related to target cells position and tilt had been added to PaAlgo class by Alexandre.Korzenev@cern.ch (see docs for more details) Check that at least 1 element of CsTrack's RICH buffer is not-zero had been removed form coral/PaEventImport.cc (it was introduced long time ago as quick fix of malfunctioning CsTrack::hasRich1Probs() method) v.7.013 New function to get beam polarization (by Alexandre.Korzenev@cern.ch) had been added to PaAlgo class (double GetBeamPol( float mom, int year )) option "-c DIR" (to copy every input file to a directory DIR before processing) works now with ordinary files (was CASTOR only before). Can improve IO performance. Updated MetaDB files. v.7.012 Now, to compile Phast with optimization and without "-g": $ make OPT=n where n=0,1,2,...etc. - optimization level (see "man gcc" for details) Default option is "-g" and no optimization. Documentation updates. v.7.011 If PaDigit class contains DAQ digits, it's function IWire() returns -1 x ("electronic channel"+1) instead of -1 x ("electronic channel") (similar for 2 coordinates detectors) It's flagging only. Original information about "electronic channel" could be retrieved by vDigInfo() (normally it's the first element) Output CASTOR file opening section (Phast.cc) had been modified such way that it unset $STAGE_POOL env. variable if it was set to "compasscdr*) and if output file goes to CASTOR user's home (/castor/cern.ch/user/). It had been done to avoid use of CDR stage by "non-production" jobs. DFdeut() wrapper to Fortran routine had been excluded from PaAlgo as it introduces problem in linking against libPhast.so outside Phast environment. Wrapper has been moved to user/UserEvent5.cc as example of interface of Fortran to C++. Modifications in coral/PaEventImport.cc: If CsParticle which originating from a track without momentum and has no reference to calorimeter cluster and has no reference to vertex, it is skipped (i.e. do not create PaParticle) v.7.010 Possibility to store SADC DAQ digits to mDST had been added (coral/PaEventImportDigits.cc) This will work only with CORAL newer than 15.10.2004. Warnings about overloading of virtual function (Print(char*) in ROOT persistent classes) seen on SLC3 with gcc 3.2.3 had been switched of (./coral/Makefile). Bug fixed in the definition of DFdeut() wrapper in PaAlgo.cc (class scope was missing). v.7.009 Bug was fixed in treatment of "negative spill number" (N spills to ignore) in "bad spill" list ("R -N" had skiped first N-1 spills of run R instead of N spills). Phast home page (http://cern.ch/ges/phast) had been improved. v.7.008 Dilution factor calculation function had been added (thanks to Barbara.Badelek@cern.c). Fortran function dfdeut.F is in ./fortran/ directory. (See "http://pccosrv1.cern.ch/compass/software/offline/input/dilfac/" for details). C++ wrapper had been added to PaAlgo class (PaAlgo::DFdeut(float& x, float& y, float& prcss_flag, float dftot[11], float err_dftot[11]) "-l" and "-b" option could be specified now more then once. New selection flag bit (#9) had been introduced (PaEventImportMC.cc) in PHAST+CORAL mode (see ./coral/README) If MC Vertex is produced by "pileup" MC track, it is tagged now as "pileup vertex" also (PaEventPrepare.cc) v.7.007 In "bad spills file" (-b option) which suppose to have pairs of "RunNum SpillNum" of spills to be excluded, minus sign ("-") in front of the first "RunNum" will invert selection logic. I.e. specified runs/spills will be assumed "good". All other events will be skipped. In the case if all events of input file(s) are skipped as belonging to "bad" spills ("-b" option), output histogram file contains no histograms what gives an error ("key recovery") at opening. This problem had been fixed (main.cc, Phast::SavePaSetup()). Now histogram file in any case will contain at least 1 histogram (memory consumption monitor) Bug fixed: UserEventNN are allowed up to UserEvent50 but UserRunEndNN and UserJobEndNN was foreseen only for NN <= 20. (lib/dummy.cc lib/PaUser*.cc) v.7.006 New "-A" option to run Phast in "event arrangement" mode. In this mode all input events will be sorted chronologically and saved to output. It's 2-pass procedure (i.e. all input files will be read twice). No UserEvent* are called in this mode. Updated online docs. v.7.005 New "-c tmp_dir" option to copy castor files to specified directory before processing. Small mods to PaMCtrack (data member for user association to reconstructed track) and PaTrack (by request of Yann.Bedfer@cea.fr) In "bad spills file" (-b option) which suppose to have pairs of "RunNum SpillNum" of spills to be excluded, pair "RunNum -N" will mean "skip first 'N' spills of the RunNum" v.7.004 More efficient (faster) way of PaSetup searching in multi-run mDST had been introduced. In the interactive job, single CTRL-C now force normal job termination. (double CTRL-C abort the job as usual) New example ./user/UserEvent3.cc on analysis of MC data had been added by Peter.Fauland@cern.ch Updated docs. v.7.003 More detailed calorimetry cluster information had been added. (Energy deposition in cells of the cluster). PaCaloClus had been modified. New "-r 0/1" option had been introduced to try to recover from castor problems by catching exception. If exception was caught, with "-r 0" processing of all files is restarted, with "-r 1" only the last file is reprocessed. v.7.002 3 new persistent classes for calorimeters geometry description had been introduced. Vector of PaCalorimeter objects had been added to PaSetup. v.7.001 Arrays for hit patterns was extended in PaTrack and PaMCtrack. Because of this, "forward compatibility" is not kept, i.e. mDST written with this PHAST can't be read in by older versions. ("backward compatibility" is kept, of course) Fixes in coral/CsPhast.cc to save PaSetup every new run in multi-run CORAL jobs. Updated MetaDB. Number of small modifications in classes (mostly new persistent data-members) New option "-M 'mask'" had been introduced: only files containing in the name string 'mask' will be processed (could be useful with "-l file.lst" option) v.6.020 Example in UserEvent0.cc had been improved and debugged (by Oleg Kouznetsov ). Fixes in ./coral/DstProdMon.cc and ./coral/PaEventImport.cc to make it working with CORAL compiled "--without-ORACLE" Accessors "const int& MyIndex()" to self-index (position in corresponding PaEvent vector) had been added to PaTrack, PaVertex, PaParticle, PaCaloClus classes. (request of Boris Grube ) v.6.019 Updated documentation. Updated MetaDB. PaTPar::ExtrapNeutral() function had been added for neutral particle parameters extrapolation (simple straight line propagation) Flags to tag neutral particles trajectory parameters had been added to PaTPar::FindCDA(). This allows to use this function also with neutrals. DstProdMon.cc file with set of CoralUser functions for production monitoring had been added into ./phast/coral/ (request of Paolo Pagano ) CoralUser.cc with dummy functions had been removed. v.6.018 Muon identification functions (by Andrea Ferrero ) had been added to PaAlgo class (example of use see in UserEvent1) Few modifications in PaSetup: - Z target position had been added (into vecAux) - RICH mirror elements are sorted in descending order of it's "occupancy". In ./coral/PaEventImport instead of "hardcoded" target Z-position CORAL function CsGeom::getTargetCenter( ) is used. v.6.017 Volume naming scheme was changed back to "filename.root.NN" (by request of Jiawei.Zhao@cern.ch) to avoid changes in production scripts. Bug fix in PaEventImportMC.cc (used in CORAL+PHAST mode with MC data) Now assert() on presence of track ID in the map is deactivated if track selection is ON. MetaDB updated. v.6.016 "Offline DB" solenoid current now can also be accessed via "vector PaMetaDB::Polarizations(irun)" method. As presence of 2 almost identical beam tracks (more details in PHAST FAQ) in mDST provoke a lot of confusions, 2-d beam "clone" (originated from CsTrack) is not stored anymore. Output file size limit was increased to 1.9E+9 bytes. Volume naming scheme was changed to "filename.NN.root" (NN = 01...99) Bug in interface of gradient matrix (never used) was fixed in PaField. WARNING: due to some of above mentioned changes, PHAST is not compatible anymore with ROOT versions older than v3.03. v.6.015 Digit -> MC track reference had been added to PaDigit (One could be retrieved by PaDigit::sMCTrack() function) New method iBeam() had been added to PaMCvertex. For primary MC vertex it returns beam MC track index. At raw data production, chunk number and period name is stored now into mDST. Association of MC tracks and reconstructed tracks had been removed from coral/PaEventImportMC.cc as this information is accessible now by new CORAL method CsMCTrack::getAssociatedTrackIDs(). Code for re-mapping of IDs to PaTrack indexes had been added instead. Access to "offline" polarizations had been added to PaMetaDB class. It could be retrieved by PaMetaDB::Polarizations(irun) function. Doxygen documentation update. WARNING: as some of above mentioned changes are based on rather recent CORAL modifications, one may have problems to link this PHAST version with precompiled CORAL. Be sure that your CORAL was checked out after 28.01.04 v.6.014 RICH refractive index used in production of 2002 data for the run "irun" could be retrieved by NminusOneProd(irun) function of PaMetaDB class. PHAST+CORAL. Default for 'mDST select' bit mask value is change back to 7 (as it was request at weekly meeting) v.6.013 Change in PHAST+CORAL module: option 'mDST selection' had been replaced by option 'mDST select'. mDST content is controlled now by the bit mask specified in this option (just one integer). Meaning of bits on may see in ./coral/README. Default is changed now. If this option is missing it means "_no_selection_", i.e. maximum information in mDST. v.6.012 CsPhast class had been modified: option parsing was moved to new CsPastGetOptions.cc Saving of MC hits had been added to PaEvent::ImportMC() New option "mDST MChits" had been introduces to control this block. (see ./coral/README) Not all possible cross-references for PaMChits are done yet. Corresponding references (sMChitRef()) from MC track to MC hits had been added to PaMCtrack. v.6.011 Bug fixed in PaUserJobEnd.cc (there was no calls to PaUserJobEndNN for NN > 20) ./coral/Makefile had been changed a bit to have in compilation and linking of ./coral/*.cc all flags CORAL has (C_FLAGS variable) New persistent class PaMChit had been introduced. PaMChit vector had been added to PaEvent to be filled in case of MC. v.6.010 MC hit times had been added to RICH digits in case of MC data (PaEventImportDigits.cc). This is temporary solution 'till time information will be included to CsRCPad. v.6.009 Function PaMCtrack::Q() now returns "int" (was "double" by mistake) Small modifications in RICH geometry description classes (PaRich.h, PaRichMirr.h) Bug in reconstructed tracks <-> MC track association had been fixed in ./coral/PaEventImportMC.cc (thanks to Yann.Bedfer@cern.ch). Because of this bug reconstructed track had association with MC track only if 100% of hits was from corresponding MC track. v.6.008 Function iGenParticle() had been added to PaMCtrack class to get index of associated generator particle (element in vector) Returns "-1" if generator block is absent. PaEvent::Prepare() had been modified to add this references to PaMCtrack objects. PaVertex::iMuPrim() function (which returns index of mu' in this vertex) in case of few muons returns index of muon with bigger momentum.. Before, it returned just an index of the 2-d one. The same about PaVertex::iOutMuPrim(). PaEvent::Prepare() had been modified. v.6.007 New option "-s NNN" had been introduced to be able to skip first NNN events in every input file (for debug purposes) Maximum number of user functions had been extended to 50 (was 20) Bug in PaMaterialMaps::getStepSize() (as well as in CORAL's CsMaterialMaps::getStepSize() had been fixed by author (Alexandre.Korzenev@cern.ch) v.6.006 Now histogram file could also be RFIO file (e.g. /castor, /shift) Open mode for output CASTOR files had been changed from "CREATE" to "RECREATE" i.e. if the file already exists it will be overwritten. v.6.005 D*0 mass had been updated in G3part.h Bug had been fixed in PaTPar::Phi() function. Makefiles had been improved such way that on systems without Fortran compiler, without CERNLIB and without RFIO (libshift) nevertheless one may compile PHAST by command make NO_FORTRAN=1 NO_RFIO=1 v.6.004 Export of RICH MC digits (pads) had been added to PaEventExportDigits.cc for the case of MC data. Bug in the logic of saving PaSetup objects for the case of multi-run input had been fixed (main.cc) Set of scripts (by Mario.LEBERIG@cern.ch) for batch jobs submission in CORAL+PHAST mode had been added (./coral/test/ml_batch_scripts.tgz) v.6.003 PaSetup::Prepare() had been moved from PaSetup.h to separate file PaSetupPrepare.cc PaRich::Prepare() had been moved from PaRich.cc to separate file PaRichPrepare.cc Various modifications of PaRich and PaRichMirr classes. (still not completed) v.6.002 RICH mirror elements information had been added to PaRich. ./coral/main_for_CORAL.cc CoralUserInit and Phast initialization had been swapped (as in production version) Small bug in refractive index storage fixed in PaSetupImport (correct treatment of the case when it is not known) PaMetaDB::RefIndex() renamed to PaMetaDB::NminusOne() (to be as Setup::NminusOne()) v.6.001 Online filter information had been added to PaEvent. v.5.130 Bug in time-per-event calculation in main.cc had fixed. LaTeX -> PS version of "doxygen" documentation had been added. v.5.129 ./Makefile and ./user/Makefile had been modified such way that ./user/ directory may contains ROOT-derived classes. If some ./user/*.h file contains pattern "ClassDef(xxx,i)", this file is considered to be ROOT-derived and "mke" will process it by "rootcint" v.5.128 PaEventImportMC.cc: lu2kin == 0 in LUJET structures is not treated as fatal error anymore (request by Oleg Grajek). Misc. changed for RICH. v.5.127 More in ./contrib/ (calorimeter monitoring and track-cluster association from Vladimir.Kolosov@cern.ch) Script for online update had been added. Example: "./misc/update 5.xxx" command will download version 5.xxx if available on http://ges.home.cern.ch/ges/phast/releases/ and update your current PHAST. All files in ./user/ will stay unchanged. v.5.126 Refractive index vector had been moved from PaRich to PaSetup level. Now it is filled in PaSetupImport(). (To be independent from RICH geometry importing) New non-persistent class PaMetaDB had been added in ./src/ This class is a place for various calibrations needed for analysis of mDST level but not included into mDST itself. Currently it provides access to run-dependent RICH refractive index. (float PaMetaDB::RefIndex(int irun)). ./misc/get_RICH1_ref_index script may update this information. v.5.125 In case of I/O error of output file writing in CORAL+PHAST mode attempt to close current file and to open new one will be done. (Phast::OutFileLimit(), CsPhast::Event()) PaEvent::ImportHits(): Track references is filled now for PaHit objects (returned by sTracks()). It may slow down execution as there is no CsCluster->CsTrack links in CORAL and loop over all CsTracks* is done for every CsCluster. Refractive index (vector) is added to PaRich (filled in PaSetupImportRich.cc) v.5.124 More in RICH geometry. "-f" option now also switch off check on mismatch of MC generator structures sizes (Assertion `isiz == int(vecInt.size()-1)'...). Prepare() method (for misc. settings of non-persistent datamembers) had been introduced to PaSetup and underlying PaRich. v.5.123 Problem of linking Fortran code with CERNLIB had been fixed (./Makefile) More RICH geometry added to PaSetup (still not completed) Output file size checks had been separated to Phast::OutFileLimit() function. New datamembers (output file name) had been added to Phast.h v.5.122 operator() accessors had been added to Pa3Par. vVtxPars() accessors had been added to PaParticle. Bug in ingex range check had been fixed in PaTPar::operator(). Criteria to tag MC track as beam had been changed (PaEvent::Prepare()). Now MC track is "beam" if it goes from primary MC vertex upstream (Pz < 0) _and_ |Pz| > 10 Gev (to get rid of low energy particles which could be emmited upward in lab system) Error was corected in coral/CsPhast.cc (1 line removed by mistake) v.5.121 Protection against name doubling in generated PERSIS_C files list had been added in ./lib/Makefile More work on PaRich* classes had been done. v.5.119 Bug fixed in automatic file splitting in CORAL+PHAST mode (CsPhast.cc) Bug fixed in PaTrack.h (indPart was not preset to -1) v.5.118 New RICH geometry class had been added (no datamembers yet inside) New persistent data-member (PaRich) had been added to PaSetup. PaSetup::ImportRich() function had been added. (Called from PaSetup::Import()) v.5.117 Multi-run input is allowed now in CORAL+PHAST mode. Automatic file splitting had been added CORAL+PHAST mode (CsPhast.cc) Bug in PHAST mode automatic file splitting (absence of PaSetup) had been fixed (main.cc) Saving PaSetup and closing of output file had been combined to Phast::CloseOutTree() function. (main.cc, Phast.cc) v.5.116 New method to estimate total beam flux corresponding to processed event sample had been added. (PaEvent.h, Phast.h, PaEvent::Prepare(), Phast::CountBeamFlux()) Result could be retrieved by Phast::IntegratedBeamFlux() v.5.115 In case of request for RICH DAQ digits saving, more compact packing mode could be activated my option "mDST mode 1" (PaEvent::ImportDigits(), PaEvent::Prepare()) Interface to PaDigits stays the same. New subdirectory ./contrib/ had been added to keep various kinds of user's contributions. It's supposed to be the "library" of sources for some non-trivial analysis problems already solved by somebody. Code in ./contrib/ assumed to be supported by "contributors". Code for association of more tracks to primary vertex (by Roland.WINDMOLDERS@cern.ch) had been added to ./contrib/ v.5.114 Small modification to accessor function to LUJETS info. Improvments in PaMCgen::Print() PaEvent::Hits() accessor to vector had been added. Small mods in PaDigit::Print() v.5.113 Calorimeter cluster time is added (if measured) to PaCaloClus::Aux vector as element #1. Time could be accessed by PaCaloClus::Time() and PaCaloClus::HasTime(). If input|output file name starts from /shift it's automatically treated as RFIO file (similar to /castor) If prefix is "rfio:", file name stays unchanged, TRFIOFile is used for opening (Phast.cc) v.5.112 Non-"const" accessors to vectors had been added to PaEvent and PaParticle. Warning: they allows to modify content of mDST objects! It's for various kinds of recoveries. Not for general use. v.5.111 Magnetic fields could be scaled separately for 3 magnets by means of Phast::FieldScale[3] public datamember (used in PaField.cc) Not for general use. Only for field studies. Field scale factors, used by CORAL are printed in PaSetup::Print() (by -d option). WARNING: in current version of PaField (as well as CsField in CORAL) _only_ scale factor for SM2 is used as multiplier of mag. field components. v.5.109 Currupted input files ("R__unzip: error in header") is not fatal anymore. Such files will be skipped. (Phast.cc) Blocks of MC generator information to be stored, depends on generator type, COMGEANT version, CsGeant3.h version. (PaEventImportMC.cc). Interface to MC generator data had been changed in PaEvent.h v.5.108 COMGEANT particles table (G3part.h) had been updated. Few updates on MC generator info. structures (CORAL) had been included (not yet used) Option -f in merging mode (-m) force PHAST to continue (go to next file) in case of input file read error. v.5.107 Function which returns estimation of total beam flux Phast::TotalBeamFlux() had been added. v.5.106 New interfaces to magnetic field maps PaSetup::MagField() had been added. Old function (PaSetup::Field()) with not very "intuitive" packing (z,x,y) stays as it was, as it's used in Runge-Kutta propagation function. v.5.105 Absence of PaSetup object in one of multiple input files is not fatal anymore. Such file is skipped (main.cc) Message about skipping of CsParticls had been removed (PaEventImport.cc) Small bug had fixed in UserEven1.cc example. v.5.104 Storage of scalers had been moved from PaEventImport to separate function PaEventImportScalers Check of vertex doubling had been temporary disabled. v.5.103 PaEvent::iBestPrimaryVertex() function works now. One vertex is considered to be "better" that the other if it has more tracks. If number of tracks are the same, Chi2 is taken into account. (see "<" operator of PaVertex class) v.5.102 Bug had been fixed in CsEvent consistency check part of ./coral/PaEventImport.cc for "catching" of CsVertex doubling. Return type of CsPhast::Event() had been changed from "bool" to "int" to treat properly HUP signal (kill -1) in main_for_CORAL.cc v.5.101 New option '-t trigmask" had been added. By this option one may specify trigger mask (decimal) to select events on input. "<" and "==" operators had been added to PaVertex class. More CsEvent consistency checks had been added to ./coral/PaEventImport.cc v.5.99 New option '-b file.txt" had been added. By this option one may specify text file with run/spill pairs of numbers to be excluded from analysis. v.5.98 Timer() function had been added to PaUtils class. PYSUBS structure (PaMCgen.h) is saved now only once as it's event-independent (./coral/PaEventImportMC.cc) v.5.97 2 New functions had been added to PaSetup: - "float SolenoidCurrent()" - "const vector& TargetPolarizations()" v.5.96 Possibility to store DAQ digits had been added. This mode is controlled by CORAL option "mDST digits AA BB" where 'AA' 'BB' names of 'detectors' (e.g. SC for scalers) User variables of MC generator block had been added to PaMCgen storage. v.5.95 Pythia generator block is packed the same way LUND block was packed (PaEventImportMC.cc) while not all information is available in CORAL yet. v.5.94 Few detector access related functions had been added to PaSetup and PaDetector classes. Bug of calculation dead zone positions in "main reference system" had been fixed in coral/PaSetupInit.cc I.e. in already written mDST PaDetector datamembers DZymrs and DZzmrs are wrong, while could be recalculated from correct values of DZydrs, DZzdrs. v.5.93 MC generator info. could be stored to mDST. Controlled by "mDST MCgen" option. Default is OFF. More Doxygen comments. v.5.92 Problem with CERNLIB call from libPhast.so loaded in ROOT had been solved. v.5.91 Bug had fixed in PaField (Harmless. Was seen not on all gcc compiler versions) "kernlib" had been added to $CERNLIB in main Makefile v.5.90 Histogram filling bug fixed in UserEvent0(). Minor improvements of Doxygen comments. New function PaVertex::iOutMuPrim() had been added. v.5.89 Signal processing had been added. SIGHUP terminate the job. Constructor with parameters had been added to PaTPar. Few mods to UserEvent0/1.cc PaTrack::FieldInteg() function had been added v.5.88 PaTPar::FindCDA(): global scope "f2minimize_" function name had been changed to cda2minimize_ to avoid conflict with Traffic (when link with CORAL) "-a M" option had been introduced for advance staging of CASTOR files. M is number off files to stage in advance. M = 0 means "stage all". Option will work ONLY on machines where "stagein" command works. v.5.87 Mistype fixed in UserEvent0. v.5.86 Function PaTPar::FindCDA() had been added. v.5.85 Bug in PaTParExtrapolate.cc had been fixed. This bug did not affected correctness of extrapolation, but did unnecessary iterations ('till limit of 5000 had been reached) v.5.84 user/UserEvent1.cc - new example with kinematic variables of muon scattering process had been introduced. v.5.82 PaEventImport:: calorim. cluster size is taken now from correct (GetClusterSize()) function. v 5.80 Cluster size had been added to PaCaloClus (stored in Aux vector, as element #0) -s (strict) option had been substituted by -f (fast) option: i.e. default behavior now is "slower but more checks" v 5.79 Speed of PaEventImportMC() had been improved by avoiding use of CsMCUtils::getAssociatedClusters(). v 5.78 Changes in CORAL's magnetic field interpolation function getField() had been incorporated into PaField::getField(). Improved function names in PaTPar. Improved Doxyden comments. v 5.74 in merge mode (-m) errors of input files reading are fatal now: exit(2) v 5.70 improved interface to MC information .............. v 3.17 first official release (29.01.2003) .............. LocalWords: fortran