ROOT logo
#ifndef ALIANALYSISTASKSDDRP
#define ALIANALYSISTASKSDDRP

/* Copyright(c) 1998-2010, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

//*************************************************************************
// Class AliAnalysiTaskSDDRP
// AliAnalysisTaskSE to extract from ESD + ESDfreinds + ITS rec points
// performance plots for SDD detector
//
// Author: F. Prino, prino@to.infn.it
//*************************************************************************

class TList;
class TH1F;
class TH2F;
class TTree;
class TString;
class AliESDEvent;
class AliESDfriend;
class AliITSresponseSDD;
class AliTriggerConfiguration;

#include "AliAnalysisTaskSE.h"

class AliAnalysisTaskSDDRP : public AliAnalysisTaskSE {

 public:
  
  AliAnalysisTaskSDDRP();
  virtual ~AliAnalysisTaskSDDRP();
  virtual void   UserExec(Option_t *option);
  virtual void   UserCreateOutputObjects();
  virtual void   Terminate(Option_t *option);

  void SetUseITSstandaloneTracks(Bool_t use){
    fUseITSsaTracks=use;
  }
  void SetMinITSPoints(Int_t minp=3){
    fMinITSpts=minp;
  }
  void SetMinTPCPoints(Int_t minp=70){
    fMinTPCpts=minp;
  }
  void SetTriggerClass(TString trclass) {
    fTriggerClass=trclass;
  }
  void SetUseOnlyEventsWithSDD(Bool_t use=kTRUE){
    fOnlyEventsWithSDD=use;
  }
  void SetMinPfordEdx(Float_t minp=0.5){
    fMinPfordEdx=minp;
  }
  void SetExcludeBadModules(Bool_t opt=kTRUE){
    fExcludeBadMod=opt;
  }
  Bool_t CheckModule(Int_t lay, Int_t lad, Int_t det) const;
 

 private:
  AliAnalysisTaskSDDRP(const AliAnalysisTaskSDDRP &source);
  AliAnalysisTaskSDDRP& operator=(const AliAnalysisTaskSDDRP &source);
  
  TList*  fOutput;          //! QA histos
  TH1F*   fHistNEvents;     //! histo with N of events  
  TH1F*   fHistCluInLay;    //! histo with number of tracks per layer
  TH1F*   fHistAllPMod;     //! histo of tracks crossing SDD modules
  TH1F*   fHistGoodPMod;    //! histo of tracks with good point in SDD module
  TH1F*   fHistBadRegMod;   //! histo of tracks crossing bad region of SDD mod.
  TH1F*   fHistMissPMod;    //! histo of tracks with missing point in SDD mod.
  TH1F*   fHistSkippedMod;  //! histo of tracks skipping an SDD module
  TH1F*   fHistOutAccMod;   //! histo of tracks out of accept. in SDD module
  TH1F*   fHistNoRefitMod;  //! histo of points rejected in refit vs. SDD mod.

  TH1F*   fHistAllPXloc;    //! histo of xlocal for track hit points
  TH1F*   fHistGoodPXloc;   //! histo of xlocal for track hit points + good clu
  TH1F*   fHistBadRegXloc;  //! histo of xlocal for track hit points + bad reg.
  TH1F*   fHistMissPXloc;   //! histo of xlocal for track hit points + miss clu
  TH1F*   fHistAllPZloc;    //! histo of zlocal for track hit points
  TH1F*   fHistGoodPZloc;   //! histo of zlocal for track hit points + good clu
  TH1F*   fHistBadRegZloc;  //! histo of zlocal for track hit points + bad reg.
  TH1F*   fHistMissPZloc;   //! histo of zlocal for track hit points + miss clu

  TH2F*   fHistdEdxL3VsP;   //! 2D histo of dE/dx vs. momentum -- layer 3
  TH2F*   fHistdEdxL4VsP;   //! 2D histo of dE/dx vs. momentum -- layer 4
  TH2F*   fHistdEdxVsMod;   //! 2D histo of dE/dx vs. module number
  TH1F*   fRecPMod;         //! histo with module occupancy (RecP) 
  TH1F*   fTrackPMod;       //! histo with module occupancy (TrP)
  TH1F*   fGoodAnMod;       //! histo good anodes per module 
  TH1F*   fRecPLadLay3;     //! histo with ladder occupancy on layer3 (RecP) 
  TH1F*   fRecPLadLay4;     //! histo with ladder occupancy on layer4 (RecP)
  TH1F*   fTrackPLadLay3;   //! histo with ladder occupancy on layer3 (TrP)
  TH1F*   fTrackPLadLay4;   //! histo with ladder occupancy on layer4 (TrP)
  TH1F*   fGoodAnLadLay3;   //! histo good anodes per ladder on layer3 
  TH1F*   fGoodAnLadLay4;   //! histo good anodes per ladder on layer4 
  TH1F*   fDriftTimeRP;     //! histo with drift time distribution (RecP)
  TH1F*   fDriftTimeTPAll;  //! histo with drift time distribution (TrP)
  TH1F*   fDriftTimeTPNoExtra; //! histo with drift time distribution (TrP)
  TH1F*   fDriftTimeTPExtra;//! histo with drift time distribution (TrP)
  TH1F*   fSignalTime[8];   //! histos of dE/dx in time windows
  TH2F*   fCluSizAnVsTime;  //! Histo with anode cluster size vs. time
  TH2F*   fCluSizTbVsTime;  //! Histo with time-bin cluster size vs. time
  AliITSresponseSDD* fResp; // ResponseSDD object
  AliTriggerConfiguration* fTrigConfig; // trigger configuration object
  Bool_t  fUseITSsaTracks;   // Flag for using standalone ITS tracs
  Int_t   fMinITSpts;       // Minimum number of ITS points per track
  Int_t   fMinTPCpts;       // Minimum number of TPC points per track
  Float_t fMinPfordEdx;     // Minimum momentum for dE/dx
  TString fTriggerClass;    // Name of selected trigger class
  Bool_t  fOnlyEventsWithSDD; // Flag to use only trigger cluster with SDD
  Bool_t  fExcludeBadMod;   // Flag to reject bad modules
 
  ClassDef(AliAnalysisTaskSDDRP,5);
};


#endif
 AliAnalysisTaskSDDRP.h:1
 AliAnalysisTaskSDDRP.h:2
 AliAnalysisTaskSDDRP.h:3
 AliAnalysisTaskSDDRP.h:4
 AliAnalysisTaskSDDRP.h:5
 AliAnalysisTaskSDDRP.h:6
 AliAnalysisTaskSDDRP.h:7
 AliAnalysisTaskSDDRP.h:8
 AliAnalysisTaskSDDRP.h:9
 AliAnalysisTaskSDDRP.h:10
 AliAnalysisTaskSDDRP.h:11
 AliAnalysisTaskSDDRP.h:12
 AliAnalysisTaskSDDRP.h:13
 AliAnalysisTaskSDDRP.h:14
 AliAnalysisTaskSDDRP.h:15
 AliAnalysisTaskSDDRP.h:16
 AliAnalysisTaskSDDRP.h:17
 AliAnalysisTaskSDDRP.h:18
 AliAnalysisTaskSDDRP.h:19
 AliAnalysisTaskSDDRP.h:20
 AliAnalysisTaskSDDRP.h:21
 AliAnalysisTaskSDDRP.h:22
 AliAnalysisTaskSDDRP.h:23
 AliAnalysisTaskSDDRP.h:24
 AliAnalysisTaskSDDRP.h:25
 AliAnalysisTaskSDDRP.h:26
 AliAnalysisTaskSDDRP.h:27
 AliAnalysisTaskSDDRP.h:28
 AliAnalysisTaskSDDRP.h:29
 AliAnalysisTaskSDDRP.h:30
 AliAnalysisTaskSDDRP.h:31
 AliAnalysisTaskSDDRP.h:32
 AliAnalysisTaskSDDRP.h:33
 AliAnalysisTaskSDDRP.h:34
 AliAnalysisTaskSDDRP.h:35
 AliAnalysisTaskSDDRP.h:36
 AliAnalysisTaskSDDRP.h:37
 AliAnalysisTaskSDDRP.h:38
 AliAnalysisTaskSDDRP.h:39
 AliAnalysisTaskSDDRP.h:40
 AliAnalysisTaskSDDRP.h:41
 AliAnalysisTaskSDDRP.h:42
 AliAnalysisTaskSDDRP.h:43
 AliAnalysisTaskSDDRP.h:44
 AliAnalysisTaskSDDRP.h:45
 AliAnalysisTaskSDDRP.h:46
 AliAnalysisTaskSDDRP.h:47
 AliAnalysisTaskSDDRP.h:48
 AliAnalysisTaskSDDRP.h:49
 AliAnalysisTaskSDDRP.h:50
 AliAnalysisTaskSDDRP.h:51
 AliAnalysisTaskSDDRP.h:52
 AliAnalysisTaskSDDRP.h:53
 AliAnalysisTaskSDDRP.h:54
 AliAnalysisTaskSDDRP.h:55
 AliAnalysisTaskSDDRP.h:56
 AliAnalysisTaskSDDRP.h:57
 AliAnalysisTaskSDDRP.h:58
 AliAnalysisTaskSDDRP.h:59
 AliAnalysisTaskSDDRP.h:60
 AliAnalysisTaskSDDRP.h:61
 AliAnalysisTaskSDDRP.h:62
 AliAnalysisTaskSDDRP.h:63
 AliAnalysisTaskSDDRP.h:64
 AliAnalysisTaskSDDRP.h:65
 AliAnalysisTaskSDDRP.h:66
 AliAnalysisTaskSDDRP.h:67
 AliAnalysisTaskSDDRP.h:68
 AliAnalysisTaskSDDRP.h:69
 AliAnalysisTaskSDDRP.h:70
 AliAnalysisTaskSDDRP.h:71
 AliAnalysisTaskSDDRP.h:72
 AliAnalysisTaskSDDRP.h:73
 AliAnalysisTaskSDDRP.h:74
 AliAnalysisTaskSDDRP.h:75
 AliAnalysisTaskSDDRP.h:76
 AliAnalysisTaskSDDRP.h:77
 AliAnalysisTaskSDDRP.h:78
 AliAnalysisTaskSDDRP.h:79
 AliAnalysisTaskSDDRP.h:80
 AliAnalysisTaskSDDRP.h:81
 AliAnalysisTaskSDDRP.h:82
 AliAnalysisTaskSDDRP.h:83
 AliAnalysisTaskSDDRP.h:84
 AliAnalysisTaskSDDRP.h:85
 AliAnalysisTaskSDDRP.h:86
 AliAnalysisTaskSDDRP.h:87
 AliAnalysisTaskSDDRP.h:88
 AliAnalysisTaskSDDRP.h:89
 AliAnalysisTaskSDDRP.h:90
 AliAnalysisTaskSDDRP.h:91
 AliAnalysisTaskSDDRP.h:92
 AliAnalysisTaskSDDRP.h:93
 AliAnalysisTaskSDDRP.h:94
 AliAnalysisTaskSDDRP.h:95
 AliAnalysisTaskSDDRP.h:96
 AliAnalysisTaskSDDRP.h:97
 AliAnalysisTaskSDDRP.h:98
 AliAnalysisTaskSDDRP.h:99
 AliAnalysisTaskSDDRP.h:100
 AliAnalysisTaskSDDRP.h:101
 AliAnalysisTaskSDDRP.h:102
 AliAnalysisTaskSDDRP.h:103
 AliAnalysisTaskSDDRP.h:104
 AliAnalysisTaskSDDRP.h:105
 AliAnalysisTaskSDDRP.h:106
 AliAnalysisTaskSDDRP.h:107
 AliAnalysisTaskSDDRP.h:108
 AliAnalysisTaskSDDRP.h:109
 AliAnalysisTaskSDDRP.h:110
 AliAnalysisTaskSDDRP.h:111
 AliAnalysisTaskSDDRP.h:112
 AliAnalysisTaskSDDRP.h:113
 AliAnalysisTaskSDDRP.h:114
 AliAnalysisTaskSDDRP.h:115
 AliAnalysisTaskSDDRP.h:116
 AliAnalysisTaskSDDRP.h:117
 AliAnalysisTaskSDDRP.h:118