Skip to content
Snippets Groups Projects
Commit 59d42c7d authored by Jordi Garra Tico's avatar Jordi Garra Tico
Browse files

Panoptes release v3r3.

This tag contains the result of the command

   getpack --no-config --protocol anonymous --project --recursive --batch Panoptes v3r3

The Panoptes project was tagged as PANOPTES_v3r3 at svn release 122988.

The svn path for this commit was

   svn+ssh://svn.cern.ch/reps/lhcb/Panoptes/tags/PANOPTES/PANOPTES_v3r3

The latest comment on svn was the following:

   Panoptes release v3r3, using the new online v4r55.
parent 44327f62
No related branches found
Tags v3r3
No related merge requests found
Showing
with 3129 additions and 5 deletions
package PanoptesSys
version v3r2
version v3r3
branches cmt doc
......@@ -19,9 +19,9 @@ use RichDataMerge v2r2 Rich
#
# RICH semi-online mirror monitoring packages
#
#use RichMirrorAlignmentGanga v8r3 Rich
#use RichMirrCombinFit v10r4 Rich
#use RichMirrAlign v14r3 Rich
use RichMirrorAlignmentGanga v8r4 Rich
use RichMirrCombinFit v10r5 Rich
use RichMirrAlign v14r4 Rich
# Declare this as a container package
apply_pattern container_package
......
v3r2
v3r3
......@@ -3,6 +3,9 @@ Package : PanoptesSys
Package Coordinator : Ulrich Kerzel
Purpose : LHCb RICH online monitor application
</PRE><H1><A NAME=v3r0>2011-03-16 Panoptes v3r2</A></H1><PRE>
This version uses projects : Gaudi v22r2, LHCb v32r3, Online v4r55
</PRE><H1><A NAME=v3r0>2011-03-16 Panoptes v3r2</A></H1><PRE>
This version uses projects : Gaudi v22r1, LHCb v32r1p1, Online v4r53
......
package RichMirrAlign
version v14r4
branches cmt doc python src
# change the build strategy if necessary
#version_strategy first_choice
# add necessary "use" statements
use GaudiPolicy v*
use ROOT v* LCG_Interfaces
use Boost v* LCG_Interfaces
use XercesC v* LCG_Interfaces
use xqilla v* LCG_Interfaces
#===============================================================================
macro_append ROOT_linkopts " -lHist -lMinuit2 " WIN32 " libHist.lib libMinuit2.lib "
macro_append Boost_linkopts " $(Boost_linkopts_regex) "
macro_append Boost_linkopts " $(Boost_linkopts_program_options) "
#===============================================================================
# which application to build
application RichMirrAlign ../src/*.cpp
apply_pattern application_path
#===============================================================================
apply_pattern install_python_modules
v14r4
<pre>
Package : Rich/RichMirrAlign
Package Coordinators : Anatoly Solomin, Matt Coombes, Antonis Papanestis
Purpose : RICH mirror alignment program
</pre>
<h2><a name="v14r4">2011-03-30 RichMirrAlign v14r4</a></h2>
<h3><a name="Note">This version released in PANOPTES v2r14.
Completely new approach: the system of
equations is not over-determined any
more; it is solved algebraically, not by
minimization of RMS.</a></h3>
<pre>
2011-03-30 - Matthew Coombes
- Fixed bug to work with RICH1
- Found bug that prevented alignment moving to it1 in solution
method 0. Temp fix.
2010-11-09 - Anatoly Solomin
- Increment version v14r3. From now on, based only on
Xerces-C++ 3.1 and XQilla.
- Completely new approach: the system of equations is not
over-determined any more. An optimized subset of mirror
pairs selected for that.
- The system is being solved by a combination of substitution
method (pair-by-pair level) and Cramer's rule (Y/Z level).
- Method of solving the system using Minuit is retained as
an alternative option.
- Fixed mirrors are denoted in the steering list by
brackets and handled properly automatically.
- Further cosmetic improvements of printout.
2010-08-30 - Anatoly Solomin
- Increment version v12r0.
- Implemented fixation of pair of primary and secondary
segments on each side of RICH2 p12s09 and p43s30.
</pre>
<h2><a name="v11r0">2010-08-07 RichMirrAlign v11r0</a></h2>
<h3><a name="Note">This version released in PANOPTES v2r13.
Universalized for both RICH detectors;
implemented for both Xerces-C++ 2.8/3.1;
migrated to XQilla (in case 3.1).</a></h3>
<pre>
2010-08-07 - Anatoly Solomin
- Increment version v11r0.
- Migrated to XQilla.
2010-07-06 - Anatoly Solomin
- Increment version v10r0.
- Implemented fork (using #ifdef XERCESC_GE_31) for using both
Xerces-C++ 2.8/3.1 in lhcb-prerelease/lhcb-gaudi-head
nightlies respectively.
- For Xerces-C++ 3.1 implemented usage of XPath.
2010-07-01 - Anatoly Solomin, Matt Coombes
- Increment version v9r0.
- Started universalization for both RICHes.
- Started rewriting the Xerces part to meet new options in 3.1.
- Forked code so that it compiles against both 2.8 and 3.1 by
using #ifdef XERCESC_GE_31.
2010-06-03 - Anatoly Solomin
- Increment version v8r2.
- Solved problem of back-reproducing the predefined tilts in MC
for testing purposes.
2010-06-02 - Anatoly Solomin
- Made uniform format for tilts in xml.
</pre>
<h2><a name="v8r1">2010-05-26 Rich2MirrAlign v8r1</a></h2>
<h3><a name="Note">This version released in PANOPTES v2r12.
New, 2D approach; arbitrary mirror subsets;
new parameter control; various fixes;
improved general convergence; magnification
coefficients variably calibrated.</a></h3>
<pre>
2010-05-26 - Anatoly Solomin
- Increment version v8r1.
- Made magnification coefficients calibration tilts
variate-able instead of being always 1 mrad.
2010-05-20 - Anatoly Solomin
- Added parameter for control of pre-misaligned case.
- Adapted for pre-misaligned case.
- Improved printout.
- More improved convergence of fit for each iteration.
- More improved convergence of the alignment in terms of the
re-reconstruction iterations.
2010-05-14 - Anatoly Solomin
- Increment version v7r7.
- Improved printout.
- New (ASCII-graphical) way to choose subsets of mirror
segments to be non-fixed, with variated alignment
corrections.
- Improved convergence of fit for each iteration.
- Improved convergence of the alignment in terms of the
re-reconstruction iterations.
2010-05-04 - Anatoly Solomin
- Increment version v7r6.
- Added printing of the cumulative corrections after each
iteration.
2010-04-26 - Anatoly Solomin
- Increment version v7r5.
- Fixed stop-to-iterate criterion.
- Improved printing of the resultant corrections of each
iteration.
2010-04-15 - Anatoly Solomin
- Increment version v7r4.
- Improved naming convention. Following respective
modifications in the Rich2MirrCombinFit.
- Better passing variant name via program options.
2010-03-28 - Anatoly Solomin
- Increment version v7r2. Accumulates massive modifications.
- Fit both dimensions, i.e. Y and Z jointly. As a consequence,
number of equations doubled.
- Subset of mirrors defined by an "ASCII-pictorial" list of
chosen mirror combinations.
- Control parameters are now keyed, and typed as a key=value
column in Rich2MirrAlign.conf. Modified the
Rich2MirrAlignWrapper.py Use boost::program_options library.
- Separate lists of mirror combinations for each side.
- Eight families of conversion coefficients: primary/secondary
times Y/Z times +/-. Each mirror segment tilt around one
axis results in final tilts around both axes: major around
the corresponding, minor around the alternative one.
</pre>
<h2><a name="v5r6">2009-10-23 Rich2MirrAlign v5r6</a></h2>
<h3><a name="Note">This version released in PANOPTES v2r7.
Minor cleanup.</a></h3>
<pre>
2009-07-21 - Anatoly Solomin
- Increment version v5r6.
- Minor cleanup.
</pre>
<h2><a name="v5r4">2009-07-21 Rich2MirrAlign v5r4</a></h2>
<h3><a name="Note">This version released in PANOPTES v2r5.
Resolved degeneracy, degraded precision in
favor of stability and reduced
hardcodedness.</a></h3>
<pre>
2009-07-21 - Anatoly Solomin
- Increment version v5r4.
- Reduced hardcodedness.
2009-07-16 - Anatoly Solomin
- Increment version v5r3.
- Fit one dimension at a time, i.e. Y and Z separately.
- System of equations degeneracy resolved by always fixing
one of the sought tilts equal to 0.0.
- Add fit of the "right-hand" side.
2009-04-20 - Anatoly Solomin
- Update file names for using 2008 geometry.
2009-03-04 - Anatoly Solomin
- Increment version: v4r1.
</pre>
<h2><a name="4r0">2009-02-27 Rich2MirrAlign v4r0</a></h2>
<h3><a name="Note">Major revamp for DDDB 2008 using XercesC
2.8. This version released in PANOPTES
v2r2.</a></h3>
<pre>
2009-02-11 - Anatoly Solomin
- Massive rewrite of main.cpp using XercesC 2.8 to work with
DDDB 2008.
- Add use XercesC to requirements file.
- Add several helper classes.
2009-02-06 - Ulrich Kerzel
- add Gaudi Policy to requirements file,
- add apply_pattern to requirements file
- change <.h> to ".h"
</pre>
<h2><a name="v3r1">2008-11-01 Rich2MirrAlign v3r1</a></h2>
<h3><a name="Note">This version is the first official
release.</a></h3>
<pre>
2008-11-14 - Anatoly Solomin
- Wrap Rich2MirrAlign.exe executable into the
python/Rich2MirrAlignWrapper.py. This enables Ganga to run
it within a Ganga script the following way:
app = GaudiPython( project ='Panoptes', ...)
j = Job( application = app )
j.application.script = expandvars('.../Rich2MirrAlignWrapper.py')
j.inputsandbox += [expandvars('.../Rich2MirrAlign.exe')]
2008-11-01 - Anatoly Solomin
- Parameter definitions for Minuit are now map-directed.
</pre>
# No ConfigurableUser specialization
import os
import sys
os.system('./RichMirrAlign.exe Rich1MirrAlign.conf')
import os
import sys
os.system('./RichMirrAlign.exe Rich2MirrAlign.conf')
// $Id: RichAlignFcn.cpp,v 1.8 2010-02-16 13:07:14 asolomin Exp $
#include <cmath>
#include <iostream>
#include <vector>
#include <boost/format.hpp>
#include <boost/lexical_cast.hpp>
#include "RichAlignFcn.h"
using boost::format;
using boost::lexical_cast;
using std::cout;
using std::endl;
using std::map;
using std::string;
using std::vector;
//-----------------------------------------------------------------------------
// Implementation file for class : RichAlignFcn
//
// 2004-11-08 : Antonis Papanestis
//-----------------------------------------------------------------------------
//=============================================================================
// Standard constructor, initializes variables
//=============================================================================
RichAlignFcn::RichAlignFcn(
const vector<unsigned int>& mirrCombinListInt,
const vector<vector<vector<vector<double> > > >& coeff,
const vector<vector<vector<vector<double> > > >& totalTiltsMrad,
const map<string, unsigned int>& params_NameOrderMap,
const string& Y_or_Z_or_both
) :
m_mirrCombinListInt ( mirrCombinListInt ),
m_coeff ( coeff ),
m_totalTiltsMrad ( totalTiltsMrad ),
m_params_NameOrderMap ( params_NameOrderMap ),
m_Y_or_Z_or_both ( Y_or_Z_or_both ),
m_theErrorDef ( 1.0 ) {
//cout <<"Hello from RichAlignFcn! Initialization."<< endl;
}
//=============================================================================
// Destructor
//=============================================================================
RichAlignFcn::~RichAlignFcn() {}
//=========================================================================
double RichAlignFcn::operator()( const vector<double>& params ) const {
/*
cout << endl; cout << endl; cout << endl; cout << endl; cout << endl; cout << endl;
cout << endl; cout << endl; cout << endl; cout << endl; cout << endl; cout << endl;
cout <<"Hello from RichAlignFcn! Iteration."<< endl;
*/
//
/*
unsigned int i=0;
for (vector<double>::const_iterator parIt = params.begin();
parIt < params.end();
++parIt) {
cout<<format("params[%|02d|]: %| 4.2f|")
%i
%*parIt<<endl;
++i;
}
*/
//
string priNr;
unsigned int pri(0);
unsigned int priNrY(0);
unsigned int priNrZ(0);
string secNr;
unsigned int sec(0);
unsigned int secNrY(0);
unsigned int secNrZ(0);
double coeffPriRotMradY(0.0);
double coeffPriRotMradZ(0.0);
double coeffSecRotMradY(0.0);
double coeffSecRotMradZ(0.0);
double effPriTiltY_onTotTiltY(0.0);
double effSecTiltY_onTotTiltY(0.0);
double effPriTiltZ_onTotTiltY(0.0);
double effSecTiltZ_onTotTiltY(0.0);
double effPriTiltY_onTotTiltZ(0.0);
double effSecTiltY_onTotTiltZ(0.0);
double effPriTiltZ_onTotTiltZ(0.0);
double effSecTiltZ_onTotTiltZ(0.0);
double priTiltMradY(0.0);
double priTiltMradZ(0.0);
double secTiltMradY(0.0);
double secTiltMradZ(0.0);
double diffY(0.0);
double diffZ(0.0);
double diffY_dividedBySigma(0.0);
double diffZ_dividedBySigma(0.0);
double val(0.0);
for ( vector<unsigned int>::const_iterator mirrCombin = m_mirrCombinListInt.begin();
mirrCombin != m_mirrCombinListInt.end();
++mirrCombin ) {
pri = *mirrCombin / 100;
sec = *mirrCombin % 100;
priNr = lexical_cast<string>( pri );
if ( pri <= 9 ) priNr = "0"+priNr;
secNr = lexical_cast<string>( sec );
if ( sec <= 9 ) secNr = "0"+secNr;
if ( "Y" == m_Y_or_Z_or_both ) {
priNrY = m_params_NameOrderMap.find("pri"+priNr+"Y")->second;
secNrY = m_params_NameOrderMap.find("sec"+secNr+"Y")->second;
priTiltMradY = params[priNrY];
secTiltMradY = params[secNrY];
// Here we use the already averaged in the main program coefficients:
coeffPriRotMradY = m_coeff[0][pri][sec][0];
coeffSecRotMradY = m_coeff[4][pri][sec][0];
diffY = ( m_totalTiltsMrad[pri][sec][0][0] - (coeffPriRotMradY*priTiltMradY + coeffSecRotMradY*secTiltMradY) );
diffY_dividedBySigma = diffY / m_totalTiltsMrad[pri][sec][0][1];
val += pow( diffY_dividedBySigma, 2 );
/*
cout
<<format("pri"+priNr+"Y: %|02d| sec"+secNr+"Y: %|02d|")%priNrY%secNrY
<<format(" priTiltMradY:""%| 8.5f|")%priTiltMradY
<<format(" secTiltMradY:""%| 8.5f|")%secTiltMradY
<<format(" coeffPriRotMradY:""%| 4.2f|")%coeffPriRotMradY
<<format(" coeffSecRotMradY:""%| 4.2f|")%coeffSecRotMradY
<<format(" m_totalTiltsMrad["+priNr+"]["+secNr+"][0][0]:""%| 4.2f|")%m_totalTiltsMrad[pri][sec][0][0]
<<format(" diffY:""%| 6.3f|")%diffY
<<format(" diffY_dividedBySigma:""%| 9.3f|")%diffY_dividedBySigma
<<format(" val:""%|4.2f|")%val
<<endl;
*/
//
}
else if ( "Z" == m_Y_or_Z_or_both ) {
priNrZ = m_params_NameOrderMap.find("pri"+priNr+"Z")->second;
secNrZ = m_params_NameOrderMap.find("sec"+secNr+"Z")->second;
priTiltMradZ = params[priNrZ];
secTiltMradZ = params[secNrZ];
// Here we use the already averaged in the main program coefficients:
coeffPriRotMradZ = m_coeff[2][pri][sec][1];
coeffSecRotMradZ = m_coeff[6][pri][sec][1];
diffZ = ( m_totalTiltsMrad[pri][sec][1][0] - (coeffPriRotMradZ*priTiltMradZ + coeffSecRotMradZ*secTiltMradZ) );
diffZ_dividedBySigma = diffZ / m_totalTiltsMrad[pri][sec][1][1];
val += pow( diffZ_dividedBySigma, 2 );
/*
cout
<<format("pri"+priNr+"Z: %|02d| sec"+secNr+"Z: %|02d|")%priNrZ%secNrZ
<<format(" priTiltMradZ:""%| 4.2f|")%priTiltMradZ
<<format(" secTiltMradZ:""%| 4.2f|")%secTiltMradZ
<<format(" coeffPriRotMradZ:""%| 4.2f|")%coeffPriRotMradZ
<<format(" coeffSecRotMradZ:""%| 4.2f|")%coeffSecRotMradZ
<<format(" m_totalTiltsMrad["+priNr+"]["+secNr+"][1][0]:""%| 4.2f|")%m_totalTiltsMrad[pri][sec][1][0]
<<format(" diffZ:""%| 4.2f|")%diffZ
<<format(" val:""%| 4.2f|")%val
<<endl;
*/
//
}
else { // both
priNrY = m_params_NameOrderMap.find("pri"+priNr+"Y")->second;
secNrY = m_params_NameOrderMap.find("sec"+secNr+"Y")->second;
priNrZ = m_params_NameOrderMap.find("pri"+priNr+"Z")->second;
secNrZ = m_params_NameOrderMap.find("sec"+secNr+"Z")->second;
priTiltMradY = params[priNrY];
secTiltMradY = params[secNrY];
priTiltMradZ = params[priNrZ];
secTiltMradZ = params[secNrZ];
if ( priTiltMradY <=0.0 ) { effPriTiltY_onTotTiltY= m_coeff[0][pri][sec][0]; effPriTiltY_onTotTiltZ= m_coeff[0][pri][sec][1]; }
else { effPriTiltY_onTotTiltY= m_coeff[1][pri][sec][0]; effPriTiltY_onTotTiltZ= m_coeff[1][pri][sec][1]; }
if ( priTiltMradZ <=0.0 ) { effPriTiltZ_onTotTiltY= m_coeff[2][pri][sec][0]; effPriTiltZ_onTotTiltZ= m_coeff[2][pri][sec][1]; }
else { effPriTiltZ_onTotTiltY= m_coeff[3][pri][sec][0]; effPriTiltZ_onTotTiltZ= m_coeff[3][pri][sec][1]; }
if ( secTiltMradY <=0.0 ) { effSecTiltY_onTotTiltY= m_coeff[4][pri][sec][0]; effSecTiltY_onTotTiltZ= m_coeff[4][pri][sec][1]; }
else { effSecTiltY_onTotTiltY= m_coeff[5][pri][sec][0]; effSecTiltY_onTotTiltZ= m_coeff[5][pri][sec][1]; }
if ( secTiltMradZ <=0.0 ) { effSecTiltZ_onTotTiltY= m_coeff[6][pri][sec][0]; effSecTiltZ_onTotTiltZ= m_coeff[6][pri][sec][1]; }
else { effSecTiltZ_onTotTiltY= m_coeff[7][pri][sec][0]; effSecTiltZ_onTotTiltZ= m_coeff[7][pri][sec][1]; }
diffY = ( m_totalTiltsMrad[pri][sec][0][0] - ( priTiltMradY*effPriTiltY_onTotTiltY +
secTiltMradY*effSecTiltY_onTotTiltY +
priTiltMradZ*effPriTiltZ_onTotTiltY +
secTiltMradZ*effSecTiltZ_onTotTiltY )
);
diffY_dividedBySigma = diffY / m_totalTiltsMrad[pri][sec][0][1];
val += pow( diffY_dividedBySigma, 2 );
diffZ = ( m_totalTiltsMrad[pri][sec][1][0] - ( priTiltMradY*effPriTiltY_onTotTiltZ +
secTiltMradY*effSecTiltY_onTotTiltZ +
priTiltMradZ*effPriTiltZ_onTotTiltZ +
secTiltMradZ*effSecTiltZ_onTotTiltZ )
);
diffZ_dividedBySigma = diffZ / m_totalTiltsMrad[pri][sec][1][1];
val += pow( diffZ_dividedBySigma, 2 );
}
/*
if ( priTiltMradY <=0.0 && priTiltMradZ <=0.0 ) { coeffPriRotMradY= m_coeff[0][pri][sec][0]; coeffPriRotMradZ= m_coeff[0][pri][sec][1]; }
else if ( priTiltMradY <=0.0 && priTiltMradZ > 0.0 ) { coeffPriRotMradY= m_coeff[1][pri][sec][0]; coeffPriRotMradZ= m_coeff[1][pri][sec][1]; }
else if ( priTiltMradY > 0.0 && priTiltMradZ <=0.0 ) { coeffPriRotMradY= m_coeff[2][pri][sec][0]; coeffPriRotMradZ= m_coeff[2][pri][sec][1]; }
else if ( priTiltMradY > 0.0 && priTiltMradZ > 0.0 ) { coeffPriRotMradY= m_coeff[3][pri][sec][0]; coeffPriRotMradZ= m_coeff[3][pri][sec][1]; }
if ( secTiltMradY <=0.0 && secTiltMradZ <=0.0 ) { coeffSecRotMradY= m_coeff[4][pri][sec][0]; coeffSecRotMradZ= m_coeff[4][pri][sec][1]; }
else if ( secTiltMradY <=0.0 && secTiltMradZ > 0.0 ) { coeffSecRotMradY= m_coeff[5][pri][sec][0]; coeffSecRotMradZ= m_coeff[5][pri][sec][1]; }
else if ( secTiltMradY > 0.0 && secTiltMradZ <=0.0 ) { coeffSecRotMradY= m_coeff[6][pri][sec][0]; coeffSecRotMradZ= m_coeff[6][pri][sec][1]; }
else if ( secTiltMradY > 0.0 && secTiltMradZ > 0.0 ) { coeffSecRotMradY= m_coeff[7][pri][sec][0]; coeffSecRotMradZ= m_coeff[7][pri][sec][1]; }
*/
//
}
//return val ;
return sqrt( val );
}
// $Id: RichAlignFcn.h,v 1.5 2009-07-16 16:13:41 asolomin Exp $
/** @class RichAlignFcn RichAlignFcn.h
*
* @author Antonis Papanestis
* @date 2004-11-08
*/
#ifndef RICHALIGN_RICHALIGNFCN_H
#define RICHALIGN_RICHALIGNFCN_H 1
#include <map>
#include <vector>
#include <Minuit2/FCNBase.h>
class RichAlignFcn : public ROOT::Minuit2::FCNBase {
public:
/// Standard constructor
RichAlignFcn(
const std::vector<unsigned int>& mirrCombinListInt,
const std::vector<std::vector<std::vector<std::vector<double> > > >& coeff,
const std::vector<std::vector<std::vector<std::vector<double> > > >& totalTiltsMrad,
const std::map<std::string, unsigned int>& params_NameOrderMap,
const std::string& Y_or_Z_or_both
);
virtual ~RichAlignFcn( ); ///< Destructor
virtual double Up() const { return m_theErrorDef; }
virtual double operator()( const std::vector<double>& /*params*/) const;
protected:
private:
std::vector<unsigned int> m_mirrCombinListInt;
std::vector<std::vector<std::vector<std::vector<double> > > > m_coeff;
std::vector<std::vector<std::vector<std::vector<double> > > > m_totalTiltsMrad;
std::map<std::string, unsigned int> m_params_NameOrderMap;
std::string m_Y_or_Z_or_both;
double m_theErrorDef;
};
#endif // RICHALIGN_RICHALIGNFCN_H
This diff is collapsed.
include $(CMTROOT)/src/Makefile.header
include $(CMTROOT)/src/constituents.make
(i__main__
LogFile
p0
(dp1
S'_installed_files'
p2
(dp3
S'../Rich/RichMirrCombinFit/python'
p4
(dp5
S'../../Rich/RichMirrCombinFit/python/Rich1MirrCombinFitWrapper.py'
p6
S'../../../InstallArea/python/Rich1MirrCombinFitWrapper.py'
p7
sS'../../Rich/RichMirrCombinFit/python/Rich2MirrCombinFitWrapper.py'
p8
S'../../../InstallArea/python/Rich2MirrCombinFitWrapper.py'
p9
ssS'../../../Rich/RichMirrCombinFit/x86_64-slc5-gcc43-opt/RichMirrCombinFit.exe'
p10
S'../../../InstallArea/x86_64-slc5-gcc43-opt/bin/RichMirrCombinFit.exe'
p11
ssb.
\ No newline at end of file
package RichMirrCombinFit
version v10r5
branches cmt doc python src
# change the build strategy if necessary
#version_strategy first_choice
# add necessary "use" statements
use GaudiPolicy v*
use ROOT v* LCG_Interfaces
use Boost v* LCG_Interfaces
#===============================================================================
macro_append ROOT_linkopts " -lHist " WIN32 " libHist.lib "
macro_append Boost_linkopts " $(Boost_linkopts_regex) "
macro_append Boost_linkopts " $(Boost_linkopts_program_options) "
#===============================================================================
# which application to build
application RichMirrCombinFit ../src/*.cpp
apply_pattern application_path
#===============================================================================
apply_pattern install_python_modules
v10r5
<pre>
Package : Rich/RichMirrCombinFit
Package Coordinators : Antonis Papanestis, Anatoly Solomin, Matt Coombes
Purpose : RICH mirror combination histos fitting program
</pre>
<h2><a name="v10r5">2011-03-30 RichMirrCombinFit v10r5</a></h2>
<h3><a name="Note">This version released in PANOPTES v2r14.
Completely new approach: sinusoid is fitted
in one step with the 2D histograms</a></h3>
<pre>
2011-03-30 - Matt Coombes
- Increment version v10r5.
- Updated fitting for RICH1. Updated background function
</pre>
2010-11-09 - Anatoly Solomin
- Increment version v10r4.
- Completely new approach: sinusoid with its parameters is now
an additional bond when fitting the histograms. Instead of
fitting slices and then separately - sinusoid drawn through
positions of Gaussian peaks, sinusoid is now part of the
fitting of 2D histograms.
</pre>
<h2><a name="v9r0">2010-07-01 RichMirrCombinFit v9r0</a></h2>
<h3><a name="Note">This version released in PANOPTES v2r13.
Transition to generalized case for both
RICH1 and RICH2</a></h3>
<pre>
2010-07-01 - Matt Coombes, Anatoly Solomin
- Increment version v9r0.
- Renamed program RichMirrCombinFit.
- Transition to generalized case for fitting alignment
histograms in both RICH1 and RICH2.
2010-06-03 - Anatoly Solomin
- Increment version v8r2.
- Straightened out naming of program options.
</pre>
<h2><a name="v8r1">2010-05-26 Rich2MirrCombinFit v8r1</a></h2>
<h3><a name="Note">This version released in PANOPTES v2r12.
On-fly evaluation of conversion
coefficients; new, 2D approach; arbitrary
mirror subsets; new parameter control;
optional correction for systematic offsets
from MC; improved printout and new way
to define subsets; magnification coefficients
variably calibrated.</a></h3>
<pre>
2010-05-26 - Anatoly Solomin
- Increment version v8r1.
- Made magnification coefficients calibration tilts
variate-able instead of being always 1 mrad.
2010-05-24 - Anatoly Solomin
- Added delta theta window width parameter.
2010-05-14 - Anatoly Solomin
- Increment version v7r1.
- Improved printout.
2010-04-15 - Anatoly Solomin
- Increment version v7r0.
- Added switchable on/off option of using offsets obtained
from relevant MC for correction of the total tilts
evaluation.
- Made printout of the results in at-a-glance format, so that
the numbers are at the same places as their combinations in
the "ASCII-pictorial" list of chosen mirror combinations.
- Widened the window for fitting (and finding the mode
position) of the delta theta distribution. That became
feasible after using "Loose" cuts in photon creation. As a
result, the whole procedure acquired correctness and
precision.
- Straightened out order of file naming convention.
2010-03-28 - Anatoly Solomin
- Increment version v6r3.
- Fitting procedure changed: no FitSlicesY anymore. Fit slices
individually with automatic initial values from each slice.
- Subset of mirrors defined by an "ASCII-pictorial" list of
chosen mirror combinations.
- Conversion coefficients are re-evaluated on-fly for each
iteration. Eight families of conversion coefficients:
primary/secondary times Y/Z times +/-. Each mirror segment
tilt around one axis results in final tilts around both
axes: major around the corresponding, minor around the
alternative one. That is 2D.
- Control parameters are now keyed, and typed as a key=value
column in Rich2MirrCombinFit.conf. Modified the
Rich2MirrCombinFitWrapper.py. Use boost::program_options
library.
</pre>
<h2><a name="v3r6">2009-10-23 Rich2MirrCombinFit v3r7</a></h2>
<h3><a name="Note">This version released in PANOPTES v2r7.
Fitting procedure improved, flag for
coefficients added.</a></h3>
<pre>
2009-10-23 - Anatoly Solomin
- Increment version v3r7.
- Fitting procedure improved with automatic initial values
from the histograms.
- Added parameter to initiate the coefficients calculation
instead of normal fit.
</pre>
<h2><a name="v3r5">2009-07-21 Rich2MirrCombinFit v3r5</a></h2>
<h3><a name="Note">This version released in PANOPTES v2r5.
Fitting procedure replaced, reduced
hardcodedness.</a></h3>
<pre>
2009-07-21 - Anatoly Solomin
- Increment version v3r5.
- Reduced hardcodedness.
2009-07-03 - Anatoly Solomin
- Increment version v3r4.
- Replace X with Z.
- Ignore Y-Z correlation in magnification coefficients.
- Use ROOT's FitSlicesY and fit sinusoid through means.
2009-04-24 - Ulrich Kerzel
- fix requirements file and add ROOT configuration
2009-04-20 - Anatoly Solomin
- Implement new slice-by-slice fitting method.
- Update file-name notations to use 2008 geometry.
- Add attic folder for older version.
2009-03-04 - Anatoly Solomin
- Increment version: v2r6.
- Remove "using" statements in Rich2MirrCombinFit.cpp.
</pre>
<h2><a name="v2r5">2009-02-27 Rich2MirrCombinFit v2r5</a></h2>
<h3><a name="Note">This version is released in PANOPTES
v2r2.</a></h3>
<pre>
2009-02-14 - Anatoly Solomin
- Bring notations in agreement with
Conditions/Rich2/Alignment/Mirrors.xml 2008.
2009-02-06 - Ulrich Kerzel
- add Gaudi Policy to requirements file,
- add apply_pattern to requirements file
</pre>
<h2><a name="v2r4">2008-11-01 Rich2MirrCombinFit v2r4</a></h2>
<h3><a name="Note">This version is the first official
release.</a></h3>
<pre>
2008-11-14 - Anatoly Solomin
- Wrap Rich2MirrCombinFit.exe executable into the
python/Rich2MirrCombinFitWrapper.py. This enables Ganga to
run it within a Ganga script the following way:
app = GaudiPython( project ='Panoptes', ...)
j = Job( application = app )
j.application.script = expandvars('.../Rich2MirrCombinFitWrapper.py')
j.inputsandbox += [expandvars('.../Rich2MirrCombinFit.exe')]
2008-11-01 - Anatoly Solomin
- Made loop over the variants, including the calibration histograms.
</pre>
import sys
os .system('./RichMirrCombinFit.exe Rich1MirrCombinFit.conf')
import sys
os .system('./RichMirrCombinFit.exe Rich2MirrCombinFit.conf')
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment