\section{marlintpc\-:\-:M\-M\-Advanced\-Calibration\-Processor Class Reference}
\label{classmarlintpc_1_1MMAdvancedCalibrationProcessor}\index{marlintpc\-::\-M\-M\-Advanced\-Calibration\-Processor@{marlintpc\-::\-M\-M\-Advanced\-Calibration\-Processor}}


Basic overview\-:  




{\ttfamily \#include $<$M\-M\-Advanced\-Calibration\-Processor.\-h$>$}

Inheritance diagram for marlintpc\-:\-:M\-M\-Advanced\-Calibration\-Processor\-:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classmarlintpc_1_1MMAdvancedCalibrationProcessor}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
virtual Processor $\ast$ {\bfseries new\-Processor} ()\label{classmarlintpc_1_1MMAdvancedCalibrationProcessor_a9476595ff6107246775bfc104538fa83}

\item 
virtual void {\bfseries init} ()\label{classmarlintpc_1_1MMAdvancedCalibrationProcessor_ade64c6c149ee30802253c5de0ea7227c}

\item 
virtual void {\bfseries process\-Run\-Header} (E\-V\-E\-N\-T\-::\-L\-C\-Run\-Header $\ast$run)\label{classmarlintpc_1_1MMAdvancedCalibrationProcessor_ac43ce60503eef2fcd862c3f1983b1617}

\item 
virtual void {\bfseries process\-Event} (E\-V\-E\-N\-T\-::\-L\-C\-Event $\ast$evt)\label{classmarlintpc_1_1MMAdvancedCalibrationProcessor_a78a3c240673e56f0cd9af3ae4701f26f}

\item 
virtual void {\bfseries check} (E\-V\-E\-N\-T\-::\-L\-C\-Event $\ast$evt)\label{classmarlintpc_1_1MMAdvancedCalibrationProcessor_ada8342abe1972b1b4c2839303f77c994}

\item 
virtual void {\bfseries end} ()\label{classmarlintpc_1_1MMAdvancedCalibrationProcessor_ac00439627042e46c3a604133778ef122}

\end{DoxyCompactItemize}
\subsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
lcio\-::\-String\-Vec {\bfseries \-\_\-input\-Col\-Names}\label{classmarlintpc_1_1MMAdvancedCalibrationProcessor_a908627ddd35143f50250b5d465389ba4}

\item 
std\-::string {\bfseries \-\_\-output\-\_\-path}\label{classmarlintpc_1_1MMAdvancedCalibrationProcessor_a0a024387edacee99dfa522d384796f6f}

\item 
std\-::string {\bfseries \-\_\-source}\label{classmarlintpc_1_1MMAdvancedCalibrationProcessor_ae4a951d7dfeeb4def06b9cc7d6fc2df2}

\item 
std\-::string {\bfseries \-\_\-type}\label{classmarlintpc_1_1MMAdvancedCalibrationProcessor_aa0dcacd3786693a6dec8738e1372c64e}

\item 
std\-::string {\bfseries \-\_\-prf\-Type}\label{classmarlintpc_1_1MMAdvancedCalibrationProcessor_a669ff0d602b02a0ae08c60528bf96dd2}

\item 
int {\bfseries \-\_\-track\-Type}\label{classmarlintpc_1_1MMAdvancedCalibrationProcessor_a8363f6a5fca1a3407cec5b23d64409e9}

\item 
std\-::vector$<$ float $>$ {\bfseries \-\_\-step\-Vec}\label{classmarlintpc_1_1MMAdvancedCalibrationProcessor_a33356c14d994476e8329101bf513e7ea}

\item 
std\-::vector$<$ float $>$ {\bfseries \-\_\-min\-Vec}\label{classmarlintpc_1_1MMAdvancedCalibrationProcessor_a6714d74054e2eefa7b68622a6834da96}

\item 
std\-::vector$<$ float $>$ {\bfseries \-\_\-max\-Vec}\label{classmarlintpc_1_1MMAdvancedCalibrationProcessor_a74b517c58a81f3f87af3ee98813280b9}

\item 
std\-::vector$<$ float $>$ {\bfseries \-\_\-start\-Vec}\label{classmarlintpc_1_1MMAdvancedCalibrationProcessor_a9bcb92ea7ed2b844473c00692afde2d6}

\item 
double {\bfseries \-\_\-tolerance}\label{classmarlintpc_1_1MMAdvancedCalibrationProcessor_a651a32085feaf72bf615fb094726f79e}

\item 
int {\bfseries \-\_\-iter}\label{classmarlintpc_1_1MMAdvancedCalibrationProcessor_ab216914b185f040c4ccbbe0d412328cf}

\item 
int {\bfseries \-\_\-fcn}\label{classmarlintpc_1_1MMAdvancedCalibrationProcessor_ae90357f41734a3d936371c95a36b460d}

\item 
int {\bfseries \-\_\-norm\-Type}\label{classmarlintpc_1_1MMAdvancedCalibrationProcessor_a0a8a873308d7fab9537d2f9239ca070d}

\item 
bool {\bfseries \-\_\-fit\-Output}\label{classmarlintpc_1_1MMAdvancedCalibrationProcessor_af32776fec243eda8b88d89f517987362}

\item 
bool {\bfseries \-\_\-row\-Dep}\label{classmarlintpc_1_1MMAdvancedCalibrationProcessor_a841749b6922eb3a7738e7abfa18e64cb}

\item 
bool {\bfseries \-\_\-fit\-Track}\label{classmarlintpc_1_1MMAdvancedCalibrationProcessor_abb506c390dcfa312cbd609c549ed8347}

\item 
bool {\bfseries \-\_\-pad\-Hits}\label{classmarlintpc_1_1MMAdvancedCalibrationProcessor_ac1a5614ac3dc69273dfbaf51b8dfd276}

\item 
std\-::vector$<$ int $>$ {\bfseries \-\_\-module\-List}\label{classmarlintpc_1_1MMAdvancedCalibrationProcessor_aecf2176a2e779cca4ebd3ea41bcc930c}

\item 
int {\bfseries \-\_\-cur\-Evt}\label{classmarlintpc_1_1MMAdvancedCalibrationProcessor_a4c4d6d9eff1c4daa82eed6e76612668a}

\item 
int {\bfseries \-\_\-n\-Par}\label{classmarlintpc_1_1MMAdvancedCalibrationProcessor_a60c7ec2c2826f959dd008fce160f2511}

\item 
bool {\bfseries \-\_\-module\-Dep}\label{classmarlintpc_1_1MMAdvancedCalibrationProcessor_a186682760de3196279c12a0a3b3ef8e5}

\item 
A\-I\-D\-A\-::\-I\-Tuple $\ast$ {\bfseries \-\_\-fit\-Data}\label{classmarlintpc_1_1MMAdvancedCalibrationProcessor_a32578c986adffebf89fc4db4227af9ce}

\item 
A\-I\-D\-A\-::\-I\-Tuple $\ast$ {\bfseries \-\_\-hit\-Data}\label{classmarlintpc_1_1MMAdvancedCalibrationProcessor_aa156fac64095abbaa7e4007ba1e5b4de}

\item 
T\-Tree $\ast$ {\bfseries \-\_\-tree}\label{classmarlintpc_1_1MMAdvancedCalibrationProcessor_ad051dbb9bbef843d1c8c8bc847ef3646}

\item 
std\-::vector$<$ T\-H1\-F $\ast$ $>$ {\bfseries \-\_\-histogram\-Par}\label{classmarlintpc_1_1MMAdvancedCalibrationProcessor_a693a02634c5bbeb5e63da8a7c75d298c}

\item 
std\-::vector$<$ std\-::vector$<$ T\-H2\-F $\ast$ $>$ $>$ {\bfseries \-\_\-histogram\-Corr\-Par}\label{classmarlintpc_1_1MMAdvancedCalibrationProcessor_a880bf2be5f992d4bd3154a88e4749643}

\item 
R\-O\-O\-T\-::\-Math\-::\-Minimizer $\ast$ {\bfseries min}\label{classmarlintpc_1_1MMAdvancedCalibrationProcessor_a97cb307c669021584ef4de38c44d33fc}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
Basic overview\-: 

This processor takes in a collection of tracks. Filters are applied to screen unwanted tracks (trackangle, number of tracks, etc.) The consitutent pulses are then given to an \doxyref{M\-M\-Refit\-Tool}{p.}{classmarlintpc_1_1MMRefitTool} object, which is then minimized by minuit on an event-\/by-\/event basis. The \doxyref{M\-M\-Refit\-Tool}{p.}{classmarlintpc_1_1MMRefitTool} will return a chi2 value for a given set of P\-R\-F parameters and hit x0 values.

Parameters\-:

Input\-Track\-Collections = A list of track collections to be used [String\-Vec] Param\-Start = Starting values for each P\-R\-F parameter [Float\-Vec] Param\-Steps = Minuit step values for each P\-R\-F parameter [Float\-Vec] Param\-Min = Minimum value for each P\-R\-F parameter [Float\-Vec] Param\-Max = Maximum value for each P\-R\-F parameter [Float\-Vec] Fitter\-Source = Source for the Root minimizer object (Minuit2 or G\-S\-L) [string] Fitter\-Type = Type of minimizer object to use (see Root documentation) [string] Track\-Type = Track type (straight or helix) [integer] P\-R\-F\-Type = Name of the P\-R\-F to use [string] Par\-Output\-Path = Output path for the calibrated parameters [string] Tolerance = Minimizer tolerance [double] Max\-Iterations = Maximum iterations of the minimizer [integer] Max\-Fcn = Maximum function calls of the minimizer [integer] Fit\-Output = Whether or not to fit the calibrated parameter distributions with gaussians [boolean] Row\-Dep = Set whether or not the P\-R\-F has a row dependency (as defined in \doxyref{M\-M\-Hit\-Finder\-Processor}{p.}{classmarlintpc_1_1MMHitFinderProcessor}) [boolean] Fit\-Track = Whether or not the track should be fit in the calibration [boolean] Pad\-Hits = Whether or not the hits should be padded with empty pulses [boolean] Norm\-Type = The type of P\-R\-F normalization to be used (0 = sum Amp / sum P\-R\-F; 1 = sum Amp; 2 = gaussian amp) [integer] Module\-List = A list of modules to be used in the calibration [Int\-Vec]

Author\-: P. Hayman, Carleton University 

The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize}
\item 
M\-M\-Advanced\-Calibration\-Processor.\-h\item 
M\-M\-Advanced\-Calibration\-Processor.\-cc\end{DoxyCompactItemize}
