1 void SetupTrackCutsDieleFilter(AliDielectron *diele, Bool_t isAOD);
2 void SetupPairCutsDieleFilter(AliDielectron *diele, Bool_t isAOD);
3 void SetupEventCutsDieleFilter(AliDielectron *diele, Int_t cutDefinition);
5 void InitHistogramsDieleFilter(AliDielectron *diele);
7 AliESDtrackCuts *SetupESDtrackCutsDieleFilter();
10 AliDielectron* ConfigJpsi2eeFilter(Bool_t isAOD=kFALSE)
13 // Setup the instance of AliDielectron
16 // create the actual framework object
17 TString name="trackQ+Pt>0.6+60<dEdx<100";
18 AliDielectron *diele = new AliDielectron(Form("%s",name.Data()),
19 Form("Track cuts: %s",name.Data()));
22 SetupEventCutsDieleFilter(diele);
24 SetupTrackCutsDieleFilter(diele, isAOD);
25 SetupPairCutsDieleFilter(diele, isAOD);
30 InitHistogramsDieleFilter(diele, isAOD);
35 //______________________________________________________________________________________
36 void SetupEventCutsDieleFilter(AliDielectron *diele)
39 // Setup the event cuts
41 AliDielectronVarCuts *vtxZ = new AliDielectronVarCuts("vtxZ","Vertex z cut");
42 vtxZ->AddCut(AliDielectronVarManager::kZvPrim,-15.,15.);
43 diele->GetEventFilter().AddCuts(vtxZ);
46 //______________________________________________________________________________________
47 void SetupTrackCutsDieleFilter(AliDielectron *diele, Bool_t isAOD)
50 // Setup the track cuts
53 //ESD quality cuts DielectronTrackCuts
55 diele->GetTrackFilter().AddCuts(SetupESDtrackCutsDieleFilter());
57 AliDielectronTrackCuts *trackCuts=new AliDielectronTrackCuts("trackCuts","trackCuts");
58 trackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
59 trackCuts->SetRequireTPCRefit(kTRUE);
60 trackCuts->SetRequireITSRefit(kTRUE);
61 diele->GetTrackFilter().AddCuts(trackCuts);
65 AliDielectronVarCuts *pt = new AliDielectronVarCuts("Pt>.5+60<dEdx<100","Pt>.6 && 60<dEdx<100");
66 pt->AddCut(AliDielectronVarManager::kPt,.6,1e30);
67 pt->AddCut(AliDielectronVarManager::kTPCsignal,60.,100.);
71 pt->AddCut(AliDielectronVarManager::kNclsTPC,90.,160.);
72 // pt->AddCut(AliDielectronVarManager::kEta,-0.88,0.88);
73 //TODO: DCA cuts to be investigated!!!
74 // pt->AddCut(AliDielectronVarManager::kImpactParXY,-1.,1.);
75 // pt->AddCut(AliDielectronVarManager::kImpactParZ,-3.,3.);
78 diele->GetTrackFilter().AddCuts(pt);
81 //______________________________________________________________________________________
82 void SetupPairCutsDieleFilter(AliDielectron *diele, Bool_t isAOD)
85 // Setup the pair cuts
89 //Invarian mass selection
90 AliDielectronVarCuts *invMassCut=new AliDielectronVarCuts("InvMass","2<M<4");
91 invMassCut->AddCut(AliDielectronVarManager::kM,2.,1e30);
92 // invMassCut->AddCut(AliDielectronVarManager::kPairType,1.);
93 diele->GetPairFilter().AddCuts(invMassCut);
97 //______________________________________________________________________________________
98 AliESDtrackCuts *SetupESDtrackCutsDieleFilter()
101 // Setup default AliESDtrackCuts
103 AliESDtrackCuts *esdTrackCuts = new AliESDtrackCuts;
105 esdTrackCuts->SetMaxDCAToVertexZ(3.0);
106 esdTrackCuts->SetMaxDCAToVertexXY(1.0);
107 esdTrackCuts->SetRequireTPCRefit(kTRUE);
108 esdTrackCuts->SetRequireITSRefit(kTRUE);
109 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
110 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
112 esdTrackCuts->SetMinNClustersTPC(90);
113 esdTrackCuts->SetMaxChi2PerClusterTPC(4);
119 //______________________________________________________________________________________
120 void InitHistogramsDieleFilter(AliDielectron *diele, Bool_t isAOD)
123 // Initialise the histograms
126 //Setup histogram classes
127 AliDielectronHistos *histos=
128 new AliDielectronHistos(diele->GetName(),
131 //Initialise histogram classes
132 histos->SetReservedWords("Track;Pair");
134 histos->AddClass("Event");
136 //to fill also track info from 2nd event loop until 2
137 for (Int_t i=0; i<2; ++i){
138 histos->AddClass(Form("Track_%s",AliDielectron::TrackClassName(i)));
142 // to fill also mixed event histograms loop until 10
143 for (Int_t i=0; i<3; ++i){
144 histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(i)));
147 //add histograms to event class
148 histos->UserHistogram("Event","VtxZ","Vertex Z;Z[cm]",300,-15.,15.,AliDielectronVarManager::kZvPrim);
150 //add histograms to Track classes
151 histos->UserHistogram("Track","Pt","Pt;Pt [GeV];#tracks",400,0,20.,AliDielectronVarManager::kPt);
152 histos->UserHistogram("Track","TPCnCls","Number of Clusters TPC;TPC number clusteres;#tracks",160,-0.5,159.5,AliDielectronVarManager::kNclsTPC);
154 histos->UserHistogram("Track","dXY","dXY;dXY [cm];#tracks",500,-1.,1.,AliDielectronVarManager::kImpactParXY);
155 histos->UserHistogram("Track","dZ","dZ;dZ [cm];#tracks",600,-3.,3.,AliDielectronVarManager::kImpactParZ);
156 histos->UserHistogram("Track","Eta_Phi","Eta Phi Map; Eta; Phi;#tracks",
157 100,-1,1,144,0,6.285,AliDielectronVarManager::kEta,AliDielectronVarManager::kPhi);
159 histos->UserHistogram("Track","dEdx_P","dEdx;P [GeV];TPC signal (arb units);#tracks",
160 200,0.2,20.,100,0.,200.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCsignal,kTRUE);
161 histos->UserHistogram("Track","TPCnSigmaEle_P","TPC number of sigmas Electrons;P [GeV];TPC number of sigmas Electrons;#tracks",
162 200,0.2,20.,100,-10.,10.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaEle,kTRUE);
164 //add histograms to Pair classes
165 histos->UserHistogram("Pair","InvMass","Inv.Mass;Inv. Mass [GeV];#pairs",
166 201,-.01,4.01,AliDielectronVarManager::kM);
167 histos->UserHistogram("Pair","Rapidity","Rapidity;Rapidity;#pairs",
168 100,-1.,1.,AliDielectronVarManager::kY);
169 histos->UserHistogram("Pair","OpeningAngle","Opening angle;angle",
170 100,0.,3.15,AliDielectronVarManager::kOpeningAngle);
172 diele->SetHistogramManager(histos);