]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG0/TPC/AliTPCClusterHistograms.h
added float/double/signed HLT basic data types
[u/mrichter/AliRoot.git] / PWG0 / TPC / AliTPCClusterHistograms.h
index 772e89a898f492aa66a5ee37b816fb74aa2fd0a4..3c177e1a062feb963b301c5ddfd77c335550435e 100644 (file)
 // read out chamber from the reconstructed clusters.
 //
 
-#include "TNamed.h"
+#include <TCollection.h>
+#include <TNamed.h>
+#include <TString.h>
 
 class TH3;
 class TH2F;
+class TH1F;
 class TCanvas;
 class TProfile;
 class TProfile2D;
-class TString;
+class TObjArray;
 
 class AliTPCclusterMI;
+class AliTPCseed;
 
 class AliTPCClusterHistograms : public TNamed
 {
 public:
 
   AliTPCClusterHistograms();
-  AliTPCClusterHistograms(Int_t detector, const Char_t* comment="", Int_t timeStart=-1, Int_t timeStop=-1);
+  AliTPCClusterHistograms(Int_t detector, const Char_t* comment="", Int_t timeStart=-1, Int_t timeStop=-1, Bool_t edgeSuppression = kFALSE);
   
   AliTPCClusterHistograms(const AliTPCClusterHistograms& c);
   virtual ~AliTPCClusterHistograms();
   AliTPCClusterHistograms& operator=(const AliTPCClusterHistograms& corrMatrix);
 
   virtual Long64_t Merge(TCollection* list);
-
+  
   virtual void SaveHistograms();
+  void         SetCommentToHistograms(const Char_t* text) {fCommentToHistograms = TString(text);}
 
+  void FillEvent(Int_t time, Int_t nTracks);
+  void FillTrack(const AliTPCseed* seed);
   void FillCluster(AliTPCclusterMI* clusterMI, Int_t time=-1);
-  //  void FillCluster(AliTPCclusterMI* clusterMI, Int_t time=-1, Float_t trackangle);
+  
+  void    StartEvent();
+  void    FinishEvent(Int_t timeStamp);
+  
+  Int_t   GetNClusters() {return fNClustersInEvent;}
+  Float_t GetQtotInEvent() {return fQtotInEvent;}
+  Float_t GetMaxQtotInEvent() {return fMaxQtotInEvent;}
+
+  Bool_t  KeepThisEvent(TString& why);
+  const Char_t* WhyKeepEvent() {return fWhyKeepEvent.Data();}
 
+  Bool_t  IsClusterOnEdge(AliTPCclusterMI* clusterMI);
+  Float_t DistanceToEdge(AliTPCclusterMI* clusterMI);
   TCanvas* DrawHistograms(const Char_t* opt="");
 
+  static TString FormDetectorName(Int_t detector, Bool_t edgeSuppression = kFALSE, const char* comment = 0);
+
 protected:
 
   Int_t       fTimeStart;               // begin time of run(s)
   Int_t       fTimeStop;                // end time of runs(s)
 
-  TH2F*       fhQmaxVsRow;              //
-  TH2F*       fhQtotVsRow;              //
-  TH2F*       fhSigmaYVsRow;            //
-  TH2F*       fhSigmaZVsRow;            //
-
-  TProfile2D* fhQmaxProfileYVsRow;      //
-  TProfile2D* fhQtotProfileYVsRow;      // 
-  TProfile2D* fhSigmaYProfileYVsRow;    //
-  TProfile2D* fhSigmaZProfileYVsRow;    //
-
-  TProfile2D* fhQmaxProfileZVsRow;      //
-  TProfile2D* fhQtotProfileZVsRow;      //
-  TProfile2D* fhSigmaYProfileZVsRow;    //
-  TProfile2D* fhSigmaZProfileZVsRow;    //
-
-  TProfile*   fhQtotVsTime;             //
-  TProfile*   fhQmaxVsTime;             //
+  TH2F*       fhQmaxVsRow;              //        QmaxVsRow
+  TH2F*       fhQtotVsRow;              //       QtotVsRow
+                                                                                           
+  TProfile*   fhQtotProfileVsRow;       //       QtotProfileVsRow
+  TProfile*   fhQmaxProfileVsRow;       //       QmaxProfileVsRow
+
+  TH2F*       fhQtotVsDistanceToEdge;        // qtot vs distance to edge
+  TProfile*   fhQtotProfileVsDistanceToEdge; // qtot vs distance to edge
+
+  TH2F*       fhNClustersYVsRow;        //        n clusters y vs row
+  TH2F*       fhNClustersZVsRow;        //        n clusters z vs row
+                                                                                           
+  TH2F*       fhSigmaYVsRow;            //       SigmaYVsRow
+  TH2F*       fhSigmaZVsRow;            //       SigmaZVsRow
+                                                                                           
+  TProfile2D* fhQmaxProfileYVsRow;      //       QmaxProfileYVsRow
+  TProfile2D* fhQtotProfileYVsRow;      //       QtotProfileYVsRow
+  TProfile2D* fhSigmaYProfileYVsRow;    //       SigmaYProfileYVsRow
+  TProfile2D* fhSigmaZProfileYVsRow;    //       SigmaZProfileYVsRow
+                                                                                           
+  TProfile2D* fhQmaxProfileZVsRow;      //       QmaxProfileZVsRow
+  TProfile2D* fhQtotProfileZVsRow;      //       QtotProfileZVsRow
+  TProfile2D* fhSigmaYProfileZVsRow;    //       SigmaYProfileZVsRow
+  TProfile2D* fhSigmaZProfileZVsRow;    //       SigmaZProfileZVsRow
+                                                                                           
+  TProfile*   fhMeanQtotVsTime;         //       mean qtot vs time
+  TH2F*       fhQtotVsTime;             //       qtot vs time
+  TProfile*   fhMeanNClustersVsTime;    //        mean number of clusters vs time
+  TH2F*       fhNClustersVsTime;        //        number of clusters vs time
+                                                                                           
+  TH1F*       fhTrackQtotPerCluster;    //       TrackQtotPerCluster
+                                                                                           
+  TH2F*       fhTrackQtotPerClusterVsPhi; //     TrackQtotPerClusterVsPhi
+  TH2F*       fhTrackQtotPerClusterVsTheta; //   TrackQtotPerClusterVsTheta
+                                                                                           
+  TProfile*   fhTrackMeanQtotPerClusterVsPhi; //  TrackMeanQtotPerClusterVsPhi
+  TProfile*   fhTrackMeanQtotPerClusterVsTheta; //  TrackMeanQtotPerClusterVsTheta
+
+  TProfile*   fhMeanNTracksVsTime;        // mean number of tracks vs time   
+  TH1F*       fhNEventsVsTime;            // number of events vs time
+
+  Int_t       fDetector;                // number of detector
+  Bool_t      fIsIROC;                  // true = IROC, false = OROC
+  Bool_t      fEdgeSuppression;         // if set edges are not taken into account for histograms
+
+  Int_t       fNClustersInEvent;        // number of clusters in event
+  Float_t     fQtotInEvent;             // total qtot in event
+  Float_t     fMaxQtotInEvent;          // max qtot in event
+
+  Bool_t      fKeepEvent;               // keep this event
+  TString     fWhyKeepEvent;            // why
+
+  TString     fCommentToHistograms;     // comments to histograms
 
   ClassDef(AliTPCClusterHistograms,1)
 };