]>
Commit | Line | Data |
---|---|---|
05b25e73 | 1 | #ifndef ALIITSCLUSTERFINDERSDDFAST_H |
2 | #define ALIITSCLUSTERFINDERSDDFAST_H | |
3 | ||
4 | //---------------------------------------------------------------------- | |
5 | // ITS clusterer for SDD - fast algorithm | |
6 | // | |
7 | // Origin: Simone Capodicasa, Universita e INFN, capodica@to.infn.it | |
8 | //---------------------------------------------------------------------- | |
9 | ||
10 | #include "AliITSClusterFinder.h" | |
11 | #include "AliITSDetTypeRec.h" | |
12 | #include <vector> | |
13 | ||
14 | class TBits; | |
15 | class TClonesArray; | |
16 | class AliRawReader; | |
17 | class AliITSRawStream; | |
18 | class AliITSCalibrationSDD; | |
19 | class AliITSsegmentationSDD; | |
20 | ||
21 | class AliITSClusterFinderSDDfast : public AliITSClusterFinder { | |
22 | public: | |
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; | |
31 | } | |
32 | ||
33 | enum {kHybridsPerDDL = 24}; // number of hybrids in each DDL | |
34 | enum {kModulesPerDDL = 12}; // number of modules in each DDL | |
35 | ||
36 | protected: | |
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); | |
42 | ||
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);} | |
48 | ||
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 | |
57 | ||
58 | ClassDef(AliITSClusterFinderSDDfast,1) // ITS cluster finder fast for SDD | |
59 | }; | |
60 | ||
61 | #endif |