00001
00002
00003
00004
00005
00006
00007
00008
00009 #include<iostream>
00010
00011 #include "GaudiKernel/MsgStream.h"
00012 #include "GaudiKernel/IHistogramSvc.h"
00013 #include "GaudiKernel/SmartDataPtr.h"
00014 #include "GaudiKernel/INTupleSvc.h"
00015
00016 #include "MucCalibAlg/MucCalibAlg.h"
00017
00018 using namespace std;
00019
00020
00021 MucCalibAlg::MucCalibAlg(const std::string& name, ISvcLocator* pSvcLocator) :
00022 Algorithm(name, pSvcLocator),
00023 m_vJobInfo(0),
00024 m_vConfigInfo(0),
00025 m_sOutputFile("MucCalibConst.root")
00026 {
00027
00028 declareProperty("JobInfo", m_vJobInfo);
00029 declareProperty("ConfigInfo", m_vConfigInfo);
00030 declareProperty("Output" , m_sOutputFile);
00031 }
00032
00033
00034 StatusCode MucCalibAlg::initialize()
00035 {
00036 MsgStream log(msgSvc(), name());
00037 log << MSG::INFO << endreq << "In initialize() " << endreq;
00038 std::string recMode[3]={"ExtTrk","SlfTrk","Combine"};
00039 log << MSG::INFO << " InputTag = " << m_vJobInfo[4] << endreq;
00040 log << MSG::INFO << " RecMode = " << recMode[m_vConfigInfo[0]] << endreq;
00041 log << MSG::INFO << " UsePad = " << m_vConfigInfo[1] << endreq;
00042 log << MSG::INFO << " EffWindow = " << m_vConfigInfo[2] << endreq;
00043 log << MSG::INFO << " ClstMode = " << m_vConfigInfo[3] << endreq;
00044 log << MSG::INFO << " ClstSave = " << m_vConfigInfo[4] << endreq;
00045 log << MSG::INFO << " CheckEvent = " << (m_vConfigInfo[5]?"Yes":"No") << endreq;
00046 log << MSG::INFO << " DimuSelect = " << (m_vConfigInfo[6]?"Yes":"No") << endreq;
00047 log << MSG::INFO << " DimuOnly = " << (m_vConfigInfo[7]?"Yes":"No") << endreq;
00048
00049
00050 m_pMucCalibMgr = new MucCalibMgr( m_vJobInfo, m_vConfigInfo, m_sOutputFile );
00051
00052 return StatusCode::SUCCESS;
00053 }
00054
00055
00056 StatusCode MucCalibAlg::execute()
00057 {
00058 MsgStream log(msgSvc(), name());
00059 log << MSG::INFO << endreq << "In execute()" << endreq;
00060 StatusCode sc = StatusCode::FAILURE;
00061
00062 m_pMucCalibMgr->ReadEvent();
00063 if( m_vConfigInfo[5] == 1 ) m_pMucCalibMgr->CheckEvent();
00064 m_pMucCalibMgr->FillEvent();
00065
00066 return StatusCode::SUCCESS;
00067 }
00068
00069
00070 StatusCode MucCalibAlg::finalize()
00071 {
00072 MsgStream log(msgSvc(), name());
00073 log << MSG::INFO << endreq << "In finalize()" << endreq << endreq;
00074 m_pMucCalibMgr->AnalyseEffAndNoise();
00075
00076 m_pMucCalibMgr->AnalyseRes();
00077
00078 m_pMucCalibMgr->SaveConst();
00079
00080 m_pMucCalibMgr->EndRun();
00081
00082 log << MSG::INFO << endreq << "MucCalibAlg finalizes successfully!" << endreq << endreq;
00083 return StatusCode::SUCCESS;
00084 }
00085
00086
00087