]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG3/dielectron/macros/ConfigJpsi2eeData.C
Signal extraction and error calc. updates (Ionut), updated configs (Jens)
[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
bc75eeb5 10TString names=("basicQ+SPDfirst+pt>.6+PID;basicQ+SPDany+pt>.6+PID");
61d106d3 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
bc75eeb5 20AliDielectron* 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 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");
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 99void 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 113AliESDtrackCuts *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 143void 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 198void 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