ROOT logo
/////////////////////////////////////////////////////////////////////////////////////
//                                                                                 //
// AliFemtoEventReaderKinematicsChainESD - the reader class for the Alice ESD and     //
// the model Kinematics information tailored for the Task framework and the        //
// Reads in AliESDfriend to create shared hit/quality information                  //
// Authors: Malgorzata Janik, Warsaw University of Technology, majanik@cern.ch     //
//          Lukasz Graczykowski, Warsaw University of Technology, lgraczyk@cern.ch //
//  	       				                                           //
/////////////////////////////////////////////////////////////////////////////////////


#ifndef ALIFEMTOEVENTREADERKINEMATICSCHAINESD_H
#define ALIFEMTOEVENTREADERKINEMATICSCHAINESD_H

#include "AliFemtoEventReader.h"
#include "AliFemtoEnumeration.h"
#include "AliFemtoV0.h"
#include "AliESDtrackCuts.h"

#include <string>
#include <vector>
#include <TTree.h>
#include <AliStack.h>
#include <AliESDEvent.h>
#include <list>
#include <AliGenEventHeader.h>



class AliFemtoEvent;

class AliFemtoEventReaderKinematicsChainESD : public AliFemtoEventReader 
{
 public:
  enum EventMult {kGlobalCount=0, kVZERO=1, kReferenceITSTPC=2, kCentrality=3};
  typedef enum EventMult EstEventMult;

  AliFemtoEventReaderKinematicsChainESD();
  AliFemtoEventReaderKinematicsChainESD(const AliFemtoEventReaderKinematicsChainESD& aReader);
  ~AliFemtoEventReaderKinematicsChainESD();

  AliFemtoEventReaderKinematicsChainESD& operator=(const AliFemtoEventReaderKinematicsChainESD& aReader);

  AliFemtoEvent* ReturnHbtEvent();
  AliFemtoString Report();
  void SetConstrained(bool constrained);
  bool GetConstrained() const;

  //void SetESDSource(AliESDEvent *aESD);
  void SetStackSource(AliStack *aStack);
  void SetESDSource(AliESDEvent *aESD);
  void SetGenEventHeader(AliGenEventHeader *aGenHeader);
  void SetRotateToEventPlane(short dorotate);
  void SetUseMultiplicity(EstEventMult aType);
  void CopyAODtoFemtoV0(TParticle *tv0, AliFemtoV0 *tFemtoV0 );

 protected:

 private:
  string         fFileName;      // name of current ESD file
  bool           fConstrained;   // flag to set which momentum from ESD file will be use
  int            fNumberofEvent; // number of Events in ESD file
  int            fCurEvent;      // number of current event
  unsigned int   fCurFile;       // number of current file
  AliStack       *fStack;         // Kinematics stack pointer
  AliESDEvent    *fEvent;         // ESD event
  AliGenEventHeader *fGenHeader; // Link to the generator event header
  EstEventMult   fEstEventMult;  // Type of the event multiplicity estimator
  short          fRotateToEventPlane; // Rotate the event so that event plane is at x=0

  Float_t GetSigmaToVertex(double *impact, double *covar);

#ifdef __ROOT__
  ClassDef(AliFemtoEventReaderKinematicsChainESD, 1)
#endif

    };
  
#endif


 AliFemtoEventReaderKinematicsChainESD.h:1
 AliFemtoEventReaderKinematicsChainESD.h:2
 AliFemtoEventReaderKinematicsChainESD.h:3
 AliFemtoEventReaderKinematicsChainESD.h:4
 AliFemtoEventReaderKinematicsChainESD.h:5
 AliFemtoEventReaderKinematicsChainESD.h:6
 AliFemtoEventReaderKinematicsChainESD.h:7
 AliFemtoEventReaderKinematicsChainESD.h:8
 AliFemtoEventReaderKinematicsChainESD.h:9
 AliFemtoEventReaderKinematicsChainESD.h:10
 AliFemtoEventReaderKinematicsChainESD.h:11
 AliFemtoEventReaderKinematicsChainESD.h:12
 AliFemtoEventReaderKinematicsChainESD.h:13
 AliFemtoEventReaderKinematicsChainESD.h:14
 AliFemtoEventReaderKinematicsChainESD.h:15
 AliFemtoEventReaderKinematicsChainESD.h:16
 AliFemtoEventReaderKinematicsChainESD.h:17
 AliFemtoEventReaderKinematicsChainESD.h:18
 AliFemtoEventReaderKinematicsChainESD.h:19
 AliFemtoEventReaderKinematicsChainESD.h:20
 AliFemtoEventReaderKinematicsChainESD.h:21
 AliFemtoEventReaderKinematicsChainESD.h:22
 AliFemtoEventReaderKinematicsChainESD.h:23
 AliFemtoEventReaderKinematicsChainESD.h:24
 AliFemtoEventReaderKinematicsChainESD.h:25
 AliFemtoEventReaderKinematicsChainESD.h:26
 AliFemtoEventReaderKinematicsChainESD.h:27
 AliFemtoEventReaderKinematicsChainESD.h:28
 AliFemtoEventReaderKinematicsChainESD.h:29
 AliFemtoEventReaderKinematicsChainESD.h:30
 AliFemtoEventReaderKinematicsChainESD.h:31
 AliFemtoEventReaderKinematicsChainESD.h:32
 AliFemtoEventReaderKinematicsChainESD.h:33
 AliFemtoEventReaderKinematicsChainESD.h:34
 AliFemtoEventReaderKinematicsChainESD.h:35
 AliFemtoEventReaderKinematicsChainESD.h:36
 AliFemtoEventReaderKinematicsChainESD.h:37
 AliFemtoEventReaderKinematicsChainESD.h:38
 AliFemtoEventReaderKinematicsChainESD.h:39
 AliFemtoEventReaderKinematicsChainESD.h:40
 AliFemtoEventReaderKinematicsChainESD.h:41
 AliFemtoEventReaderKinematicsChainESD.h:42
 AliFemtoEventReaderKinematicsChainESD.h:43
 AliFemtoEventReaderKinematicsChainESD.h:44
 AliFemtoEventReaderKinematicsChainESD.h:45
 AliFemtoEventReaderKinematicsChainESD.h:46
 AliFemtoEventReaderKinematicsChainESD.h:47
 AliFemtoEventReaderKinematicsChainESD.h:48
 AliFemtoEventReaderKinematicsChainESD.h:49
 AliFemtoEventReaderKinematicsChainESD.h:50
 AliFemtoEventReaderKinematicsChainESD.h:51
 AliFemtoEventReaderKinematicsChainESD.h:52
 AliFemtoEventReaderKinematicsChainESD.h:53
 AliFemtoEventReaderKinematicsChainESD.h:54
 AliFemtoEventReaderKinematicsChainESD.h:55
 AliFemtoEventReaderKinematicsChainESD.h:56
 AliFemtoEventReaderKinematicsChainESD.h:57
 AliFemtoEventReaderKinematicsChainESD.h:58
 AliFemtoEventReaderKinematicsChainESD.h:59
 AliFemtoEventReaderKinematicsChainESD.h:60
 AliFemtoEventReaderKinematicsChainESD.h:61
 AliFemtoEventReaderKinematicsChainESD.h:62
 AliFemtoEventReaderKinematicsChainESD.h:63
 AliFemtoEventReaderKinematicsChainESD.h:64
 AliFemtoEventReaderKinematicsChainESD.h:65
 AliFemtoEventReaderKinematicsChainESD.h:66
 AliFemtoEventReaderKinematicsChainESD.h:67
 AliFemtoEventReaderKinematicsChainESD.h:68
 AliFemtoEventReaderKinematicsChainESD.h:69
 AliFemtoEventReaderKinematicsChainESD.h:70
 AliFemtoEventReaderKinematicsChainESD.h:71
 AliFemtoEventReaderKinematicsChainESD.h:72
 AliFemtoEventReaderKinematicsChainESD.h:73
 AliFemtoEventReaderKinematicsChainESD.h:74
 AliFemtoEventReaderKinematicsChainESD.h:75
 AliFemtoEventReaderKinematicsChainESD.h:76
 AliFemtoEventReaderKinematicsChainESD.h:77
 AliFemtoEventReaderKinematicsChainESD.h:78
 AliFemtoEventReaderKinematicsChainESD.h:79
 AliFemtoEventReaderKinematicsChainESD.h:80
 AliFemtoEventReaderKinematicsChainESD.h:81