]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG2/SPECTRA/AliProtonAnalysisBase.h
More control plots
[u/mrichter/AliRoot.git] / PWG2 / SPECTRA / AliProtonAnalysisBase.h
index f0429bf44f47188ef363f1089b1a8d9605f05616..a54a3a3c6b75720235722ea10fd98ead0aa0d681 100644 (file)
@@ -19,6 +19,8 @@ class TF1;
 class TCanvas;
 class TList;
 
+#include "AliPhysicsSelection.h"
+#include "AliBackgroundSelection.h"
 #include "AliPID.h"
 class AliESDEvent;
 class AliESDtrack;
@@ -36,7 +38,8 @@ class AliProtonAnalysisBase : public TObject {
   void SetAnalysisLevel(const char* type) {fProtonAnalysisLevel = type;}
   void SetAnalysisMode(AnalysisMode analysismode) {fProtonAnalysisMode = analysismode;}
   void SetEtaMode() {fAnalysisEtaMode = kTRUE;}
-  void SetTriggerMode(TriggerMode triggermode) {fTriggerMode = triggermode;}
+  void SetTriggerMode(TriggerMode triggermode) {
+    fAnalysisMC = kTRUE; fTriggerMode = triggermode;}
   void SetPIDMode(PIDMode pidmode) {fProtonPIDMode = pidmode;}
 
   const char *GetAnalysisLevel() {return fProtonAnalysisLevel.Data();}
@@ -44,6 +47,7 @@ class AliProtonAnalysisBase : public TObject {
   Bool_t GetEtaMode() const {return fAnalysisEtaMode;}
   TriggerMode GetTriggerMode() const {return fTriggerMode;}
   PIDMode GetPIDMode() const {return fProtonPIDMode;}
+  Bool_t GetMCAnalysisMode() {return fAnalysisMC;}
 
   const  AliESDVertex *GetVertex(AliESDEvent *esd,
                                 AnalysisMode mode,
@@ -55,6 +59,9 @@ class AliProtonAnalysisBase : public TObject {
   Double_t GetVxMax() const {return fVxMax;}
   Double_t GetVyMax() const {return fVyMax;}
   Double_t GetVzMax() const {return fVzMax;}
+  void SetMinNumOfContributors(Int_t nContributors) {
+    fMinNumOfContributors = nContributors;}
+  Int_t GetMinNumOfContributors() {return fMinNumOfContributors;}
 
   void SetPhaseSpace(Int_t nBinsX, Double_t gXmin, Double_t gXmax,
                     Int_t nBinsY, Double_t gYmin, Double_t gYmax) {
@@ -68,11 +75,24 @@ class AliProtonAnalysisBase : public TObject {
   Double_t GetMaxX() const {return fMaxX;}
   Double_t GetMaxY() const {return fMaxY;}
 
-  static Bool_t IsEventTriggered(const AliESDEvent *esd,
-                                 TriggerMode trigger = kMB2);
-  Bool_t IsAccepted(AliESDEvent *esd,
-                   const AliESDVertex *vertex, 
-                   AliESDtrack *track);
+  //Trigger
+  Bool_t IsOnlineTriggerUsed() {return kUseOnlineTrigger;}
+  void UseOnlineTrigger() {kUseOnlineTrigger = kTRUE;}
+  Bool_t IsEventTriggered(const AliESDEvent *esd,
+                         TriggerMode trigger = kMB2);
+  void OfflineTriggerInit() {
+    kUseOfflineTrigger = kTRUE;
+    fPhysicsSelection = new AliPhysicsSelection();
+    fPhysicsSelection->AddBackgroundIdentification(new AliBackgroundSelection());
+    fPhysicsSelection->SetAnalyzeMC(fAnalysisMC);
+  }
+  Bool_t IsOfflineTriggerUsed() {return kUseOfflineTrigger;}
+  AliPhysicsSelection *GetPhysicsSelectionObject() {return fPhysicsSelection;}
+
+  Bool_t IsPrimary(AliESDEvent *esd,
+                  const AliESDVertex *vertex, 
+                  AliESDtrack *track);
+  Bool_t IsAccepted(AliESDtrack *track);
   Bool_t IsInPhaseSpace(AliESDtrack *track);
 
   Float_t GetSigmaToVertex(AliESDtrack* esdTrack) const; 
@@ -253,12 +273,17 @@ class AliProtonAnalysisBase : public TObject {
   AliProtonAnalysisBase& operator=(const AliProtonAnalysisBase&); // Not implemented
 
   TString fProtonAnalysisLevel;//"ESD", "AOD" or "MC"
+  Bool_t fAnalysisMC; //kTRUE if MC analysis while reading the ESDs
   TriggerMode fTriggerMode; //Trigger mode
+  Bool_t kUseOnlineTrigger; //use the online trigger or not
+  Bool_t kUseOfflineTrigger; //use the offline trigger or not
+  AliPhysicsSelection *fPhysicsSelection; //Trigger selection: offline
   AnalysisMode fProtonAnalysisMode; //Analysis mode: TPC-Hybrid-Global
   PIDMode fProtonPIDMode; //PID mode: Bayesian-dE/dx ratio-Nsigma areas
   Bool_t fAnalysisEtaMode; //run the analysis in eta or y
 
   Double_t fVxMax, fVyMax, fVzMax; //vertex diamond constrain 
+  Int_t fMinNumOfContributors;//min number of contributors
 
   Int_t fNBinsX; //number of bins in y or eta
   Double_t fMinX, fMaxX; //min & max value of y or eta