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