Merge branch 'master' into TPCdev
[u/mrichter/AliRoot.git] / ITS / AliITSClusterFinderSDDfast.h
CommitLineData
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
14class TBits;
15class TClonesArray;
16class AliRawReader;
17class AliITSRawStream;
18class AliITSCalibrationSDD;
19class AliITSsegmentationSDD;
20
21class 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