60 MsgStream log(
msgSvc(), name() );
61 log << MSG::INFO <<
"in initialize()" << endmsg;
66 if ( nt1 ) m_tuple1 = nt1;
69 m_tuple1 =
ntupleSvc()->book(
"FILE1/ec", CLID_ColumnWiseTuple,
"ks N-Tuple example" );
72 status = m_tuple1->addItem(
"ef", m_ef );
73 status = m_tuple1->addItem(
"e5", m_e5 );
74 status = m_tuple1->addItem(
"ec", m_ec );
75 status = m_tuple1->addItem(
"ct", m_ct );
79 log << MSG::ERROR <<
" Cannot book N-tuple:" << long( m_tuple1 ) << endmsg;
80 return StatusCode::FAILURE;
94 double energy, thetaid, peak, peakerr, res, reserr;
96 DataPath = getenv(
"MCCORROOT" );
97 DataPath +=
"/share/evset.txt";
99 in1.open( DataPath.c_str(), ios::in );
101 double ep[18] = { 0.03, 0.04, 0.05, 0.075, 0.1, 0.125, 0.15, 0.2, 0.25,
102 0.3, 0.4, 0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0 };
103 for (
int i = 0; i < 504; i++ )
112 dt->SetPoint( i,
energy, thetaid, peak );
113 dt->SetPointError( i, 0, 0, peakerr );
116 log << MSG::INFO <<
"successfully return from initialize()" << endmsg;
117 return StatusCode::SUCCESS;
123 MsgStream log(
msgSvc(), name() );
124 log << MSG::INFO <<
"in execute()" << endmsg;
126 SmartDataPtr<Event::EventH> eventHeader( eventSvc(),
"/Event" );
129 log << MSG::DEBUG <<
"ncharg, nneu, tottks = " << evtRecEvent->totalCharged() <<
" , "
130 << evtRecEvent->totalNeutral() <<
" , " << evtRecEvent->totalTracks() << endmsg;
134 for (
int i = 0; i < evtRecEvent->totalTracks(); i++ )
138 if ( !( *itTrk )->isEmcShowerValid() )
continue;
141 int intid = emcTrk->
cellId();
145 if ( getthetaid > 21 ) getthetaid = 43 - getthetaid;
146 if ( getmodule == 1 ) getthetaid = getthetaid + 6;
147 double energyF = emcTrk->
energy();
148 double e5x5 = emcTrk->
e5x5();
149 double costheta =
cos( emcTrk->
theta() );
150 double dthetaid = double( getthetaid );
164 return StatusCode::SUCCESS;
177 double Energy5x5 = eg;
178 if ( eg < 0.029 ) eg = 0.029;
179 if ( eg > 1.76 ) eg = 1.76;
180 if ( theid <= 0 ) theid = 0.001;
181 if ( theid >= 27 ) theid = 26.999;
182 Float_t einter = eg + 0.00001;
183 Float_t tinter = theid + 0.0001;
184 double ecor =
dt->Interpolate( einter, tinter );
185 if ( !( ecor ) )
return Energy5x5;
186 if ( ecor < 0.5 )
return Energy5x5;
187 double EnergyCor = Energy5x5 / ecor;