]>
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); | |
146f76de | 35 | ~AliITSResidualsAnalysis(); |
36 | ||
37 | ||
146f76de | 38 | |
39 | void ListVolUsed(TTree *pointsTree,TArrayI ***arrayIndex,Int_t **lastIndex); | |
40 | void ListVolUsed(){if(!fIsIndexBuilt)return;ListVolUsed(fPointsTree,fArrayIndex,fLastIndex);}; | |
41 | ||
42 | void InitHistograms(const TArrayI *volIDs); | |
bad3394b | 43 | void FillResidualsH(AliTrackPointArray *trackClust,AliTrackPointArray *trackFitPoints) const; |
146f76de | 44 | void DrawHists() const; |
bad3394b | 45 | Bool_t SaveHists(Int_t minNpoints=10,TString outname="ResidualsAnalysisTree.root") const; |
46 | ||
146f76de | 47 | void FillVolumeCorrelationHists(Int_t ivol,Int_t volIDalignable,Int_t volIDpoint,Bool_t used) const; |
48 | Bool_t SetBinning(const TArrayI *volids,Float_t *phiBin,Float_t *zBin); | |
49 | Float_t** CheckSingleLayer(const TArrayI *volids); | |
bad3394b | 50 | TArrayI* GetITSLayersVolids(Int_t layers[6]) const; |
51 | TArrayI* GetSPDSectorsVolids(Int_t sectors[10]) const; | |
52 | Int_t WhichSector(Int_t module) const; | |
146f76de | 53 | Int_t GetBinPhiZ(const Int_t volID,Int_t *binz) const; |
54 | void GetTrackDirClusterCov(AliTrackPoint *point,Double_t &phi,Double_t &lambda,Double_t &lambda2,Double_t &alpha,Double_t &xovery,Double_t &zovery) const; | |
bad3394b | 55 | void CalculateResiduals(const TArrayI *volids,const TArrayI *volidsfit,AliGeomManager::ELayerID layerRangeMin,AliGeomManager::ELayerID layerRangeMax,TString outname="ResidualsAnalysisTree.root"); |
56 | void ProcessVolumes(Int_t fit=0,TArrayI *volIDs=0,TArrayI *volIDsFit=0,TString misalignmentFile="",TString outname="ResidualsAnalysisTree.root",Int_t minPoints=2); | |
146f76de | 57 | TString GetFileNameTrackPoints() const { return fAliTrackPoints; }; |
58 | TString GetFileNameGeometry() const { return fGeom; }; | |
59 | void SetFileNameTrackPoints(TString name) { fAliTrackPoints=name; }; | |
60 | void SetFileNameGeometry(TString name) { fGeom=name; }; | |
7387dc73 | 61 | void SetUseGausFit(Bool_t opt=kTRUE) {fUseGausFit=opt;} |
146f76de | 62 | |
146f76de | 63 | enum ModulePhiZ{ |
3dbc7836 | 64 | kPhiSPD1=20, |
65 | kZSPD1=4, | |
66 | kPhiSPD2=40, | |
67 | kZSPD2=4, | |
68 | kPhiSDD1=14, | |
69 | kZSDD1=6, | |
70 | kPhiSDD2=22, | |
71 | kZSDD2=8, | |
72 | kPhiSSD1=34, | |
73 | kZSSD1=22, | |
74 | kPhiSSD2=38, | |
75 | kZSSD2=25 | |
146f76de | 76 | }; |
77 | ||
146f76de | 78 | protected: |
79 | ||
80 | Int_t fnHist; // number of histogram = number of alignable volumes considered | |
81 | Int_t fnPhi; // coordinate of the volume (Phi) | |
82 | Int_t fnZ; // coordinate of the volume (Z) | |
83 | Int_t **fvolidsToBin; // array with volID and bin | |
84 | Int_t *fLastVolVolid; // Last Vol Volid | |
85 | Double_t ***fCoordToBinTable; // array with coordinate and bin | |
86 | TH1F **fVolResHistRPHI; // Histogram of Residuals along Global rphi | |
87 | TH1F **fResHistZ; // Histogram of Residuals along Global Z | |
bad3394b | 88 | TH1F **fResHistX; // Histogram of Residuals along Global X |
89 | TH1F **fResHistXLocsddL; // Histogram of Residuals along Local X | |
90 | // SDD left side of module | |
91 | TH1F **fResHistXLocsddR; // Histogram of Residuals along Local X | |
92 | // SDD right side of module | |
93 | TH1F **fHistCoordGlobY; // Histogram of the Y coordinate in Global Reference | |
146f76de | 94 | TH1F **fPullHistRPHI; // Misc Histogram ... |
95 | TH1F **fPullHistZ; // Misc Histogram ... | |
96 | TH1F **fTrackDirPhi; // Misc Histogram ... | |
97 | TH1F **fTrackDirLambda; // Misc Histogram ... | |
98 | TH1F **fTrackDirLambda2; // Misc Histogram ... | |
99 | TH1F **fTrackDirAlpha; // Misc Histogram ... | |
100 | TH1F *fTrackDirPhiAll; // Misc Histogram ... | |
101 | TH1F *fTrackDirLambdaAll; // Misc Histogram ... | |
102 | TH1F *fTrackDirLambda2All; // Misc Histogram ... | |
103 | TH1F *fTrackDirAlphaAll; // Misc Histogram ... | |
104 | TH2F **fTrackDir; // Misc Histogram ... | |
105 | TH2F *fTrackDirAll; // Misc Histogram ... | |
106 | TH2F *fTrackDir2All; // Misc Histogram ... | |
107 | TH2F *fTrackDirXZAll; // Misc Histogram ... | |
108 | TH1F **fResHistGlob; // Histogram of Residuals | |
109 | TH2F **fhistCorrVol; // Misc Histogram ... | |
110 | TH2F *fVolNTracks; // Histogram to see how many tracks pass through a given module | |
111 | TH2F *fhEmpty; // Histogram to get/set the binning | |
112 | TH2F *fhistVolNptsUsed; // Histogram with the numer of points used per volume | |
113 | TH2F *fhistVolUsed; // Histogram with the numer of volumes udes | |
114 | TH2F *fSigmaVolZ; // Histogram with the sigma vs volume Z | |
115 | Bool_t fsingleLayer; // Tag for single layer | |
116 | Bool_t fWriteHist; // Tag for histograms | |
117 | TArrayI *fpTrackVolIDs; // array that gives the volID for the i^(th) entry | |
118 | TArrayI **fVolVolids; // array with the volumes to analyze | |
119 | TArrayI **fVolUsed; // array with the volumes to use | |
120 | Bool_t fRealignObjFileIsOpen; // indicator- if the file fRealignObjFilename is opened | |
121 | TClonesArray *fClonesArray; // pointer to the TClonesArray with the final AliAlignObjParams | |
122 | TString fAliTrackPoints; // Filename with the AliTrackPoints | |
123 | TString fGeom; // Filename with the Geometry | |
7387dc73 | 124 | Bool_t fUseGausFit; // Fit residual histos with gaussians |
146f76de | 125 | |
f9e8ab3f | 126 | private: |
127 | AliITSResidualsAnalysis(const AliITSResidualsAnalysis&); // Not implemented | |
128 | AliITSResidualsAnalysis& operator=(const AliITSResidualsAnalysis&); // Not implemented | |
129 | ||
130 | ||
7387dc73 | 131 | ClassDef(AliITSResidualsAnalysis,3) // Residuals analysis for the ITS |
146f76de | 132 | |
133 | }; | |
134 | ||
135 | #endif | |
136 |