--- DarthVader/CalorimeterLevel2/src/CaloLevel2.cpp 2007/09/03 08:42:13 1.14 +++ DarthVader/CalorimeterLevel2/src/CaloLevel2.cpp 2008/12/04 13:50:43 1.18 @@ -15,12 +15,13 @@ **/ CaloTrkVar::CaloTrkVar() { this->Clear(); -}; +} /** * Clear variables **/ -void CaloTrkVar::Clear() { +void CaloTrkVar::Clear(Option_t *t) { + //void CaloTrkVar::Clear() { trkseqno = 0; noint = 0; ncore = 0; @@ -91,7 +92,7 @@ // this->Clear(); // -}; +} /** * Create the TClonesArray **/ @@ -102,12 +103,13 @@ /** * Clear the CaloLevel2 object **/ -void CaloLevel2::Clear() { +void CaloLevel2::Clear(Option_t *t ) { // -// CaloTrk->Clear(); //ELENA + // CaloTrk->Clear(); //ELENA if(CaloTrk)CaloTrk->Delete(); //ELENA // nstrip = 0; + nsatstrip = 0; qtot = 0.; // impx = 0.; // impy = 0.; @@ -132,12 +134,12 @@ good = 0; selftrigger = 0; // -}; +} /** * Delete the CaloLevel2 object **/ -void CaloLevel2::Delete() { //ELENA +void CaloLevel2::Delete(Option_t *t) { //ELENA if(CaloTrk){ //ELENA CaloTrk->Delete(); //ELENA delete CaloTrk; //ELENA @@ -145,6 +147,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 { @@ -231,7 +262,7 @@ printf(" Cannot find selftrigger block\n"); }; return(-100.); -}; +} /** * Returns the impact position on the top of the calorimeter as determined by the calorimeter itself. @@ -253,18 +284,19 @@ printf(" Cannot find selftrigger block\n"); }; return(-100.); -}; +} /** * Should return the energy in GeV if the particle would be an electron * using a parametrization taken from Monte Carlo simulation **/ 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; -}; +} /** * Returns pointer to the set of track-related variables "itrk" @@ -307,4 +339,4 @@ }; return c; -}; +}