]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGGA/PHOSTasks/UserTasks/AliPHOSpPbPi0Header.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGGA / PHOSTasks / UserTasks / AliPHOSpPbPi0Header.h
CommitLineData
a01cd2c9 1#ifndef ALIPHOSPPBPI0HEADER_H
2#define ALIPHOSPPBPI0HEADER_H
3
4/* Copyright(c) 1998-2006, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6
7//*************************************************************************
8// Class AliPHOSpPbPi0Header
9// class used to extract ,store info and fill histograms at event level
10// Author: H-S. Zhu, hongsheng.zhu@cern.ch
11// hszhu@iopp.ccnu.edu.cn
12//*************************************************************************
13
14#include <TNamed.h>
15#include <TString.h>
16
17class TList;
18class TParticle;
19class TClonesArray;
20
e824e25b 21class AliInputEventHandler;
a01cd2c9 22class AliStack;
bf6afad1 23class AliVEvent;
a01cd2c9 24class AliVCaloCells;
25class AliPHOSGeoUtils;
26
27class AliCaloClusterInfo;
28
29class AliPHOSpPbPi0Header : public TNamed {
30 public :
31
32 AliPHOSpPbPi0Header();
33 AliPHOSpPbPi0Header(const AliPHOSpPbPi0Header &src);
34 AliPHOSpPbPi0Header& operator=(const AliPHOSpPbPi0Header &src);
35 ~AliPHOSpPbPi0Header();
36
37 void GetXYZ(Double_t *vtx) const { for (Int_t i=3; i--;) vtx[i]=fVtx[i]; }
38 Double_t Vx() const { return fVtx[0]; }
39 Double_t Vy() const { return fVtx[1]; }
40 Double_t Vz() const { return fVtx[2]; }
41 TString FiredTriggerClass() const { return fFiredTriggerClass; }
42 UInt_t SelectionMask() const { return fSelMask; }
e824e25b 43 Bool_t IsVertexOK() const { return fIsVertexOK; }
bf6afad1 44 Bool_t IsPileup() const { return fIsPileup; }
a01cd2c9 45 Float_t Centrality() const { return fCentrality; }
bf6afad1 46
0f8c33c1 47 Bool_t IsSelected();
a01cd2c9 48
49 void SetEventInfo(AliInputEventHandler* const handler);
50
e824e25b 51 void CreateHistograms(TList *listQA, TList *listRD, TList *listMC);
bf6afad1
YK
52 void FillHistosEvent(TList *listQA);
53 void FillHistosCaloCellsQA(TList *listQA, AliVCaloCells* const cells, AliPHOSGeoUtils* const phosGeo);
54 void FillHistosCaloCluster(TList *listQA, TClonesArray* const caloClArr, Int_t cent);
55 void FillHistosPi0(TList *listRD, TClonesArray* const caloClArr, Int_t cent);
56 void FillHistosMixPi0(TList *listRD, TClonesArray* const caloClArr, TList* const eventlist, Int_t cent);
57 void FillHistosMC(TList *listMC, AliStack* const stack, TClonesArray* const caloClArr, AliPHOSGeoUtils* const phosGeo, Int_t cent);
58
59 static void SetIsMC(Bool_t isMC=kFALSE) { fgIsMC = isMC; }
60 static void SetUseFiducialCut(Bool_t fc=kFALSE) { fgUseFiducialCut = fc; }
61 static void SetNCent(Int_t ncent=10) { fgNCent = ncent; }
62 static void SetSelectionCuts(Double_t cuts[3]) { for (Int_t i=3; i--;) fgCuts[i] = cuts[i]; }
a01cd2c9 63
64 private :
65
bf6afad1
YK
66 void CreateHistosEvent(TList *listQA);
67 void CreateHistosCaloCellsQA(TList *listQA);
68 void CreateHistosCaloCluster(TList *listQA);
69 void CreateHistosPi0(TList *listRD);
70 void CreateHistosMixPi0(TList *listRD);
71 void CreateHistosMC(TList *listMC);
a01cd2c9 72
bf6afad1
YK
73 Bool_t CheckEventVertex(AliVEvent* const event);
74 TString ClassifyMCPi0(Int_t index, AliStack* const stack);
e824e25b 75 Int_t HitPHOSModule(TParticle* const pMC, AliPHOSGeoUtils* const phosGeo);
e824e25b 76
77 static Bool_t fgIsMC; // flag to use MC
78 static Bool_t fgIspARun; // flag to use pA vertex cut
79 static Bool_t fgUseFiducialCut; // flag to use fiducial cut
80 static Int_t fgNCent; // # of centrality bins
bf6afad1
YK
81 static Double_t fgCuts[3]; // 0, up limit of vz
82 // 1, centrality max
83 // 2, centrality min
e824e25b 84
805ec433 85 enum { kAll, kCpv, kDisp, kBoth, kCpv2, kDisp2, kBoth2, kPIDs }; // PID
86 enum { kPtClu, kEtaClu, kPhiClu, kM02Clu, kM20Clu, kTOFClu, kNCellsClu, kNClustersClu, kVarsClu }; // clusters
87 enum { kPtPi0, kEtaPi0, kPhiPi0, kAsyPi0, kAnglePi0, kInvMassPi0, kVarsPi0 }; // pi0
88 enum { kPtMixPi0, kEtaMixPi0, kPhiMixPi0, kInvMassMixPi0, kVarsMixPi0 }; // Mixed pi0
89 enum { kPtMC, kRapidityMC, kRadiusMC, kPhiMC, kInvMassMC, kVarsMC }; // MC
a01cd2c9 90
bf6afad1
YK
91 Double_t fVtx[3]; // position of vtx
92 TString fFiredTriggerClass; // trigger class
93 UInt_t fSelMask; // mask of physics selection
94 Bool_t fIsVertexOK; // is vertex OK
95 Bool_t fIsPileup; // is Pileup from SPD
96 Float_t fCentrality; // event certrality
a01cd2c9 97
d96d58a7 98 ClassDef(AliPHOSpPbPi0Header, 3)
a01cd2c9 99};
100
101#endif