ROOT logo
#ifndef ALIANALYSISTASKANTIHE4_CXX
#define ALIANALYSISTASKANTIHE4_CXX

// anti-alpha analysis
// Authors: Alexander Kalweit and Nicole Martin

class TF1;
class TH1F;
class TH2F;
class TH3F;
class AliESDEvent;
class AliESDtrackCuts;
class AliESDVertex;

#include "AliAnalysisTaskSE.h"
#include "THn.h"
#include "TH3F.h"
#include "TGraph.h"
#include "AliStack.h"

class AliAnalysisTaskAntiHe4 : public AliAnalysisTaskSE {
 public:
  AliAnalysisTaskAntiHe4();
  AliAnalysisTaskAntiHe4(const char *name);
  virtual ~AliAnalysisTaskAntiHe4() {}
  
  virtual void   UserCreateOutputObjects();
  virtual void   UserExec(Option_t *option);
  virtual void   Terminate(const Option_t*);
  Int_t  Initialize();
  Int_t  SetupEvent();
  void   ResetEvent();

  
 private:
  AliInputEventHandler *fEventHandler;                              //  for ESDs or AODs
  AliESDEvent          *fESD;                                       //  ESD object
  TH1F                 *fHistCentralityClass10;                     //! histo to look at the centrality distribution    
  TH1F                 *fHistCentralityPercentile;                  //! histo to look at the centrality distribution 
  TH1F                 *fHistTriggerStat;                           //! Trigger statistics
  TH1F                 *fHistTriggerStatAfterEventSelection;        //! Trigger statistics
  TH3F                 *fHistDEDx;                                  //! final histograms for anti-alpha analysis
  TH3F                 *fHistTOF3D;                                 //! final histograms for anti-alpha analysis
  TH1F                 *fHistAlpha;                                 //! Alpha plot TOF mass
  TH1F                 *fHistAlphaSignal;                           //! Alpha plot TOF mass only signal candidates
  TGraph               *fGraphAlphaSignal;                          //! TGraph with alphas / dE/dx vs. mom
  Int_t                 fNCounter;                                  //! counts alphas

  TH2F                 *fHistDeDx;                                  //! histo for a dE/dx     
  TH3F                 *fHistDeDxRegion;                            //! histo for a dE/dx per Region 
  TH2F                 *fHistDeDxSharp;                             //! histo for a dE/dx with sharp cuts

  TH2F                 *fHistTOF2D;                                 //! histo for a TOF
  TH2F                 *fHistTOFnuclei;                             //! histo for a TOF nuclei  

  Int_t                 fNTriggers;                                 //! N Triggers used
  Double_t              fBBParametersLightParticles[5];             //! Bethe Bloch paramters for light paritcles
  Double_t              fBBParametersNuclei[5];                     //! Bethe Bloch paramters for nuclei
  Bool_t                fMCtrue;                                    //! flag if real data or MC is processed
  Bool_t                fTriggerFired[5];                           //! TriggerFired 0: MB | 1: CE | 2: SC | 3: EJE | 4: EGA
  //
  AliESDtrackCuts      *fESDtrackCuts;                              //  basic cut variables
  AliESDtrackCuts      *fESDtrackCutsSharp;                         //  sharp cut variables for final results
  AliESDpid            *fESDpid;                                    //  basic TPC object for n-sigma cuts
  THnF                 *fAntiAlpha;                                 //! histogram for particle ratios as a function of momentum: (0.) dca, (1.) sign, (2.) particle Type, (3.) p_tot

  TH1F                 *fHistHelium4PtGen;                          //! for MC
  TH1F                 *fHistHelium4PtGenPrim;                      //! for MC
  TH1F                 *fHistHelium4PtGenSec;                       //! for MC
  TH1F                 *fHistHelium4PtGenEta;                       //! for MC 
  TH1F                 *fHistHelium4PtGenPrimEta;                   //! for MC
  TH1F                 *fHistAntiHelium4PtGen;                      //! for MC
  TH1F                 *fHistAntiHelium4PtGenPrim;                  //! for MC                        
  TH1F                 *fHistAntiHelium4PtGenSec;                   //! for MC
  TH1F                 *fHistAntiHelium4PtGenEta;                   //! for MC
  TH1F                 *fHistHelium4PtAso;                          //! for MC
  TH1F                 *fHistHelium4PtAsoPrim;                      //! for MC
  TH1F                 *fHistHelium4PtAsoSec;                       //! for MC
  TH1F                 *fHistAntiHelium4PtAso;                      //! for MC


  void                  BinLogAxis(const THn *h, Int_t axisNumber); //  define function for log axis for search for Anti-Alpha candidates
  void                  BinLogAxis(const TH3 *h, Int_t axisNumber); 
  void                  BinLogAxis(const TH1 *h);
  Bool_t                IsTriggered();
  void                  SetBBParameters(Int_t runnumber);
  void                  MCGenerated(AliStack* stack); 

  //
  // output containers
  //
  TTree *fTree;  
  TObjArray * fOutputContainer; // ! output data container
  //
  // tree variables
  //
  Char_t fName[1000];  
  Int_t  fEvnt;
  Char_t  fFileName[1000];
  Int_t   fEventNumber[1000];
  // 
  Int_t  fItrk;
  //
  Double_t fEta[1000];
  Int_t    fKinkIndex[1000];
  Float_t    fCentrality[1000];

  //
  UShort_t   fTPCNsignal[1000];
  UShort_t   fTPCnCluster[1000];
  Double_t   fChi2PerClusterTPC[1000];
  Bool_t  fTPCRefit[1000];
  Double_t fTPCsignal0[1000];
  Double_t fTPCsignal1[1000];
  Double_t fTPCsignal2[1000];
  Double_t fTPCsignal3[1000];
  Int_t   fTPCSharedClusters[1000];
  UShort_t   fTPCNclsIter1[1000];
  //
  Double_t fITSsignal[1000];
  Int_t   fITSnCluster[1000];
  Double_t   fChi2PerClusterITS[1000];
  Bool_t  fITSRefit[1000];
  //
  Bool_t  fTOFRefit[1000];
  Bool_t  fTOFtime[1000];
  Bool_t  fTOFout[1000];
  Double_t fTOFsignalDz[1000];
  Double_t fTOFsignalDx[1000];
  //
  Bool_t fTRDin[1000];
  //
  Float_t fDCAZ[1000];
  Float_t fDCAXY[1000];
  //
  Double_t fTrkPtot[1000];
  Double_t fTPCPtot[1000];
  Double_t fTrackPt[1000];
  Double_t fDeDx[1000];
  Double_t fSign[1000];
  Float_t  fMass[1000];
  Float_t  fTime[1000];
  Float_t  fLength[1000];
  Double_t fSigmaQP[1000];
  //
  Bool_t  fAssociated[1000];
 
  //
  //
  AliAnalysisTaskAntiHe4(const AliAnalysisTaskAntiHe4&); // not implemented
  AliAnalysisTaskAntiHe4& operator=(const AliAnalysisTaskAntiHe4&); // not implemented
  
  ClassDef(AliAnalysisTaskAntiHe4, 1); // example of analysis
};

#endif
 AliAnalysisTaskAntiHe4.h:1
 AliAnalysisTaskAntiHe4.h:2
 AliAnalysisTaskAntiHe4.h:3
 AliAnalysisTaskAntiHe4.h:4
 AliAnalysisTaskAntiHe4.h:5
 AliAnalysisTaskAntiHe4.h:6
 AliAnalysisTaskAntiHe4.h:7
 AliAnalysisTaskAntiHe4.h:8
 AliAnalysisTaskAntiHe4.h:9
 AliAnalysisTaskAntiHe4.h:10
 AliAnalysisTaskAntiHe4.h:11
 AliAnalysisTaskAntiHe4.h:12
 AliAnalysisTaskAntiHe4.h:13
 AliAnalysisTaskAntiHe4.h:14
 AliAnalysisTaskAntiHe4.h:15
 AliAnalysisTaskAntiHe4.h:16
 AliAnalysisTaskAntiHe4.h:17
 AliAnalysisTaskAntiHe4.h:18
 AliAnalysisTaskAntiHe4.h:19
 AliAnalysisTaskAntiHe4.h:20
 AliAnalysisTaskAntiHe4.h:21
 AliAnalysisTaskAntiHe4.h:22
 AliAnalysisTaskAntiHe4.h:23
 AliAnalysisTaskAntiHe4.h:24
 AliAnalysisTaskAntiHe4.h:25
 AliAnalysisTaskAntiHe4.h:26
 AliAnalysisTaskAntiHe4.h:27
 AliAnalysisTaskAntiHe4.h:28
 AliAnalysisTaskAntiHe4.h:29
 AliAnalysisTaskAntiHe4.h:30
 AliAnalysisTaskAntiHe4.h:31
 AliAnalysisTaskAntiHe4.h:32
 AliAnalysisTaskAntiHe4.h:33
 AliAnalysisTaskAntiHe4.h:34
 AliAnalysisTaskAntiHe4.h:35
 AliAnalysisTaskAntiHe4.h:36
 AliAnalysisTaskAntiHe4.h:37
 AliAnalysisTaskAntiHe4.h:38
 AliAnalysisTaskAntiHe4.h:39
 AliAnalysisTaskAntiHe4.h:40
 AliAnalysisTaskAntiHe4.h:41
 AliAnalysisTaskAntiHe4.h:42
 AliAnalysisTaskAntiHe4.h:43
 AliAnalysisTaskAntiHe4.h:44
 AliAnalysisTaskAntiHe4.h:45
 AliAnalysisTaskAntiHe4.h:46
 AliAnalysisTaskAntiHe4.h:47
 AliAnalysisTaskAntiHe4.h:48
 AliAnalysisTaskAntiHe4.h:49
 AliAnalysisTaskAntiHe4.h:50
 AliAnalysisTaskAntiHe4.h:51
 AliAnalysisTaskAntiHe4.h:52
 AliAnalysisTaskAntiHe4.h:53
 AliAnalysisTaskAntiHe4.h:54
 AliAnalysisTaskAntiHe4.h:55
 AliAnalysisTaskAntiHe4.h:56
 AliAnalysisTaskAntiHe4.h:57
 AliAnalysisTaskAntiHe4.h:58
 AliAnalysisTaskAntiHe4.h:59
 AliAnalysisTaskAntiHe4.h:60
 AliAnalysisTaskAntiHe4.h:61
 AliAnalysisTaskAntiHe4.h:62
 AliAnalysisTaskAntiHe4.h:63
 AliAnalysisTaskAntiHe4.h:64
 AliAnalysisTaskAntiHe4.h:65
 AliAnalysisTaskAntiHe4.h:66
 AliAnalysisTaskAntiHe4.h:67
 AliAnalysisTaskAntiHe4.h:68
 AliAnalysisTaskAntiHe4.h:69
 AliAnalysisTaskAntiHe4.h:70
 AliAnalysisTaskAntiHe4.h:71
 AliAnalysisTaskAntiHe4.h:72
 AliAnalysisTaskAntiHe4.h:73
 AliAnalysisTaskAntiHe4.h:74
 AliAnalysisTaskAntiHe4.h:75
 AliAnalysisTaskAntiHe4.h:76
 AliAnalysisTaskAntiHe4.h:77
 AliAnalysisTaskAntiHe4.h:78
 AliAnalysisTaskAntiHe4.h:79
 AliAnalysisTaskAntiHe4.h:80
 AliAnalysisTaskAntiHe4.h:81
 AliAnalysisTaskAntiHe4.h:82
 AliAnalysisTaskAntiHe4.h:83
 AliAnalysisTaskAntiHe4.h:84
 AliAnalysisTaskAntiHe4.h:85
 AliAnalysisTaskAntiHe4.h:86
 AliAnalysisTaskAntiHe4.h:87
 AliAnalysisTaskAntiHe4.h:88
 AliAnalysisTaskAntiHe4.h:89
 AliAnalysisTaskAntiHe4.h:90
 AliAnalysisTaskAntiHe4.h:91
 AliAnalysisTaskAntiHe4.h:92
 AliAnalysisTaskAntiHe4.h:93
 AliAnalysisTaskAntiHe4.h:94
 AliAnalysisTaskAntiHe4.h:95
 AliAnalysisTaskAntiHe4.h:96
 AliAnalysisTaskAntiHe4.h:97
 AliAnalysisTaskAntiHe4.h:98
 AliAnalysisTaskAntiHe4.h:99
 AliAnalysisTaskAntiHe4.h:100
 AliAnalysisTaskAntiHe4.h:101
 AliAnalysisTaskAntiHe4.h:102
 AliAnalysisTaskAntiHe4.h:103
 AliAnalysisTaskAntiHe4.h:104
 AliAnalysisTaskAntiHe4.h:105
 AliAnalysisTaskAntiHe4.h:106
 AliAnalysisTaskAntiHe4.h:107
 AliAnalysisTaskAntiHe4.h:108
 AliAnalysisTaskAntiHe4.h:109
 AliAnalysisTaskAntiHe4.h:110
 AliAnalysisTaskAntiHe4.h:111
 AliAnalysisTaskAntiHe4.h:112
 AliAnalysisTaskAntiHe4.h:113
 AliAnalysisTaskAntiHe4.h:114
 AliAnalysisTaskAntiHe4.h:115
 AliAnalysisTaskAntiHe4.h:116
 AliAnalysisTaskAntiHe4.h:117
 AliAnalysisTaskAntiHe4.h:118
 AliAnalysisTaskAntiHe4.h:119
 AliAnalysisTaskAntiHe4.h:120
 AliAnalysisTaskAntiHe4.h:121
 AliAnalysisTaskAntiHe4.h:122
 AliAnalysisTaskAntiHe4.h:123
 AliAnalysisTaskAntiHe4.h:124
 AliAnalysisTaskAntiHe4.h:125
 AliAnalysisTaskAntiHe4.h:126
 AliAnalysisTaskAntiHe4.h:127
 AliAnalysisTaskAntiHe4.h:128
 AliAnalysisTaskAntiHe4.h:129
 AliAnalysisTaskAntiHe4.h:130
 AliAnalysisTaskAntiHe4.h:131
 AliAnalysisTaskAntiHe4.h:132
 AliAnalysisTaskAntiHe4.h:133
 AliAnalysisTaskAntiHe4.h:134
 AliAnalysisTaskAntiHe4.h:135
 AliAnalysisTaskAntiHe4.h:136
 AliAnalysisTaskAntiHe4.h:137
 AliAnalysisTaskAntiHe4.h:138
 AliAnalysisTaskAntiHe4.h:139
 AliAnalysisTaskAntiHe4.h:140
 AliAnalysisTaskAntiHe4.h:141
 AliAnalysisTaskAntiHe4.h:142
 AliAnalysisTaskAntiHe4.h:143
 AliAnalysisTaskAntiHe4.h:144
 AliAnalysisTaskAntiHe4.h:145
 AliAnalysisTaskAntiHe4.h:146
 AliAnalysisTaskAntiHe4.h:147
 AliAnalysisTaskAntiHe4.h:148
 AliAnalysisTaskAntiHe4.h:149
 AliAnalysisTaskAntiHe4.h:150
 AliAnalysisTaskAntiHe4.h:151
 AliAnalysisTaskAntiHe4.h:152
 AliAnalysisTaskAntiHe4.h:153
 AliAnalysisTaskAntiHe4.h:154
 AliAnalysisTaskAntiHe4.h:155
 AliAnalysisTaskAntiHe4.h:156