]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TOF/AliTOFAnalysisTaskCalibPass0.h
added TOF calibration library and code for pass0/passX calibration
[u/mrichter/AliRoot.git] / TOF / AliTOFAnalysisTaskCalibPass0.h
diff --git a/TOF/AliTOFAnalysisTaskCalibPass0.h b/TOF/AliTOFAnalysisTaskCalibPass0.h
new file mode 100644 (file)
index 0000000..1ce0841
--- /dev/null
@@ -0,0 +1,110 @@
+#ifndef ALITOFANALYSISTASKCALIBPASS0_H
+#define ALITOFANALYSISTASKCALIBPASS0_H
+
+/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ * See cxx source for full Copyright notice                               */
+
+///////////////////////////////////////////////////////////////
+//                                                           //
+//   This class provides TOF pass0/passX calibration tools   //
+//                                                           //
+///////////////////////////////////////////////////////////////
+
+#include "AliAnalysisTaskSE.h"
+
+class AliESDtrack;
+class AliESDEvent;
+class AliPhysicsSelection;
+class AliESDtrackCuts;
+class AliESDVertex;
+class AliGRPManager;
+class AliGRPObject;
+class AliTOFcalib;
+class TList;
+class TH2F;
+class TF1;
+class TH1D;
+
+class AliTOFAnalysisTaskCalibPass0 :
+public AliAnalysisTaskSE
+{
+
+ public:
+
+  AliTOFAnalysisTaskCalibPass0(); // default constructor
+  virtual ~AliTOFAnalysisTaskCalibPass0(); // default destructor
+
+  virtual void UserCreateOutputObjects(); // user create output objects
+  virtual void UserExec(Option_t *); // user exec
+
+  /* getters */
+  AliPhysicsSelection *GetEventCuts() const {return fEventCuts;}; // getter
+  AliESDtrackCuts *GetTrackCuts() const {return fTrackCuts;}; // getter
+  AliTOFcalib *GetTOFcalib() const {return fTOFcalib;}; // getter
+  
+  /* setters */
+  void SetEventSelectionFlag(Bool_t value = kTRUE) {fEventSelectionFlag = value;}; // setter
+  void SetVertexSelectionFlag(Bool_t value = kTRUE) {fVertexSelectionFlag = value;}; // setter
+  void SetVertexCut(Double_t value) {fVertexCut = value;}; // setter
+
+  /* post-processing methods */
+  Bool_t ProcessOutput(const Char_t *filename, const Char_t *dbString); // process output
+  
+ protected:
+
+  AliTOFAnalysisTaskCalibPass0(const AliTOFAnalysisTaskCalibPass0 &); // copy constructor
+  AliTOFAnalysisTaskCalibPass0 &operator=(const AliTOFAnalysisTaskCalibPass0 &); // operator=
+
+  /* methods */
+  Bool_t InitRun(); // init run
+  Bool_t InitEvent(); // init event
+  Bool_t HasTOFMeasurement(const AliESDtrack *track) const ; // has TOF measurement
+
+  /* post-processing methods */
+  Bool_t CheckMatchingPerformance(const TH2F *histoDeltazEta, const TH2F *histoAcceptedTracksEtaPt, const TH2F *histoMatchedTracksEtaPt) const; // check matching efficiency
+  Bool_t CalibrateAndStore(TH2F *histoVertexTimestamp, TH2F *histoDeltatTimestamp, const Char_t *dbString); // calibrate and store
+  Int_t FitPeak(TF1 *fitFunc, TH1D *h, Float_t startSigma, Float_t nSigmaMin, Float_t nSigmaMax); // fit peak
+
+  /* flags and cuts */
+  Bool_t fInitFlag; // init flag
+  Bool_t fEventSelectionFlag; // event selection flag
+  Bool_t fVertexSelectionFlag; // vertex selection flag
+  Double_t fVertexCut; // vertex cut
+
+  /* ESD analysis */
+  Int_t fRunNumber; // run number
+  AliESDEvent *fESDEvent; // ESD event
+  AliPhysicsSelection *fEventCuts; // event cuts
+  AliESDtrackCuts *fTrackCuts; // track cuts
+  UInt_t fStartTime; // start time
+  UInt_t fEndTime; // end time
+  UInt_t fEventTime; // event time
+  UInt_t fElapsedTime; // event time since start
+  const AliESDVertex *fkVertex; // vertex
+
+  /* GRP related stuff */
+  AliGRPManager *fGRPManager; // GRP manager
+  const AliGRPObject *fkGRPObject; // GRP object
+  
+  /* TOF related stuff */
+  AliTOFcalib *fTOFcalib; // TOF calib
+
+  /* lists and histos */
+  TList *fHistoList; // list of histograms
+  TH2F *fHistoVertexTimestamp; // vertex-timestamp histo
+  TH2F *fHistoDeltatTimestamp; // deltat-timestamp histo
+  TH2F *fHistoDeltazEta; // deltaz-eta histo
+  TH2F *fHistoDeltazCosTheta; // deltaz-costheta histo
+  TH2F *fHistoAcceptedTracksEtaPt; // accepted tracks eta-pt histo
+  TH2F *fHistoMatchedTracksEtaPt; // matched tracks eta-pt histo
+
+  /* post-processing variables */
+  static const Int_t fgkMaxNumberOfPoints; // max number of points
+  static const Double_t fgkMinVertexIntegral; // min vertex integral
+  static const Double_t fgkMinDeltatIntegral; // min vertex integral
+
+
+  ClassDef(AliTOFAnalysisTaskCalibPass0, 1);
+};
+
+#endif /* ALIANALYSISTASKEVENTTIME_H */