1 #ifndef ALIITSCLUSTERFINDERSDDFAST_H
2 #define ALIITSCLUSTERFINDERSDDFAST_H
4 //----------------------------------------------------------------------
5 // ITS clusterer for SDD - fast algorithm
7 // Origin: Simone Capodicasa, Universita e INFN, capodica@to.infn.it
8 //----------------------------------------------------------------------
10 #include "AliITSClusterFinder.h"
11 #include "AliITSDetTypeRec.h"
17 class AliITSRawStream;
18 class AliITSCalibrationSDD;
19 class AliITSsegmentationSDD;
21 class AliITSClusterFinderSDDfast : public AliITSClusterFinder {
23 AliITSClusterFinderSDDfast(AliITSDetTypeRec* dettyp);
24 virtual ~AliITSClusterFinderSDDfast();
25 virtual void FindRawClusters(Int_t mod);
26 virtual void RawdataToClusters(AliRawReader* rawReader);
27 void SetPeakSelection(Float_t looseCut=15., Float_t tightCut=30., Float_t maxTime=2000.){
28 fCutOnPeakLoose=looseCut;
29 fCutOnPeakTight=tightCut;
30 fMaxDrTimeForTightCut=maxTime;
33 enum {kHybridsPerDDL = 24}; // number of hybrids in each DDL
34 enum {kModulesPerDDL = 12}; // number of modules in each DDL
37 AliITSClusterFinderSDDfast(const AliITSClusterFinderSDDfast &source); // copy constructor
38 // assignment operator
39 AliITSClusterFinderSDDfast& operator=(const AliITSClusterFinderSDDfast &source);
40 void FindClustersSDD(TClonesArray *digits);
41 void FindClustersSDD(std::vector<int>& bins0, std::vector<int>& bins1, const Int_t map0[], const Int_t map1[], TClonesArray *dig, TClonesArray *clusters=0x0, Int_t jitter=0);
43 void FindClustersSDD(AliITSRawStream* input);
44 virtual AliITSCalibrationSDD* GetResp(Int_t mod)const{
45 return (AliITSCalibrationSDD*) fDetTypeRec->GetCalibrationModel(mod);}
46 virtual AliITSsegmentationSDD* GetSeg()const{
47 return (AliITSsegmentationSDD*)fDetTypeRec->GetSegmentationModel(1);}
49 Int_t fNAnodes; // number of anodes
50 Int_t fNTimeBins; // number of time bins
51 Int_t fNZbins; // number of cells along anodes
52 Int_t fNXbins; // number of cells along time
53 std::vector<std::vector<int> > fDDLBins; // container for digits for 1 DDL
54 Float_t fCutOnPeakLoose; // loose cut on peak (for all drift times)
55 Float_t fCutOnPeakTight; // tight cut on peak (for small drift times)
56 Float_t fMaxDrTimeForTightCut; // max. drift time for fCutOnPeakTight
58 ClassDef(AliITSClusterFinderSDDfast,1) // ITS cluster finder fast for SDD