Transcript Ian

GLAST LAT Offline Software
Workshop - SLAC, Jan. 16-19, 2001
Migration of Tkr and Cal Reconstruction
Algorithms to the Gaudi framework
Ian Gable
Software Workshop Jan 2001
GLAST LAT Offline Software
Workshop - SLAC, Jan. 16-19, 2001
Cal Status
Migration of Cal reconstruction progress
• The Tracker reconstruction is now migrated over to the Gaudi framework and
is contained in the new package CalRecon.
– First real go at making a proper Gaudi ‘Algorithm’
– The Gaudi Algorithm CalRecoAlg functions as a wrapper for the slightly
rehashed reconstruction package.
– All dependence on the instrument package was removed from
reconstruction.
– Former data objects were made into TDS objects and converters were
built to load said objects through the TDS.
• This results in the one line load of the objects.
• Strait from the code:
SmartDataPtr<TdCsIData> csi(eventSvc(), "/Event/Raw/TdCsIDatas");
– Converters currently load IRF data
Ian Gable
2
GLAST LAT Offline Software
Workshop - SLAC, Jan. 16-19, 2001
Cal Output
======================================
GlastRecon Tuple
======================================
calorimeter-------------------CsI_Energy_Sum
CsI_eLayer1
0.00978723
CsI_eLayer2
0.00873592
CsI_eLayer3
0.00918648
CsI_eLayer4
0.00803505
CsI_eLayer5
0.0120401
CsI_eLayer6
0.0048811
CsI_eLayer7
0.010363
CsI_eLayer8
0.0128661
CsI_Etop_Sum
0.00978723
CsI_Ebot_Sum
0.0128661
CsI_No_Xtals
8
CsI_No_Xtals_Trunc
8
CsI_No_Xtals_keep
7
CsI_Rsq_mean
58.9447
CsI_D3Mean
4.29096
CsI_E_moment
CsI_E_disp
Ian Gable
0.0758949
-0.0483355
0.138293
CsI_X
-47.6268
CsI_Y
-2.52108
CsI_Z
-25.8678
3
GLAST LAT Offline Software
Workshop - SLAC, Jan. 16-19, 2001
Tracker Status
Migration of tracker reconstruction progress
– Tracker successfully migrated over to Gaudi into new package called
TkrRecon
– Required significant reworking of the data objects to make them TDS
objects.
– Went much more smoothly and more quickly then Cal because of the
experience gained.
Ian Gable
4
GLAST LAT Offline Software
Workshop - SLAC, Jan. 16-19, 2001
Algorithm
StatusCode CalRecoAlg::execute() {
StatusCode sc = StatusCode::SUCCESS;
MsgStream log( msgSvc(), name() );
log << MSG::INFO << "execute" << endreq;
// get the CsiData object from the TDS by a converter
SmartDataPtr<TdCsIData> csi(eventSvc(), "/Event/Raw/TdCsIDatas");
// see what is there
csi->printOn(std::cout);
// create the CalRecon object from the reconstrution package and pass data to it.
m_recon->clear();
m_recon->reconstruct(csi);
// print out the tuple
m_recon->accept(PrintReconData(std::cout));
// fill the tuple and print the line
m_summary->tuple()->fill();
std::cout << *(m_summary->tuple());
return sc;
}
Ian Gable
5
GLAST LAT Offline Software
Workshop - SLAC, Jan. 16-19, 2001
Where we Stand
•
Creating Gaudi ‘Algorithms’ has now become a routine operation.
•
Creating and loading of TDS objects now also routine.
•
The use of Gaudi NTupleSvc and the production of regular ROOT NTuples is
now “wicked close” (very close)
– Created a new class which plugs into the old SummaryData template
class.
Ian Gable
6