]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG/muon/AliAnalysisTaskDimuonCFContainerBuilder.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWG / muon / AliAnalysisTaskDimuonCFContainerBuilder.h
CommitLineData
7dd391ec 1#ifndef ALIANALYSISTASKDIMUONCFCONTAINERBUILDER_H
2#define ALIANALYSISTASKDIMUONCFCONTAINERBUILDER_H
3
27de2dfb 4/* $Id$ */
5
7dd391ec 6#include "AliAnalysisTaskSE.h"
7dd391ec 7#include "TString.h"
7dd391ec 8
9// Analysis task for the building of a dimuon CF container
10// Also some single-muon variables are stored
11// L. Bianchi - Universita' & INFN Torino
12
8320cad2 13class AliCFContainer;
14class AliCFManager;
7dd391ec 15
16class AliAnalysisTaskDimuonCFContainerBuilder : public AliAnalysisTaskSE {
17 public:
18
19 AliAnalysisTaskDimuonCFContainerBuilder();
20 AliAnalysisTaskDimuonCFContainerBuilder(const Char_t* name, Bool_t readaod, Bool_t readMC, Bool_t isaccept, Double_t beamEn);
21 AliAnalysisTaskDimuonCFContainerBuilder& operator= (const AliAnalysisTaskDimuonCFContainerBuilder& c);
22 AliAnalysisTaskDimuonCFContainerBuilder(const AliAnalysisTaskDimuonCFContainerBuilder& c);
23 virtual ~AliAnalysisTaskDimuonCFContainerBuilder();
24
25 // ANALYSIS FRAMEWORK STUFF to loop on data and fill output objects
26 void UserExec(Option_t *option);
27 void Terminate(Option_t *);
28 void UserCreateOutputObjects();
29
30 // CORRECTION FRAMEWORK RELATED FUNCTIONS
31 void SetCFManager(AliCFManager* const io) {fCFManager = io;} // global correction manager
32 AliCFManager * GetCFManager() const {return fCFManager;} // get corr manager
33 void SetQAList(TList* const list) {fQAHistList = list;}
34
35 // Setters and Getters
36 Bool_t IsReadAODData () const {return fReadAODData;}
37 void SetReadAODData (Bool_t flag=kTRUE) {fReadAODData=flag;}
38 void SetReadMCinfo (Bool_t flag=kTRUE) {fReadMCInfo=flag;}
39 void SetIsAccProd (Bool_t flag=kTRUE) {fIsAccProduction=flag;}
40 void SetBeamEnergy (Double_t en) {fBeamEnergy=en;}
41 void SetChi2Limits (Double_t chi2track[]) {fChi2Track[0]=chi2track[0];fChi2Track[1]=chi2track[1];}
42 void SetChi2MatchLimits (Double_t chi2match[]) {fChi2MatchTrig[0]=chi2match[0];fChi2MatchTrig[1]=chi2match[1];}
43 void SetPtSingMuLimits (Double_t PtSingle[]) {fPtSingMuCut[0]=PtSingle[0];fPtSingMuCut[1]=PtSingle[1];}
44 void SetThetaSingMuLimits (Double_t ThetaSingle[]) {fThetaSingMuCut[0]=ThetaSingle[0];fThetaSingMuCut[1]=ThetaSingle[1];}
45 void SetZprimVertLimits (Double_t Zprimvtx[]) {fzPrimVertexSPD[0]=Zprimvtx[0];fzPrimVertexSPD[1]=Zprimvtx[1];}
46 void SetCutonZvtxSPD (Bool_t cut=kFALSE) {fCutOnzVtxSPD=cut;}
b0c84a07 47 void SetNContributorsLimits (Int_t NContr[]) {fNContributors[0]=NContr[0];fNContributors[1]=NContr[1];}
7dd391ec 48 void SetCutonNContributors (Bool_t cut=kFALSE) {fCutOnNContributors=cut;}
49 void SetDistinguishTrigClass(Bool_t dist=kFALSE) {fDistinguishTrigClass=dist;}
50 void SetTrigClassMuonName (TString name = "CMU") {fTrigClassMuon=name;}
51 void SetTrigClassInteracName(TString name = "CINT") {fTrigClassInteraction=name;}
52 void SetTrigClassMuonSideName(TString name[4]) {for(Int_t i=0;i<4;i++) fTrigClassMuonSide[i]=name[i];}
53 void SetTrigClassInteracSideName(TString name[4]) {for(Int_t i=0;i<4;i++) fTrigClassInteractionSide[i]=name[i];}
54
55 protected:
56
57 Bool_t fReadAODData ; // flag for AOD/ESD input files
58 Bool_t fReadMCInfo ; // flag for reading MC info (ESD->Kinematics, AOD->MCbranch)
59 Bool_t fIsAccProduction ; // flag to activate in case of acceptance MC production (in this case fReadMCInfo==kTRUE)
60 AliCFManager *fCFManager ; // pointer to the CF manager
61 TList *fQAHistList ; // list of QA histograms
62 Double_t fNevt ; // event counter
63 Double_t fBeamEnergy ; // Energy of the beam (required for the CS angle)
64 TList *fOutput ; // list of TH in output
65
66 // CUTS ON TRACKS
67 Double_t fChi2Track[2] ; // Cut on chi2 of the tracks ([0]==chi2min, [1]==chi2max)
68 Double_t fChi2MatchTrig[2] ; // Cut on chi2matchtrigger of the tracks ([0]==chi2Matchmin, [1]==chi2Matchmax)
69 Double_t fPtSingMuCut[2] ; // Cut on pt of single-mu tracks ([0]==ptmin, [1]==ptmax)
70 Double_t fThetaSingMuCut[2] ; // Cut on polar angle (wrt beam axis) of single-mu tracks ([0]==thetamin, [1]==thetamax)
71
72 // CUTS ON EVENT
73 Double_t fzPrimVertexSPD[2] ; // Cut on the z coordinate of the primary vertex in SPD (full ITS for AODs)
74 Bool_t fCutOnzVtxSPD ; // flag to activate the cut on the z of the primary vertex
75 Int_t fNContributors[2] ; // Cut on NContributors in SPD
76 Bool_t fCutOnNContributors ; // flag to activate the cut on NContributors in SPD
77
78 // CUTS ON THE FIRED TRIGGER CLASS
79 TString fTrigClassMuon ; // name of the muon trigger class (CMU by default)
80 TString fTrigClassInteraction ; // name of the interaction trigger class (CINT by default)
81 TString fTrigClassMuonSide[4] ; // name of the muon trigger classes containing the side
82 TString fTrigClassInteractionSide[4];// name of the interaction trigger classes containing the side
83 Bool_t fDistinguishTrigClass ; // flag to activate the cut on the fired trigger class
84
85
86
8320cad2 87 Double_t Imass (Double_t e1, Double_t px1, Double_t py1, Double_t pz1, Double_t e2, Double_t px2, Double_t py2, Double_t pz2) const;
88 Double_t Rap (Double_t e, Double_t pz) const;
7dd391ec 89
8320cad2 90 Double_t CostCS (Double_t px1, Double_t py1, Double_t pz1, Double_t e1, Double_t charge1, Double_t px2, Double_t py2, Double_t pz2, Double_t e2);
91 Double_t CostHE (Double_t px1, Double_t py1, Double_t pz1, Double_t e1, Double_t charge1, Double_t px2, Double_t py2, Double_t pz2, Double_t e2);
92 Double_t PhiCS (Double_t px1, Double_t py1, Double_t pz1, Double_t e1, Double_t charge1, Double_t px2, Double_t py2, Double_t pz2, Double_t e2);
93 Double_t PhiHE (Double_t px1, Double_t py1, Double_t pz1, Double_t e1, Double_t charge1, Double_t px2, Double_t py2, Double_t pz2, Double_t e2);
7dd391ec 94
95 ClassDef(AliAnalysisTaskDimuonCFContainerBuilder,1);
96};
97
98#endif