ROOT logo
#ifndef ALITRDINFOGEN_H
#define ALITRDINFOGEN_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/* $Id: AliTRDinfoGen.h 27496 2008-07-22 08:35:45Z cblume $ */

////////////////////////////////////////////////////////////////////////////
//                                                                        //
//  TRD Performance tender wagon                                          //
//                                                                        //
////////////////////////////////////////////////////////////////////////////

#ifndef ALIANALYSISTASKSE_H
#include "AliAnalysisTaskSE.h"
#endif

class AliESDEvent;
class AliMCEvent;
class AliESDfriend;
class AliTRDtrackInfo;
class AliTRDeventInfo;
class AliTRDv0Info;
class AliTRDeventCuts;
class AliESDtrackCuts;
class AliESDv0KineCuts;
class TObjArray;
class TString;
class TTreeSRedirector;
class AliTRDReconstructor;
class AliTRDgeometry;
class AliTRDinfoGen : public AliAnalysisTaskSE
{
public:
  enum AliTRDinfoGenSteeringBits{
    kMCdata               = BIT(18)
   ,kUseLocalTrkSelection = BIT(19)
   ,kCollision            = BIT(20)
   ,kOCDB                 = BIT(21)
   ,kTrkPoints            = BIT(22)
  };
  enum AliTRDinfoGenObjects{
     kTracksESD =  0
    ,kTracksMC
    ,kV0
    ,kTPC
    ,kITS
    ,kTRDin
    ,kTRDout
    ,kBarrel
    ,kBarrelMC
    ,kSA
    ,kSAMC
    ,kKink
    ,kKinkMC
    ,kBarrelFriend
    ,kSAFriend
    ,kNObjects
  };
  enum AliTRDinfoGenClasses{
     kStatTrk = 0
    ,kEvType
//    ,kBCtrack
    ,kBC
    ,kTrigger
    ,kChmb
    ,kNclasses
  };
  AliTRDinfoGen();
  AliTRDinfoGen(char* name);
  virtual ~AliTRDinfoGen();
  
  static Float_t GetEndITS() { return fgkITS;}
  static Float_t GetEndTPC() { return fgkTPC;}
  static Float_t GetEndTRD() { return fgkTRD;}
  Int_t   GetNRefFigures() const  { return 1;} 
  const char* GetOCDB() const {return fOCDB.Data();}
  Bool_t  GetRefFigure(Int_t ifig);
  Bool_t  Load(const Char_t *fn="AnalysisResults.root", const Char_t *dir="TRD_Performance", const Char_t *name=NULL);

  Bool_t  HasMCdata() const       { return TestBit(kMCdata);};
  // temporary until check with AliAnalysisTaskSE collision selection mechanism
  Bool_t  IsInitOCDB() const {return TestBit(kOCDB);}
  Bool_t  IsCollision() const {return TestBit(kCollision);}
  Bool_t  HasTrackPoints() const {return TestBit(kTrkPoints);}
  void    MakeSummary();
  static const AliTRDReconstructor* Reconstructor() {return fgReconstructor;}
  static AliTRDgeometry*      Geometry() {return fgGeo;}
  void    SetInitOCDB(Bool_t set=kTRUE) {SetBit(kOCDB, set);}
  void    SetCollision(Bool_t set=kTRUE) {SetBit(kCollision, set);}
  //void    SetLocalEvSelection(const AliTRDeventCuts */*cut*/){;} 
  void    SetLocalEvSelection(const AliTRDeventCuts &ec);
  //void    SetLocalTrkSelection(const AliESDtrackCuts */*cut*/){;} 
  void    SetLocalTrkSelection(Bool_t use=kTRUE) {SetBit(kUseLocalTrkSelection, use);}
  void    SetLocalV0Selection(const AliTRDv0Info &v0);
  void    SetMCdata(Bool_t mc = kTRUE) {SetBit(kMCdata, mc);}
  void    SetOCDB(const char *ocdb) {fOCDB=ocdb;}

  Bool_t  UseLocalEvSelection() const {return Bool_t(fEventCut);}
  Bool_t  UseLocalTrkSelection() const {return TestBit(kUseLocalTrkSelection);}
  void    UseTrackPoints(Bool_t use=kTRUE) {SetBit(kTrkPoints, use);}
  void    UserCreateOutputObjects();
  void    UserExec(Option_t *);
  void    Terminate(Option_t* option = "");
private:
  // rough radial limits for TRD
  static const Float_t fgkITS;      // end ITS
  static const Float_t fgkTPC;      // end TPC
  static const Float_t fgkTRD;      // end TRD

  // Track selection
  static const Float_t fgkTrkDCAxy; // cm
  static const Float_t fgkTrkDCAz;  // cm
  static const Int_t   fgkNclTPC;   // N clusters TPC
  static const Float_t fgkPt;       // min. pt
  static const Float_t fgkEta;      // eta range
  static AliTRDReconstructor   *fgReconstructor; // single instance of TRD reconstructor used by all tasks
  static AliTRDgeometry        *fgGeo;           // single instance of TRD geometry used by all tasks

  AliTRDinfoGen(const AliTRDinfoGen&);
  AliTRDinfoGen& operator=(const AliTRDinfoGen&);
  TTreeSRedirector* DebugStream();
  void              MakeChambers();

//  UShort_t          fBF;             //! Bunch Fill of previous event
  AliESDEvent      *fESDev;          //! ESD event
  AliMCEvent       *fMCev;           //! MC event
  // event/track cuts OO - to be used
  AliTRDeventCuts  *fEventCut;       // event cut
  AliESDtrackCuts  *fTrackCut;       // track cut
  AliESDv0KineCuts *fV0Identifier;   // V0 identifier
  AliTRDv0Info     *fV0Cut;          // v0 cut
  TString           fOCDB;           // OCDB location
  AliTRDtrackInfo  *fTrackInfo;      //! Track info
  AliTRDeventInfo  *fEventInfo;	     //! Event info
  AliTRDv0Info     *fV0Info;         //! V0 info
  TObjArray        *fTracksBarrel;   //! Array of barrel(TPC) tracks
  TObjArray        *fTracksITS;      //! Array of ITS seeded tracks
  TObjArray        *fTracksSA;       //! Array of stand alone tracks
  TObjArray        *fTracksKink;     //! Array of kink tracks
  TObjArray        *fV0List;         //! V0 container
  TObjArray        *fClusters;       //! Clusters container
  TObjArray        *fContainer;      //! container to store results
  TObjArray        *fRecos;          //! array of reco params
  TTreeSRedirector *fDebugStream;    //! debug stream

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