Go to the documentation of this file.
26 if (channel == -1 || channel ==
fNofChannels)
return kFALSE;
32 if (!
IsActive(channel))
return kFALSE;
35 assert(time >=
fStatus[channel].second);
43 if (time -
fStatus[channel].second > deltaT) {
56 vector<CbmStsCluster>& output,
59 UShort_t channelOffset,
60 Double_t timeCutSigma,
81 Bool_t result = kTRUE;
82 for (
auto data : input) {
83 UShort_t channel = data.first->GetChannel();
84 assert(channel >= channelOffset);
85 channel -= channelOffset;
86 result =
ProcessDigi(channel, data.first->GetTime(), data.second);
91 for (UShort_t channel = 0; channel < nChannels; channel++) {
107 Short_t start = channel;
108 Short_t stop = channel;
124 Short_t iChannel = start;
130 if (iChannel == stop)
break;
135 fOutput->push_back(std::move(cluster));
162 fStatus[channel].first = index;
163 fStatus[channel].second = time;
Data class for STS clusters.
const CbmStsParModule * fModPar
void CreateCluster(UShort_t channel)
Create a cluster from an active channel.
std::vector< CbmStsCluster > * fOutput
Pointer to output vector.
Long64_t Exec(const std::vector< InputData > &input, std::vector< CbmStsCluster > &output, UInt_t address, UShort_t nChannels, UShort_t channelOffset, Double_t timeCutSigma, Double_t timeCutAbs, Bool_t connectEdge, const CbmStsParModule *modPar)
Algorithm execution.
Double_t fTimeCutSig
Time cut in multiples of error.
Bool_t IsActive(Short_t channel)
Check for a channel being active.
CbmStsAlgoFindClusters::InputData InputData
std::pair< const CbmStsDigi *, Long64_t > InputData
Typedef for input data.
const CbmStsParAsic & GetParAsic(UInt_t channel) const
ASIC parameters for a given channel.
Parameters for one STS module.
Short_t ChanRight(UShort_t channel)
Number of right neighbour channel.
UInt_t fAddress
Unique module address for clusters.
Short_t ChanLeft(UShort_t channel)
Number of left neighbour channel.
void SetAddress(Int_t address)
UShort_t fNofChannels
Number of channels.
Double_t fTimeCutAbs
Absolute time cut [ns].
std::vector< std::pair< Long64_t, Double_t > > fStatus
Status buffer.
Data class for STS clusters.
Bool_t CheckChannel(Short_t channel, Double_t time)
Check for a matching digi in a given channel.
UShort_t fChannelOffset
Number of first channel.
Bool_t fConnectEdge
Connect last and first channel.
Bool_t ProcessDigi(UShort_t channel, Double_t time, Int_t index)
Process one input digi.
Double_t GetTimeResol() const
Time resolution.