]>
Commit | Line | Data |
---|---|---|
146f76de | 1 | #ifndef ALIITSRESIDUALSANALYSIS_H |
2 | #define ALIITSRESIDUALSANALYSIS_H | |
3 | ||
4 | /* Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. * | |
5 | * See cxx source for full Copyright notice */ | |
6 | ||
7 | ||
8 | //************************************************************************* | |
9 | // AliITSResidualAnalysis: class which deals with the analysis of the * | |
10 | // tracks residuals in the ITS * | |
11 | // More comments will come with the development of the interfaces and * | |
12 | // functionalities of the class. * | |
13 | //************************************************************************* | |
14 | ||
15 | #include "AliAlignmentTracks.h" | |
16 | ||
17 | class TObject; | |
18 | class TCanvas; | |
19 | class TH1F; | |
20 | class TH2F; | |
21 | class TArrayI; | |
22 | ||
23 | class AliTrackPointArray; | |
24 | class AliTrackResiduals; | |
25 | class AliAlignObj; | |
26 | ||
27 | class AliITSResidualsAnalysis : public AliAlignmentTracks { | |
28 | ||
29 | ||
30 | public: | |
31 | ||
32 | AliITSResidualsAnalysis(); | |
33 | AliITSResidualsAnalysis(const TString aliTrackPoints,const TString geom); | |
34 | AliITSResidualsAnalysis(const TArrayI *volIDs); | |
85f5e9c2 | 35 | AliITSResidualsAnalysis(TArrayI *volIDs,AliTrackPointArray **tracksClustArray,AliTrackPointArray **tracksFitPointsArray); |
146f76de | 36 | ~AliITSResidualsAnalysis(); |
37 | ||
38 | ||
39 | //virtual ~AliITSResidualsAnalysis(){} | |
40 | // void AddArray(AliTrackPointArray *trackClust,AliTrackPoinArray *trackFitPoints); | |
41 | ||
42 | ||
43 | ||
44 | void ListVolUsed(TTree *pointsTree,TArrayI ***arrayIndex,Int_t **lastIndex); | |
45 | void ListVolUsed(){if(!fIsIndexBuilt)return;ListVolUsed(fPointsTree,fArrayIndex,fLastIndex);}; | |
46 | ||
47 | void InitHistograms(const TArrayI *volIDs); | |
48 | void FillResHists(AliTrackPointArray *trackClust,AliTrackPointArray *trackFitPoints) const; | |
49 | void DrawHists() const; | |
50 | Bool_t AnalyzeHists(Int_t minNpoints) const; | |
51 | void FillVolumeCorrelationHists(Int_t ivol,Int_t volIDalignable,Int_t volIDpoint,Bool_t used) const; | |
52 | Bool_t SetBinning(const TArrayI *volids,Float_t *phiBin,Float_t *zBin); | |
53 | Float_t** CheckSingleLayer(const TArrayI *volids); | |
54 | TArrayI* GetSingleLayerVolids(Int_t layer) const; | |
55 | Int_t GetBinPhiZ(const Int_t volID,Int_t *binz) const; | |
56 | void GetTrackDirClusterCov(AliTrackPoint *point,Double_t &phi,Double_t &lambda,Double_t &lambda2,Double_t &alpha,Double_t &xovery,Double_t &zovery) const; | |
57 | void CalculateResiduals(const TArrayI *volids,const TArrayI *volidsfit,AliGeomManager::ELayerID layerRangeMin,AliGeomManager::ELayerID layerRangeMax,Int_t iterations=1,Bool_t draw=kTRUE); | |
58 | void ProcessPoints(TString minimizer="fast",Int_t fit=0,AliGeomManager::ELayerID iLayerToAlign=(AliGeomManager::ELayerID)1,AliGeomManager::ELayerID iLayerToExclude=(AliGeomManager::ELayerID)1,TString misalignmentFile=""); | |
59 | void ExtractResiduals(Int_t layer=1,Int_t minEnt=10,TString filename="ResidualsAnalysisTree.root") const; | |
60 | Int_t PlotResiduals(Int_t layer=1,TString filename="resPlot_MA_layer") const; | |
61 | TString GetFileNameTrackPoints() const { return fAliTrackPoints; }; | |
62 | TString GetFileNameGeometry() const { return fGeom; }; | |
63 | void SetFileNameTrackPoints(TString name) { fAliTrackPoints=name; }; | |
64 | void SetFileNameGeometry(TString name) { fGeom=name; }; | |
65 | ||
66 | ||
67 | enum ModulePhiZ{ | |
3dbc7836 | 68 | kPhiSPD1=20, |
69 | kZSPD1=4, | |
70 | kPhiSPD2=40, | |
71 | kZSPD2=4, | |
72 | kPhiSDD1=14, | |
73 | kZSDD1=6, | |
74 | kPhiSDD2=22, | |
75 | kZSDD2=8, | |
76 | kPhiSSD1=34, | |
77 | kZSSD1=22, | |
78 | kPhiSSD2=38, | |
79 | kZSSD2=25 | |
146f76de | 80 | }; |
81 | ||
82 | ||
83 | protected: | |
3dbc7836 | 84 | |
85f5e9c2 | 85 | AliITSResidualsAnalysis(const AliITSResidualsAnalysis& /* obj */); |
3dbc7836 | 86 | AliITSResidualsAnalysis& operator = (const AliITSResidualsAnalysis& obj); |
146f76de | 87 | |
88 | Int_t fnHist; // number of histogram = number of alignable volumes considered | |
89 | Int_t fnPhi; // coordinate of the volume (Phi) | |
90 | Int_t fnZ; // coordinate of the volume (Z) | |
91 | Int_t **fvolidsToBin; // array with volID and bin | |
92 | Int_t *fLastVolVolid; // Last Vol Volid | |
93 | Double_t ***fCoordToBinTable; // array with coordinate and bin | |
94 | TH1F **fVolResHistRPHI; // Histogram of Residuals along Global rphi | |
95 | TH1F **fResHistZ; // Histogram of Residuals along Global Z | |
96 | TH1F **fPullHistRPHI; // Misc Histogram ... | |
97 | TH1F **fPullHistZ; // Misc Histogram ... | |
98 | TH1F **fTrackDirPhi; // Misc Histogram ... | |
99 | TH1F **fTrackDirLambda; // Misc Histogram ... | |
100 | TH1F **fTrackDirLambda2; // Misc Histogram ... | |
101 | TH1F **fTrackDirAlpha; // Misc Histogram ... | |
102 | TH1F *fTrackDirPhiAll; // Misc Histogram ... | |
103 | TH1F *fTrackDirLambdaAll; // Misc Histogram ... | |
104 | TH1F *fTrackDirLambda2All; // Misc Histogram ... | |
105 | TH1F *fTrackDirAlphaAll; // Misc Histogram ... | |
106 | TH2F **fTrackDir; // Misc Histogram ... | |
107 | TH2F *fTrackDirAll; // Misc Histogram ... | |
108 | TH2F *fTrackDir2All; // Misc Histogram ... | |
109 | TH2F *fTrackDirXZAll; // Misc Histogram ... | |
110 | TH1F **fResHistGlob; // Histogram of Residuals | |
111 | TH2F **fhistCorrVol; // Misc Histogram ... | |
112 | TH2F *fVolNTracks; // Histogram to see how many tracks pass through a given module | |
113 | TH2F *fhEmpty; // Histogram to get/set the binning | |
114 | TH2F *fhistVolNptsUsed; // Histogram with the numer of points used per volume | |
115 | TH2F *fhistVolUsed; // Histogram with the numer of volumes udes | |
116 | TH2F *fSigmaVolZ; // Histogram with the sigma vs volume Z | |
117 | Bool_t fsingleLayer; // Tag for single layer | |
118 | Bool_t fWriteHist; // Tag for histograms | |
119 | TArrayI *fpTrackVolIDs; // array that gives the volID for the i^(th) entry | |
120 | TArrayI **fVolVolids; // array with the volumes to analyze | |
121 | TArrayI **fVolUsed; // array with the volumes to use | |
122 | Bool_t fRealignObjFileIsOpen; // indicator- if the file fRealignObjFilename is opened | |
123 | TClonesArray *fClonesArray; // pointer to the TClonesArray with the final AliAlignObjParams | |
124 | TString fAliTrackPoints; // Filename with the AliTrackPoints | |
125 | TString fGeom; // Filename with the Geometry | |
126 | ||
127 | ClassDef(AliITSResidualsAnalysis,1) // Residuals analysis for the ITS | |
128 | ||
129 | }; | |
130 | ||
131 | #endif | |
132 |