1 #ifndef ALITRDCLUSTERRESOLUTION_H
2 #define ALITRDCLUSTERRESOLUTION_H
5 #ifndef ALITRDRECOTASK_H
6 #include "AliTRDrecoTask.h"
12 class AliTRDclusterResolution : public AliTRDrecoTask
15 enum EAxisBinning { // bins in z and x direction
20 enum EResultContainer { // results container type
26 enum ECheckBits { // force setting the ExB
30 AliTRDclusterResolution(const char *name="ClErrParam");
31 virtual ~AliTRDclusterResolution();
33 void ConnectInputData(Option_t *);
34 void CreateOutputObjects();
35 void Exec(Option_t *);
36 Int_t GetDetector() const { return fDet; }
37 inline Float_t GetExB() const;
38 inline Float_t GetVdrift() const;
39 Bool_t GetRefFigure(Int_t ifig);
40 Bool_t HasProcess(EResultContainer bit) const {return TESTBIT(fStatus, bit);}
41 Bool_t HasExB() const { return TestBit(kExB);}
45 Bool_t IsVisual() const {return Bool_t(fCanvas);}
46 Bool_t IsSaveAs() const {return TestBit(kSaveAs);}
49 Bool_t SetExB(Int_t det=-1, Int_t c = 70, Int_t r = 7);
51 void SetProcess(EResultContainer bit, Bool_t v = kTRUE) {v ? SETBIT(fStatus, bit) : CLRBIT(fStatus, bit);}
52 void SetSaveAs(Bool_t v = kTRUE) {SetBit(kSaveAs, v);}
53 inline void ResetProcess();
55 void Terminate(Option_t *){};
59 void ProcessCenterPad();
64 AliTRDclusterResolution(const AliTRDclusterResolution&);
65 AliTRDclusterResolution& operator=(const AliTRDclusterResolution&);
67 TCanvas *fCanvas; //! visualization canvas
68 TObjArray *fInfo; //! list of cluster info
69 TObjArray *fResults;// list of result graphs/histos
70 TAxis *fAt; //! binning in the x(radial) direction (time)
71 TAxis *fAd; //! binning in the z direction (drift cell)
72 UChar_t fStatus; // steer parameter of the task
73 Short_t fDet; // detector (-1 for all)
74 Float_t fExB; // tg of the Lorentz angle
75 Float_t fVdrift; // mean drift velocity
76 static const Float_t fgkTimeBinLength;// time bin length (invers of sampling frequency)
78 ClassDef(AliTRDclusterResolution, 1) // cluster resolution
81 //___________________________________________________
82 inline Float_t AliTRDclusterResolution::GetExB() const
85 printf("WARNING :: ExB was not set. Use B=0.\n");
90 //___________________________________________________
91 inline Float_t AliTRDclusterResolution::GetVdrift() const
94 printf("WARNING :: ExB was not set. Use B=0.\n");
99 //___________________________________________________
100 inline void AliTRDclusterResolution::ResetProcess()
102 CLRBIT(fStatus, kQRes);
103 CLRBIT(fStatus, kCenter);
104 CLRBIT(fStatus, kSigm);
105 CLRBIT(fStatus, kMean);