]>
Commit | Line | Data |
---|---|---|
572b0139 | 1 | |
572b0139 | 2 | |
164bfb53 | 3 | void SetupTrackCuts(); |
4 | void SetupPairCuts(); | |
5 | void InitHistograms(); | |
6 | void InitCF(); | |
572b0139 | 7 | |
164bfb53 | 8 | AliESDtrackCuts *SetupESDtrackCuts(); |
61d106d3 | 9 | |
10 | TString names=("basicQ+SPDfirst+pt>.6+PID"); | |
11 | ||
572b0139 | 12 | TObjArray *arrNames=names.Tokenize(";"); |
13 | ||
14 | const Int_t nDie=arrNames->GetEntries(); | |
15 | ||
164bfb53 | 16 | AliDielectron *fDiele=0x0; |
17 | Int_t fCutDefinition=0; | |
18 | Bool_t fIsAOD=kFALSE; | |
19 | ||
20 | AliDielectron* 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 | 56 | void 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 | 98 | void 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 | 112 | AliESDtrackCuts *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 | 139 | void 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 | 194 | void 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 |