//
// Origin: Iouri Belikov, CERN, Jouri.Belikov@cern.ch
//--------------------------------------------------------------
-#include <Rtypes.h>
+#include <TObject.h>
class TFile;
+class TTree;
class TClonesArray;
-class AliITSgeom;
class AliITSclusterV2;
+class AliRawReader;
+class AliITSRawStream;
-class AliITSclustererV2 {
+class AliITSclustererV2 : public TObject {
public:
- AliITSclustererV2(){ fEvent=0; fI=0; }
- AliITSclustererV2(const AliITSgeom *geom);
+ AliITSclustererV2();
+ AliITSclustererV2(const Char_t *geom);
void SetEvent(Int_t event) { fEvent=event; }
- void Digits2Clusters(const TFile *in, TFile *out);
+ Int_t Digits2Clusters(TTree *in, TTree *out);
+ void Digits2Clusters(AliRawReader* rawReader);
void FindClustersSPD(const TClonesArray *dig, TClonesArray *cls);
+ void FindClustersSPD(AliITSRawStream* input, TClonesArray** clusters);
void FindClustersSDD(const TClonesArray *dig, TClonesArray *cls);
+ void FindClustersSDD(AliITSRawStream* input, TClonesArray** clusters);
void FindClustersSSD(const TClonesArray *dig, TClonesArray *cls);
+ void FindClustersSSD(AliITSRawStream* input, TClonesArray** clusters);
void RecPoints2Clusters(const TClonesArray *p, Int_t idx, TClonesArray *c);
- void Hits2Clusters(const TFile *in, TFile *out);
private:
class Ali1Dcluster {
};
class AliBin {
public:
- AliBin() {fIndex=0; fQ=0; fMask=0xFFFFFFFE;}
+ AliBin():fIndex(0),fMask(0xFFFFFFFE),fQ(0) {}
void SetIndex(UInt_t idx) {fIndex=idx;}
void SetQ(UShort_t q) {fQ=q;}
void SetMask(UInt_t m) {fMask=m;}
+ void Reset() {fIndex=0; fMask=0xFFFFFFFE; fQ=0;}
void Use() {fMask&=0xFFFFFFFE;}
Bool_t IsNotUsed() const {return (fMask&1);}
static void MarkPeak(Int_t k, Int_t max, AliBin *bins, UInt_t m);
static void MakeCluster(Int_t k,Int_t max,AliBin *bins,UInt_t m,
AliITSclusterV2 &c);
+ void FindClustersSDD(AliBin* bins[2], Int_t nMaxBin, Int_t nMaxZ,
+ const TClonesArray *dig, TClonesArray *cls);
+ void FindClustersSSD(Ali1Dcluster* neg, Int_t nn,
+ Ali1Dcluster* pos, Int_t np,
+ TClonesArray *clusters);
+
static void FindCluster(Int_t k,Int_t maxz,AliBin *bins,Int_t &n,Int_t *idx);
+protected:
+ Int_t fNModules; // total number of modules
+
private:
Int_t fEvent; //event number
Float_t fYshift[2200]; //y-shifts of detector local coor. systems
Float_t fZshift[2200]; //z-shifts of detector local coor. systems
Int_t fNdet[2200]; //detector index
+ Int_t fNlayer[2200]; //detector layer
//SPD related values:
Int_t fLastSPD1; //index of the last SPD1 detector