ROOT logo
/**************************************************************************
 * Author : Benjamin Dönigus (benjamin.doenigus@cern.ch)                  *
 *                                                                        *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

//-----------------------------------------------------------------
//                 AliAnalysisTaskHdibaryonLPpi class
//          used to search for the H-Dibaryon in weak 
//          (Lambda Proton Pion) and strong (Lambda Lambda) decays
//-----------------------------------------------------------------


#ifndef ALIANALYSISTASKHDIBARYONLPPI_H
#define ALIANALYSISTASKHDIBARYONLPPI_H

// analysis task for the H-Dibaryon analysis
// Author: Benjamin Doenigus

#include "AliAnalysisTaskSE.h"
//#include "AliESDv0Cuts.h"

class TH1F;
class AliESDEvent;
class TFile;
class TH2F;
class TH3F;
class THnSparse;
class AliESDtrackCuts;
class AliESDv0Cuts;
class AliMCEvent;
class TList;
class TParticle;
class TLegend;
class AliESDpid;
class AliHFEpid;
class AliHFEtools;

class AliMCEventHandler;
class TTree;
class TChain;
class TParallelCoord;

class AliVertexerTracks;

class AliAnalysisTaskHdibaryonLPpi : public AliAnalysisTaskSE {
 
public:
  AliAnalysisTaskHdibaryonLPpi();
  AliAnalysisTaskHdibaryonLPpi(const char *name);
  //  AliAnalysisTaskHdibaryonLPpi();
  virtual ~AliAnalysisTaskHdibaryonLPpi();
  
  void SetHasMC(Bool_t hasMC=kTRUE){SetBit(kHasMC,hasMC);}
  Bool_t HasMC(){return TestBit(kHasMC);}

  //  virtual void   ConnectInputData(Option_t *);
  virtual void   UserCreateOutputObjects();
  //virtual void   Exec(Option_t *option);
  virtual void   UserExec(Option_t* /*option*/);

  virtual void   Terminate(Option_t *);

  /*
   *Get the MC stack 
   */
  AliMCEvent* GetMCEvent() const{return fMCEvent;}   // for CF

private:
  AliESDEvent *fESD; //AliESD event	
  //  AliESDtrackCuts* fEsdTrackCuts; // track cuts
  AliESDtrackCuts   *fESDtrackCutsV0;     // basic cut variables for v0's
  AliESDv0Cuts *fESDCutsV0; // V0 track cuts
  AliESDtrackCuts* fEsdTrackCuts; // track cuts
  
  Int_t       fBin;        //bin for the angular plot

  AliVEvent *fEvent;                //! current event

  TList       *fHistList;  //TList
  TH1F        *fHistMassDPi; // V0 online finder 
  TH1F        *fHistMassLPi; // V0 offline finder
  TH1F        *fHistMassLambdaPi; // inv mass lambda pi
  TH1F        *fHistMassLambda; // inv mass lambda from tlorentz
  TH1F        *fHistMassLambdaPPi; // inv mass Lambda p pi before cuts
  TH1F        *fHistMassLambdaP; // inv mass Lambda p 
  TH1F        *fHistMassLambdaK; // inv mass Lambda K

  TH1F        *fHistMassK0onl; // K0 mass
  TH1F        *fHistMassK0offl; // K0 mass
  TH1F        *fHistMassK0onlC; // K0 mass
  TH1F        *fHistMassK0offlC;// K0 mass
  TH1F        *fHistMassPQonl;  // K0 mass
  TH1F        *fHistMassPQoffl; // K0 mass
  TH1F        *fHistDC; // DC
  TH2F        *fHistArmenterosPodolanski; // AP distribution
  TH2F        *fHistArmenterosPodolanskiCut; // AP distributian after cuts
  TH1F        *fHistHDibaryonInvaMassGen;                //! for MC
  TH1F        *fHistHDibaryonInvaMassGenRes;                //! for MC
  TH1F        *fHistAntiHDibaryonInvaMassGen;            //! for MC
  TH1F        *fHistHDibaryonInvaMassAso;                //! for MC
  TH1F        *fHistHDibaryonInvaMassAsoReso;   //! for MC
  TH1F        *fHistAntiHDibaryonInvaMassAso;            //! for MC
  TH2F        *fHistCheck; // Online vs.  Offline V0 finder
  TH1F        *fHistHPointingAngle; // Poniting angle dist
  TH1F        *fHistMassH; // Rec. H mass
  TH1F        *fHistMassLambdaFromH; // True Lambdas from H
  TH1F        *fHistMassLambdaFromHtLorentz; // via TLorentz
  TH1F        *fHistMassPpi; //inv mass ppi
  TH1F        *fHistMassPpiReso; // inv mass ppi reso
  TH1F        *fHistMassLpi; // inv mass lambda pi
  TH1F        *fHistMassLP; // inv mass lambda p
  TH2F        *fHistProtonPIDBb;//TPC BB for Proton PID
  TH2F        *fHistPionPIDBb;//TPC BB for Pion PID
  TH2F        *fHistProtonPIDLambda;//TPC BB for Proton PID from Lambda
  TH2F        *fHistPionPIDLambda;//TPC BB for Pion PID from Lambda
  TH1F        *fHistMCdcaPvtxDvtx; //mc dca
  TH1F        *fHistMCdcaPvtxLvtx; //mc dca
  TH1F        *fHistMCdcaDvtxLvtx; // mc dca
  TH1F        *fHistMCangleLH; // angle between H and Lambda
  TH1F        *fHistMCdecayAngle; // decay angle
  TH1F        *fHistMCpointingAngle; // true PA
  TH2F        *fHistMCap; // true AP
  TH1F        *fHistMCdcaPvtxDvtxReso; //mc dca
  TH1F        *fHistMCdcaPvtxLvtxReso; // mc dca
  TH1F        *fHistMCdcaDvtxLvtxReso; // mc dca
  TH1F        *fHistMCangleLHReso; // mc anle
  TH1F        *fHistMCdecayAngleReso; // mc decay angle
  TH1F        *fHistMCpointingAngleReso; // mc PA
  TH2F        *fHistMCapReso; // MC ap for reso
  TH1F        *fHistCentrality; // Centrality histogram
  TH1F        *fHistCentralityAC; // Centrality histogram after selection cuts
  TH1F        *fHistMultiplicity; // Multiplicity histogram
 
  TH1F        *fHistHilf1; // Support
  TH1F        *fHistHilf2; // support
  TH1F        *fHistHilf3; // support
  TH1F        *fHistHilf4; // support
  TH1F        *fHistHilf5; // support
  TH1F        *fHistHilf6; // support
  TH2F        *fHistPtvsEtaGen; // eta vs pt generated
  TH2F        *fHistPtvsEtaAso; // eta vs pt associated
  TH2F        *fHistPtvsYGen; // y vs pt generated
  TH2F        *fHistPtvsYAso; // y vs pt associated
  TH1F        *fHistRap; // rapidity
  
  TH1F        *fHistCount; //Counting of events and different decay parameters
  
  AliPIDResponse *fPIDtpcESD;     //! PID response object 
  TH1F        *fHistTriggerStat;                         //! Trigger statistics
  TH1F        *fHistTriggerStatAfterEventSelection;      //! Trigger statistics
  TH3F        *fHistMassHcentMult; // Inv. mass vs. centrality vs. multiplicity
  THnSparse   *fHistNdim; //THnSparse

  enum{
        kHasMC=BIT(18)
  };

    AliAnalysisTaskHdibaryonLPpi(const AliAnalysisTaskHdibaryonLPpi&); // not implemented
    AliAnalysisTaskHdibaryonLPpi& operator=(const AliAnalysisTaskHdibaryonLPpi&); // not implemented


  ClassDef(AliAnalysisTaskHdibaryonLPpi, 1); // analysisclass


};

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