]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/AliITSClusterFinderSSD.h
Adding copy constructor and assignment operator
[u/mrichter/AliRoot.git] / ITS / AliITSClusterFinderSSD.h
CommitLineData
b0f5e3fc 1#ifndef ALIITSCLUSTERFINDERSSD_H
2#define ALIITSCLUSTERFINDERSSD_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
14a74335 5
6///////////////////////////////////////////////////////////////////
7// Cluster finder class for SSD //
8///////////////////////////////////////////////////////////////////
9
aacedc3e 10//#include <TMath.h>
b0f5e3fc 11#include "AliITSClusterFinder.h"
aacedc3e 12//#include "AliITSsegmentationSSD.h"
8ba39da9 13#include "AliITSDetTypeRec.h"
14
eb08b98f 15class TArrayI;
e8189707 16class AliITSclusterSSD;
17class AliITSpackageSSD;
aacedc3e 18class AliITSsegmentation;
19class AliITSsegmentationSSD;
20class AliITSresponse;
21class AliITSresponseSSD;
14a74335 22class AliITSCalibration;
23class AliITSCalibrationSSD;
e8189707 24
fe15e140 25class AliITSClusterFinderSSD: public AliITSClusterFinder{
b0f5e3fc 26
14a74335 27 public:
28 AliITSClusterFinderSSD();
29 AliITSClusterFinderSSD(AliITSDetTypeRec* dettyp);
30 AliITSClusterFinderSSD(AliITSDetTypeRec* dettyp, TClonesArray *digits);
31 // AliITSClusterFinderSSD(AliITSsegmentation *seg, TClonesArray *digits);
32 virtual ~AliITSClusterFinderSSD();
33 void FindRawClusters(Int_t module);
34
35 protected:
aacedc3e 36 virtual AliITSsegmentationSSD* GetSeg()const{
14a74335 37 return (AliITSsegmentationSSD*)fDetTypeRec->GetSegmentationModel(2);}
38 void InitReconstruction();
39 Bool_t CreateNewRecPoint(Float_t P, Float_t dP, Float_t N, Float_t dN,
40 Float_t Sig,Float_t dSig,
41 AliITSclusterSSD *clusterP,
42 AliITSclusterSSD *clusterN,Stat_t prob);
43 AliITSclusterSSD* GetPSideCluster(Int_t idx);
44 AliITSclusterSSD* GetNSideCluster(Int_t idx);
45 AliITSclusterSSD* GetCluster(Int_t idx, Bool_t side);
46 void FindNeighbouringDigits(Int_t module);
47 void SeparateOverlappedClusters();
48 void SplitCluster(TArrayI *list,Int_t nsplits,Int_t indx,Bool_t side);
49 Int_t SortDigitsP(Int_t start, Int_t end);
50 Int_t SortDigitsN(Int_t start, Int_t end);
51 void FillDigitsIndex();
52 void SortDigits();
53 void FillClIndexArrays(Int_t* arrayP, Int_t *arrayN) const;
54 void SortClusters(Int_t* arrayP, Int_t *arrayN);
55 Int_t SortClustersP(Int_t start, Int_t end,Int_t *array);
56 Int_t SortClustersN(Int_t start, Int_t end,Int_t *array);
57 void ClustersToPackages();
58 Int_t GetDiff(Float_t */*retx*/, Float_t */*rety*/) const {return 0;}
59 void CalcStepFactor(Float_t Psteo, Float_t Nsteo );
60 Bool_t GetCrossing(Float_t &x, Float_t &z); //x, y of strips crossing
61 void GetCrossingError(Float_t& dp, Float_t& dn);//x, y of strips crossing err.
62 virtual AliITSCalibrationSSD* GetResp(Int_t mod)const{
63 return (AliITSCalibrationSSD*) fDetTypeRec->GetCalibrationModel(mod);}//Return Response
64 AliITSClusterFinderSSD(const AliITSClusterFinderSSD &source); // copy ctor
65 AliITSClusterFinderSSD& operator=(const AliITSClusterFinderSSD &source);
fe15e140 66
14a74335 67
68 // Data memebers
69 // AliITS *fITS; //!Pointer to AliITS object
70 TClonesArray *fClusterP; //!
71 Int_t fNClusterP; //!Number of P side clusters in the array
72 TClonesArray *fClusterN; //!Number of N side clusters in the array
73 Int_t fNClusterN; //!
74 TClonesArray *fPackages; //!packages
75 Int_t fNPackages; //!
76 TArrayI *fDigitsIndexP; //!Digits on P side
77 Int_t fNDigitsP; //!Number of Digits on P side
78 TArrayI *fDigitsIndexN; //!Digits on N side
79 Int_t fNDigitsN; //!Number of Digits on N side
80
81 Float_t fPitch; //!Strip pitch
82 Float_t fTanP; //!Pside stereo angle tangent
83 Float_t fTanN; //!Nside stereo angle tangent
84
85 //Float_t **fNoise;
86
87 /*************************************************/
88 /** parameters for reconstruction ****/
89 /** to be tune when slow simulation raliable ****/
90 /*************************************************/
91
92 //Float_t fAlpha1; //!
93 //Float_t fAlpha2; //!
94 //Float_t fAlpha3; //!
95 Float_t fPNsignalRatio; //!
96
97 static const Bool_t fgkSIDEP; //!
98 static const Bool_t fgkSIDEN; //!
99
100 static const Int_t fgkNoiseThreshold; // at least one strip in the cluster has to have a signal > fgkNoiseThresold*noise
101
102 Int_t fSFF; //!forward stepping factor
103 Int_t fSFB; //!backward stepping factor
104
105 ClassDef(AliITSClusterFinderSSD, 1) //Class for clustering and reconstruction of space points in SSDs
106
107 };
108
b0f5e3fc 109
b0f5e3fc 110#endif