Line data Source code
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 4 : fCutOnPeakLoose=looseCut;
29 2 : fCutOnPeakTight=tightCut;
30 2 : fMaxDrTimeForTightCut=maxTime;
31 2 : }
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 5838 : return (AliITSCalibrationSDD*) fDetTypeRec->GetCalibrationModel(mod);}
46 : virtual AliITSsegmentationSDD* GetSeg()const{
47 1840 : 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 2414 : ClassDef(AliITSClusterFinderSDDfast,1) // ITS cluster finder fast for SDD
59 : };
60 :
61 : #endif
|