]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG0/TPC/AliTPCClusterHistograms.h
Typo corrected.
[u/mrichter/AliRoot.git] / PWG0 / TPC / AliTPCClusterHistograms.h
CommitLineData
2d9e89d4 1#ifndef ALITPCClusterHistograms_H
2#define ALITPCClusterHistograms_H
3
4/* $Id$ */
5
95f3e807 6//
7// This class contains a number of histograms for diagnostics of a TPC
8// read out chamber from the reconstructed clusters.
9//
2d9e89d4 10
7ca4655f 11#include <TCollection.h>
1d7991a5 12#include <TNamed.h>
dc89d87e 13#include <TString.h>
2d9e89d4 14
15class TH3;
16class TH2F;
9ecad4f3 17class TH1F;
483b1eb8 18class TCanvas;
19class TProfile;
2d9e89d4 20class TProfile2D;
9ecad4f3 21class TObjArray;
95f3e807 22
2d9e89d4 23class AliTPCclusterMI;
9ecad4f3 24class AliTPCseed;
2d9e89d4 25
26class AliTPCClusterHistograms : public TNamed
27{
28public:
29
30 AliTPCClusterHistograms();
1d7991a5 31 AliTPCClusterHistograms(Int_t detector, const Char_t* comment="", Int_t timeStart=-1, Int_t timeStop=-1, Bool_t edgeSuppression = kFALSE);
483b1eb8 32
2d9e89d4 33 AliTPCClusterHistograms(const AliTPCClusterHistograms& c);
34 virtual ~AliTPCClusterHistograms();
35 AliTPCClusterHistograms& operator=(const AliTPCClusterHistograms& corrMatrix);
36
37 virtual Long64_t Merge(TCollection* list);
fe8871b7 38
2d9e89d4 39 virtual void SaveHistograms();
fe8871b7 40 void SetCommentToHistograms(const Char_t* text) {fCommentToHistograms = TString(text);}
2d9e89d4 41
fe8871b7 42 void FillEvent(Int_t time, Int_t nTracks);
9ecad4f3 43 void FillTrack(const AliTPCseed* seed);
483b1eb8 44 void FillCluster(AliTPCclusterMI* clusterMI, Int_t time=-1);
fe8871b7 45
46 void StartEvent();
47 void FinishEvent(Int_t timeStamp);
48
49 Int_t GetNClusters() {return fNClustersInEvent;}
50 Float_t GetQtotInEvent() {return fQtotInEvent;}
51 Float_t GetMaxQtotInEvent() {return fMaxQtotInEvent;}
9ecad4f3 52
fe8871b7 53 Bool_t KeepThisEvent(TString& why);
54 const Char_t* WhyKeepEvent() {return fWhyKeepEvent.Data();}
483b1eb8 55
fe8871b7 56 Bool_t IsClusterOnEdge(AliTPCclusterMI* clusterMI);
57 Float_t DistanceToEdge(AliTPCclusterMI* clusterMI);
58
483b1eb8 59 TCanvas* DrawHistograms(const Char_t* opt="");
2d9e89d4 60
dc89d87e 61 static TString FormDetectorName(Int_t detector, Bool_t edgeSuppression = kFALSE, const char* comment = 0);
1d7991a5 62
2d9e89d4 63protected:
64
95f3e807 65 Int_t fTimeStart; // begin time of run(s)
66 Int_t fTimeStop; // end time of runs(s)
483b1eb8 67
9ecad4f3 68 TH2F* fhQmaxVsRow; // QmaxVsRow
69 TH2F* fhQtotVsRow; // QtotVsRow
70
71 TProfile* fhQtotProfileVsRow; // QtotProfileVsRow
72 TProfile* fhQmaxProfileVsRow; // QmaxProfileVsRow
73
fe8871b7 74 TH2F* fhQtotVsDistanceToEdge; // qtot vs distance to edge
75 TProfile* fhQtotProfileVsDistanceToEdge; // qtot vs distance to edge
76
77 TH2F* fhNClustersYVsRow; // n clusters y vs row
78 TH2F* fhNClustersZVsRow; // n clusters z vs row
9ecad4f3 79
80 TH2F* fhSigmaYVsRow; // SigmaYVsRow
81 TH2F* fhSigmaZVsRow; // SigmaZVsRow
82
83 TProfile2D* fhQmaxProfileYVsRow; // QmaxProfileYVsRow
84 TProfile2D* fhQtotProfileYVsRow; // QtotProfileYVsRow
85 TProfile2D* fhSigmaYProfileYVsRow; // SigmaYProfileYVsRow
86 TProfile2D* fhSigmaZProfileYVsRow; // SigmaZProfileYVsRow
87
88 TProfile2D* fhQmaxProfileZVsRow; // QmaxProfileZVsRow
89 TProfile2D* fhQtotProfileZVsRow; // QtotProfileZVsRow
90 TProfile2D* fhSigmaYProfileZVsRow; // SigmaYProfileZVsRow
91 TProfile2D* fhSigmaZProfileZVsRow; // SigmaZProfileZVsRow
92
fe8871b7 93 TProfile* fhMeanQtotVsTime; // mean qtot vs time
94 TH2F* fhQtotVsTime; // qtot vs time
95 TProfile* fhMeanNClustersVsTime; // mean number of clusters vs time
96 TH2F* fhNClustersVsTime; // number of clusters vs time
9ecad4f3 97
98 TH1F* fhTrackQtotPerCluster; // TrackQtotPerCluster
99
fe8871b7 100 TH2F* fhTrackQtotPerClusterVsPhi; // TrackQtotPerClusterVsPhi
101 TH2F* fhTrackQtotPerClusterVsTheta; // TrackQtotPerClusterVsTheta
9ecad4f3 102
fe8871b7 103 TProfile* fhTrackMeanQtotPerClusterVsPhi; // TrackMeanQtotPerClusterVsPhi
104 TProfile* fhTrackMeanQtotPerClusterVsTheta; // TrackMeanQtotPerClusterVsTheta
105
106 TProfile* fhMeanNTracksVsTime; // mean number of tracks vs time
107 TH1F* fhNEventsVsTime; // number of events vs time
9ecad4f3 108
109 Int_t fDetector; // number of detector
1d7991a5 110 Bool_t fIsIROC; // true = IROC, false = OROC
111 Bool_t fEdgeSuppression; // if set edges are not taken into account for histograms
2d9e89d4 112
fe8871b7 113 Int_t fNClustersInEvent; // number of clusters in event
114 Float_t fQtotInEvent; // total qtot in event
115 Float_t fMaxQtotInEvent; // max qtot in event
116
117 Bool_t fKeepEvent; // keep this event
118 TString fWhyKeepEvent; // why
119
120 TString fCommentToHistograms; // comments to histograms
121
2d9e89d4 122 ClassDef(AliTPCClusterHistograms,1)
123};
124
125#endif
126