fDataSignals(NULL),
fSignalPositionArray(NULL),
fSizeOfSignalPositionArray(0),
- fNGoodSignalsSent(0)
+ fNGoodSignalsSent(0),
+ fCandidateDigitsVector()
{
// see header file for class documentation
// or
}
-AliHLTTPCPad::AliHLTTPCPad(Int_t dummy)
+AliHLTTPCPad::AliHLTTPCPad(Int_t /*dummy*/)
:
fClusterCandidates(),
fUsedClusterCandidates(),
fDataSignals(NULL),
fSignalPositionArray(NULL),
fSizeOfSignalPositionArray(0),
- fNGoodSignalsSent(0)
+ fNGoodSignalsSent(0),
+ fCandidateDigitsVector()
{
// see header file for class documentation
// or
// refer to README to build package
// or
// visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
- dummy=0;//to get rid of warning until things are cleaned up better
}
AliHLTTPCPad::AliHLTTPCPad(Int_t offset, Int_t nofBins)
fDataSignals(NULL),
fSignalPositionArray(NULL),
fSizeOfSignalPositionArray(0),
- fNGoodSignalsSent(0)
+ fNGoodSignalsSent(0),
+ fCandidateDigitsVector()
{
// see header file for class documentation
}
void AliHLTTPCPad::ClearCandidates(){
fClusterCandidates.clear();
fUsedClusterCandidates.clear();
+ fCandidateDigitsVector.clear();
}
void AliHLTTPCPad::SetDataToDefault()
break;
}
}
- fNGoodSignalsSent++;
+ // fNGoodSignalsSent++;
return kTRUE;
}
return kFALSE;
return fDataSignals[bin];
}
-void AliHLTTPCPad::ZeroSuppress(Double_t nRMS, Int_t threshold, Int_t reqMinPoint, Int_t beginTime, Int_t endTime, Int_t timebinsLeft, Int_t timebinsRight, Int_t valueUnderAverage){
+void AliHLTTPCPad::ZeroSuppress(Double_t nRMS, Int_t threshold, Int_t reqMinPoint, Int_t beginTime, Int_t endTime, Int_t timebinsLeft, Int_t timebinsRight, Int_t valueUnderAverage, bool speedup){
//see headerfile for documentation
//HLTDebug("In Pad: nRMS=%d, threshold=%d, reqMinPoint=%d, beginTime=%d, endTime=%d, timebinsLeft=%d timebinsRight=%d valueUnderAverage=%d \n",nRMS,threshold,reqMinPoint,beginTime,endTime,timebinsLeft,timebinsRight,valueUnderAverage);
}
Int_t fThresholdUsed=threshold;
-
+
+ Int_t maxVal=0;
Int_t nAdded=0;
Int_t sumNAdded=0;
fSizeOfSignalPositionArray=0;
if(fDataSignals[i]>0){
nAdded++;
sumNAdded+=fDataSignals[i]*fDataSignals[i];
+ if (maxVal<fDataSignals[i]) maxVal=fDataSignals[i];
}
}
}
if(fDataSignals[i]>0){
nAdded++;
sumNAdded+=fDataSignals[i];
+ if (maxVal<fDataSignals[i]) maxVal=fDataSignals[i];
}
}
}
else{
fThresholdUsed = (Int_t)(averageValue + threshold);
}
+ if (maxVal<fThresholdUsed) return;
// Do zero suppression on the adc values within [beginTime,endTime](add the good values)
for(Int_t i=beginTime;i<endTime;i++){
fDataSignals[t]=(AliHLTTPCSignal_t)(fDataSignals[t]-averageValue + valueUnderAverage);
fSignalPositionArray[fSizeOfSignalPositionArray]=t;
fSizeOfSignalPositionArray++;
+ // Matthias Oct 10 2008: trying hard to make the code faster for the
+ // AltroChannelSelection. For that we only need to know there is data
+ if (speedup) return;
}
i+=lastSignalTime;
}
}
}
-void AliHLTTPCPad::AddClusterCandidate(AliHLTTPCClusters candidate){
+void AliHLTTPCPad::AddClusterCandidate(const AliHLTTPCClusters& candidate){
fClusterCandidates.push_back(candidate);
fUsedClusterCandidates.push_back(0);
}
+
+void AliHLTTPCPad::AddCandidateDigits(const vector<AliHLTTPCDigitData>& candidateDigits){
+ fCandidateDigitsVector.push_back(candidateDigits);
+}
+
+vector<AliHLTTPCDigitData> *AliHLTTPCPad::GetCandidateDigits(Int_t candidateIndex){
+ return (size_t(candidateIndex) < fCandidateDigitsVector.size()) ? &fCandidateDigitsVector.at(candidateIndex) :0;
+}