]>
Commit | Line | Data |
---|---|---|
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 | ||
17 | class TList; | |
18 | class TParticle; | |
19 | class TClonesArray; | |
20 | ||
e824e25b | 21 | class AliInputEventHandler; |
a01cd2c9 | 22 | class AliStack; |
bf6afad1 | 23 | class AliVEvent; |
a01cd2c9 | 24 | class AliVCaloCells; |
25 | class AliPHOSGeoUtils; | |
26 | ||
27 | class AliCaloClusterInfo; | |
28 | ||
29 | class 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 |