]>
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 | |
bc75eeb5 | 10 | TString names=("basicQ+SPDfirst+pt>.6+PID;basicQ+SPDany+pt>.6+PID"); |
61d106d3 | 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 | ||
bc75eeb5 | 20 | AliDielectron* ConfigJpsi2ee(Int_t cutDefinition, Bool_t isAOD) |
572b0139 | 21 | { |
22 | // | |
23 | // Setup the instance of AliDielectron | |
24 | // | |
25 | ||
bc75eeb5 | 26 | fCutDefinition=cutDefinition; |
164bfb53 | 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"); | |
bc75eeb5 | 67 | if (fCutDefinition==0) |
68 | trackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kFirst); | |
69 | else if (fCutDefinition==1) | |
70 | trackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny); | |
164bfb53 | 71 | trackCuts->SetRequireTPCRefit(kTRUE); |
72 | trackCuts->SetRequireITSRefit(kTRUE); | |
73 | fDiele->GetTrackFilter().AddCuts(trackCuts); | |
74 | } | |
572b0139 | 75 | |
bc75eeb5 | 76 | //Pt cut ---------------------------------------------------------- |
77 | AliDielectronVarCuts *pt = new AliDielectronVarCuts("ptCut","pt cut"); | |
78 | pt->AddCut(AliDielectronVarManager::kPt,0.6,1e30); | |
79 | ||
80 | //AOD additions since there are no AliESDtrackCuts ----------------- | |
81 | // | |
82 | if (fIsAOD){ | |
83 | // TPC #clusteres cut | |
84 | pt->AddCut(AliDielectronVarManager::kNclsTPC,90.,160.); | |
85 | pt->AddCut(AliDielectronVarManager::kEta,-0.8,0.8); | |
86 | //TODO: DCA cuts to be investigated!!! | |
164bfb53 | 87 | // pt->AddCut(AliDielectronVarManager::kImpactParXY,-1.,1.); |
88 | // pt->AddCut(AliDielectronVarManager::kImpactParZ,-3.,3.); | |
572b0139 | 89 | } |
bc75eeb5 | 90 | fDiele->GetTrackFilter().AddCuts(pt); |
91 | ||
92 | // PID cuts -------------------------------------------------------- | |
93 | AliDielectronPID *pid = new AliDielectronPID("PID10","TPC nSigma |e|<3 + |Pi|>3 + |P|>3 + TOF nSigma |e|<3"); | |
94 | pid->SetDefaults(10); | |
95 | fDiele->GetTrackFilter().AddCuts(pid); | |
572b0139 | 96 | } |
97 | ||
98 | //______________________________________________________________________________________ | |
164bfb53 | 99 | void SetupPairCuts() |
572b0139 | 100 | { |
101 | // | |
102 | // Setup the pair cuts | |
103 | // | |
104 | ||
164bfb53 | 105 | //Invariant mass and rapidity selection |
106 | AliDielectronVarCuts *pairCut=new AliDielectronVarCuts("2<M<4+|Y|<.8","2<M<4 + |Y|<.8"); | |
107 | pairCut->AddCut(AliDielectronVarManager::kM,2.,4.); | |
108 | pairCut->AddCut(AliDielectronVarManager::kY,-0.8,0.8); | |
109 | fDiele->GetPairFilter().AddCuts(pairCut); | |
572b0139 | 110 | } |
111 | ||
112 | //______________________________________________________________________________________ | |
164bfb53 | 113 | AliESDtrackCuts *SetupESDtrackCuts() |
572b0139 | 114 | { |
115 | // | |
116 | // Setup default AliESDtrackCuts | |
117 | // | |
118 | AliESDtrackCuts *esdTrackCuts = new AliESDtrackCuts; | |
119 | ||
61d106d3 | 120 | // basic track quality cuts (basicQ) |
572b0139 | 121 | esdTrackCuts->SetMaxDCAToVertexZ(3.0); |
61d106d3 | 122 | esdTrackCuts->SetMaxDCAToVertexXY(1.0); |
123 | ||
124 | esdTrackCuts->SetEtaRange( -0.8 , 0.8 ); | |
125 | ||
572b0139 | 126 | esdTrackCuts->SetAcceptKinkDaughters(kFALSE); |
61d106d3 | 127 | esdTrackCuts->SetRequireITSRefit(kTRUE); |
128 | esdTrackCuts->SetRequireTPCRefit(kTRUE); | |
572b0139 | 129 | |
61d106d3 | 130 | esdTrackCuts->SetMinNClustersTPC(90); |
572b0139 | 131 | esdTrackCuts->SetMaxChi2PerClusterTPC(4); |
132 | ||
bc75eeb5 | 133 | if (fCutDefinition==0) |
134 | esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kFirst); | |
135 | else if (fCutDefinition==1) | |
136 | esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny); | |
61d106d3 | 137 | |
572b0139 | 138 | return esdTrackCuts; |
139 | } | |
140 | ||
61d106d3 | 141 | |
572b0139 | 142 | //______________________________________________________________________________________ |
164bfb53 | 143 | void InitHistograms() |
572b0139 | 144 | { |
145 | // | |
61d106d3 | 146 | // Initialise the histograms |
572b0139 | 147 | // |
61d106d3 | 148 | |
149 | //Setup histogram Manager | |
164bfb53 | 150 | AliDielectronHistos *histos=new AliDielectronHistos(fDiele->GetName(),fDiele->GetTitle()); |
572b0139 | 151 | |
152 | //Initialise histogram classes | |
153 | histos->SetReservedWords("Track;Pair"); | |
154 | ||
61d106d3 | 155 | //Track classes |
156 | //to fill also track info from 2nd event loop until 2 | |
572b0139 | 157 | for (Int_t i=0; i<2; ++i){ |
158 | histos->AddClass(Form("Track_%s",AliDielectron::TrackClassName(i))); | |
159 | } | |
160 | ||
61d106d3 | 161 | //Pair classes |
162 | // to fill also mixed event histograms loop until 10 | |
572b0139 | 163 | for (Int_t i=0; i<3; ++i){ |
164 | histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(i))); | |
165 | } | |
61d106d3 | 166 | |
167 | //legs from pair | |
168 | for (Int_t i=0; i<3; ++i){ | |
169 | histos->AddClass(Form("Track_Legs_%s",AliDielectron::PairClassName(i))); | |
572b0139 | 170 | } |
171 | ||
172 | //add histograms to Track classes | |
61d106d3 | 173 | histos->UserHistogram("Track","Pt","Pt;Pt [GeV];#tracks",400,0,20.,AliDielectronVarManager::kPt); |
174 | histos->UserHistogram("Track","TPCnCls","Number of Clusters TPC;TPC number clusteres;#tracks",160,-0.5,159.5,AliDielectronVarManager::kNclsTPC); | |
175 | ||
176 | histos->UserHistogram("Track","dXY","dXY;dXY [cm];#tracks",500,-1.,1.,AliDielectronVarManager::kImpactParXY); | |
177 | histos->UserHistogram("Track","dZ","dZ;dZ [cm];#tracks",600,-3.,3.,AliDielectronVarManager::kImpactParZ); | |
178 | histos->UserHistogram("Track","Eta_Phi","Eta Phi Map; Eta; Phi;#tracks", | |
bc75eeb5 | 179 | 100,-1,1,144,0,6.285,AliDielectronVarManager::kEta,AliDielectronVarManager::kPhi); |
61d106d3 | 180 | |
572b0139 | 181 | histos->UserHistogram("Track","dEdx_P","dEdx;P [GeV];TPC signal (arb units);#tracks", |
bc75eeb5 | 182 | 200,0.2,20.,100,0.,200.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCsignal,kTRUE); |
572b0139 | 183 | histos->UserHistogram("Track","TPCnSigmaEle_P","TPC number of sigmas Electrons;P [GeV];TPC number of sigmas Electrons;#tracks", |
bc75eeb5 | 184 | 200,0.2,20.,100,-10.,10.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaEle,kTRUE); |
61d106d3 | 185 | |
572b0139 | 186 | //add histograms to Pair classes |
187 | histos->UserHistogram("Pair","InvMass","Inv.Mass;Inv. Mass [GeV];#pairs", | |
61d106d3 | 188 | 201,-.01,4.01,AliDielectronVarManager::kM); |
572b0139 | 189 | histos->UserHistogram("Pair","Rapidity","Rapidity;Rapidity;#pairs", |
61d106d3 | 190 | 100,-1.,1.,AliDielectronVarManager::kY); |
572b0139 | 191 | histos->UserHistogram("Pair","OpeningAngle","Opening angle;angle", |
192 | 100,0.,3.15,AliDielectronVarManager::kOpeningAngle); | |
572b0139 | 193 | |
164bfb53 | 194 | fDiele->SetHistogramManager(histos); |
572b0139 | 195 | } |
196 | ||
197 | ||
164bfb53 | 198 | void InitCF() |
572b0139 | 199 | { |
200 | // | |
201 | // Setupd the CF Manager if needed | |
202 | // | |
61d106d3 | 203 | |
164bfb53 | 204 | AliDielectronCF *cf=new AliDielectronCF(fDiele->GetName(),fDiele->GetTitle()); |
572b0139 | 205 | |
206 | //pair variables | |
61d106d3 | 207 | TVectorD *binLimPt=new TVectorD(6); |
208 | (*binLimPt)[0]=0.0; (*binLimPt)[1]=0.8; (*binLimPt)[2]=1.4; (*binLimPt)[3]=2.8; (*binLimPt)[4]=4.2; (*binLimPt)[5]=9.9; | |
209 | cf->AddVariable(AliDielectronVarManager::kPt,binLimPt); | |
572b0139 | 210 | cf->AddVariable(AliDielectronVarManager::kY,40,-2,2); |
61d106d3 | 211 | cf->AddVariable(AliDielectronVarManager::kM,150,0.,150*.027); //27Mev Steps |
572b0139 | 212 | cf->AddVariable(AliDielectronVarManager::kPairType,10,0,10); |
213 | //leg variables | |
61d106d3 | 214 | cf->AddVariable(AliDielectronVarManager::kPt,2,0.8,1.2,kTRUE); |
215 | cf->AddVariable(AliDielectronVarManager::kNclsTPC,3,90,120,kTRUE); | |
572b0139 | 216 | |
164bfb53 | 217 | fDiele->SetCFManagerPair(cf); |
61d106d3 | 218 | |
572b0139 | 219 | } |
61d106d3 | 220 |