31 if (channel == -1 || channel ==
fNofChannels)
return kFALSE;
37 if (!
IsActive(channel))
return kFALSE;
40 assert(time >=
fStatus[channel].second);
47 if (time -
fStatus[channel].second > deltaT) {
60 UShort_t nChannels, UShort_t channelOffset, Double_t timeCutSigma,
80 Bool_t result = kTRUE;
81 for (
auto data : input) {
82 UShort_t channel = data.first->GetChannel();
83 assert(channel >= channelOffset);
84 channel -= channelOffset;
85 result =
ProcessDigi(channel, data.first->GetTime(), data.second);
90 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));
161 fStatus[channel].first = index;
162 fStatus[channel].second = time;
CbmStsAlgoFindClusters::InputData InputData
Data class for STS clusters.
void SetAddress(int32_t address)
UShort_t fChannelOffset
Number of first channel.
Double_t fTimeCutSig
Time cut in multiples of error.
Short_t ChanRight(UShort_t channel)
Number of right neighbour channel.
Double_t fTimeCutAbs
Absolute time cut [ns].
UShort_t fNofChannels
Number of channels.
std::vector< std::pair< Long64_t, Double_t > > fStatus
Status buffer.
Bool_t IsActive(Short_t channel)
Check for a channel being active.
UInt_t fAddress
Unique module address for clusters.
std::vector< CbmStsCluster > * fOutput
Pointer to output vector.
Bool_t ProcessDigi(UShort_t channel, Double_t time, Int_t index)
Process one input digi.
Short_t ChanLeft(UShort_t channel)
Number of left neighbour channel.
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.
std::pair< const CbmStsDigi *, Long64_t > InputData
Typedef for input data.
Bool_t fConnectEdge
Connect last and first channel.
const CbmStsParModule * fModPar
void CreateCluster(UShort_t channel)
Create a cluster from an active channel.
Bool_t CheckChannel(Short_t channel, Double_t time)
Check for a matching digi in a given channel.
Data class for STS clusters.
double GetTimeResol() const
Time resolution.
Parameters for one STS module.
const CbmStsParAsic & GetParAsic(uint32_t channel) const
ASIC parameters for a given channel.