]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGPP/ITS/AliAnalysisTaskSEImpParRes.h
Moving PWG1 to PWGPP
[u/mrichter/AliRoot.git] / PWGPP / ITS / AliAnalysisTaskSEImpParRes.h
diff --git a/PWGPP/ITS/AliAnalysisTaskSEImpParRes.h b/PWGPP/ITS/AliAnalysisTaskSEImpParRes.h
new file mode 100644 (file)
index 0000000..a5aac97
--- /dev/null
@@ -0,0 +1,96 @@
+#ifndef ALIANALYSISTASKSEIMPPARRES_H
+#define ALIANALYSISTASKSEIMPPARRES_H
+
+/* Copyright(c) 1998-2010, ALICE Experiment at CERN, All rights reserved. *
+ * See cxx source for full Copyright notice                               */
+
+//*************************************************************************
+// Class AliAnalysisTaskSEImpParRes
+// AliAnalysisTaskSE for the study of the track impact parameter resolution
+//
+// Authors: xianbao.yuan@pd.infn.it, andrea.dainese@pd.infn.it
+// 
+//*************************************************************************
+
+class TList;
+class TH1F;
+
+#include "AliAnalysisTaskSE.h"
+
+class AliAnalysisTaskSEImpParRes : public AliAnalysisTaskSE {
+
+ public:
+  
+  AliAnalysisTaskSEImpParRes();
+  AliAnalysisTaskSEImpParRes(const char *name);
+  virtual ~AliAnalysisTaskSEImpParRes();
+  
+  
+  // Implementation of interface methods
+  virtual void UserCreateOutputObjects();
+  virtual void UserExec(Option_t *option);
+  virtual void Terminate(Option_t *option);
+  void SetReadMC(Bool_t readMC) { fReadMC=readMC; return; }
+  void SetSelectedPdg(Int_t pdg) { fSelectedPdg=pdg; return; }
+  void SetUseDiamond(Bool_t use=kFALSE) { fUseDiamond=use; return; }
+  void SetSkipTrack(Bool_t skip=kFALSE) { fSkipTrack=skip; return; }
+  void SetMultiplicityRange(Int_t min,Int_t max) { fMinMult=min; fMaxMult=max; }
+
+ private:
+  
+  AliAnalysisTaskSEImpParRes(const AliAnalysisTaskSEImpParRes &source);
+  AliAnalysisTaskSEImpParRes& operator=(const AliAnalysisTaskSEImpParRes& source);  
+  
+  Int_t PtBin(Double_t pt) const;
+  Int_t SinThetaBin(Double_t sintheta) const;
+  Double_t Getd0HistRange(Int_t i) const;
+  Int_t PhiBin(Double_t phi) const;
+  Int_t ClusterTypeOnITSLayer(AliESDtrack *t,Int_t layer) const;
+  Bool_t fReadMC;       // flag used to switch on/off MC reading
+  Int_t  fSelectedPdg;  // only for a given particle species (-1 takes all tracks)
+  Bool_t fUseDiamond;   // use diamond constraint in primary vertex
+  Bool_t fSkipTrack;    // redo primary vertex for each track
+  Int_t  fMinMult; // minimum multiplicity
+  Int_t  fMaxMult; // maximum multiplicity
+  TList *fOutputitspureSARec;  //! ITS StandAlone: with track in vtx 
+  TList *fOutputitspureSASkip; //! ITS StandAlone: w/o track in vtx
+  TList *fOutputallPointRec;   //! ITS+TPC: 6 ITScls, with track in vtx      
+  TList *fOutputallPointSkip;  //! ITS+TPC: 6 ITScls, w/o track in vtx      
+  TList *fOutputpartPointRec;   //! ITS+TPC: >=1 SPD, with track in vtx
+  TList *fOutputpartPointSkip;  //! ITS+TPC: >=1 SPD, w/o track in vtx
+  TList *fOutputonepointSPDRec; //! At least one point on SPD, with track in vtx
+  TList *fOutputonepointSPDSkip;//! At least one point on SPD w/o track in vtx
+  TList *fOutputpostvTracRec;   //! ITS+TPC: >=1 SPD, positives, with track in vtx
+  TList *fOutputpostvTracSkip;  //! ITS+TPC: >=1 SPD, positives, w/o track in vtx
+  TList *fOutputnegtvTracRec;   //! ITS+TPC: >=1 SPD, negatives, with track in vtx
+  TList *fOutputnegtvTracSkip;  //! ITS+TPC: >=1 SPD, negatives, w/o track in vtx
+  TList *fOutputpullAllpointRec; //! pull ITS+TPC: 6 ITScls, with track in vtx
+  TList *fOutputpullAllpointSkip;//! pull ITS+TPC: 6 ITScls, w/o track in vtx
+  TList *fOutputOnlyRefitRec;   //! ITS+TPC: any ITScls, with track in vtx
+  TList *fOutputOnlyRefitSkip; //! ITS+TPC: any ITScls, w/o track in vtx
+  TList *fOutputSinThetaRec;              //! ITS+TPC: TH2F(pt,sintheta), with track in vtx
+  TList *fOutputSinThetaSkip;             //! ITS+TPC: TH2F(pt,sintheta), w/o track in vtx
+  TList *fOutputallPointTrue;    //!
+  TList *fOutputpostvTracTrue;   //!
+  TList *fOutputnegtvTracTrue;   //!
+  TList *fOutputpullAllpointTrue;  //!
+  TList *fOutputphiAllpointSkip;  //!
+  TList *fOutputphiPostvtracSkip;  //!
+  TList *fOutputphiNegtvtracSkip;  //!
+  TList *fOutputclusterTypeSPD01Skip;  //!
+  TList *fOutputclusterTypeSPD02Skip;  //!
+  TList *fOutputclusterTypeSPD03Skip;  //!
+  TList *fOutputclusterTypeSPD11Skip;  //!
+  TList *fOutputclusterTypeSPD12Skip;  //!
+  TList *fOutputclusterTypeSPD13Skip;  //!
+  TList *fOutputparticlePID;  //!
+  TList *fOutputPt;     //!           
+  TH1F  *fNentries;   //! histogram of number of events
+  TH1F  *fEstimVtx;   //! vertex resolution
+
+  Bool_t IsSelectedCentrality(AliESDEvent *esd) const;
+
+  ClassDef(AliAnalysisTaskSEImpParRes,5); // AliAnalysisTaskSE for the study of the impact parameter resolution
+};
+
+#endif