]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/AliITSResidualsAnalysis.h
Removing warnings (Andrea)
[u/mrichter/AliRoot.git] / ITS / AliITSResidualsAnalysis.h
CommitLineData
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
17class TObject;
18class TCanvas;
19class TH1F;
20class TH2F;
21class TArrayI;
22
23class AliTrackPointArray;
24class AliTrackResiduals;
25class AliAlignObj;
26
27class 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