Fixing problems in the generation of HTML documentation
[u/mrichter/AliRoot.git] / TRD / AliTRDclusterErrors.h
1 #if !defined(__CINT__) || defined(__MAKECINT__)
2 #include "AliTrackReference.h"
3 #endif
4
5 class AliTRDExactPoint: public TObject {
6   public : 
7   AliTRDExactPoint();
8   Float_t fTX;    //x in rotated coordinate in the center of time bin
9   Float_t fTY;    //y 
10   Float_t fTZ;    //z
11   Float_t fTAY;   //angle y
12   Float_t fTAZ;   //angle z
13   Float_t fGx;
14   Float_t fGy;
15   Float_t fGz;
16   //
17   void SetReference(AliTrackReference *ref);
18   Float_t fTRefAngleY;
19   Float_t fRefPos[3];
20   Float_t fRefMom[3];
21   //
22   Int_t   fDetector;      // detector (chamber)
23   Int_t   fLocalTimeBin;  // local time bin
24   Int_t   fPlane;         // plane (layer)
25   Int_t   fSector;       // segment
26   Int_t   fPlaneMI;  
27   // 
28   Float_t fTQ;
29   Float_t fTPrim;
30   //  
31   ClassDef(AliTRDExactPoint,1)
32 };
33
34 AliTRDExactPoint::AliTRDExactPoint()
35 {
36   fTX=fTY=fTZ=fTAZ=fTAY=fGx=fGy=fGz=fTRefAngleY=0;
37   fRefPos[0]=fRefPos[1]=fRefPos[2]=fRefMom[0]=fRefMom[1]=fRefMom[2]=0;
38   fDetector=fLocalTimeBin=fPlane=fSector=fPlaneMI=0;
39   fTQ=fTPrim=0;
40 }
41
42 void AliTRDExactPoint::SetReference(AliTrackReference *ref){
43   fRefPos[0] = ref->X();
44   fRefPos[1] = ref->Y();
45   fRefPos[2] = ref->Z();
46   //
47   fRefMom[0] = ref->Px();
48   fRefMom[1] = ref->Py();
49   fRefMom[2] = ref->Pz();
50 }
51
52 class AliTRDCI: public TObject {
53   public :
54   AliTRDCI(){;}
55   virtual ~AliTRDCI(){;}
56   //
57   AliTRDclusterMI fCl;
58   AliTRDExactPoint fEp;
59   TParticle fP;
60   Char_t fStatus;
61   //
62   Float_t fDYtilt;
63   Float_t fTDistZ;  
64   //
65   Int_t   fNTracks;
66   Float_t fPt;
67   Float_t fCharge;
68   Bool_t  fIsPrim;
69   
70   void Update();
71   ClassDef(AliTRDCI,1)
72 };
73
74 void AliTRDCI::Update()
75 {
76   //
77   //thanks to root
78   fPt = fP.Pt();
79   fCharge = fP.GetPDG()->Charge();
80   fIsPrim = (fP.GetMother(0)>0)? kFALSE :kTRUE;
81 }
82
83
84 class AliTRDClusterErrAnal: public TObject{
85 public: 
86   AliTRDClusterErrAnal(Char_t *chloader  = "galice.root");
87   void SetIO(Int_t event);  
88   Int_t Analyze(Int_t trackmax);
89   void LoadClusters();
90   void MakeExactPoints(Int_t trackmax);
91   void SortReferences();
92   AliTrackReference * FindNearestReference(Int_t lab, Float_t pos[3], Float_t dmax=10.);
93 public:
94   AliRunLoader * fRunLoader;
95   AliLoader * fTRDLoader;
96   AliTRDparameter *fParam;
97   AliTRDgeometry *fGeometry;
98   TTree * fHitTree;
99   TTree * fClusterTree;
100   TTree * fReferenceTree;
101   AliTRDv1 * fTRD;
102   //
103   TTree * fTreeA;
104   TFile * fFileA;
105   AliTRDtracker *fTracker;
106   AliStack *fStack;
107   TObjArray fClusters[12][100][18];  //first plane, second time bin
108   TObjArray fExactPoints;
109   TObjArray *fReferences;
110
111   ClassDef(AliTRDClusterErrAnal,1)
112 };
113
114
115 class AliTRDClusterErrDraw: public TObject{
116 public:
117   static TH1F * ResDyVsAmp(TTree* tree, const char* selection, Float_t t0, Float_t ampmin=10, Float_t ampmax=300);
118   static TH1F * ResDyVsRelPos(TTree* tree, const char* selection, Float_t t0, Float_t min=-0.5, Float_t max=0.5);
119   static TH1F * ResDyVsAngleY(TTree* tree, const char* selection, Float_t t0, Float_t min=-1., Float_t max=1.);
120   static void AliLabelAxes(TH1* histo, const char* xAxisTitle, const char* yAxisTitle);
121   static TH1F* CreateEffHisto(TH1F* hGen, TH1F* hRec);
122   static TH1F* CreateResHisto(TH2F* hRes2, Bool_t draw = kTRUE, Bool_t drawBinFits = kTRUE, 
123                      Bool_t overflowBinFits = kFALSE);
124
125   ClassDef(AliTRDClusterErrDraw,1)
126 };
127
128
129
130