#include "AliITSMap.h"
#include "AliITSgeomTGeo.h"
#include <TParticle.h>
+#include <TArrayI.h>
#include "AliMC.h"
#include "AliLog.h"
+using std::endl;
+
ClassImp(AliITSClusterFinder)
extern AliRun *gAlice;
fZmin(0),
fZmax(0),
fXmin(0),
-fXmax(0){
+fXmax(0),
+fNClusters(0),
+fRawID2ClusID(0)
+{
// default cluster finder
// Input:
// none.
// none.
// Return:
// A default constructed AliITSCulsterFinder
+ for(Int_t i=0; i<2200; i++){
+ fNdet[i]=0;
+ fNlayer[i]=0;
+ }
}
//----------------------------------------------------------------------
AliITSClusterFinder::AliITSClusterFinder(AliITSDetTypeRec* dettyp):
fZmin(0),
fZmax(0),
fXmin(0),
-fXmax(0){
+fXmax(0),
+fNClusters(0),
+fRawID2ClusID(0)
+{
// default cluster finder
// Standard constructor for cluster finder
// Input:
// none.
// Return:
// A Standard constructed AliITSCulsterFinder
-
+ for(Int_t i=0; i<2200; i++){
+ fNdet[i]=0;
+ fNlayer[i]=0;
+ }
}
//----------------------------------------------------------------------
AliITSClusterFinder::AliITSClusterFinder(AliITSDetTypeRec* dettyp,
fZmin(0),
fZmax(0),
fXmin(0),
-fXmax(0){
+fXmax(0),
+fNClusters(0),
+fRawID2ClusID(0)
+{
// default cluster finder
// Standard + cluster finder constructor
// Input:
// Return:
// A Standard constructed AliITSCulsterFinder
- fNdigits = fDigits->GetEntriesFast();
+ fNdigits = fDigits->GetEntriesFast();
+ for(Int_t i=0; i<2200; i++){
+ fNdet[i]=0;
+ fNlayer[i]=0;
+ }
}
//______________________________________________________________________
fZmin(source.fZmin),
fZmax(source.fZmax),
fXmin(source.fXmin),
- fXmax(source.fXmax)
+ fXmax(source.fXmax),
+ fNClusters(source.fNClusters),
+ fRawID2ClusID(source.fRawID2ClusID)
{
// Copy constructor
// Copies are not allowed. The method is protected to avoid misuse.
c.SetSigmaZ2(c.GetSigmaZ2()+j*j*q);
bins[k].SetMask(0xFFFFFFFE);
-
+ if (fRawID2ClusID) { // RS: Register cluster id in raw words list
+ int rwid = bins[k].GetRawID();
+ if (fRawID2ClusID->GetSize()<=rwid) fRawID2ClusID->Set( (rwid+10)<<1 );
+ (*fRawID2ClusID)[rwid] = fNClusters+1; // RS: store clID+1 as a reference to the cluster
+ }
if (bins[k-max].GetMask() == m) MakeCluster(k-max,max,bins,m,c);
if (bins[k-1 ].GetMask() == m) MakeCluster(k-1 ,max,bins,m,c);
if (bins[k+max].GetMask() == m) MakeCluster(k+max,max,bins,m,c);