#ifndef ALITRDCLUSTERRESOLUTION_H
#define ALITRDCLUSTERRESOLUTION_H
#ifndef ALITRDRECOTASK_H
#include "AliTRDrecoTask.h"
#endif
class TCanvas;
class TObjArray;
class AliTRDclusterResolution : public AliTRDrecoTask
{
public:
enum EAxisBinning {
kND = 1
};
enum EResultContainer {
kYSys = 0
,kYRes = 1
,kSigm = 2
,kMean = 3
,kNtasks = 4
};
enum ECalibrationParam {
kVdrift = 0
,kT0 = 1
,kGain = 2
};
enum ECheckBits {
kSaveAs = BIT(21)
,kCalibrated = BIT(22)
,kGlobal = BIT(23)
};
AliTRDclusterResolution();
AliTRDclusterResolution(const char *name);
virtual ~AliTRDclusterResolution();
void UserCreateOutputObjects();
void UserExec(Option_t *);
Int_t GetDetector() const { return fDet; }
void GetPad(Int_t &c, Int_t &r) const { c=fCol, r=fRow; return;}
inline void GetDiffCoeff(Float_t &dt, Float_t &dl) const;
inline Float_t GetExB() const;
inline Float_t GetVdrift() const;
inline Float_t GetT0() const;
inline Float_t GetGain() const;
Float_t GetDyRange() const {return fDyRange;}
Bool_t GetRefFigure(Int_t ifig);
Bool_t HasProcess(EResultContainer bit) const {return TESTBIT(fSubTaskMap, bit);}
Bool_t IsCalibrated() const { return TestBit(kCalibrated);}
Bool_t HasGlobalPosition() const { return TestBit(kGlobal);}
Bool_t IsUsingCalibParam(ECalibrationParam par) const {return TESTBIT(fUseCalib, par);}
TObjArray* Histos();
TObjArray* Results() const {return fResults;};
Bool_t IsVisual() const {return Bool_t(fCanvas);}
Bool_t IsSaveAs() const {return TestBit(kSaveAs);}
Bool_t LoadCalibration();
Bool_t LoadGlobalChamberPosition();
Bool_t PostProcess();
void SetCalibrationRegion(Int_t det, Int_t col=-1, Int_t row=-1);
void SetVisual();
void SetDyRange(Float_t dy) {if(dy>0) fDyRange = dy;}
void SetProcess(EResultContainer bit, Bool_t v = kTRUE) {v ? SETBIT(fSubTaskMap, bit) : CLRBIT(fSubTaskMap, bit);}
void SetSaveAs(Bool_t v = kTRUE) {SetBit(kSaveAs, v);}
void SetUseCalibParam(ECalibrationParam par, Bool_t v = kTRUE) {v ? SETBIT(fUseCalib, par) : CLRBIT(fUseCalib, par);}
inline void ResetProcesses();
protected:
void ProcessCharge();
Bool_t ProcessNormalTracks();
void ProcessSigma();
void ProcessMean();
private:
AliTRDclusterResolution(const AliTRDclusterResolution&);
AliTRDclusterResolution& operator=(const AliTRDclusterResolution&);
TCanvas *fCanvas;
TObjArray *fInfo;
TObjArray *fResults;
UChar_t fSubTaskMap;
UChar_t fUseCalib;
Short_t fDet;
Char_t fCol;
Char_t fRow;
Float_t fExB;
Float_t fDt;
Float_t fDl;
Float_t fVdrift;
Float_t fT0;
Float_t fGain;
Float_t fXch;
Float_t fZch;
Float_t fH;
static const Float_t fgkTimeBinLength;
Float_t fDyRange;
UChar_t fLy;
Float_t fT;
Float_t fX;
Float_t fY;
Float_t fZ;
Float_t fR[4];
Float_t fP[4];
ClassDef(AliTRDclusterResolution, 6)
};
inline void AliTRDclusterResolution::GetDiffCoeff(Float_t &dt, Float_t &dl) const
{
if(!IsCalibrated()) printf(" - W - AliTRDclusterResolution::GetDiffCoeff() : Instance not calibrated.\n");
dt=fDt; dl=fDl;
return;
}
inline Float_t AliTRDclusterResolution::GetExB() const
{
if(!IsCalibrated()) printf(" - W - AliTRDclusterResolution::GetExB() : Instance not calibrated.\n");
return fExB;
}
inline Float_t AliTRDclusterResolution::GetVdrift() const
{
if(!IsCalibrated()) printf(" - W - AliTRDclusterResolution::GetVdrift() : Instance not calibrated.\n");
return fVdrift;
}
inline Float_t AliTRDclusterResolution::GetT0() const
{
if(!IsCalibrated()) printf(" - W - AliTRDclusterResolution::GetT0() : Instance not calibrated.\n");
return fT0;
}
inline Float_t AliTRDclusterResolution::GetGain() const
{
if(!IsCalibrated()) printf(" - W - AliTRDclusterResolution::GetGain() : Instance not calibrated.\n");
return fGain;
}
inline void AliTRDclusterResolution::ResetProcesses()
{
CLRBIT(fSubTaskMap, kYRes);
CLRBIT(fSubTaskMap, kYSys);
CLRBIT(fSubTaskMap, kSigm);
CLRBIT(fSubTaskMap, kMean);
}
#endif
AliTRDclusterResolution.h:1 AliTRDclusterResolution.h:2 AliTRDclusterResolution.h:3 AliTRDclusterResolution.h:4 AliTRDclusterResolution.h:5 AliTRDclusterResolution.h:6 AliTRDclusterResolution.h:7 AliTRDclusterResolution.h:8 AliTRDclusterResolution.h:9 AliTRDclusterResolution.h:10 AliTRDclusterResolution.h:11 AliTRDclusterResolution.h:12 AliTRDclusterResolution.h:13 AliTRDclusterResolution.h:14 AliTRDclusterResolution.h:15 AliTRDclusterResolution.h:16 AliTRDclusterResolution.h:17 AliTRDclusterResolution.h:18 AliTRDclusterResolution.h:19 AliTRDclusterResolution.h:20 AliTRDclusterResolution.h:21 AliTRDclusterResolution.h:22 AliTRDclusterResolution.h:23 AliTRDclusterResolution.h:24 AliTRDclusterResolution.h:25 AliTRDclusterResolution.h:26 AliTRDclusterResolution.h:27 AliTRDclusterResolution.h:28 AliTRDclusterResolution.h:29 AliTRDclusterResolution.h:30 AliTRDclusterResolution.h:31 AliTRDclusterResolution.h:32 AliTRDclusterResolution.h:33 AliTRDclusterResolution.h:34 AliTRDclusterResolution.h:35 AliTRDclusterResolution.h:36 AliTRDclusterResolution.h:37 AliTRDclusterResolution.h:38 AliTRDclusterResolution.h:39 AliTRDclusterResolution.h:40 AliTRDclusterResolution.h:41 AliTRDclusterResolution.h:42 AliTRDclusterResolution.h:43 AliTRDclusterResolution.h:44 AliTRDclusterResolution.h:45 AliTRDclusterResolution.h:46 AliTRDclusterResolution.h:47 AliTRDclusterResolution.h:48 AliTRDclusterResolution.h:49 AliTRDclusterResolution.h:50 AliTRDclusterResolution.h:51 AliTRDclusterResolution.h:52 AliTRDclusterResolution.h:53 AliTRDclusterResolution.h:54 AliTRDclusterResolution.h:55 AliTRDclusterResolution.h:56 AliTRDclusterResolution.h:57 AliTRDclusterResolution.h:58 AliTRDclusterResolution.h:59 AliTRDclusterResolution.h:60 AliTRDclusterResolution.h:61 AliTRDclusterResolution.h:62 AliTRDclusterResolution.h:63 AliTRDclusterResolution.h:64 AliTRDclusterResolution.h:65 AliTRDclusterResolution.h:66 AliTRDclusterResolution.h:67 AliTRDclusterResolution.h:68 AliTRDclusterResolution.h:69 AliTRDclusterResolution.h:70 AliTRDclusterResolution.h:71 AliTRDclusterResolution.h:72 AliTRDclusterResolution.h:73 AliTRDclusterResolution.h:74 AliTRDclusterResolution.h:75 AliTRDclusterResolution.h:76 AliTRDclusterResolution.h:77 AliTRDclusterResolution.h:78 AliTRDclusterResolution.h:79 AliTRDclusterResolution.h:80 AliTRDclusterResolution.h:81 AliTRDclusterResolution.h:82 AliTRDclusterResolution.h:83 AliTRDclusterResolution.h:84 AliTRDclusterResolution.h:85 AliTRDclusterResolution.h:86 AliTRDclusterResolution.h:87 AliTRDclusterResolution.h:88 AliTRDclusterResolution.h:89 AliTRDclusterResolution.h:90 AliTRDclusterResolution.h:91 AliTRDclusterResolution.h:92 AliTRDclusterResolution.h:93 AliTRDclusterResolution.h:94 AliTRDclusterResolution.h:95 AliTRDclusterResolution.h:96 AliTRDclusterResolution.h:97 AliTRDclusterResolution.h:98 AliTRDclusterResolution.h:99 AliTRDclusterResolution.h:100 AliTRDclusterResolution.h:101 AliTRDclusterResolution.h:102 AliTRDclusterResolution.h:103 AliTRDclusterResolution.h:104 AliTRDclusterResolution.h:105 AliTRDclusterResolution.h:106 AliTRDclusterResolution.h:107 AliTRDclusterResolution.h:108 AliTRDclusterResolution.h:109 AliTRDclusterResolution.h:110 AliTRDclusterResolution.h:111 AliTRDclusterResolution.h:112 AliTRDclusterResolution.h:113 AliTRDclusterResolution.h:114 AliTRDclusterResolution.h:115 AliTRDclusterResolution.h:116 AliTRDclusterResolution.h:117 AliTRDclusterResolution.h:118 AliTRDclusterResolution.h:119 AliTRDclusterResolution.h:120 AliTRDclusterResolution.h:121 AliTRDclusterResolution.h:122 AliTRDclusterResolution.h:123 AliTRDclusterResolution.h:124 AliTRDclusterResolution.h:125 AliTRDclusterResolution.h:126 AliTRDclusterResolution.h:127 AliTRDclusterResolution.h:128 AliTRDclusterResolution.h:129 AliTRDclusterResolution.h:130 AliTRDclusterResolution.h:131 AliTRDclusterResolution.h:132 AliTRDclusterResolution.h:133 AliTRDclusterResolution.h:134 AliTRDclusterResolution.h:135 AliTRDclusterResolution.h:136 AliTRDclusterResolution.h:137 AliTRDclusterResolution.h:138 AliTRDclusterResolution.h:139 AliTRDclusterResolution.h:140 AliTRDclusterResolution.h:141 AliTRDclusterResolution.h:142 AliTRDclusterResolution.h:143 AliTRDclusterResolution.h:144 AliTRDclusterResolution.h:145 AliTRDclusterResolution.h:146 AliTRDclusterResolution.h:147 AliTRDclusterResolution.h:148 AliTRDclusterResolution.h:149 AliTRDclusterResolution.h:150 AliTRDclusterResolution.h:151 AliTRDclusterResolution.h:152 AliTRDclusterResolution.h:153 AliTRDclusterResolution.h:154 AliTRDclusterResolution.h:155 AliTRDclusterResolution.h:156 AliTRDclusterResolution.h:157 AliTRDclusterResolution.h:158 AliTRDclusterResolution.h:159 AliTRDclusterResolution.h:160 AliTRDclusterResolution.h:161 AliTRDclusterResolution.h:162 AliTRDclusterResolution.h:163 AliTRDclusterResolution.h:164 AliTRDclusterResolution.h:165 AliTRDclusterResolution.h:166