]>
Commit | Line | Data |
---|---|---|
b2dc316d | 1 | #ifndef ALITRDCLUSTERRESOLUTION_H |
2 | #define ALITRDCLUSTERRESOLUTION_H | |
3 | ||
4 | ||
5 | #ifndef ALITRDRECOTASK_H | |
6 | #include "AliTRDrecoTask.h" | |
7 | #endif | |
8 | ||
f2231ce8 | 9 | class TCanvas; |
b2dc316d | 10 | class TObjArray; |
fc0946a7 | 11 | class TAxis; |
b2dc316d | 12 | class AliTRDclusterResolution : public AliTRDrecoTask |
13 | { | |
14 | public: | |
9462866a | 15 | enum EAxisBinning { // bins in z and x direction |
16 | kNTB = 25 | |
b2dc316d | 17 | ,kND = 5 |
fc0946a7 | 18 | ,kN = kND*kNTB |
19 | }; | |
6fc46cba | 20 | enum EResultContainer { // results container type |
9462866a | 21 | kQRes = 0 |
22 | ,kCenter= 1 | |
23 | ,kSigm = 2 | |
24 | ,kMean = 3 | |
b2dc316d | 25 | }; |
9462866a | 26 | enum ECheckBits { // force setting the ExB |
6bc4a8f4 | 27 | kExB = BIT(23) |
28 | }; | |
f2231ce8 | 29 | enum ESteeringBits { // steering bits for task |
30 | kSaveAs = 0 | |
31 | ,kProcCharge = 1 | |
32 | ,kProcCenterPad = 2 | |
33 | ,kProcSigma = 3 | |
34 | ,kProcMean = 4 | |
35 | }; | |
6fc46cba | 36 | AliTRDclusterResolution(const char *name="ClErrParam"); |
b2dc316d | 37 | virtual ~AliTRDclusterResolution(); |
38 | ||
39 | void ConnectInputData(Option_t *); | |
40 | void CreateOutputObjects(); | |
fc0946a7 | 41 | void Exec(Option_t *); |
6bc4a8f4 | 42 | Int_t GetDetector() const { return fDet; } |
43 | inline Float_t GetExB() const; | |
9462866a | 44 | inline Float_t GetVdrift() const; |
e15179be | 45 | Bool_t GetRefFigure(Int_t ifig); |
f2231ce8 | 46 | Bool_t HasProcessCharge() const {return TESTBIT(fStatus, kProcCharge);} |
47 | Bool_t HasProcessCenterPad() const {return TESTBIT(fStatus, kProcCenterPad);} | |
6bc4a8f4 | 48 | Bool_t HasExB() const { return TestBit(kExB);} |
f2231ce8 | 49 | Bool_t HasProcessMean() const {return TESTBIT(fStatus, kProcMean);} |
50 | Bool_t HasProcessSigma() const {return TESTBIT(fStatus, kProcSigma);} | |
51 | ||
fc0946a7 | 52 | TObjArray* Histos(); |
f2231ce8 | 53 | |
54 | Bool_t IsVisual() const {return Bool_t(fCanvas);} | |
55 | Bool_t IsSaveAs() const {return TESTBIT(fStatus, kSaveAs);} | |
56 | ||
b2dc316d | 57 | Bool_t PostProcess(); |
9462866a | 58 | Bool_t SetExB(Int_t det=-1, Int_t c = 70, Int_t r = 7); |
f2231ce8 | 59 | void SetVisual(); |
60 | void SetProcessCharge(Bool_t v = kTRUE) {v ? SETBIT(fStatus, kProcCharge) : CLRBIT(fStatus, kProcCharge);} | |
61 | void SetProcessCenterPad(Bool_t v = kTRUE) {v ? SETBIT(fStatus, kProcCenterPad) : CLRBIT(fStatus, kProcCenterPad);} | |
62 | void SetProcessMean(Bool_t v = kTRUE) {v ? SETBIT(fStatus, kProcMean) : CLRBIT(fStatus, kProcMean);} | |
63 | void SetProcessSigma(Bool_t v = kTRUE) {v ? SETBIT(fStatus, kProcSigma) : CLRBIT(fStatus, kProcSigma);} | |
64 | void SetSaveAs(Bool_t v = kTRUE) {v ? SETBIT(fStatus, kSaveAs) : CLRBIT(fStatus, kSaveAs);} | |
65 | ||
b2dc316d | 66 | void Terminate(Option_t *){}; |
fc0946a7 | 67 | |
9462866a | 68 | protected: |
69 | void ProcessCharge(); | |
70 | void ProcessCenterPad(); | |
71 | void ProcessSigma(); | |
72 | void ProcessMean(); | |
73 | ||
b2dc316d | 74 | private: |
75 | AliTRDclusterResolution(const AliTRDclusterResolution&); | |
76 | AliTRDclusterResolution& operator=(const AliTRDclusterResolution&); | |
77 | ||
f2231ce8 | 78 | TCanvas *fCanvas; //! visualization canvas |
79 | TObjArray *fInfo; //! list of cluster info | |
fc0946a7 | 80 | TObjArray *fResults;// list of result graphs/histos |
f2231ce8 | 81 | TAxis *fAt; //! binning in the x(radial) direction (time) |
82 | TAxis *fAd; //! binning in the z direction (drift cell) | |
83 | UChar_t fStatus; // steer parameter of the task | |
84 | Short_t fDet; // detector (-1 for all) | |
fc0946a7 | 85 | Float_t fExB; // tg of the Lorentz angle |
9462866a | 86 | Float_t fVdrift; // mean drift velocity |
b2dc316d | 87 | |
9462866a | 88 | ClassDef(AliTRDclusterResolution, 1) // cluster resolution |
b2dc316d | 89 | }; |
90 | ||
9462866a | 91 | //___________________________________________________ |
6bc4a8f4 | 92 | inline Float_t AliTRDclusterResolution::GetExB() const |
93 | { | |
94 | if(!HasExB()){ | |
95 | printf("WARNING :: ExB was not set. Use B=0.\n"); | |
96 | } | |
97 | return fExB; | |
98 | } | |
9462866a | 99 | |
100 | //___________________________________________________ | |
101 | inline Float_t AliTRDclusterResolution::GetVdrift() const | |
102 | { | |
103 | if(!HasExB()){ | |
104 | printf("WARNING :: ExB was not set. Use B=0.\n"); | |
105 | } | |
106 | return fVdrift; | |
107 | } | |
b2dc316d | 108 | #endif |
109 |