--- DarthVader/CalorimeterLevel2/src/CaloLevel2.cpp 2007/11/23 16:42:34 1.15 +++ DarthVader/CalorimeterLevel2/src/CaloLevel2.cpp 2014/10/15 12:06:21 1.20 @@ -99,6 +99,17 @@ void CaloLevel2::Set(){//ELENA if(!CaloTrk)CaloTrk = new TClonesArray("CaloTrkVar",1); //ELENA }//ELENA +//-------------------------------------- +// +// +//-------------------------------------- +void CaloLevel2::SetTrackArray(TClonesArray *track){//ELENA +// if(track && strcmp(track->GetClass()->GetName(),"CaloTrkVar")==0){ + if(track ){ + if(CaloTrk)CaloTrk->Clear("C"); + CaloTrk = track; + } +} /** * Clear the CaloLevel2 object @@ -109,6 +120,7 @@ if(CaloTrk)CaloTrk->Delete(); //ELENA // nstrip = 0; + nsatstrip = 0; qtot = 0.; // impx = 0.; // impy = 0.; @@ -146,6 +158,35 @@ } //ELENA /** + * CaloLevel2 +**/ +Bool_t CaloLevel2::IsGood(Bool_t strict) { + // + if ( strict ){ + if ( !good ) return(false); + if ( perr[0] ) return(false); + if ( perr[1] ) return(false); + if ( perr[2] ) return(false); + if ( perr[3] ) return(false); + if ( swerr[0] ) return(false); + if ( swerr[1] ) return(false); + if ( swerr[2] ) return(false); + if ( swerr[3] ) return(false); + if ( crc[0] ) return(false); + if ( crc[1] ) return(false); + if ( crc[2] ) return(false); + if ( crc[3] ) return(false); + } else { + if ( perr[0] == 129 || perr[0] == 136 || perr[0] == 142 || perr[0] == 143 ) return(false); + if ( perr[1] == 129 || perr[1] == 136 || perr[1] == 142 || perr[1] == 143 ) return(false); + if ( perr[2] == 129 || perr[2] == 136 || perr[2] == 142 || perr[2] == 143 ) return(false); + if ( perr[3] == 129 || perr[3] == 136 || perr[3] == 142 || perr[3] == 143 ) return(false); + }; + // + return(true); +} + +/** * Fills a struct cCaloLevel2 with values from a CaloLevel2 object (to put data into a F77 common). */ void CaloLevel2::GetLevel2Struct(cCaloLevel2 *l2) const { @@ -261,7 +302,8 @@ **/ void CaloLevel2::GetElectronEnergy(Float_t &energy, Float_t &sigma){ if ( nstrip == 0 ) return; - energy = qtot * 40.82 * 0.000106; + energy = qtot / 260.; + // energy = qtot * 40.82 * 0.000106; sigma = 0.; if ( energy > 0. ) sigma = energy * (0.01183 + 0.121/sqrt(energy)); return;