]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG3/dielectron/macros/ConfigJpsi2eeData.C
updates and bugfixes in preparation for the AOD filtering. New class added
[u/mrichter/AliRoot.git] / PWG3 / dielectron / macros / ConfigJpsi2eeData.C
CommitLineData
572b0139 1
572b0139 2
164bfb53 3void SetupTrackCuts();
4void SetupPairCuts();
5void InitHistograms();
6void InitCF();
572b0139 7
164bfb53 8AliESDtrackCuts *SetupESDtrackCuts();
61d106d3 9
10TString names=("basicQ+SPDfirst+pt>.6+PID");
11
572b0139 12TObjArray *arrNames=names.Tokenize(";");
13
14const Int_t nDie=arrNames->GetEntries();
15
164bfb53 16AliDielectron *fDiele=0x0;
17Int_t fCutDefinition=0;
18Bool_t fIsAOD=kFALSE;
19
20AliDielectron* ConfigJpsi2ee(Int_t fCutDefinition, Bool_t isAOD)
572b0139 21{
22 //
23 // Setup the instance of AliDielectron
24 //
25
164bfb53 26 fCutDefinition=fCutDefinition;
27 fIsAOD=isAOD;
28
572b0139 29 // create the actual framework object
164bfb53 30 TString name=Form("%02d",fCutDefinition);
31 if (fCutDefinition<arrNames->GetEntriesFast()){
32 name=arrNames->At(fCutDefinition)->GetName();
572b0139 33 }
164bfb53 34 fDiele = new AliDielectron(Form("%s",name.Data()),
35 Form("Track cuts: %s",name.Data()));
61d106d3 36
572b0139 37 // cut setup
164bfb53 38 SetupTrackCuts();
39 SetupPairCuts();
572b0139 40
41 //
42 // histogram setup
43 // only if an AliDielectronHistos object is attached to the
164bfb53 44 // fDielelectron framework histograms will be filled
572b0139 45 //
164bfb53 46 InitHistograms();
572b0139 47
48 // the last definition uses no cuts and only the QA histograms should be filled!
164bfb53 49// if (fCutDefinition<nDie-1)
50 InitCF();
61d106d3 51
164bfb53 52 return fDiele;
572b0139 53}
54
55//______________________________________________________________________________________
164bfb53 56void SetupTrackCuts()
572b0139 57{
58 //
59 // Setup the track cuts
60 //
61
164bfb53 62 //ESD quality cuts DielectronTrackCuts
63 if (!fIsAOD) {
64 fDiele->GetTrackFilter().AddCuts(SetupESDtrackCuts());
65 } else {
66 AliDielectronTrackCuts *trackCuts=new AliDielectronTrackCuts("trackCuts","trackCuts");
67 trackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kFirst);
68 trackCuts->SetRequireTPCRefit(kTRUE);
69 trackCuts->SetRequireITSRefit(kTRUE);
70 fDiele->GetTrackFilter().AddCuts(trackCuts);
71 }
572b0139 72
164bfb53 73 if(fCutDefinition==0) {
61d106d3 74 //Pt cut ----------------------------------------------------------
75 AliDielectronVarCuts *pt = new AliDielectronVarCuts("ptCut","pt cut");
76 pt->AddCut(AliDielectronVarManager::kPt,0.6,1e30);
164bfb53 77
78 //AOD additions since there are no AliESDtrackCuts -----------------
79 //
80 if (fIsAOD){
81 // TPC #clusteres cut
82 pt->AddCut(AliDielectronVarManager::kNclsTPC,90.,160.);
83 pt->AddCut(AliDielectronVarManager::kEta,-0.8,0.8);
84 //TODO: DCA cuts to be investigated!!!
85// pt->AddCut(AliDielectronVarManager::kImpactParXY,-1.,1.);
86// pt->AddCut(AliDielectronVarManager::kImpactParZ,-3.,3.);
87 }
88 fDiele->GetTrackFilter().AddCuts(pt);
572b0139 89
61d106d3 90 // PID cuts --------------------------------------------------------
91 AliDielectronPID *pid = new AliDielectronPID("PID10","TPC nSigma |e|<3 + |Pi|>3 + |P|>3 + TOF nSigma |e|<3");
92 pid->SetDefaults(10);
164bfb53 93 fDiele->GetTrackFilter().AddCuts(pid);
572b0139 94 }
572b0139 95}
96
97//______________________________________________________________________________________
164bfb53 98void SetupPairCuts()
572b0139 99{
100 //
101 // Setup the pair cuts
102 //
103
164bfb53 104 //Invariant mass and rapidity selection
105 AliDielectronVarCuts *pairCut=new AliDielectronVarCuts("2<M<4+|Y|<.8","2<M<4 + |Y|<.8");
106 pairCut->AddCut(AliDielectronVarManager::kM,2.,4.);
107 pairCut->AddCut(AliDielectronVarManager::kY,-0.8,0.8);
108 fDiele->GetPairFilter().AddCuts(pairCut);
572b0139 109}
110
111//______________________________________________________________________________________
164bfb53 112AliESDtrackCuts *SetupESDtrackCuts()
572b0139 113{
114 //
115 // Setup default AliESDtrackCuts
116 //
117 AliESDtrackCuts *esdTrackCuts = new AliESDtrackCuts;
118
61d106d3 119 // basic track quality cuts (basicQ)
572b0139 120 esdTrackCuts->SetMaxDCAToVertexZ(3.0);
61d106d3 121 esdTrackCuts->SetMaxDCAToVertexXY(1.0);
122
123 esdTrackCuts->SetEtaRange( -0.8 , 0.8 );
124
572b0139 125 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
61d106d3 126 esdTrackCuts->SetRequireITSRefit(kTRUE);
127 esdTrackCuts->SetRequireTPCRefit(kTRUE);
572b0139 128
61d106d3 129 esdTrackCuts->SetMinNClustersTPC(90);
572b0139 130 esdTrackCuts->SetMaxChi2PerClusterTPC(4);
131
61d106d3 132 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kFirst);
133
572b0139 134 return esdTrackCuts;
135}
136
61d106d3 137
572b0139 138//______________________________________________________________________________________
164bfb53 139void InitHistograms()
572b0139 140{
141 //
61d106d3 142 // Initialise the histograms
572b0139 143 //
61d106d3 144
145 //Setup histogram Manager
164bfb53 146 AliDielectronHistos *histos=new AliDielectronHistos(fDiele->GetName(),fDiele->GetTitle());
572b0139 147
148 //Initialise histogram classes
149 histos->SetReservedWords("Track;Pair");
150
61d106d3 151 //Track classes
152 //to fill also track info from 2nd event loop until 2
572b0139 153 for (Int_t i=0; i<2; ++i){
154 histos->AddClass(Form("Track_%s",AliDielectron::TrackClassName(i)));
155 }
156
61d106d3 157 //Pair classes
158 // to fill also mixed event histograms loop until 10
572b0139 159 for (Int_t i=0; i<3; ++i){
160 histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(i)));
161 }
61d106d3 162
163 //legs from pair
164 for (Int_t i=0; i<3; ++i){
165 histos->AddClass(Form("Track_Legs_%s",AliDielectron::PairClassName(i)));
572b0139 166 }
167
168 //add histograms to Track classes
61d106d3 169 histos->UserHistogram("Track","Pt","Pt;Pt [GeV];#tracks",400,0,20.,AliDielectronVarManager::kPt);
170 histos->UserHistogram("Track","TPCnCls","Number of Clusters TPC;TPC number clusteres;#tracks",160,-0.5,159.5,AliDielectronVarManager::kNclsTPC);
171
172 histos->UserHistogram("Track","dXY","dXY;dXY [cm];#tracks",500,-1.,1.,AliDielectronVarManager::kImpactParXY);
173 histos->UserHistogram("Track","dZ","dZ;dZ [cm];#tracks",600,-3.,3.,AliDielectronVarManager::kImpactParZ);
174 histos->UserHistogram("Track","Eta_Phi","Eta Phi Map; Eta; Phi;#tracks",
175 200,-1,1,200,0,6.285,AliDielectronVarManager::kEta,AliDielectronVarManager::kPhi);
176
572b0139 177 histos->UserHistogram("Track","dEdx_P","dEdx;P [GeV];TPC signal (arb units);#tracks",
178 400,0.2,20.,200,0.,200.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCsignal,kTRUE);
179 histos->UserHistogram("Track","TPCnSigmaEle_P","TPC number of sigmas Electrons;P [GeV];TPC number of sigmas Electrons;#tracks",
61d106d3 180 400,0.2,20.,200,-10.,10.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaEle,kTRUE);
181
572b0139 182 //add histograms to Pair classes
183 histos->UserHistogram("Pair","InvMass","Inv.Mass;Inv. Mass [GeV];#pairs",
61d106d3 184 201,-.01,4.01,AliDielectronVarManager::kM);
572b0139 185 histos->UserHistogram("Pair","Rapidity","Rapidity;Rapidity;#pairs",
61d106d3 186 100,-1.,1.,AliDielectronVarManager::kY);
572b0139 187 histos->UserHistogram("Pair","OpeningAngle","Opening angle;angle",
188 100,0.,3.15,AliDielectronVarManager::kOpeningAngle);
572b0139 189
164bfb53 190 fDiele->SetHistogramManager(histos);
572b0139 191}
192
193
164bfb53 194void InitCF()
572b0139 195{
196 //
197 // Setupd the CF Manager if needed
198 //
61d106d3 199
164bfb53 200 AliDielectronCF *cf=new AliDielectronCF(fDiele->GetName(),fDiele->GetTitle());
572b0139 201
202 //pair variables
61d106d3 203 TVectorD *binLimPt=new TVectorD(6);
204 (*binLimPt)[0]=0.0; (*binLimPt)[1]=0.8; (*binLimPt)[2]=1.4; (*binLimPt)[3]=2.8; (*binLimPt)[4]=4.2; (*binLimPt)[5]=9.9;
205 cf->AddVariable(AliDielectronVarManager::kPt,binLimPt);
572b0139 206 cf->AddVariable(AliDielectronVarManager::kY,40,-2,2);
61d106d3 207 cf->AddVariable(AliDielectronVarManager::kM,150,0.,150*.027); //27Mev Steps
572b0139 208 cf->AddVariable(AliDielectronVarManager::kPairType,10,0,10);
209 //leg variables
61d106d3 210 cf->AddVariable(AliDielectronVarManager::kPt,2,0.8,1.2,kTRUE);
211 cf->AddVariable(AliDielectronVarManager::kNclsTPC,3,90,120,kTRUE);
572b0139 212
164bfb53 213 fDiele->SetCFManagerPair(cf);
61d106d3 214
572b0139 215}
61d106d3 216