]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TRD/AliTRDmcm.h
Remove Pos calib classes
[u/mrichter/AliRoot.git] / TRD / AliTRDmcm.h
CommitLineData
0ee00e25 1#ifndef ALITRDMCM_H
2#define ALITRDMCM_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6/* $Id$ */
7
8///////////////////////////////////////////////////////
e3b2b5e5 9// //
0ee00e25 10// Multi Chip Module object //
e3b2b5e5 11// //
0ee00e25 12///////////////////////////////////////////////////////
13
14#include <TObject.h>
15
0ee00e25 16class AliTRDtrigParam;
17
18class AliTRDmcm : public TObject {
19
20 public:
21
e3b2b5e5 22 enum { kMaxTrackletsPerMCM = 4, kMcmCol = 21, kMcmTBmax = 60, kSelClus = 6, kMaxClus = 4 };
23
0ee00e25 24 AliTRDmcm();
ec35cce0 25 AliTRDmcm(AliTRDtrigParam *trigp, Int_t id);
0ee00e25 26 virtual ~AliTRDmcm();
e3b2b5e5 27 AliTRDmcm &operator=(const AliTRDmcm &m);
28 virtual void Copy(TObject &m) const;
0ee00e25 29
e3b2b5e5 30 Int_t Ntrk() const { return fNtrk; };
0ee00e25 31 Int_t *GetTrkIndex() { return &fTrkIndex[0]; };
e3b2b5e5 32 Int_t GetRobId() const { return fRobId; };
33 Int_t GetChaId() const { return fChaId; };
ec35cce0 34 void SetRobId(Int_t id) { fRobId = id; };
35 void SetChaId(Int_t id) { fChaId = id; };
36 void SetRow(Int_t row) { fRow = row; };
e3b2b5e5 37 Int_t GetRow() const { return fRow; };
ec35cce0 38 void SetColRange(Int_t colf, Int_t coll) { fColFirst = colf; fColLast = coll; };
e3b2b5e5 39 void GetColRange(Int_t &colf, Int_t &coll) const { colf = fColFirst; coll = fColLast; };
ec35cce0 40 void AddTrk(Int_t id);
41 void SetADC(Int_t icol, Int_t itb, Float_t adc)
0ee00e25 42 { fADC[icol][itb] = adc; };
ec35cce0 43 Float_t GetADC(Int_t icol, Int_t itb) const { return fADC[icol][itb]; };
0ee00e25 44 void Reset();
45 Bool_t Run();
ec35cce0 46 void SetCluster(Int_t icol, Int_t itb) { fIsClus[icol][itb] = kTRUE; };
47 void UnSetCluster(Int_t icol, Int_t itb) { fIsClus[icol][itb] = kFALSE; };
e3b2b5e5 48 Bool_t IsCluster(Float_t amp[3]) const;
ec35cce0 49 void AddTimeBin(Int_t itime);
0ee00e25 50 Int_t CreateSeeds();
ec35cce0 51 void Sort(Int_t nel, Int_t *x1, Int_t *x2, Int_t dir);
e3b2b5e5 52 Int_t GetNtrkSeeds() const { return fNtrkSeeds; };
0ee00e25 53 Int_t *GetSeedCol() { return &fSeedCol[0]; };
54 Int_t *GetPadHits() { return &fPadHits[0]; };
ec35cce0 55 Bool_t IsCluster(Int_t icol, Int_t itim) const { return fIsClus[icol][itim]; };
0ee00e25 56
57 void Filter(Int_t nexp, Int_t ftype = 0);
58 void DeConvExpA(Double_t *source, Double_t *target, Int_t n, Int_t nexp);
59 void DeConvExpD(Double_t *source, Int_t *target, Int_t n, Int_t nexp);
60 void DeConvExpMI(Double_t *source, Double_t *target, Int_t n);
61 void TailMakerSpline(Double_t *ampin, Double_t *ampout, Double_t lambda, Int_t n);
62 void TailCancelationMI(Double_t *ampin, Double_t *ampout, Double_t norm, Double_t lambda, Int_t n);
63
e3b2b5e5 64 Int_t Id() const { return fId; };
0ee00e25 65
66 protected:
67
68 AliTRDtrigParam *fTrigParam; //! pointer to the trigger parameters class
69
70 Int_t fNtrk; // number of found tracklets
71 Int_t fTrkIndex[kMaxTrackletsPerMCM]; // index of found tracklets
72 Int_t fRobId; // ROB id
73 Int_t fChaId; // Chamber id
74 Int_t fRow; // pad row number (0-11 or 0-15)
75 Int_t fColFirst; // first pad column
76 Int_t fColLast; // last pad column (<)
77 Float_t fADC[kMcmCol][kMcmTBmax]; //! array with MCM ADC values
78 Bool_t fIsClus[kMcmCol][kMcmTBmax]; //! flag of a cluster maximum
79 Int_t fTime1; // first time bin for tracking (incl.)
80 Int_t fTime2; // last time bin for tracking (incl.)
81 Float_t fClusThr; // cluster threshold
82 Float_t fPadThr; // pad threshold
83 Int_t fPadHits[kMcmCol]; // hit counter in pads
84 Int_t fNtrkSeeds; // number of found seeds
85 Int_t fSeedCol[kMaxTrackletsPerMCM]; // column number of found tracklet seeds
e3b2b5e5 86 // filter parameters (1 = long, 2 = short component)
87 Float_t fR1; // time constant [microseconds]
88 Float_t fR2; // time constant [microseconds]
89 Float_t fC1; // weight
90 Float_t fC2; // weight
91 Float_t fPedestal; // ADC baseline (pedestal)
0ee00e25 92
e3b2b5e5 93 Int_t fId; // dummy id
0ee00e25 94
e3b2b5e5 95 ClassDef(AliTRDmcm,2) // TRD MCM class
0ee00e25 96
97};
98
99#endif