CMS 3D CMS Logo

Public Member Functions | Private Attributes

EcalRecHitSimpleAlgo Class Reference

#include <EcalRecHitSimpleAlgo.h>

Inheritance diagram for EcalRecHitSimpleAlgo:
EcalRecHitAbsAlgo

List of all members.

Public Member Functions

 EcalRecHitSimpleAlgo ()
virtual EcalRecHit makeRecHit (const EcalUncalibratedRecHit &uncalibRH, const float &intercalibConstant, const float &timeIntercalib=0, const uint32_t &flags=0) const
 Compute parameters.
virtual void setADCToGeVConstant (const float &value)
 Constructor.
virtual ~EcalRecHitSimpleAlgo ()

Private Attributes

float adcToGeVConstant_
bool adcToGeVConstantIsSet_

Detailed Description

Simple algoritm to make rechits from uncalibrated rechits

Id:
EcalRecHitSimpleAlgo.h,v 1.17 2012/02/17 21:28:12 franzoni Exp
Date:
2012/02/17 21:28:12
Revision:
1.17
Author:
Shahram Rahatlou, University of Rome & INFN, March 2006

Simple algoritm to make rechits from uncalibrated rechits

Id:
EcalRecHitWorkerSimple.h,v 1.11 2012/02/17 15:08:08 argiro Exp
Date:
2012/02/17 15:08:08
Revision:
1.11
Author:
Shahram Rahatlou, University of Rome & INFN, March 2006

Definition at line 18 of file EcalRecHitSimpleAlgo.h.


Constructor & Destructor Documentation

EcalRecHitSimpleAlgo::EcalRecHitSimpleAlgo ( ) [inline]

Definition at line 21 of file EcalRecHitSimpleAlgo.h.

References adcToGeVConstant_, and adcToGeVConstantIsSet_.

virtual EcalRecHitSimpleAlgo::~EcalRecHitSimpleAlgo ( ) [inline, virtual]

Definition at line 33 of file EcalRecHitSimpleAlgo.h.

{ };

Member Function Documentation

virtual EcalRecHit EcalRecHitSimpleAlgo::makeRecHit ( const EcalUncalibratedRecHit uncalibRH,
const float &  intercalibConstant,
const float &  timeIntercalib = 0,
const uint32_t &  flags = 0 
) const [inline, virtual]

Compute parameters.

Implements EcalRecHitAbsAlgo.

Definition at line 36 of file EcalRecHitSimpleAlgo.h.

References adcToGeVConstant_, adcToGeVConstantIsSet_, EcalUncalibratedRecHit::amplitude(), EcalUncalibratedRecHit::checkFlag(), EcalUncalibratedRecHit::chi2(), gather_cfg::cout, relval_parameters_module::energy, EcalUncalibratedRecHit::id(), EcalUncalibratedRecHit::isSaturated(), EcalUncalibratedRecHit::jitter(), EcalUncalibratedRecHit::jitterErrorBits(), EcalRecHit::kGood, EcalRecHit::kHasSwitchToGain1, EcalUncalibratedRecHit::kHasSwitchToGain1, EcalUncalibratedRecHit::kHasSwitchToGain6, EcalRecHit::kHasSwitchToGain6, EcalRecHit::kLeadingEdgeRecovered, EcalUncalibratedRecHit::kLeadingEdgeRecovered, EcalRecHit::kOutOfTime, EcalUncalibratedRecHit::kOutOfTime, EcalUncalibratedRecHit::kPoorReco, EcalRecHit::kPoorReco, EcalRecHit::kSaturated, EcalUncalibratedRecHit::kSaturated, EcalUncalibratedRecHit::outOfTimeChi2(), EcalUncalibratedRecHit::outOfTimeEnergy(), EcalRecHit::setChi2(), and cond::rpcobgas::time.

Referenced by EcalRecHitWorkerSimple::run().

                                                                 {

    if(!adcToGeVConstantIsSet_) {
      std::cout << "EcalRecHitSimpleAlgo::makeRecHit: adcToGeVConstant_ not set before calling this method!" << 
                   " will use -1 and produce bogus rechits!" << std::endl;
    }

    float clockToNsConstant = 25;
    float energy = uncalibRH.amplitude()*adcToGeVConstant_*intercalibConstant;
    float time   = uncalibRH.jitter() * clockToNsConstant + timeIntercalib;

    EcalRecHit rh( uncalibRH.id(), energy, time );
    rh.setChi2( uncalibRH.chi2() );
    rh.setOutOfTimeEnergy( uncalibRH.outOfTimeEnergy() * adcToGeVConstant_ * intercalibConstant );
    rh.setOutOfTimeChi2( uncalibRH.outOfTimeChi2() );
    rh.setTimeError(uncalibRH.jitterErrorBits());

    // Now fill flags

    bool good=true;
    
    if ( uncalibRH.checkFlag(EcalUncalibratedRecHit::kLeadingEdgeRecovered) ){
            rh.setFlag(EcalRecHit::kLeadingEdgeRecovered);
            good=false; 
    } 
    if ( uncalibRH.checkFlag(EcalUncalibratedRecHit::kSaturated) ) { 
            // leading edge recovery failed - still keep the information 
            // about the saturation and do not flag as dead 
            rh.setFlag(EcalRecHit::kSaturated); 
            good=false;
    } 
    if( uncalibRH.isSaturated() ) {
            rh.setFlag(EcalRecHit::kSaturated);
            good=false;
    } 
    if ( uncalibRH.checkFlag(EcalUncalibratedRecHit::kOutOfTime) ) {
            rh.setFlag(EcalRecHit::kOutOfTime) ;
            good=false;   
    } 
    if ( uncalibRH.checkFlag(EcalUncalibratedRecHit::kPoorReco) ) {
            rh.setFlag(EcalRecHit::kPoorReco);
            good=false;
    }
    if ( uncalibRH.checkFlag( EcalUncalibratedRecHit::kHasSwitchToGain6 ) ) {
            rh.setFlag(EcalRecHit::kHasSwitchToGain6);
    }
    if (uncalibRH.checkFlag( EcalUncalibratedRecHit::kHasSwitchToGain1 ) ) {
            rh.setFlag(EcalRecHit::kHasSwitchToGain1);
    }
    
    if (good) rh.setFlag(EcalRecHit::kGood);
    return rh;
  }
virtual void EcalRecHitSimpleAlgo::setADCToGeVConstant ( const float &  value) [inline, virtual]

Constructor.

Destructor make rechits from dataframes

Implements EcalRecHitAbsAlgo.

Definition at line 26 of file EcalRecHitSimpleAlgo.h.

References adcToGeVConstant_, adcToGeVConstantIsSet_, and relativeConstraints::value.

Referenced by EcalRecHitWorkerSimple::run().


Member Data Documentation

Definition at line 94 of file EcalRecHitSimpleAlgo.h.

Referenced by EcalRecHitSimpleAlgo(), makeRecHit(), and setADCToGeVConstant().

Definition at line 95 of file EcalRecHitSimpleAlgo.h.

Referenced by EcalRecHitSimpleAlgo(), makeRecHit(), and setADCToGeVConstant().