5#include "CalibData/Mdc/MdcCalStruct.h"
6#include "CalibData/Mdc/MdcCalibData.h"
7#include "CalibDataSvc/IInstrumentName.h"
8#include "GaudiKernel/MsgStream.h"
10#include "TBufferFile.h"
11#include "TDirectory.h"
17#include "GaudiKernel/DataObject.h"
18#include "GaudiKernel/GenericAddress.h"
19#include "GaudiKernel/IAddressCreator.h"
20#include "GaudiKernel/IConversionSvc.h"
21#include "GaudiKernel/IDataProviderSvc.h"
22#include "GaudiKernel/IOpaqueAddress.h"
24#include "CalibDataSvc/ICalibMetaCnvSvc.h"
25#include "CalibDataSvc/ICalibRootSvc.h"
28#include "CalibData/CalibModel.h"
41 DataObject*& refpObject ) {
43 MsgStream log(
msgSvc(),
"RootMdcCalibDataCnv" );
44 log << MSG::DEBUG <<
"SetProperty" << endmsg;
47 if ( !sc ) { log << MSG::ERROR <<
"unable to open files" << endmsg; }
56 TTree* xttree = (TTree*)
m_inFile->Get(
"XtTree" );
57 xttree->SetBranchAddress(
"xtpar", &xtpar );
58 xttree->SetBranchAddress(
"xtkey", &xtkey );
62 xttree->GetEntry( i );
68 if ( NULL !=
m_inFile->Get(
"trNewXt00_00_0" ) )
70 for (
int layid = 0; layid < 43; layid++ )
72 for (
int entr = 0; entr < 18; entr++ )
74 for (
int lr = 0; lr < 2; lr++ )
76 char newXtTreeName[20];
77 sprintf( newXtTreeName,
"trNewXt%02d_%02d_%d", layid, entr, lr );
78 TTree* newXtTree = ( (TTree*)
m_inFile->Get( newXtTreeName ) );
79 newXtTree->SetCacheSize(10000000);
80 if ( !newXtTree )
break;
81 newXtTrees.Add( newXtTree->CloneTree() );
85 if ( ( 43 * 18 * 2 ) == newXtTrees.GetEntries() ) tmpObject->
setNewXtpar( &newXtTrees );
90 if ( NULL !=
m_inFile->Get(
"r2t00" ) )
92 for (
int layid = 0; layid < 43; layid++ )
95 sprintf( r2tTreeName,
"r2t%02d", layid );
96 TTree* r2tTree = ( (TTree*)
m_inFile->Get( r2tTreeName ) );
97 if ( !r2tTree )
break;
99 r2tTree->SetCacheSize( 2500 );
100 r2tTrees.Add( r2tTree->CloneTree() );
102 if ( 43 == r2tTrees.GetEntries() ) tmpObject->
setR2tpar( &r2tTrees );
108 TTree* t0tree = (TTree*)
m_inFile->Get(
"T0Tree" );
109 t0tree->SetBranchAddress(
"t0", &t0 );
110 t0tree->SetBranchAddress(
"delt0", &delt0 );
114 t0tree->GetEntry( i );
115 tmpObject->
setT0( t0 );
122 TTree* qttree = (TTree*)
m_inFile->Get(
"QtTree" );
123 qttree->SetBranchAddress(
"qtpar0", &qtpar0 );
124 qttree->SetBranchAddress(
"qtpar1", &qtpar1 );
128 qttree->GetEntry( i );
136 TTree* sdtree = (TTree*)
m_inFile->Get(
"SdTree" );
137 sdtree->SetBranchAddress(
"sdpar", &sdpar );
138 sdtree->SetBranchAddress(
"sdkey", &sdkey );
143 sdtree->GetEntry( i );
144 tmpObject->
setSdpar( sdkey, sdpar );
147 refpObject = tmpObject;
148 return StatusCode::SUCCESS;
154 MsgStream log(
msgSvc(),
"RootMdcCalibDataCnv" );
157 if ( !sc ) { log << MSG::ERROR <<
"unable to open files" << endmsg; }
170 TTree* xttree =
new TTree(
"XtTree",
"XtTree" );
171 xttree->Branch(
"xtkey", &
key,
"key/I" );
172 xttree->Branch(
"xtpar", &xtpar,
"xtpar/D" );
196 TTree* t0tree =
new TTree(
"T0Tree",
"T0Tree" );
197 t0tree->Branch(
"t0", &t0,
"t0/D" );
198 t0tree->Branch(
"delt0", &delt0,
"delt0/D" );
200 for ( i = 0; i < tmpNo; i++ )
202 t0 = tmpObject->
getT0( i );
208 TTree* qttree =
new TTree(
"QtTree",
"QtTree" );
209 qttree->Branch(
"qtpar0", &( qtpar[0] ),
"qtpar0/D" );
210 qttree->Branch(
"qtpar1", &( qtpar[1] ),
"qtpar1/D" );
212 for ( i = 0; i < tmpNo; i++ )
220 TTree* sdtree =
new TTree(
"SdTree",
"SdTree" );
221 sdtree->Branch(
"sdkey", &
key,
"key/I" );
222 sdtree->Branch(
"sdpar", &sdpar,
"sdpar/D" );
237 log << MSG::INFO <<
"successfully create RootFile" << endmsg;
const CLID CLID_Calib_MdcCal
sprintf(cut, "kal_costheta0_em>-0.93&&kal_costheta0_em<0.93&&kal_pxy0_em>=0.05+%d*0.1&&kal_" "pxy0_em<0.15+%d*0.1&&NGch>=2", j, j)
*************DOUBLE PRECISION m_pi *DOUBLE PRECISION m_HvecTau2 DOUBLE PRECISION m_HvClone2 DOUBLE PRECISION m_gamma1 DOUBLE PRECISION m_gamma2 DOUBLE PRECISION m_thet1 DOUBLE PRECISION m_thet2 INTEGER m_IFPHOT *COMMON c_Taupair $ !Spin Polarimeter vector first Tau $ !Spin Polarimeter vector second Tau $ !Clone Spin Polarimeter vector first Tau $ !Clone Spin Polarimeter vector second Tau $ !Random Euler angle for cloning st tau $ !Random Euler angle for cloning st tau $ !Random Euler angle for cloning st tau $ !Random Euler angle for cloning nd tau $ !Random Euler angle for cloning nd tau $ !Random Euler angle for cloning nd tau $ !phi of HvecTau1 $ !theta of HvecTau1 $ !phi of HvecTau2 $ !theta of HvecTau2 $ !super key
void setR2tpar(TObjArray *r2tTrees)
void setQtpar1(double val)
void setXtpar(int xtkey, double val)
void setNewXtpar(TObjArray *newXtTrees)
int getNextXtpar(int &key, double &xtpar)
double getQtpar0(int layid)
double getDelT0(int wireid)
void setSdpar(int sdkey, double val)
void setDelT0(double val)
int getNextSdpar(int &key, double &sdpar)
void setQtpar0(double val)
double getQtpar1(int layid)
StatusCode openRead(const std::string &fname)
RootCalBaseCnv(ISvcLocator *svc, const CLID &clid)
virtual StatusCode openWrite(const std::string &fname)
const CLID & objType() const
virtual StatusCode createRoot(const std::string &fname, CalibData::CalibBase1 *pTDSObj)
virtual StatusCode i_createObj(const std::string &fname, DataObject *&refpObject)
static const CLID & classID()
RootMdcCalibDataCnv(ISvcLocator *svc)