]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG2/AliAnalysisTaskProtons.h
Do final processing
[u/mrichter/AliRoot.git] / PWG2 / AliAnalysisTaskProtons.h
index eceeeee02287af4b16bb57919906d93d8b813d10..5fe4c8cbd615520606b07a15c73a4abe69524c83 100644 (file)
@@ -3,17 +3,23 @@
 
 // Analysis task creating a the 2d y-p_t spectrum of p and antip
 // Author: Panos Cristakoglou
-
+class TString;
 class TList;
 class AliESDEvent;
-#include "TF1.h"
+class AliAODEvent;
+class AliMCEvent;
+class AliProtonAnalysis;
+class TF1;
 
-#include "PWG2spectra/SPECTRA/AliProtonAnalysis.h"
 #include "AliAnalysisTask.h"
 
 class AliAnalysisTaskProtons : public AliAnalysisTask {
  public:
-  AliAnalysisTaskProtons(const char *name = "AliAnalysisTaskProtons");
+  enum TriggerMode { kMB1 = 0, kMB2, kSPDFASTOR }; 
+  enum AnalysisMode { kInvalid = -1, kTPC = 0, kHybrid, kGlobal };
+  
+  AliAnalysisTaskProtons();
+  AliAnalysisTaskProtons(const char *name);
   virtual ~AliAnalysisTaskProtons() {}
   
   virtual void   ConnectInputData(Option_t *);
@@ -21,11 +27,12 @@ class AliAnalysisTaskProtons : public AliAnalysisTask {
   virtual void   Exec(Option_t *option);
   virtual void   Terminate(Option_t *);
 
-  void SetPriorProbabilityFunctions(TF1 *felectrons, 
-                                   TF1 *fmuons,
-                                   TF1 *fpions,
-                                   TF1 *fkaons,
-                                   TF1 *fprotons) {
+  void SetType(const char* type) {fAnalysisType = type;}
+  void SetPriorProbabilityFunctions(TF1 *felectrons,
+                                    TF1 *fmuons,
+                                    TF1 *fpions,
+                                    TF1 *fkaons,
+                                    TF1 *fprotons) {
     fFunctionUsed = kTRUE;
     fElectronFunction = felectrons;
     fMuonFunction = fmuons;
@@ -33,18 +40,42 @@ class AliAnalysisTaskProtons : public AliAnalysisTask {
     fKaonFunction = fkaons;
     fProtonFunction = fprotons;
   }
+
+  void SetTriggerMode(TriggerMode triggermode) {fTriggerMode = triggermode;}
+  void SetAnalysisMode(AnalysisMode analysismode) {fProtonAnalysisMode = analysismode;}
+  void SetAcceptedVertexDiamond(Double_t gVx, Double_t gVy, Double_t gVz) {
+    fVxMax = gVx; fVyMax = gVy; fVzMax = gVz;}
+
+  static Bool_t IsEventTriggered(const AliESDEvent *esd, 
+                                TriggerMode trigger = kMB2);
+  static const  AliESDVertex *GetVertex(AliESDEvent *esd, 
+                                       AnalysisMode mode = kTPC,
+                                       Double_t gVx = 100.,
+                                       Double_t gVy = 100.,
+                                       Double_t gVz = 100.);
   
  private:
-  AliESDEvent *fESD;    //ESD object
-  TList  *fList; //TList output object
-  AliProtonAnalysis *fAnalysis; //analysis object
+  AliESDEvent *fESD;    //ESD object 
+  AliAODEvent *fAOD;    //AOD object
+  AliMCEvent  *fMC;     //MC object 
+  
+  TString fAnalysisType;//"ESD", "AOD" or "MC"
+
+  TList  *fList; //TList output object 
+  
+  AliProtonAnalysis *fProtonAnalysis; //analysis object 
+  
   TF1 *fElectronFunction; //TF1 for e
   TF1 *fMuonFunction; //TF1 for mu
   TF1 *fPionFunction; //TF1 for pi
   TF1 *fKaonFunction; //TF1 for K
   TF1 *fProtonFunction; //TF1 for p
-
+  
   Bool_t fFunctionUsed; //kTRUE if Functions are used
+  
+  TriggerMode   fTriggerMode; //Trigger mode
+  AnalysisMode  fProtonAnalysisMode; //Analysis mode
+  Double_t      fVxMax, fVyMax, fVzMax; //vertex diamond constrain
 
   AliAnalysisTaskProtons(const AliAnalysisTaskProtons&); // not implemented
   AliAnalysisTaskProtons& operator=(const AliAnalysisTaskProtons&); // not implemented