]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG1/TRD/AliTRDclusterResolution.h
Streamlining with the analyis framework:
[u/mrichter/AliRoot.git] / PWG1 / TRD / AliTRDclusterResolution.h
CommitLineData
1ee39b3a 1#ifndef ALITRDCLUSTERRESOLUTION_H
2#define ALITRDCLUSTERRESOLUTION_H
3
4///////////////////////////////////////////////////////////////////////////////
5// //
6// TRD cluster error parameterization
7// Authors: //
8// Alexandru Bercuci <A.Bercuci@gsi.de> //
9////////////////////////////////////////////////////////////////////////////
10
11#ifndef ALITRDRECOTASK_H
12#include "AliTRDrecoTask.h"
13#endif
14
15class TCanvas;
16class TObjArray;
17class TAxis;
18class AliTRDclusterResolution : public AliTRDrecoTask
19{
20public:
21 enum EAxisBinning { // bins in z and x direction
22 kNTB = 24
23 ,kND = 25
24 ,kN = kND*kNTB
25 };
26 enum EResultContainer { // results container type
27 kCenter = 0 // cluster2center pad calibration
28 ,kQRes = 1 // resolution on charge dependence
29 ,kSigm = 2 // sigma cluster as func of x and z
30 ,kMean = 3 // shift cluster as func of x and z
31 ,kNtasks = 4 // total number os sub tasks
32 };
33 enum ECheckBits { // force setting the ExB
34 kSaveAs = BIT(22)
35 ,kExB = BIT(23)
36 };
f8f46e4d 37 AliTRDclusterResolution();
38 AliTRDclusterResolution(const char *name, const char *title="Cluster error monitor");
1ee39b3a 39 virtual ~AliTRDclusterResolution();
40
41 void ConnectInputData(Option_t *);
f8f46e4d 42 void UserCreateOutputObjects();
43 void UserExec(Option_t *);
1ee39b3a 44 Int_t GetDetector() const { return fDet; }
45 inline Float_t GetExB() const;
46 inline Float_t GetVdrift() const;
47 Bool_t GetRefFigure(Int_t ifig);
48 Bool_t HasProcess(EResultContainer bit) const {return TESTBIT(fStatus, bit);}
49 Bool_t HasExB() const { return TestBit(kExB);}
50
51 TObjArray* Histos();
52 TObjArray* Results() const {return fResults;};
53
54 Bool_t IsVisual() const {return Bool_t(fCanvas);}
55 Bool_t IsSaveAs() const {return TestBit(kSaveAs);}
56
57 Bool_t PostProcess();
58 Bool_t SetExB(Int_t det=-1, Int_t c = 70, Int_t r = 7);
59 void SetVisual();
60 void SetProcess(EResultContainer bit, Bool_t v = kTRUE) {v ? SETBIT(fStatus, bit) : CLRBIT(fStatus, bit);}
61 void SetSaveAs(Bool_t v = kTRUE) {SetBit(kSaveAs, v);}
62 inline void ResetProcess();
63
64protected:
65 void ProcessCharge();
66 void ProcessCenterPad();
67 void ProcessSigma();
68 void ProcessMean();
69
70private:
71 AliTRDclusterResolution(const AliTRDclusterResolution&);
72 AliTRDclusterResolution& operator=(const AliTRDclusterResolution&);
73
74 TCanvas *fCanvas; //! visualization canvas
75 TObjArray *fInfo; //! list of cluster info
76 TObjArray *fResults;// list of result graphs/histos
77 TAxis *fAt; //! binning in the x(radial) direction (time)
78 UChar_t fStatus; // steer parameter of the task
79 Short_t fDet; // detector (-1 for all)
80 Float_t fExB; // tg of the Lorentz angle
81 Float_t fVdrift; // mean drift velocity
82 static const Float_t fgkTimeBinLength;// time bin length (invers of sampling frequency)
83
84 // working named variables
85 UChar_t fLy; //! TRD plane
86 Float_t fX; //! local drift length
87 Float_t fY; //! local rphi offset
88 Float_t fZ; //! local anode wire offset
89 Float_t fR[4]; //! mean/sgm resolution
90 Float_t fP[4]; //! mean/sgm pulls
91
92 ClassDef(AliTRDclusterResolution, 3) // cluster resolution
93};
94
95//___________________________________________________
96inline Float_t AliTRDclusterResolution::GetExB() const
97{
98 if(!HasExB()){
99 printf("WARNING :: ExB was not set. Use B=0.\n");
100 }
101 return fExB;
102}
103
104//___________________________________________________
105inline Float_t AliTRDclusterResolution::GetVdrift() const
106{
107 if(!HasExB()){
108 printf("WARNING :: ExB was not set. Use B=0.\n");
109 }
110 return fVdrift;
111}
112
113//___________________________________________________
114inline void AliTRDclusterResolution::ResetProcess()
115{
116 CLRBIT(fStatus, kQRes);
117 CLRBIT(fStatus, kCenter);
118 CLRBIT(fStatus, kSigm);
119 CLRBIT(fStatus, kMean);
120}
121
122#endif
123