for(int j=0; j<nclusters; j++)
{
+
+
+
if(!list[j].fFlags) continue; //discard single pad clusters
if(list[j].fTotalCharge < fThreshold) continue; //noise cluster
Float_t ftime2=fZErr*fZErr; //fixed given error
+#if UNSORTED
+ fCurrentRow=list[j].fRow;
+#endif
-
-
-
if(fCalcerr) { //calc the errors, otherwice take the fixed error
Int_t patch = AliHLTTPCTransform::GetPatch(fCurrentRow);
UInt_t q2=list[j].fTotalCharge*list[j].fTotalCharge;
void AliHLTTPCClusterFinder::FindClusters(){
fPadArray->FindClusterCandidates();
fPadArray->FindClusters(fMatch);
- AliHLTTPCClusters * clusterlist = new AliHLTTPCClusters[fPadArray->fClusters.size()]; //Clusterlist
+
+ AliClusterData * clusterlist = new AliClusterData[fPadArray->fClusters.size()]; //Clusterlist
for(int i=0;i<fPadArray->fClusters.size();i++){
- clusterlist[i] = fPadArray->fClusters[i];
+ clusterlist[i].fTotalCharge = fPadArray->fClusters[i].fTotalCharge;
+ clusterlist[i].fPad = fPadArray->fClusters[i].fPad;
+ clusterlist[i].fPad2 = fPadArray->fClusters[i].fPad2;
+ clusterlist[i].fTime = fPadArray->fClusters[i].fTime;
+ clusterlist[i].fTime2 = fPadArray->fClusters[i].fTime2;
+ clusterlist[i].fMean = fPadArray->fClusters[i].fMean;
+ clusterlist[i].fFlags = fPadArray->fClusters[i].fFlags;
+ clusterlist[i].fChargeFalling = fPadArray->fClusters[i].fChargeFalling;
+ clusterlist[i].fLastCharge = fPadArray->fClusters[i].fLastCharge;
+ clusterlist[i].fLastMergedPad = fPadArray->fClusters[i].fLastMergedPad;
+ clusterlist[i].fRow = fPadArray->fClusters[i].fRowNumber;
}
WriteClusters(fPadArray->fClusters.size(),clusterlist);
delete [] clusterlist;
Float_t ftime =(Float_t)list[j].fTime / list[j].fTotalCharge;
Float_t ftime2=fZErr*fZErr; //fixed given error
+
if(fCalcerr) { //calc the errors, otherwice take the fixed error
Int_t patch = AliHLTTPCTransform::GetPatch(fCurrentRow);
UInt_t q2=list[j].fTotalCharge*list[j].fTotalCharge;
// or
// visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
+#define UNSORTED 0
+
#include "AliHLTLogging.h"
#include "AliHLTTPCPadArray.h"
class AliHLTTPCSpacePointData;
UInt_t fChargeFalling; //for deconvolution
UInt_t fLastCharge; //for deconvolution
UInt_t fLastMergedPad; //dont merge twice per pad
+ Int_t fRow; //row value
};
typedef struct AliClusterData AliClusterData; //!
while(fDigitReader->Next()){
fRowPadVector[fDigitReader->GetRow()-fFirstRow][fDigitReader->GetPad()]->SetDataSignal(fDigitReader->GetTime(),fDigitReader->GetSignal());
}
-
+ break;
case 1:
while(fDigitReader->Next()){
fRowPadVector[fDigitReader->GetRow()-fFirstRow][fDigitReader->GetPad()]->SetDataSignal(fDigitReader->GetTime(),fDigitReader->GetSignal());
}
+ break;
case 2:
while(fDigitReader->Next()){
fRowPadVector[fDigitReader->GetRow()][fDigitReader->GetPad()]->SetDataSignal(fDigitReader->GetTime(),fDigitReader->GetSignal());
}
+ break;
case 3:
while(fDigitReader->Next()){
fRowPadVector[fDigitReader->GetRow()-27][fDigitReader->GetPad()]->SetDataSignal(fDigitReader->GetTime(),fDigitReader->GetSignal());
}
+ break;
case 4:
while(fDigitReader->Next()){
fRowPadVector[fDigitReader->GetRow()-54][fDigitReader->GetPad()]->SetDataSignal(fDigitReader->GetTime(),fDigitReader->GetSignal());
}
+ break;
case 5:
while(fDigitReader->Next()){
fRowPadVector[fDigitReader->GetRow()-76][fDigitReader->GetPad()]->SetDataSignal(fDigitReader->GetTime(),fDigitReader->GetSignal());
}
+ break;
}
return 0;
}
}
else{
//Code to look for tails, TODO insert flag.
- UInt_t meanTime=tmpCluster.fMean;
+ /* UInt_t meanTime=tmpCluster.fMean;
if(pad>0){
AliHLTTPCPad *tmpBefore=fRowPadVector[row][pad-1];
//checking the fMean -1 timebin for single timebin value in the pad before the cluster
}
}
}
- tmpCluster.fTime= tmpCluster.fTime/tmpCluster.fTotalCharge;
+ */
+ // tmpCluster.fTime= tmpCluster.fTime/tmpCluster.fTotalCharge;
totalChargeOfPreviousCandidate=0;
clusterChargeIsFalling=0;
- tmpCluster.fRowNumber=row;
tmpCluster.fFirstPad=pad;
+ switch (fPatch){
+ case 0:
+ tmpCluster.fRowNumber=row;
+ break;
+ case 1:
+ tmpCluster.fRowNumber=row+30;
+ break;
+ case 2:
+ tmpCluster.fRowNumber=row+63;
+ break;
+ case 3:
+ tmpCluster.fRowNumber=row+90;
+ break;
+ case 4:
+ tmpCluster.fRowNumber=row+117;
+ break;
+ case 5:
+ tmpCluster.fRowNumber=row+139;
+ break;
+ }
fClusters.push_back(tmpCluster);
}