/** CbmMuchDigi.cxx **@author M.Ryzhinskiy **@since 19.03.07 **@version 1.0 ** **@author Vikas Singhal **@since 17/05/16 **@version 2.0 ** Data class for digital MUCH information ** Data level: RAW ** ** **/ #include "CbmMuchDigi.h" #include "CbmMuchAddress.h" #include "CbmMuchDigiMatch.h" #include CbmMuchDigi::CbmMuchDigi(CbmMuchDigi* digi) : CbmDigi(*digi), fAddress(digi->fAddress), fCharge(digi->fCharge), fTime(digi->fTime) { } CbmMuchDigi::CbmMuchDigi(CbmMuchDigi* digi,CbmMuchDigiMatch* match) : CbmDigi(*digi), fAddress(digi->fAddress), fCharge(digi->fCharge), fTime(digi->fTime) { SetMatch(match); } CbmMuchDigi::CbmMuchDigi(const CbmMuchDigi& rhs) : CbmDigi(rhs), fAddress(rhs.fAddress), fCharge(rhs.fCharge), fTime(rhs.fTime) { } CbmMuchDigi& CbmMuchDigi::operator=(const CbmMuchDigi& rhs) { if (this != &rhs) { CbmDigi::operator=(rhs); fAddress = rhs.fAddress; fCharge = rhs.fCharge; fTime = rhs.fTime; } return *this; } /* // ----- Add charge ---------------------------------------------------- void CbmMuchDigi::AddAdc(Int_t adc) { Int_t newAdc = GetAdc() + adc; SetAdc(newAdc); } // ------------------------------------------------------------------------- */ // ----- Set new charge ------------------------------------------------ void CbmMuchDigi::SetAdc(Int_t adc) { //ADC value should not be more than saturation fCharge=adc; // if Saturation Int_t saturation = (1<<12); //2 ^ 12 - 1; if(fCharge >= saturation){ fCharge=saturation-1; fSaturationFlag=1; } if(fCharge < 0) fCharge=0; } // ------------------------------------------------------------------------- // ------------------------------------------------------------------------- void CbmMuchDigi::SetTime(ULong64_t time) { fTime = time; } // ------------------------------------------------------------------------- // Data class should be least loaded and extra information should not be stored in this. /* void CbmMuchDigi::SetPileUp() { Bool_t pileup =0; //Pick fMatch and look into this to find out how many CbmLink involved fPileUpFlag = pileup; } // void CbmMuchDigi::SetDiffEvent(){ Bool_t diffEvent=1; if (!fPileUpFlag) fDiffEventFlag=fPileUpFlag; else { //Check from fMatch are different Event or Not. fDiffEventFlag = diffEvent; } } */ ClassImp(CbmMuchDigi)