AliPhysics  2c6b7ad (2c6b7ad)
AliAnalysisTaskClusterQA.h
Go to the documentation of this file.
1 #ifndef AliAnalysisClusterQA_cxx
2 #define AliAnalysisClusterQA_cxx
3 
4 #include "AliAnalysisTaskSE.h"
6 #include "TH1.h"
7 #include "TH2.h"
8 #include "TTreeStream.h"
9 #include "AliLog.h"
10 #include <vector>
11 #include "AliV0ReaderV1.h"
12 #include "AliCaloPhotonCuts.h"
13 #include "AliConvEventCuts.h"
15 #include "AliConversionMesonCuts.h"
16 #include "TList.h"
17 #include "AliMCEvent.h"
18 #include "TClonesArray.h"
19 
20 
21 using namespace std;
22 
23 
25 
26  public:
27 
29  AliAnalysisTaskClusterQA(const char *name);
30  virtual ~AliAnalysisTaskClusterQA();
31 
32  virtual void UserCreateOutputObjects ();
33  virtual Bool_t Notify ();
34  virtual void UserExec ( Option_t *option );
35  virtual void Terminate ( Option_t * );
36 
37  void SetV0Reader ( AliV0ReaderV1 *v0Reader ) { fV0Reader=v0Reader ; }
38  void SetV0ReaderName(TString name){fV0ReaderName=name; return;}
39  void SetEventCuts ( AliConvEventCuts* conversionCuts,
40  Bool_t IsHeavyIon ) {
41  fEventCuts=conversionCuts ;
42  fIsHeavyIon = IsHeavyIon ;
43  }
44  void SetClusterCutsEMC ( AliCaloPhotonCuts* clusterCuts,
45  Bool_t IsHeavyIon ) {
46  fClusterCutsEMC=clusterCuts ;
47  fIsHeavyIon = IsHeavyIon ;
48  }
49  void SetClusterCutsDMC ( AliCaloPhotonCuts* clusterCuts,
50  Bool_t IsHeavyIon ) {
51  fClusterCutsDMC=clusterCuts ;
52  fIsHeavyIon = IsHeavyIon ;
53  }
55  Bool_t IsHeavyIon ) {
56  fMesonCuts=mesonCuts ;
57  fIsHeavyIon = IsHeavyIon ;
58  }
59 
60  void FillType ( Double_t fillTree,
61  Bool_t fillHistorams) {
62  ffillTree = fillTree ;
63  ffillHistograms = fillHistorams ;
64  }
65  void SetIsMC ( Bool_t isMC ) { fIsMC = isMC ; }
66  void SetDoAdditionalHistos ( Bool_t val ) { fSaveAdditionalHistos = val ; }
67  void SetSaveEventProperties ( Bool_t val ) { fSaveEventProperties = val ; }
68  void SetSaveClusterCells ( Bool_t val ) { fSaveCells = val ; }
69  void SetSaveSurroundingCells ( Bool_t val ) { fSaveSurroundingCells = val ; }
70  void SetSaveSurroundingTracks ( Bool_t val ) { fSaveTracks = val ; }
71  void SetMaxConeRadius ( Float_t val ) { fConeRadius = val ; }
72  void SetMinTrackPt ( Float_t val ) { fMinTrackPt = val ; }
73  void SetMinClusterEnergy ( Float_t val ) { fMinClusterEnergy = val ; }
74  void SetMinMaxNLMCut ( Int_t valmin, Int_t valmax ) { fMinNLMCut = valmin ;
75  fMaxNLMCut = valmax ; }
76  void SetSaveMCInformation ( Bool_t val ) { fSaveMCInformation = val ; }
77  // Function to set correction task setting
78  void SetCorrectionTaskSetting(TString setting) {fCorrTaskSetting = setting;}
79  Int_t FindLargestCellInCluster(AliVCluster* cluster, AliVEvent* event);
80  void GetRowAndColumnFromAbsCellID(Int_t cellIndex, Int_t& row, Int_t& column);
81  Int_t MakePhotonCandidates(AliVCluster* clus, AliVCaloCells* cells, Long_t indexCluster);
82  void ProcessTracksAndMatching(AliVCluster* clus, Long_t indexCluster);
83  Int_t GetMCClusterFlag(AliVCluster* clus, AliVCaloCells* cells);
84  Float_t GetCentrality(AliVEvent *event);
85  private:
86 
87  AliAnalysisTaskClusterQA ( const AliAnalysisTaskClusterQA& ); // Prevent copy-construction
88  AliAnalysisTaskClusterQA &operator=( const AliAnalysisTaskClusterQA& ); // Prevent assignment
89 
90  ULong64_t GetUniqueEventID ( AliVHeader *header);
91  void ProcessQATreeCluster ( AliVEvent *event, AliVCluster* cluster, Long_t indexCluster);
92  void ProcessQA ( AliAODConversionPhoton *gamma );
93  void RelabelAODPhotonCandidates ( Bool_t mode );
94  void ProcessTrueQAESD ( AliAODConversionPhoton *TruePhotonCandidate,
95  AliESDtrack *elec,
96  AliESDtrack *posi );
97  void ProcessTrueQAAOD ( AliAODConversionPhoton *TruePhotonCandidate,
98  AliAODTrack *elec,
99  AliAODTrack *posi );
100  Int_t ProcessTrueClusterCandidates(AliAODConversionPhoton *TrueClusterCandidate, Float_t m02,
101  AliAODConversionPhoton *TrueSubClusterCandidate1,
102  AliAODConversionPhoton *TrueSubClusterCandidate2);
103  UInt_t IsTruePhotonESD ( AliAODConversionPhoton *TruePhotonCandidate );
104  UInt_t IsTruePhotonAOD ( AliAODConversionPhoton *TruePhotonCandidate );
105  void CountTracks ();
106  void SetLogBinningXTH2 ( TH2* histoRebin );
107 
108  protected:
112  AliConversionPhotonCuts* fConversionCuts; // Cuts used by the V0Reader
113  AliConvEventCuts* fEventCuts; // Cuts used by the V0Reader
114  AliCaloPhotonCuts* fClusterCutsEMC; // Cuts used by the V0Reader
115  AliCaloPhotonCuts* fClusterCutsDMC; // Cuts used by the V0Reader
116  AliConversionMesonCuts* fMesonCuts; // Cuts used by the V0Reader
119  AliVEvent* fInputEvent; //
120  AliMCEvent* fMCEvent; //
121  Double_t fWeightJetJetMC; // weight for Jet-Jet MC
122  AliEMCALGeometry* fGeomEMCAL; // pointer to EMCAL geometry
130 
131  // Save flags
141 
142  // Option flags
143  std::vector<Float_t> fExtractionPercentages;
144  std::vector<Float_t> fExtractionPercentagePtBins;
145 
146  // Buffers that will be added to the tree
147  ULong64_t fBuffer_EventID;
160 
166 
171 
183 
186 
199 
200  ClassDef(AliAnalysisTaskClusterQA, 5);
201 };
202 
203 const Int_t kMaxActiveCells = 18000;
204 const Int_t kMaxNTracks = 4000;
205 
206 #endif
207 
Int_t fBuffer_Surrounding_NTracks
! array buffer
double Double_t
Definition: External.C:58
Float_t fBuffer_ClusterPhi
! array buffer
Definition: External.C:236
Float_t fBuffer_Event_Vertex_Y
! array buffer
void SetV0Reader(AliV0ReaderV1 *v0Reader)
Bool_t fSaveMCInformation
save MC information
void SetSaveSurroundingTracks(Bool_t val)
const Int_t kMaxNTracks
Float_t fBuffer_ClusterE
! array buffer
Float_t * fBuffer_Cells_RelativeEta
! array buffer
Bool_t fSaveEventProperties
save general event properties (centrality etc.)
Float_t fConeRadius
save arrays of all cells in event
void FillType(Double_t fillTree, Bool_t fillHistorams)
Int_t fBuffer_Mother_MC_Label
! array buffer
Float_t * fBuffer_Surrounding_Tracks_R
! array buffer
Float_t fBuffer_Event_Vertex_Z
! array buffer
void SetClusterCutsDMC(AliCaloPhotonCuts *clusterCuts, Bool_t IsHeavyIon)
Bool_t fBuffer_ClusterIsEMCAL
! array buffer
Float_t fBuffer_Event_Vertex_X
! array buffer
Int_t fBuffer_LeadingCell_ID
! array buffer
Float_t fBuffer_Event_Multiplicity
! array buffer
void SetMesonCuts(AliConversionMesonCuts *mesonCuts, Bool_t IsHeavyIon)
Int_t * fBuffer_Surrounding_Cells_ID
! array buffer
Float_t * fBuffer_Surrounding_Cells_E
! array buffer
Float_t fBuffer_LeadingCell_Phi
! array buffer
int Int_t
Definition: External.C:63
Float_t * fBuffer_Surrounding_Cells_R
! array buffer
Class handling all kinds of selection cuts for Gamma Calo analysis.
Float_t * fBuffer_Cells_RelativePhi
! array buffer
Float_t * fBuffer_Surrounding_Tracks_RelativeEta
! array buffer
unsigned int UInt_t
Definition: External.C:33
float Float_t
Definition: External.C:68
Float_t * fBuffer_Surrounding_Tracks_Pt
! array buffer
Int_t fBuffer_Cluster_MC_Label
! array buffer
std::vector< Float_t > fExtractionPercentages
Percentages which will be extracted for a given pT bin.
Bool_t fSaveSurroundingCells
save arrays of all cells in event
Class handling all kinds of selection cuts for Gamma Conversion analysis.
Float_t fBuffer_ClusterM20
! array buffer
void SetClusterCutsEMC(AliCaloPhotonCuts *clusterCuts, Bool_t IsHeavyIon)
Bool_t fSaveAdditionalHistos
save MC information
Float_t fMinClusterEnergy
save arrays of all cells in event
Int_t mode
Definition: anaM.C:41
Int_t * fBuffer_Cells_ID
! array buffer
Int_t fMaxNLMCut
save MC information
Float_t fBuffer_ClusterM02
! array buffer
void SetMinMaxNLMCut(Int_t valmin, Int_t valmax)
Int_t fBuffer_Event_NumActiveCells
! array buffer
Float_t fBuffer_ClusterEta
! array buffer
AliConversionPhotonCuts * fConversionCuts
Bool_t isMC
Bool_t fSaveCells
save arrays of cluster cells
ULong64_t fBuffer_EventID
! array buffer
Definition: External.C:220
Float_t * fBuffer_Surrounding_Cells_RelativePhi
! array buffer
Class handling all kinds of selection cuts for Gamma Conversion analysis.
Int_t fBuffer_ClusterNumCells
! array buffer
void SetEventCuts(AliConvEventCuts *conversionCuts, Bool_t IsHeavyIon)
Float_t fBuffer_LeadingCell_Eta
! array buffer
const Int_t kMaxActiveCells
void SetSaveSurroundingCells(Bool_t val)
Class handling all kinds of selection cuts for Gamma Conversion analysis.
Int_t fBuffer_MC_Cluster_Flag
! array buffer
Float_t * fBuffer_Surrounding_Cells_RelativeEta
! array buffer
AliConversionMesonCuts * fMesonCuts
Float_t fBuffer_LeadingCell_E
! array buffer
const char Option_t
Definition: External.C:48
bool Bool_t
Definition: External.C:53
Float_t * fBuffer_Surrounding_Tracks_RelativePhi
! array buffer
Float_t * fBuffer_Cells_E
! array buffer
Int_t fMinNLMCut
save MC information
void SetCorrectionTaskSetting(TString setting)
Int_t fBuffer_Surrounding_NCells
! array buffer
Bool_t fSaveTracks
save arrays of all cells in event
std::vector< Float_t > fExtractionPercentagePtBins
pT-bins associated with fExtractionPercentages
Float_t fMinTrackPt
save arrays of all cells in event