/**CbmMuchNewSignal.cxx * @class CbmMuchNewSignal **@author Vikas Singhal **@since 17/05/16 **@version 1.0 **@brief Data class for an analog signal in the MUCH ** Simple data class used in the digitisation process of the MUCH. It describes ** an analog charge distribution produced in the MUCH GEM Detector and arriving at the ** readout. It contains time and charge information corresponding to the MUCH Pad. ** In the most general case, a signal can be produced by more than one ** MCPoint; that is why the MC reference is of type CbmMatch and not CbmLink. ** ** ** **/ #include "CbmMuchDigi.h" #include "CbmMuchAddress.h" #include "CbmMuchDigiMatch.h" #include "CbmMuchNewSignal.h" #include "TMath.h" #include "TRandom.h" #include using namespace std; /* CbmMuchNewSignal::CbmMuchNewSignal(CbmMuchNewSignal* signal) : TObject(), fAddress(signal->fAddress), fTimeStart(signal->fTimeStart), fTimeStop(signal->fTimeStop), fSignalShape(signal->fSignalShape) { } CbmMuchNewSignal::CbmMuchNewSignal(const CbmMuchNewSignal& rhs) : TObject(), fAddress(rhs.fAddress), fTimeStart(rhs.fTimeStart), fTimeStop(rhs.fTimeStop), fSignalShape(rhs.fSignalShape), fMatch(rhs.fMatch) { } CbmMuchNewSignal& CbmMuchNewSignal::operator=(const CbmMuchNewSignal& rhs) { if (this != &rhs) { TObject::operator=(rhs); fAddress = rhs.fAddress; fTimeStop = rhs.fTimeStop; fTimeStart = rhs.fTimeStart; fSignalShape = rhs.fSignalShape; fMatch = rhs.fMatch; } return *this; } */ void CbmMuchNewSignal::MakeSignalShape(UInt_t charge, TArrayD shape) { Int_t bin0 = 0; //Int_t((fT0)/gkResponseBin); Int_t nbins = bin0+shape.GetSize(); if (fSignalShape.GetSize() signal->GetTimeStart() ) fTimeStart = signal->GetTimeStart(); if ( fTimeStop < signal->GetTimeStop() ) fTimeStop = signal->GetTimeStop(); // Here implement adding of elements to the map // If entry with starttime already exists add the charge, // if not create an entry with time as index and charge as value /* TArrayD SecondSignalShape = signal->GetSignalShape(); fSignalShape.Set(fSignalShape.GetSize()+StopDiff); //std::cout<<"MergeSignal called and size of fSignalShape "<Gaus()); } } Int_t CbmMuchNewSignal::GetMaxCharge(){ Int_t max_charge = -1; for (Int_t i=0;imax_charge) max_charge = charge; } return max_charge; } Int_t CbmMuchNewSignal::GetTimeStamp(Int_t threshold){ //Int_t threshold = 10000; Int_t bin1 = -1; for (Int_t i=0;ithreshold) { bin1 = i; // return fTimeStart+bin1*gkResponseBin; return fTimeStart+bin1; } } return -1; } // ------------------------------------------------------------------------- ClassImp(CbmMuchNewSignal)