7 RecEmcFractionMap::const_iterator cit;
24 vector<RecEmcEnergy> eVec;
25 vector<RecEmcEnergy>::const_iterator ciVec;
27 tmpNearCell.push_back( CellId );
28 tmpNextNearCell.push_back( CellId );
30 cit = aShower.
Find( CellId );
32 e1 = ( cit->second.getEnergy() ) * ( cit->second.getFraction() );
33 e9 += ( cit->second.getEnergy() ) * ( cit->second.getFraction() );
34 e25 += ( cit->second.getEnergy() ) * ( cit->second.getFraction() );
37 for ( pNearCell = NearCell.begin(); pNearCell != NearCell.end(); pNearCell++ )
39 cit = aShower.
Find( *pNearCell );
40 if ( cit != aShower.
End() )
42 tmpNearCell.push_back( *pNearCell );
43 tmpNextNearCell.push_back( *pNearCell );
44 e9 += cit->second.getEnergy() * cit->second.getFraction();
45 e25 += cit->second.getEnergy() * cit->second.getFraction();
50 for ( pNextNearCell = NextNearCell.begin(); pNextNearCell != NextNearCell.end();
53 cit = aShower.
Find( *pNextNearCell );
54 if ( cit != aShower.
End() )
56 tmpNextNearCell.push_back( *pNextNearCell );
57 e25 += cit->second.getEnergy() * cit->second.getFraction();
62 for ( cit = aShower.
Begin(); cit != aShower.
End(); ++cit )
64 eall += ( cit->second.getEnergy() ) * ( cit->second.getFraction() );
65 eVec.push_back( cit->second.getEnergy() * cit->second.getFraction() );
71 nHit = (int)( Para.
HitNb( 0 ) * log( Para.
HitNb( 1 ) * e9 + Para.
HitNb( 2 ) ) );
75 sort( eVec.begin(), eVec.end(), greater<RecEmcEnergy>() );
77 for ( ciVec = eVec.begin(); ciVec != eVec.end(); ciVec++ )
91 if ( getthetaid > 21 ) getthetaid = 43 - getthetaid;
92 if ( getmodule == 1 ) getthetaid = getthetaid + 6;
93 double dthetaid = double( getthetaid );
94 double eCorr = Para.
ECorrMC( e25, dthetaid );
98 de1 = Para.
SigE( 0 ) / eCorr;
99 de2 = Para.
SigE( 1 ) / pow( eCorr, 0.25 );
100 de3 = Para.
SigE( 2 );
101 de = sqrt( de1 * de1 + de2 * de2 + de3 * de3 ) * perCent * eCorr;
103 double err = Para.
ErrMC( e25, dthetaid );
104 if ( err > 0 ) de = err * e25;
117 aShower.
EAll( eall );