]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGPP/TPC/AliPerformanceObject.h
end-of-line normalization
[u/mrichter/AliRoot.git] / PWGPP / TPC / AliPerformanceObject.h
index b840ab108f2a09e70532bc170b8c6e751087f4d1..148fa65d2561095c7ac8e4ce3bd6cc4f3bec8339 100644 (file)
-#ifndef ALIPERFORMANCEOBJECT_H\r
-#define ALIPERFORMANCEOBJECT_H\r
-\r
-//------------------------------------------------------------------------------\r
-// Base class to keep information from comparison of \r
-// reconstructed and MC particle tracks.   \r
-// \r
-// Author: J.Otwinowski 04/14/2008 \r
-// Changes by M.Knichel 15/10/2010\r
-//------------------------------------------------------------------------------\r
-\r
-#include "TNamed.h"\r
-#include "TFolder.h"\r
-#include "THnSparse.h"\r
-\r
-class TTree;\r
-class AliMCEvent;\r
-class AliESDEvent;\r
-class AliRecInfoCuts;\r
-class AliMCInfoCuts;\r
-class AliESDfriend;\r
-class AliESDVertex;\r
-\r
-class AliPerformanceObject : public TNamed {\r
-public :\r
-  AliPerformanceObject(); \r
-  AliPerformanceObject(const char* name="AliPerformanceObject", const char* title="AliPerformanceObject", Int_t run=-1, Bool_t highMult=kFALSE); \r
-  virtual ~AliPerformanceObject();\r
-\r
-  // Init data members\r
-  // call once before event loop\r
-  virtual void Init() = 0;\r
-  \r
-  // init for high multiplicity (PbPb) \r
-  // to be called instead of Init()\r
-  virtual void InitHighMult();\r
-  \r
-  // Execute analysis\r
-  // call in the event loop \r
-  virtual void Exec(AliMCEvent* const infoMC=0, AliESDEvent* const infoRC=0, AliESDfriend* const infoFriend=0, const Bool_t bUseMC=kFALSE, const Bool_t bUseESDfriend=kFALSE) = 0;\r
-\r
-  // Merge output objects (needed by PROOF) \r
-  virtual Long64_t Merge(TCollection* const list=0) = 0;\r
-\r
-  // project to 1d,2d,3d\r
-  // is called from FinishTaskOuput() in AliPerformanceTask\r
-  virtual void Analyse() = 0;\r
-\r
-  // Get output folder for analysed histograms\r
-  virtual TFolder* GetAnalysisFolder() const = 0;\r
-  \r
-  // create a summary stored in a ttree \r
-  // has to be implented\r
-  virtual TTree* CreateSummary() { return 0; }\r
-  \r
-  // project to 1d,2d,3d\r
-  // is called from Terminate() in AliPerformanceTask\r
-  // final spectra calculation\r
-  virtual void AnalyseFinal() { ; }\r
-\r
-  // \r
-  virtual void SetAliRecInfoCuts(AliRecInfoCuts* const cuts=0) = 0;\r
-  virtual void SetAliMCInfoCuts(AliMCInfoCuts* const cuts=0) = 0; \r
-\r
-  // set and get analysisMode\r
-  void SetAnalysisMode(const Int_t analysisMode=0) {fAnalysisMode = analysisMode;} \r
-  Int_t GetAnalysisMode() const {return fAnalysisMode;}\r
-\r
-  // set and get hpt generator \r
-  void SetHptGenerator(const Bool_t hptGenerator=kFALSE) {fHptGenerator = hptGenerator;}\r
-  Bool_t IsHptGenerator() const {return fHptGenerator;}\r
-\r
-  // draw all histograms from the folder\r
-  void PrintHisto(Bool_t logz = kTRUE, const Char_t * outFileName = "PerformanceQAHisto.ps"); \r
-\r
-  // create log axis \r
-  Double_t *CreateLogAxis(Int_t nbins, Double_t xmin, Double_t xmax); \r
-\r
-  // trigger class selection\r
-  void SetTriggerClass(const Char_t *triggerClass) { fTriggerClass = triggerClass; }\r
-  const Char_t* GetTriggerClass() const { return fTriggerClass; }\r
-\r
-  // use track vertex\r
-  void SetUseTrackVertex(Bool_t trackVtx = kTRUE) { fUseTrackVertex = trackVtx; }\r
-  Bool_t IsUseTrackVertex() { return fUseTrackVertex; }\r
-  \r
-  Bool_t IsHighMultiplicity() { return fHighMultiplicity; }  \r
-  \r
-  // merging of thnsparse\r
-  Bool_t GetMergeTHnSparseObj() { return fMergeTHnSparseObj; }\r
-  void SetMergeTHnSparseObj(Bool_t merge) {fMergeTHnSparseObj = merge; }  \r
-  \r
-  void SetRunNumber(Int_t run) { fRunNumber = run; }\r
-  Int_t GetRunNumber() const { return fRunNumber; }\r
-\r
-  // use kink daughters\r
-  void SetUseKinkDaughters(Bool_t kinkDaughters = kTRUE) { fUseKinkDaughters = kinkDaughters; }\r
-  Bool_t IsUseKinkDaughters() { return fUseKinkDaughters; }\r
-\r
-  // Centrality bin to be used\r
-  void  SetUseCentralityBin(Int_t bin) { fUseCentralityBin = bin; }\r
-  Int_t GetUseCentralityBin()          { return fUseCentralityBin; }\r
-\r
-  // use tof bunch crossing\r
-  void SetUseTOFBunchCrossing(Bool_t tofBunching = kTRUE) { fUseTOFBunchCrossing = tofBunching; }\r
-  Bool_t IsUseTOFBunchCrossing() { return fUseTOFBunchCrossing; }\r
-\r
-protected: \r
-\r
-  void AddProjection(TObjArray* aFolderObj, TString nameSparse, THnSparse *hSparse, Int_t xDim, TString* selString = 0);\r
-  void AddProjection(TObjArray* aFolderObj, TString nameSparse, THnSparse *hSparse, Int_t xDim, Int_t yDim, TString* selString = 0);\r
-  void AddProjection(TObjArray* aFolderObj, TString nameSparse, THnSparse *hSparse, Int_t xDim, Int_t yDim, Int_t zDim, TString* selString = 0);\r
-\r
-  // merge THnSparse\r
-  Bool_t fMergeTHnSparseObj;\r
-  \r
-  // analysis mode\r
-  Int_t fAnalysisMode;  // 0-TPC, 1-TPCITS, 2-Constrained, 3-TPC inner wall, 4-TPC outer wall\r
-\r
-  Int_t fRunNumber;\r
-\r
-  // hpt generator\r
-  Bool_t fHptGenerator; // hpt event generator\r
-\r
-  // trigger class\r
-  const Char_t * fTriggerClass;\r
-\r
-  // use track vertex\r
-  Bool_t fUseTrackVertex; // use track vertex\r
-  \r
-  // PbPb mode?\r
-  Bool_t fHighMultiplicity; // flag to switch between pp and PbPb  \r
-\r
-  Bool_t fUseKinkDaughters; // use kink daughthers, default is yes\r
-\r
-  Int_t  fUseCentralityBin;  // centrality bin to be used \r
-\r
-  Bool_t fUseTOFBunchCrossing; // use TOFBunchCrossing, default is yes\r
-\r
-  AliPerformanceObject(const AliPerformanceObject&); // not implemented\r
-  AliPerformanceObject& operator=(const AliPerformanceObject&); // not implemented\r
-\r
-  ClassDef(AliPerformanceObject,7);\r
-};\r
-\r
-#endif\r
+#ifndef ALIPERFORMANCEOBJECT_H
+#define ALIPERFORMANCEOBJECT_H
+
+//------------------------------------------------------------------------------
+// Base class to keep information from comparison of 
+// reconstructed and MC particle tracks.   
+// 
+// Author: J.Otwinowski 04/14/2008 
+// Changes by M.Knichel 15/10/2010
+//------------------------------------------------------------------------------
+
+#include "TNamed.h"
+#include "TFolder.h"
+#include "THnSparse.h"
+
+class TTree;
+class AliMCEvent;
+class AliESDEvent;
+class AliRecInfoCuts;
+class AliMCInfoCuts;
+class AliESDfriend;
+class AliESDVertex;
+
+class AliPerformanceObject : public TNamed {
+public :
+  AliPerformanceObject(); 
+  AliPerformanceObject(const char* name="AliPerformanceObject", const char* title="AliPerformanceObject", Int_t run=-1, Bool_t highMult=kFALSE); 
+  virtual ~AliPerformanceObject();
+
+  // Init data members
+  // call once before event loop
+  virtual void Init() = 0;
+  
+  // init for high multiplicity (PbPb) 
+  // to be called instead of Init()
+  virtual void InitHighMult();
+  
+  // Execute analysis
+  // call in the event loop 
+  virtual void Exec(AliMCEvent* const infoMC=0, AliESDEvent* const infoRC=0, AliESDfriend* const infoFriend=0, const Bool_t bUseMC=kFALSE, const Bool_t bUseESDfriend=kFALSE) = 0;
+
+  // Merge output objects (needed by PROOF) 
+  virtual Long64_t Merge(TCollection* const list=0) = 0;
+
+  // project to 1d,2d,3d
+  // is called from FinishTaskOuput() in AliPerformanceTask
+  virtual void Analyse() = 0;
+
+  // Get output folder for analysed histograms
+  virtual TFolder* GetAnalysisFolder() const = 0;
+  
+  // create a summary stored in a ttree 
+  // has to be implented
+  virtual TTree* CreateSummary() { return 0; }
+  
+  // project to 1d,2d,3d
+  // is called from Terminate() in AliPerformanceTask
+  // final spectra calculation
+  virtual void AnalyseFinal() { ; }
+
+  // 
+  virtual void SetAliRecInfoCuts(AliRecInfoCuts* const cuts=0) = 0;
+  virtual void SetAliMCInfoCuts(AliMCInfoCuts* const cuts=0) = 0; 
+
+  // set and get analysisMode
+  void SetAnalysisMode(const Int_t analysisMode=0) {fAnalysisMode = analysisMode;} 
+  Int_t GetAnalysisMode() const {return fAnalysisMode;}
+
+  // set and get hpt generator 
+  void SetHptGenerator(const Bool_t hptGenerator=kFALSE) {fHptGenerator = hptGenerator;}
+  Bool_t IsHptGenerator() const {return fHptGenerator;}
+
+  // draw all histograms from the folder
+  void PrintHisto(Bool_t logz = kTRUE, const Char_t * outFileName = "PerformanceQAHisto.ps"); 
+
+  // create log axis 
+  Double_t *CreateLogAxis(Int_t nbins, Double_t xmin, Double_t xmax); 
+
+  // trigger class selection
+  void SetTriggerClass(const Char_t *triggerClass) { fTriggerClass = triggerClass; }
+  const Char_t* GetTriggerClass() const { return fTriggerClass; }
+
+  // use track vertex
+  void SetUseTrackVertex(Bool_t trackVtx = kTRUE) { fUseTrackVertex = trackVtx; }
+  Bool_t IsUseTrackVertex() { return fUseTrackVertex; }
+  
+  Bool_t IsHighMultiplicity() { return fHighMultiplicity; }  
+  
+  // merging of thnsparse
+  Bool_t GetMergeTHnSparseObj() { return fMergeTHnSparseObj; }
+  void SetMergeTHnSparseObj(Bool_t merge) {fMergeTHnSparseObj = merge; }  
+  
+  void SetRunNumber(Int_t run) { fRunNumber = run; }
+  Int_t GetRunNumber() const { return fRunNumber; }
+
+  // use kink daughters
+  void SetUseKinkDaughters(Bool_t kinkDaughters = kTRUE) { fUseKinkDaughters = kinkDaughters; }
+  Bool_t IsUseKinkDaughters() { return fUseKinkDaughters; }
+
+  // Centrality bin to be used
+  void  SetUseCentralityBin(Int_t bin) { fUseCentralityBin = bin; }
+  Int_t GetUseCentralityBin()          { return fUseCentralityBin; }
+
+  // use tof bunch crossing
+  void SetUseTOFBunchCrossing(Bool_t tofBunching = kTRUE) { fUseTOFBunchCrossing = tofBunching; }
+  Bool_t IsUseTOFBunchCrossing() { return fUseTOFBunchCrossing; }
+
+protected: 
+
+  void AddProjection(TObjArray* aFolderObj, TString nameSparse, THnSparse *hSparse, Int_t xDim, TString* selString = 0);
+  void AddProjection(TObjArray* aFolderObj, TString nameSparse, THnSparse *hSparse, Int_t xDim, Int_t yDim, TString* selString = 0);
+  void AddProjection(TObjArray* aFolderObj, TString nameSparse, THnSparse *hSparse, Int_t xDim, Int_t yDim, Int_t zDim, TString* selString = 0);
+
+  // merge THnSparse
+  Bool_t fMergeTHnSparseObj;
+  
+  // analysis mode
+  Int_t fAnalysisMode;  // 0-TPC, 1-TPCITS, 2-Constrained, 3-TPC inner wall, 4-TPC outer wall
+
+  Int_t fRunNumber;
+
+  // hpt generator
+  Bool_t fHptGenerator; // hpt event generator
+
+  // trigger class
+  const Char_t * fTriggerClass;
+
+  // use track vertex
+  Bool_t fUseTrackVertex; // use track vertex
+  
+  // PbPb mode?
+  Bool_t fHighMultiplicity; // flag to switch between pp and PbPb  
+
+  Bool_t fUseKinkDaughters; // use kink daughthers, default is yes
+
+  Int_t  fUseCentralityBin;  // centrality bin to be used 
+
+  Bool_t fUseTOFBunchCrossing; // use TOFBunchCrossing, default is yes
+
+  AliPerformanceObject(const AliPerformanceObject&); // not implemented
+  AliPerformanceObject& operator=(const AliPerformanceObject&); // not implemented
+
+  ClassDef(AliPerformanceObject,7);
+};
+
+#endif