1 #if !defined(__CINT__) || defined(__MAKECINT__)
2 #include "AliTrackReference.h"
5 AliTRDclusterCorrection * gCorrection;
8 TFile f("TRDcorrection.root");
9 gCorrection= (AliTRDclusterCorrection *)f.Get("TRDcorrection");
11 printf("Correction not found");
16 class AliTRDExactPoint: public TObject {
19 Float_t fTX; //x in rotated coordinate in the center of time bin
22 Float_t fTAY; //angle y
23 Float_t fTAZ; //angle z
28 void SetReference(AliTrackReference *ref);
33 Int_t fDetector; // detector (chamber)
34 Int_t fLocalTimeBin; // local time bin
35 Int_t fPlane; // plane (layer)
36 Int_t fSector; // segment
42 ClassDef(AliTRDExactPoint,1)
45 class AliTRDCI: public TObject {
48 virtual ~AliTRDCI(){;}
67 class AliTRDClusterErrAnal: public TObject{
69 AliTRDClusterErrAnal(Char_t *chloader = "galice.root");
70 void SetIO(Int_t event);
71 Int_t Analyze(Int_t trackmax);
73 void MakeExactPoints(Int_t trackmax);
74 void SortReferences();
75 AliTrackReference * FindNearestReference(Int_t lab, Float_t pos[3], Float_t dmax=10.);
77 AliRunLoader * fRunLoader;
78 AliLoader * fTRDLoader;
79 AliTRDparameter *fParam;
80 AliTRDgeometry *fGeometry;
83 TTree * fReferenceTree;
88 AliTRDtracker *fTracker;
90 TObjArray fClusters[12][100][18]; //first plane, second time bin
91 TObjArray fExactPoints;
92 TObjArray *fReferences;
94 ClassDef(AliTRDClusterErrAnal,1)
98 class AliTRDClusterErrDraw: public TObject{
100 AliTRDclusterCorrection* MakeCorrection(TTree * tree, Float_t offset);
102 static TH1F * ResDyVsAmp(TTree* tree, const char* selection, Float_t t0, Float_t ampmin=10, Float_t ampmax=300);
103 static TH1F * ResDyVsRelPos(TTree* tree, const char* selection, Float_t t0, Float_t min=-0.5, Float_t max=0.5);
104 static TH1F * ResDyVsAngleY(TTree* tree, const char* selection, Float_t t0, Float_t min=-1., Float_t max=1.);
105 static void AliLabelAxes(TH1* histo, const char* xAxisTitle, const char* yAxisTitle);
106 static TH1F* CreateEffHisto(TH1F* hGen, TH1F* hRec);
107 static TH1F* CreateResHisto(TH2F* hRes2, Bool_t draw = kTRUE, Bool_t drawBinFits = kTRUE,
108 Bool_t overflowBinFits = kFALSE);
109 ClassDef(AliTRDClusterErrDraw,1)
115 AliTRDExactPoint::AliTRDExactPoint()
117 fTX=fTY=fTZ=fTAZ=fTAY=fGx=fGy=fGz=fTRefAngleY=0;
118 fRefPos[0]=fRefPos[1]=fRefPos[2]=fRefMom[0]=fRefMom[1]=fRefMom[2]=0;
119 fDetector=fLocalTimeBin=fPlane=fSector=fPlaneMI=0;
123 void AliTRDExactPoint::SetReference(AliTrackReference *ref){
124 fRefPos[0] = ref->X();
125 fRefPos[1] = ref->Y();
126 fRefPos[2] = ref->Z();
128 fRefMom[0] = ref->Px();
129 fRefMom[1] = ref->Py();
130 fRefMom[2] = ref->Pz();
134 void AliTRDCI::Update()
139 fCharge = fP.GetPDG()->Charge();
140 fIsPrim = (fP.GetMother(0)>0)? kFALSE :kTRUE;
141 fCorrection = gCorrection->GetCorrection(fEp.fPlane,fCl.fTimeBin,fEp.fTAY);