]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG0/dNdPt/AlidNdPtTrackDumpTask.h
-- new class to store track tree
[u/mrichter/AliRoot.git] / PWG0 / dNdPt / AlidNdPtTrackDumpTask.h
diff --git a/PWG0/dNdPt/AlidNdPtTrackDumpTask.h b/PWG0/dNdPt/AlidNdPtTrackDumpTask.h
new file mode 100644 (file)
index 0000000..ef0198e
--- /dev/null
@@ -0,0 +1,104 @@
+#ifndef ALIDNDPTTRACKDUMPTASK_H
+#define ALIDNDPTTRACKDUMPTASK_H
+
+//------------------------------------------------------------------------------
+// Task to dump track information 
+// TPC constrained and TP+ITS combined 
+// for outliers analysis.
+// 
+// Author: J.Otwinowski 19/06/2011 
+//------------------------------------------------------------------------------
+
+class AliESDEvent;
+class AliMCEvent;
+class AlidNdPtEventCuts;
+class AlidNdPtAcceptanceCuts;
+class AliESDtrackCuts;
+class AlidNdPt;
+class AlidNdPtAnalysis;
+class AlidNdPtCorrection;
+class AliMagFMaps;
+class AliESDEvent; 
+class AliMCEvent; 
+class TList;
+class TTree;
+class TTreeSRedirector;
+
+#include "AliTriggerAnalysis.h"
+#include "AliAnalysisTaskSE.h"
+#include "dNdPt/AlidNdPtHelper.h"
+
+class AlidNdPtTrackDumpTask : public AliAnalysisTaskSE {
+ public:
+
+
+  AlidNdPtTrackDumpTask(const char *name = "AlidNdPtTrackDumpTask");
+  virtual ~AlidNdPtTrackDumpTask();
+  
+  virtual void   UserCreateOutputObjects();
+  virtual void   UserExec(Option_t *option);
+  virtual void   Terminate(Option_t *);
+  virtual Bool_t Notify();
+  virtual void   FinishTaskOutput();
+  void SetUseMCInfo(Bool_t info)           { fUseMCInfo = info; }
+  Bool_t IsUseMCInfo() const               { return fUseMCInfo; }
+  
+  // Process events
+  virtual void Process(AliESDEvent *const esdEvent=0, AliMCEvent *const mcEvent=0, AliESDfriend *const esdFriend=0);
+
+  void SetEventCuts(AlidNdPtEventCuts* const cuts)              { fdNdPtEventCuts = cuts; }
+  void SetAcceptanceCuts(AlidNdPtAcceptanceCuts* const cuts)    { fdNdPtAcceptanceCuts = cuts; }
+  void SetRecAcceptanceCuts(AlidNdPtAcceptanceCuts* const cuts) { fdNdPtRecAcceptanceCuts = cuts; }
+  void SetTrackCuts(AliESDtrackCuts* const cuts)                { fEsdTrackCuts = cuts; }
+  void SetTrigger(const AliTriggerAnalysis::Trigger trigger)    { fTrigger = trigger; }
+  void SetAnalysisMode(const AlidNdPtHelper::AnalysisMode mode) { fAnalysisMode = mode; }
+
+  AlidNdPtEventCuts* GetEventCuts() const                       { return fdNdPtEventCuts; }
+  AlidNdPtAcceptanceCuts* GetAcceptanceCuts() const             { return fdNdPtAcceptanceCuts; }
+  AlidNdPtAcceptanceCuts* GetRecAcceptanceCuts() const          { return fdNdPtRecAcceptanceCuts; }  
+  AliESDtrackCuts* GetTrackCuts() const                         { return fEsdTrackCuts; }
+  AliTriggerAnalysis::Trigger GetTrigger() const                { return fTrigger; }
+  AlidNdPtHelper::AnalysisMode GetAnalysisMode() const          { return fAnalysisMode; }
+
+  TString GetCentralityEstimator() const {return fCentralityEstimator; }
+  void SetCentralityEstimator(TString centEst="V0M") { fCentralityEstimator = centEst; }
+
+  Bool_t IsFromConversion(const Int_t label, AliStack *const stack);
+  Bool_t IsFromMaterial(const Int_t label, AliStack *const stack);
+  Bool_t IsFromStrangeness(const Int_t label, AliStack *const stack);
+  TParticle *GetMother(TParticle *const particle, AliStack *const stack);
+
+  Bool_t ConstrainTPCInner(AliExternalTrackParam *const tpcInnerC, const AliESDVertex* vtx, Double_t b[3]);
+  Bool_t ConstrainTrackInner(AliExternalTrackParam *const trackInnerC, const AliESDVertex* vtx, Double_t mass, Double_t b[3]);
+
+
+ private:
+
+  AliESDEvent *fESD;    //! ESD event
+  AliMCEvent *fMC;      //! MC event
+  AliESDfriend *fESDfriend; //! ESDfriend event
+  TList* fOutput;       //! list send on output slot 0
+  TIterator *fPitList;  //! iterator over the output objetcs  
+
+  Bool_t fUseMCInfo;        //! use MC information
+
+  AlidNdPtEventCuts      *fdNdPtEventCuts;      //! event cuts
+  AlidNdPtAcceptanceCuts *fdNdPtAcceptanceCuts; //! acceptance cuts  
+  AlidNdPtAcceptanceCuts *fdNdPtRecAcceptanceCuts; //! additional recontruction acceptance cuts (not used for MC truth)
+  AliESDtrackCuts *fEsdTrackCuts;          //! esd track cuts
+  AliTriggerAnalysis::Trigger fTrigger;    //! trigger settings
+  AlidNdPtHelper::AnalysisMode fAnalysisMode;   //! analysis mode TPC only, TPC + ITS
+
+  TTree* fOutputSummary;      //! tree to dump output
+  TTreeSRedirector* fTreeSRedirector;      //! temp tree to dump output
+
+  TString fCentralityEstimator;     //! use centrality can be "VOM" (default), "FMD", "TRK", "TKL", "CL0", "CL1", "V0MvsFMD", "TKLvsV0M", "ZEMvsZDC"
+
+
+  AlidNdPtTrackDumpTask(const AlidNdPtTrackDumpTask&); // not implemented
+  AlidNdPtTrackDumpTask& operator=(const AlidNdPtTrackDumpTask&); // not implemented
+  
+  ClassDef(AlidNdPtTrackDumpTask, 1); // example of analysis
+};
+
+#endif