ROOT logo
#ifndef ALIALIGNMENTDATAFILTERITS_H
#define ALIALIGNMENTDATAFILTERITS_H

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

//*************************************************************************
// Class AliAlignmentDataFilterITS
// AliAnalysisTask to extract from ESD tracks the AliTrackPointArrays
// with ITS points for selected tracks. This are the input data for alignment
// Author: A.Dainese, andrea.dainese@pd.infn.it
//*************************************************************************

class TTree;
class TNtuple;
class TList;
class TH1F;
class TH2F;
class TObjString;

class AliTrackPointArray;

#include <TString.h>
#include "AliITSReconstructor.h"
#include "AliITSRecoParam.h"
#include "AliAnalysisTaskSE.h"

class AliAlignmentDataFilterITS : public AliAnalysisTaskSE
{
 public:

  AliAlignmentDataFilterITS();
  AliAlignmentDataFilterITS(const char *name);
  virtual ~AliAlignmentDataFilterITS();


  // Implementation of interface methods
  virtual void UserCreateOutputObjects();
  virtual void UserExec(Option_t *option);
  virtual void Terminate(Option_t *option);
  void SetOnlySPDFO(Bool_t set=kTRUE) {fOnlySPDFO=set;}
  void SetDownsamplelowpt(Bool_t set=kTRUE) {fDownsamplelowpt=set;}
  void SetGeometryFileName(TString name="geometry.root") {fGeometryFileName=name;}
  void SetITSRecoParam(AliITSRecoParam *rp) {fITSRecoParam=rp;}
  static Int_t WriteTrackPointsInIdealGeom(const Char_t *fin="AliTrackPoints.root", 
					   const Char_t *fout="AliTrackPoints_IdGeom.root",
					   const Char_t *fmis="Run0_999999999_v3_s0.root",
					   const Char_t *fgeo="geometry.root",
					   Bool_t prn=0);

 private:

  void FilterCosmic(const AliESDEvent *esd);
  void FilterCollision(const AliESDEvent *esd);
  const AliITSRecoParam *GetRecoParam() const;

  AliAlignmentDataFilterITS(const AliAlignmentDataFilterITS &);
  AliAlignmentDataFilterITS& operator=(const AliAlignmentDataFilterITS&);


  Bool_t fOnlySPDFO;         // only SPDtriggered events
  Bool_t fDownsamplelowpt;   // skip part of low pt tracks (only for pp B-on)
  TString fGeometryFileName; // where to find the geometry.root
  AliITSRecoParam *fITSRecoParam;  // keeps the settings for the filter
  AliESDEvent  *fESD;        // ESD object
  TList   *fListOfHistos;    //! list of histos: output slot 1
  TTree   *fspTree;          //! output tree with space points: output slot 0
  TH1F    *fHistNevents;     //! output histogram
  TH1F    *fHistNpoints;     //! output histogram
  TH1F    *fHistPt;          //! output histogram
  TH2F    *fHistLayer0;      //! output histogram
  TH2F    *fHistLayer1;      //! output histogram
  TH2F    *fHistLayer2;      //! output histogram
  TH2F    *fHistLayer3;      //! output histogram
  TH2F    *fHistLayer4;      //! output histogram
  TH2F    *fHistLayer5;      //! output histogram
  TNtuple *fntExtra;         //! output QA ntuple  
  TNtuple *fntCosmicMatching;//! output QA ntuple  

  ClassDef(AliAlignmentDataFilterITS,4); // AliAnalysisTask to extract ITS points for alignment
};

#endif

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