\contentsline {chapter}{\numberline {1}Overview}{5} \contentsline {section}{\numberline {1.1}Programming Tools}{5} \contentsline {subsection}{\numberline {1.1.1}C++}{5} \contentsline {subsection}{\numberline {1.1.2}STL: {\tt http://www.sgi.com/tech/stl/}}{6} \contentsline {subsection}{\numberline {1.1.3}ROOT: {\tt http://root.cern.ch/}}{6} \contentsline {subsection}{\numberline {1.1.4}PostgreSQL, XML, and all that}{6} \contentsline {section}{\numberline {1.2}Code Management Tools}{6} \contentsline {subsection}{\numberline {1.2.1}CVS}{6} \contentsline {subsection}{\numberline {1.2.2}SRT}{7} \contentsline {section}{\numberline {1.3}MIPP Offline Software Packages}{7} \contentsline {subsubsection}{\relax $\@@underline {\hbox {Detector Geometry}}\mathsurround \z@ $\relax }{7} \contentsline {paragraph}{Bfield}{7} \contentsline {paragraph}{Geometry}{7} \contentsline {paragraph}{ConnectionMap}{7} \contentsline {subsubsection}{\relax $\@@underline {\hbox {Simulation}}\mathsurround \z@ $\relax }{7} \contentsline {paragraph}{e907mc }{7} \contentsline {paragraph}{DCDigitizer}{7} \contentsline {paragraph}{MWPCDigitizer}{7} \contentsline {paragraph}{RICHDigitizer}{8} \contentsline {paragraph}{TPCDigitizer}{8} \contentsline {paragraph}{TOFDigitizer}{8} \contentsline {paragraph}{E907MCInterface}{8} \contentsline {paragraph}{Geant3Interface}{8} \contentsline {subsection}{\numberline {1.3.1}\relax $\@@underline {\hbox {Data Format and I/O}}\mathsurround \z@ $\relax }{8} \contentsline {paragraph}{RawData}{8} \contentsline {paragraph}{MCClasses}{8} \contentsline {paragraph}{EventDataModel}{8} \contentsline {paragraph}{MippIo}{8} \contentsline {paragraph}{Raw2Root}{8} \contentsline {paragraph}{IoModules}{8} \contentsline {subsection}{\numberline {1.3.2}\relax $\@@underline {\hbox {Reconstruction and Analysis}}\mathsurround \z@ $\relax }{8} \contentsline {paragraph}{JobControl}{8} \contentsline {paragraph}{RecoBase}{8} \contentsline {subsection}{\numberline {1.3.3}Tracking}{9} \contentsline {subsubsection}{TrkRBase}{9} \contentsline {subsubsection}{TPCReco}{9} \contentsline {subsubsection}{SPFit}{9} \contentsline {subsubsection}{Vertex Reconstruction}{10} \contentsline {subsection}{\numberline {1.3.4}Particle ID}{10} \contentsline {paragraph}{RICHReco}{10} \contentsline {chapter}{\numberline {2}The Event Data Structure}{11} \contentsline {section}{\numberline {2.1}The event structure}{11} \contentsline {subsection}{\numberline {2.1.1}Where is the data? edm\_dump}{13} \contentsline {subsection}{\numberline {2.1.2}Handling Errors: {\tt EDMException}}{13} \contentsline {chapter}{\numberline {3}Analysis and Reconstruction: anamipp}{15} \contentsline {section}{\numberline {3.1}Getting started with the {\tt Demo} package}{15} \contentsline {subsection}{\numberline {3.1.1}Running {\tt anamipp}}{16} \contentsline {subsection}{\numberline {3.1.2}Job description XML documents}{17} \contentsline {subsection}{\numberline {3.1.3}Output from anamipp}{18} \contentsline {section}{\numberline {3.2}Job Modules}{18} \contentsline {subsection}{\numberline {3.2.1}DemoModule.h}{19} \contentsline {subsection}{\numberline {3.2.2} DemoModule.cxx}{19} \contentsline {subsection}{\numberline {3.2.3}Other methods}{22} \contentsline {subsection}{\numberline {3.2.4}Configuration}{22} \contentsline {chapter}{\numberline {4}Monte Carlo}{23} \contentsline {section}{\numberline {4.1}Event Generation}{23} \contentsline {subsection}{\numberline {4.1.1}FLUKA}{23} \contentsline {subsection}{\numberline {4.1.2}DPMJET}{23} \contentsline {section}{\numberline {4.2}\tt e907mc}{24} \contentsline {subsection}{\numberline {4.2.1}Execution details}{24} \contentsline {subsection}{\numberline {4.2.2}How to Run It}{25} \contentsline {subsection}{\numberline {4.2.3}Configuring Execution}{25} \contentsline {paragraph}{Controlling Digitization}{26} \contentsline {subsection}{\numberline {4.2.4}Reconstructing Monte Carlo}{26} \contentsline {chapter}{\numberline {5}Data Analysis with the DST}{27} \contentsline {section}{\numberline {5.1}Format of the DST - Round 2}{27} \contentsline {subsection}{\numberline {5.1.1}The {\tt MIPPEventSummary} Class}{27} \contentsline {subsection}{\numberline {5.1.2}The MIPPTrackSummary Class}{29} \contentsline {subsection}{\numberline {5.1.3}The MIPPVertexSummary Class}{29} \contentsline {section}{\numberline {5.2}Format of the DST - Round 3}{29} \contentsline {section}{\numberline {5.3}Getting Started With the DST}{31} \contentsline {chapter}{\numberline {6}Retrieving MIPP data from Enstore}{44} \contentsline {section}{\numberline {6.1}Data storage system documentation}{44} \contentsline {section}{\numberline {6.2}Organization of MIPP Enstore area}{44} \contentsline {section}{\numberline {6.3}On e907ana computers}{45} \contentsline {section}{\numberline {6.4}Through kerberized FTP}{45} \contentsline {subsection}{\numberline {6.4.1}Hints}{46} \contentsline {chapter}{\numberline {7}MippDatabase: SQL database interface}{47} \contentsline {section}{\numberline {7.1}Introduction}{47} \contentsline {section}{\numberline {7.2}To-Do list}{47} \contentsline {section}{\numberline {7.3}Underlying SQL software}{47} \contentsline {section}{\numberline {7.4}Setup for PostGreSQL}{48} \contentsline {subsection}{\numberline {7.4.1}PostGreSQL on e907anaX/e907daq/e907mon}{49} \contentsline {subsection}{\numberline {7.4.2}Remote access}{50} \contentsline {subsection}{\numberline {7.4.3}Database backup}{50} \contentsline {section}{\numberline {7.5}MIPP specific code}{50} \contentsline {section}{\numberline {7.6}Types of predefined tables}{51} \contentsline {section}{\numberline {7.7}XML interface}{52} \contentsline {section}{\numberline {7.8}Special characters}{54} \contentsline {section}{\numberline {7.9}Concrete example: Ckov cable map}{54} \contentsline {subsection}{\numberline {7.9.1}Define and load a table into the database}{54} \contentsline {subsection}{\numberline {7.9.2}Retrieving data from the database in MIPP executables}{57} \contentsline {subsection}{\numberline {7.9.3}Adding data to tables in C++ code}{59} \contentsline {section}{\numberline {7.10}MippDatabase Classes}{60} \contentsline {subsection}{\numberline {7.10.1}SQL basics}{60} \contentsline {subsection}{\numberline {7.10.2}Initialization}{61} \contentsline {subsection}{\numberline {7.10.3}Retrieving a table}{61} \contentsline {subsection}{\numberline {7.10.4}MdbDatabase class}{61} \contentsline {subsection}{\numberline {7.10.5}Database variables}{62} \contentsline {subsection}{\numberline {7.10.6}Selecting a subset of rows}{63} \contentsline {subsection}{\numberline {7.10.7}Creating XML files from a database table}{64} \contentsline {subsection}{\numberline {7.10.8}The MdbAbsRelDBTable class}{65} \contentsline {chapter}{\numberline {8}Residual corrections to TPC hits: TPCResCor}{67} \contentsline {section}{\numberline {8.1}What is TPCResCor?}{67} \contentsline {section}{\numberline {8.2}Method}{67} \contentsline {section}{\numberline {8.3}Using TPCResCor}{68} \contentsline {section}{\numberline {8.4}Updating TPCResCor}{69} \contentsline {section}{\numberline {8.5}Database Tables}{70}