37 #include "AliKFVertex.h"
38 #include "AliAODTrack.h"
39 #include "AliESDtrack.h"
40 #include "AliAnalysisManager.h"
41 #include "AliInputEventHandler.h"
42 #include "AliMCEventHandler.h"
43 #include "AliAODHandler.h"
44 #include "AliPIDResponse.h"
48 #include "AliMCEvent.h"
50 #include "TObjString.h"
51 #include "AliAODEvent.h"
52 #include "AliESDEvent.h"
53 #include "AliCentrality.h"
54 #include "AliMultSelection.h"
58 #include "AliGenCocktailEventHeader.h"
59 #include "AliGenDPMjetEventHeader.h"
60 #include "AliGenPythiaEventHeader.h"
61 #include "AliGenHijingEventHeader.h"
62 #include "AliTriggerAnalysis.h"
64 #include "AliAODMCParticle.h"
65 #include "AliAODMCHeader.h"
66 #include "AliTRDTriggerAnalysis.h"
91 "SelectSpecialTrigger",
92 "SelectSpecialSubTriggerClass",
103 "piMaxMomdedxSigmaCut",
104 "LowPRejectionSigmaCut",
109 "DoPhotonAsymmetryCut",
110 "CosinePointingAngle",
111 "SharedElectronCuts",
121 AliAnalysisCuts(name,title),
137 fLineCutZRSlopeMin(0.),
138 fLineCutZValueMin(0),
139 fChi2CutConversion(1000),
140 fPIDProbabilityCutNegativeParticle(0),
141 fPIDProbabilityCutPositiveParticle(0),
142 fDodEdxSigmaCut(kTRUE),
143 fDoTOFsigmaCut(kFALSE),
144 fPIDTRDEfficiency(1),
146 fPIDnSigmaAboveElectronLine(100),
147 fPIDnSigmaBelowElectronLine(-100),
148 fTofPIDnSigmaAboveElectronLine(100),
149 fTofPIDnSigmaBelowElectronLine(-100),
150 fPIDnSigmaAbovePionLine(0),
151 fPIDnSigmaAbovePionLineHighPt(-100),
152 fPIDMinPnSigmaAbovePionLine(0),
153 fPIDMaxPnSigmaAbovePionLine(0),
154 fDoKaonRejectionLowP(kFALSE),
155 fDoProtonRejectionLowP(kFALSE),
156 fDoPionRejectionLowP(kFALSE),
157 fPIDnSigmaAtLowPAroundKaonLine(0),
158 fPIDnSigmaAtLowPAroundProtonLine(0),
159 fPIDnSigmaAtLowPAroundPionLine(0),
160 fPIDMinPKaonRejectionLowP(1.5),
161 fPIDMinPProtonRejectionLowP(2),
162 fPIDMinPPionRejectionLowP(0),
163 fDoQtGammaSelection(kTRUE),
170 fUseEtaMinCut(kFALSE),
171 fUseOnFlyV0Finder(kTRUE),
172 fDoPhotonAsymmetryCut(kTRUE),
173 fMinPPhotonAsymmetryCut(100.),
174 fMinPhotonAsymmetry(0.),
176 fDetectorCentrality(0),
177 fModCentralityClass(0),
181 fUseCorrectedTPCClsInfo(kFALSE),
183 fMultiplicityMethod(0),
185 fSpecialSubTrigger(0),
186 fRemovePileUp(kFALSE),
187 fOpeningAngle(0.005),
189 fDo2DPsiPairChi2(kFALSE),
190 fCosPAngleCut(10000),
191 fDoToCloseV0sCut(kFALSE),
192 fRejectExtraSignals(0),
194 fDoSharedElecCut(kFALSE),
195 fDoPhotonQualitySelectionCut(kFALSE),
196 fPhotonQualityCut(0),
197 fOfflineTriggerMask(0),
201 fElectronArraySize(500),
202 fElectronLabelArray(NULL),
203 fDCAZPrimVtxCut(1000),
204 fDCARPrimVtxCut(1000),
205 fInPlaneOutOfPlane(0),
206 fConversionPointXArray(0.0),
207 fConversionPointYArray(0.0),
208 fConversionPointZArray(0.0),
210 fNotRejectedStart(NULL),
211 fNotRejectedEnd(NULL),
212 fGeneratorNames(NULL),
218 fDoReweightHistoMCPi0(kFALSE),
219 fDoReweightHistoMCEta(kFALSE),
220 fDoReweightHistoMCK0s(kFALSE),
221 fPathTrFReweighting(
""),
222 fNameHistoReweightingPi0(
""),
223 fNameHistoReweightingEta(
""),
224 fNameHistoReweightingK0s(
""),
229 hEtaDistV0sAfterdEdxCuts(NULL),
231 hTPCdEdxbefore(NULL),
233 hTPCdEdxSigbefore(NULL),
234 hTPCdEdxSigafter(NULL),
238 hPsiPairDeltaPhiafter(NULL),
241 hInvMassbefore(NULL),
242 hArmenterosbefore(NULL),
244 hArmenterosafter(NULL),
245 hAcceptanceCuts(NULL),
249 hCentralityVsNumberOfPrimaryTracks(NULL),
251 hEventPlanePhi(NULL),
253 hTriggerClassSelected(NULL),
254 hReweightMCHistPi0(NULL),
255 hReweightMCHistEta(NULL),
256 hReweightMCHistK0s(NULL),
260 fAddedSignalPDGCode(0),
262 fTriggerSelectedManually(kFALSE),
263 fSpecialTriggerName(
""),
264 fSpecialSubTriggerName(
""),
265 fNSpecialSubTriggerOptions(0)
273 fUtils =
new AliAnalysisUtils();
282 AliAnalysisCuts(ref),
284 fHeaderList(ref.fHeaderList),
286 fEventQuality(ref.fEventQuality),
289 fEtaCut(ref.fEtaCut),
290 fEtaCutMin(ref.fEtaCutMin),
292 fSinglePtCut(ref.fSinglePtCut),
294 fMinClsTPC(ref.fMinClsTPC),
295 fMinClsTPCToF(ref.fMinClsTPCToF),
296 fLineCutZRSlope(ref.fLineCutZRSlope),
297 fLineCutZValue(ref.fLineCutZValue),
298 fLineCutZRSlopeMin(ref.fLineCutZRSlopeMin),
299 fLineCutZValueMin(ref.fLineCutZValueMin),
300 fChi2CutConversion(ref.fChi2CutConversion),
301 fPIDProbabilityCutNegativeParticle(ref.fPIDProbabilityCutNegativeParticle),
302 fPIDProbabilityCutPositiveParticle(ref.fPIDProbabilityCutPositiveParticle),
303 fDodEdxSigmaCut(ref. fDodEdxSigmaCut),
304 fDoTOFsigmaCut(ref.fDoTOFsigmaCut),
305 fPIDTRDEfficiency(ref.fPIDTRDEfficiency),
306 fDoTRDPID(ref.fDoTRDPID),
307 fPIDnSigmaAboveElectronLine(ref.fPIDnSigmaAboveElectronLine),
308 fPIDnSigmaBelowElectronLine(ref.fPIDnSigmaBelowElectronLine),
309 fTofPIDnSigmaAboveElectronLine(ref.fTofPIDnSigmaAboveElectronLine),
310 fTofPIDnSigmaBelowElectronLine(ref.fTofPIDnSigmaBelowElectronLine),
311 fPIDnSigmaAbovePionLine(ref.fPIDnSigmaAbovePionLine),
312 fPIDnSigmaAbovePionLineHighPt(ref.fPIDnSigmaAbovePionLineHighPt),
313 fPIDMinPnSigmaAbovePionLine(ref.fPIDMinPnSigmaAbovePionLine),
314 fPIDMaxPnSigmaAbovePionLine(ref.fPIDMaxPnSigmaAbovePionLine),
315 fDoKaonRejectionLowP(ref.fDoKaonRejectionLowP),
316 fDoProtonRejectionLowP(ref.fDoProtonRejectionLowP),
317 fDoPionRejectionLowP(ref.fDoPionRejectionLowP),
318 fPIDnSigmaAtLowPAroundKaonLine(ref.fPIDnSigmaAtLowPAroundKaonLine),
319 fPIDnSigmaAtLowPAroundProtonLine(ref.fPIDnSigmaAtLowPAroundProtonLine),
320 fPIDnSigmaAtLowPAroundPionLine(ref.fPIDnSigmaAtLowPAroundPionLine),
321 fPIDMinPKaonRejectionLowP(ref.fPIDMinPKaonRejectionLowP),
322 fPIDMinPProtonRejectionLowP(ref.fPIDMinPProtonRejectionLowP),
323 fPIDMinPPionRejectionLowP(ref.fPIDMinPPionRejectionLowP),
324 fDoQtGammaSelection(ref.fDoQtGammaSelection),
325 fDo2DQt(ref.fDo2DQt),
327 fXVertexCut(ref.fXVertexCut),
328 fYVertexCut(ref.fYVertexCut),
329 fZVertexCut(ref.fZVertexCut),
330 fNSigmaMass(ref.fNSigmaMass),
331 fUseEtaMinCut(ref.fUseEtaMinCut),
332 fUseOnFlyV0Finder(ref.fUseOnFlyV0Finder),
333 fDoPhotonAsymmetryCut(ref.fDoPhotonAsymmetryCut),
334 fMinPPhotonAsymmetryCut(ref.fMinPPhotonAsymmetryCut),
335 fMinPhotonAsymmetry(ref.fMinPhotonAsymmetry),
336 fIsHeavyIon(ref.fIsHeavyIon),
337 fDetectorCentrality(ref.fDetectorCentrality),
338 fModCentralityClass(ref.fModCentralityClass),
339 fMaxVertexZ(ref.fMaxVertexZ),
340 fCentralityMin(ref.fCentralityMin),
341 fCentralityMax(ref.fCentralityMax),
342 fUseCorrectedTPCClsInfo(ref.fUseCorrectedTPCClsInfo),
343 fUseTOFpid(ref.fUseTOFpid),
344 fMultiplicityMethod(ref.fMultiplicityMethod),
345 fSpecialTrigger(ref.fSpecialTrigger),
346 fSpecialSubTrigger(ref.fSpecialSubTrigger),
347 fRemovePileUp(ref.fRemovePileUp),
348 fOpeningAngle(ref.fOpeningAngle),
349 fPsiPairCut(ref.fPsiPairCut),
350 fDo2DPsiPairChi2(ref.fDo2DPsiPairChi2),
351 fCosPAngleCut(ref.fCosPAngleCut),
352 fDoToCloseV0sCut(ref.fDoToCloseV0sCut),
353 fRejectExtraSignals(ref.fRejectExtraSignals),
354 fminV0Dist(ref.fminV0Dist),
355 fDoSharedElecCut(ref.fDoSharedElecCut),
356 fDoPhotonQualitySelectionCut(ref.fDoPhotonQualitySelectionCut),
357 fPhotonQualityCut(ref.fPhotonQualityCut),
358 fOfflineTriggerMask(ref.fOfflineTriggerMask),
359 fHasV0AND(ref.fHasV0AND),
360 fIsSDDFired(ref.fIsSDDFired),
361 fRandom(ref.fRandom),
362 fElectronArraySize(ref.fElectronArraySize),
363 fElectronLabelArray(NULL),
364 fDCAZPrimVtxCut(ref.fDCAZPrimVtxCut),
365 fDCARPrimVtxCut(ref.fDCAZPrimVtxCut),
366 fInPlaneOutOfPlane(ref.fInPlaneOutOfPlane),
367 fConversionPointXArray(ref.fConversionPointXArray),
368 fConversionPointYArray(ref.fConversionPointYArray),
369 fConversionPointZArray(ref.fConversionPointZArray),
370 fnHeaders(ref.fnHeaders),
371 fNotRejectedStart(NULL),
372 fNotRejectedEnd(NULL),
373 fGeneratorNames(ref.fGeneratorNames),
377 fEtaShift(ref.fEtaShift),
378 fDoEtaShift(ref.fDoEtaShift),
379 fDoReweightHistoMCPi0(ref.fDoReweightHistoMCPi0),
380 fDoReweightHistoMCEta(ref.fDoReweightHistoMCEta),
381 fDoReweightHistoMCK0s(ref.fDoReweightHistoMCK0s),
382 fPathTrFReweighting(ref.fPathTrFReweighting),
383 fNameHistoReweightingPi0(ref.fNameHistoReweightingPi0),
384 fNameHistoReweightingEta(ref.fNameHistoReweightingEta),
385 fNameHistoReweightingK0s(ref.fNameHistoReweightingK0s),
386 fNameFitDataPi0(ref.fNameFitDataPi0),
387 fNameFitDataEta(ref.fNameFitDataEta),
388 fNameFitDataK0s(ref.fNameFitDataK0s),
390 hEtaDistV0sAfterdEdxCuts(NULL),
392 hTPCdEdxbefore(NULL),
394 hTPCdEdxSigbefore(NULL),
395 hTPCdEdxSigafter(NULL),
399 hPsiPairDeltaPhiafter(NULL),
402 hInvMassbefore(NULL),
403 hArmenterosbefore(NULL),
405 hArmenterosafter(NULL),
406 hAcceptanceCuts(NULL),
410 hCentralityVsNumberOfPrimaryTracks(NULL),
412 hEventPlanePhi(NULL),
414 hTriggerClassSelected(NULL),
415 hReweightMCHistPi0(ref.hReweightMCHistPi0),
416 hReweightMCHistEta(ref.hReweightMCHistEta),
417 hReweightMCHistK0s(ref.hReweightMCHistK0s),
418 fFitDataPi0(ref.fFitDataPi0),
419 fFitDataEta(ref.fFitDataEta),
420 fFitDataK0s(ref.fFitDataK0s),
421 fAddedSignalPDGCode(ref.fAddedSignalPDGCode),
422 fPreSelCut(ref.fPreSelCut),
423 fTriggerSelectedManually(ref.fTriggerSelectedManually),
424 fSpecialTriggerName(ref.fSpecialTriggerName),
425 fSpecialSubTriggerName(ref.fSpecialSubTriggerName),
426 fNSpecialSubTriggerOptions(ref.fNSpecialSubTriggerOptions)
432 fUtils =
new AliAnalysisUtils();
476 TH1::AddDirectory(kFALSE);
529 hTrackCuts->GetXaxis()->SetBinLabel(2,
"likesign");
530 hTrackCuts->GetXaxis()->SetBinLabel(3,
"ntpccl");
531 hTrackCuts->GetXaxis()->SetBinLabel(4,
"acceptance");
532 hTrackCuts->GetXaxis()->SetBinLabel(5,
"singlept");
533 hTrackCuts->GetXaxis()->SetBinLabel(6,
"TPCrefit");
534 hTrackCuts->GetXaxis()->SetBinLabel(7,
"kink");
543 hPhotonCuts->GetXaxis()->SetBinLabel(4,
"acceptance");
544 hPhotonCuts->GetXaxis()->SetBinLabel(5,
"asymmetry");
546 hPhotonCuts->GetXaxis()->SetBinLabel(7,
"cortpcclinfo");
548 hPhotonCuts->GetXaxis()->SetBinLabel(9,
"CosPAngle");
551 hPhotonCuts->GetXaxis()->SetBinLabel(12,
"Photon Quality");
582 hdEdxCuts->GetXaxis()->SetBinLabel(1,
"in");
583 hdEdxCuts->GetXaxis()->SetBinLabel(2,
"TPCelectron");
584 hdEdxCuts->GetXaxis()->SetBinLabel(3,
"TPCpion");
585 hdEdxCuts->GetXaxis()->SetBinLabel(4,
"TPCpionhighp");
586 hdEdxCuts->GetXaxis()->SetBinLabel(5,
"TPCkaonlowprej");
587 hdEdxCuts->GetXaxis()->SetBinLabel(6,
"TPCprotonlowprej");
588 hdEdxCuts->GetXaxis()->SetBinLabel(7,
"TPCpionlowprej");
589 hdEdxCuts->GetXaxis()->SetBinLabel(8,
"TOFelectron");
590 hdEdxCuts->GetXaxis()->SetBinLabel(9,
"TRDelectron");
591 hdEdxCuts->GetXaxis()->SetBinLabel(10,
"out");
594 TAxis *AxisBeforedEdx = NULL;
595 TAxis *AxisBeforedEdxSig = NULL;
596 TAxis *AxisBeforeTOF = NULL;
597 TAxis *AxisBeforeTOFSig = NULL;
630 Int_t bins = AxisAfter->GetNbins();
631 Double_t from = AxisAfter->GetXmin();
635 Double_t factor = TMath::Power(to/from, 1./bins);
636 for(
Int_t i=1; i<=bins; ++i) newBins[i] = factor * newBins[i-1];
637 AxisAfter->Set(bins, newBins);
639 AxisAfter->Set(bins, newBins);
641 AxisAfter->Set(bins, newBins);
643 AxisBeforedEdx->Set(bins, newBins);
644 AxisBeforeTOF->Set(bins, newBins);
645 AxisBeforedEdxSig->Set(bins, newBins);
646 AxisBeforeTOFSig->Set(bins, newBins);
659 hV0EventCuts->GetXaxis()->SetBinLabel(2,
"OfflineTrigger");
679 hTriggerClass->GetXaxis()->SetBinLabel( 9,
"kMUL7/kMuonLikePB");
680 hTriggerClass->GetXaxis()->SetBinLabel(10,
"kMUU7/kMuonUnlikePB");
684 hTriggerClass->GetXaxis()->SetBinLabel(14,
"kPHI7/kPHI8/kPHOSPb");
693 hTriggerClass->GetXaxis()->SetBinLabel(23,
"kMuonSingleLowPt8");
694 hTriggerClass->GetXaxis()->SetBinLabel(24,
"kMuonSingleHighPt8");
695 hTriggerClass->GetXaxis()->SetBinLabel(25,
"kMuonLikeLowPt8");
696 hTriggerClass->GetXaxis()->SetBinLabel(26,
"kMuonUnlikeLowPt8");
697 hTriggerClass->GetXaxis()->SetBinLabel(27,
"kMuonUnlikeLowPt0");
705 hTriggerClass->GetXaxis()->SetBinLabel(35,
"failed Physics Selection");
751 TH1::AddDirectory(kTRUE);
760 AliInputEventHandler* inputHandler = (AliInputEventHandler*) (man->GetInputEventHandler());
761 fPIDResponse = (AliPIDResponse*)inputHandler->GetPIDResponse();
778 if(fMCEvent && fInputEvent->IsA()==AliESDEvent::Class()){
780 AliMCEventHandler* mcHandler =
dynamic_cast<AliMCEventHandler*
> (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler());
785 if (!mcHandler->InitOk() ){
789 if (!mcHandler->TreeK() ){
793 if (!mcHandler->TreeTR() ) {
808 if(fInputEvent->IsA()==AliESDEvent::Class()){
809 AliTriggerAnalysis fTriggerAnalysis;
810 fHasV0AND = fTriggerAnalysis.IsOfflineTriggerFired((
AliESDEvent*)fInputEvent, AliTriggerAnalysis::kV0AND);
835 if(fInputEvent->IsPileupFromSPD(3,0.8,3.,2.,5.)){
858 ->GetTask(
"V0ReaderV1"))->GetNumberOfPrimaryTracks());
867 if(!mcEvent)
return kFALSE;
869 if (particle->GetPdgCode() == 22){
879 if(particle->GetMother(0) >-1 && mcEvent->Particle(particle->GetMother(0))->GetPdgCode() == 22){
883 if(particle->GetMother(0) >= mcEvent->GetNumberOfPrimaries()){
887 if(!checkForConvertedGamma)
return kTRUE;
890 TParticle* ePos = NULL;
891 TParticle* eNeg = NULL;
893 if(particle->GetNDaughters() >= 2){
894 for(
Int_t daughterIndex=particle->GetFirstDaughter();daughterIndex<=particle->GetLastDaughter();daughterIndex++){
895 TParticle *tmpDaughter = mcEvent->Particle(daughterIndex);
896 if(tmpDaughter->GetUniqueID() == 5){
897 if(tmpDaughter->GetPdgCode() == 11){
899 }
else if(tmpDaughter->GetPdgCode() == -11){
906 if(ePos == NULL || eNeg == NULL){
928 if(TMath::Abs(ePos->Vz()) >
fMaxZ){
931 if(TMath::Abs(eNeg->Vz()) >
fMaxZ){
956 if(!aodmcArray)
return kFALSE;
958 if (particle->GetPdgCode() == 22){
966 if(particle->GetMother() > -1){
967 if((static_cast<AliAODMCParticle*>(aodmcArray->At(particle->GetMother())))->GetPdgCode() == 22){
970 if(!(static_cast<AliAODMCParticle*>(aodmcArray->At(particle->GetMother()))->IsPrimary())){
975 if(!checkForConvertedGamma)
return kTRUE;
978 AliAODMCParticle* ePos = NULL;
979 AliAODMCParticle* eNeg = NULL;
981 if(particle->GetNDaughters() >= 2){
982 for(
Int_t daughterIndex=particle->GetDaughter(0);daughterIndex<=particle->GetDaughter(1);daughterIndex++){
983 AliAODMCParticle *tmpDaughter =
static_cast<AliAODMCParticle*
>(aodmcArray->At(daughterIndex));
984 if(!tmpDaughter)
continue;
985 if(((tmpDaughter->GetMCProcessCode())) == 5){
986 if(tmpDaughter->GetPdgCode() == 11){
988 }
else if(tmpDaughter->GetPdgCode() == -11){
995 if(ePos == NULL || eNeg == NULL){
1013 Double_t rPos = sqrt( (ePos->Xv()*ePos->Xv()) + (ePos->Yv()*ePos->Yv()) );
1014 Double_t rNeg = sqrt( (eNeg->Xv()*eNeg->Xv()) + (eNeg->Yv()*eNeg->Yv()) );
1019 if(TMath::Abs(ePos->Zv()) >
fMaxZ){
1022 if(TMath::Abs(eNeg->Zv()) >
fMaxZ){
1101 Double_t magField =
event->GetMagneticField();
1102 if( magField < 0.0 ){
1110 Double_t deltaPhi = magField * TVector2::Phi_mpi_pi( electronCandidate->Phi()-positronCandidate->Phi());
1146 UChar_t photonQuality = 0;
1176 if(!negTrack||!posTrack)
return kFALSE;
1181 if(negTrack->GetTPCNclsF()!=0){
1182 negclsToF = (
Double_t)negTrack->GetNcls(1)/(
Double_t)negTrack->GetTPCNclsF();}
1190 if(posTrack->GetTPCNclsF()!=0){
1191 posclsToF = (
Double_t)posTrack->GetNcls(1)/(
Double_t)posTrack->GetTPCNclsF();
1211 if(event->IsA()==AliESDEvent::Class()) {
1228 if(!negTrack || !posTrack) {
1337 if( !negTrack->IsOn(AliESDtrack::kTPCrefit) || !posTrack->IsOn(AliESDtrack::kTPCrefit) ) {
1343 AliAODVertex * NegVtxType=negTrack->GetProdVertex();
1344 AliAODVertex * PosVtxType=posTrack->GetProdVertex();
1345 if( (NegVtxType->GetType())==AliAODVertex::kKink || (PosVtxType->GetType())==AliAODVertex::kKink) {
1358 if( !negTrack->IsOn(AliESDtrack::kTPCrefit) || !posTrack->IsOn(AliESDtrack::kTPCrefit) ) {
1364 if(negTrack->GetKinkIndex(0) > 0 || posTrack->GetKinkIndex(0) > 0 ) {
1382 if(negTrack->Charge() == posTrack->Charge()) {
1398 if( posTrack->Eta() > (
fEtaCut) || posTrack->Eta() < (-
fEtaCut) ||
1422 if(negTrack->IsA()==AliAODTrack::Class()) {
1423 passCuts = passCuts *
SpecificTrackCuts(static_cast<AliAODTrack*>(negTrack), static_cast<AliAODTrack*>(posTrack),cutIndex);
1425 passCuts = passCuts *
SpecificTrackCuts(static_cast<AliESDtrack*>(negTrack), static_cast<AliESDtrack*>(posTrack),cutIndex);
1444 if(!
fPIDResponse){AliError(
"No PID Response");
return kTRUE;}
1534 if((fCurrentTrack->GetStatus() & AliESDtrack::kTOFpid) && !(fCurrentTrack->GetStatus() & AliESDtrack::kTOFmismatch)){
1538 fCurrentTrack->GetIntegratedTimes(times,AliPID::kSPECIESC);
1539 Double_t TOFsignal = fCurrentTrack->GetTOFsignal();
1540 Double_t dT = TOFsignal - t0 - times[0];
1574 for(
Int_t ii=0;ii<2;ii++){
1581 trackNegAsy= track->P()/photon->
GetPhotonP();
1601 if(label > event->GetNumberOfTracks() )
return NULL;
1602 AliESDtrack * track = esdEvent->GetTrack(label);
1606 AliVTrack * track = 0x0;
1607 if(((
AliV0ReaderV1*)AliAnalysisManager::GetAnalysisManager()->GetTask(
"V0ReaderV1"))->AreAODsRelabeled()){
1608 track =
dynamic_cast<AliVTrack*
>(
event->GetTrack(label));
1612 for(
Int_t ii=0; ii<
event->GetNumberOfTracks(); ii++) {
1613 track =
dynamic_cast<AliVTrack*
>(
event->GetTrack(ii));
1615 if(track->GetID() == label) {
1633 if(label > event->GetNumberOfTracks() )
return NULL;
1634 AliESDtrack * track =
event->GetTrack(label);
1659 if(negProbArray && posProbArray){
1661 negTrack->GetTPCpid(negProbArray);
1662 posTrack->GetTPCpid(posProbArray);
1669 delete [] posProbArray;
1670 delete [] negProbArray;
1689 if(particle->R()>
fMaxR){
1692 if(ePos->R()>
fMaxR){
1696 if(ePos->R()<
fMinR){
1707 if(TMath::Abs(eNeg->Vz()) >
fMaxZ ){
1711 if(eNeg->Vz()!=ePos->Vz()||eNeg->R()!=ePos->R()){
1715 if(TMath::Abs(ePos->Vz()) >
fMaxZ ){
1720 if( particle->Eta() > (
fEtaCut) || particle->Eta() < (-
fEtaCut) ){
1745 if(particle->Pt()<
fPtCut){
1765 AliInfo(
"Entering loading of histograms for weighting");
1832 AliInfo(
"Weighting was enabled");
1836 AliInfo(Form(
"Set Photoncut Number: %s",analysisCutSelection.Data()));
1837 if(analysisCutSelection.Length()!=
kNCuts) {
1838 AliError(Form(
"Cut selection has the wrong length! size is %d, number of cuts is %d", analysisCutSelection.Length(),
kNCuts));
1841 if(!analysisCutSelection.IsAlnum()){
1842 AliError(
"Cut selection is not alphanumeric");
1846 TString analysisCutSelectionLowerCase = Form(
"%s",analysisCutSelection.Data());
1847 analysisCutSelectionLowerCase.ToLower();
1848 const char *cutSelection = analysisCutSelectionLowerCase.Data();
1849 #define ASSIGNARRAY(i) fCuts[i] = ((int)cutSelection[i]>=(int)'a') ? cutSelection[i]-'a'+10 : cutSelection[i]-'0'
1874 }
else return kFALSE;
1881 }
else return kFALSE;
1888 }
else return kFALSE;
1895 }
else return kFALSE;
1902 }
else return kFALSE;
1909 }
else return kFALSE;
1916 }
else return kFALSE;
1923 }
else return kFALSE;
1930 }
else return kFALSE;
1937 }
else return kFALSE;
1944 }
else return kFALSE;
1951 }
else return kFALSE;
1958 }
else return kFALSE;
1965 }
else return kFALSE;
1972 }
else return kFALSE;
1979 }
else return kFALSE;
1986 }
else return kFALSE;
1993 }
else return kFALSE;
2000 }
else return kFALSE;
2007 }
else return kFALSE;
2014 }
else return kFALSE;
2021 }
else return kFALSE;
2029 }
else return kFALSE;
2036 }
else return kFALSE;
2043 }
else return kFALSE;
2050 }
else return kFALSE;
2057 }
else return kFALSE;
2064 }
else return kFALSE;
2070 AliError(
"Cut id out of range");
2074 AliError(
"Cut id %d not recognized");
2089 printf(
"\nConversion cutnumber \n");
2091 printf(
"%d",
fCuts[ic]);
2097 printf(
"Running in pp mode \n");
2099 printf(
"\t only events triggered by V0OR will be analysed \n");
2101 printf(
"\t only events triggered by V0AND will be analysed \n");
2103 printf(
"\t only events where SDD was present will be analysed \n");
2105 printf(
"\t only events where SDD was present will be analysed and triggered by VOAND\n");
2110 printf(
"Running in PbPb mode \n");
2112 printf(
"\t centrality selection based on V0M \n");
2114 printf(
"\t centrality selection based on Cl1 \n");
2130 printf(
"\t only events triggered by kMB, kCentral, kSemiCentral will be analysed \n");
2135 printf(
"Running in pPb mode \n");
2137 printf(
"\t centrality selection based on V0A \n");
2139 printf(
"\t centrality selection based on Cl1 \n");
2145 printf(
"\t only events triggered by kINT7 will be analysed \n");
2150 printf(
"MC event cuts: \n");
2155 printf(
"Electron cuts & Secondary Track Cuts - only track from secondaries enter analysis: \n");
2156 printf(
"\t no like sign pairs from V0s \n");
2159 else printf(
"\t eta_{e} < %3.2f\n",
fEtaCut );
2161 printf(
"\t TPC refit \n");
2162 printf(
"\t no kinks \n");
2171 printf(
"Photon cuts: \n");
2173 else printf(
"\t using Offline V0 finder \n");
2175 printf(
"\t 2 dimensional q_{T} cut applied with maximum of %3.2f \n",
fQtMax );
2177 printf(
"\t 1 dimensional q_{T} cut applied with maximum of %3.2f \n",
fQtMax );
2180 printf(
"\t 2 dimensional triangle chi^{2} and psi_{pair} cut applied with maximum of chi^{2} = %3.2f and |psi_{pair}| = %3.2f \n",
fChi2CutConversion,
fPsiPairCut );
2183 printf(
"\t psi_{pair} max cut |psi_{pair}| < %3.2f \n",
fPsiPairCut );
2185 printf(
"\t %3.2f < R_{conv} < %3.2f\n",
fMinR,
fMaxR );
2186 printf(
"\t Z_{conv} < %3.2f\n",
fMaxZ );
2188 else printf(
"\t eta_{conv} < %3.2f\n",
fEtaCut );
2191 printf(
"\t p_{T,gamma} > %3.2f\n",
fPtCut );
2249 AliError(Form(
"SetHeavyIon not defined %d",isHeavyIon));
2259 if(minCentrality<0||minCentrality>9){
2260 AliError(Form(
"minCentrality not defined %d",minCentrality));
2271 if(maxCentrality<0||maxCentrality>9){
2272 AliError(Form(
"maxCentrality not defined %d",maxCentrality));
2282 switch(selectSpecialTrigger){
2310 fOfflineTriggerMask=AliVEvent::kPHI7 | AliVEvent::kPHI1 | AliVEvent::kPHI8 | AliVEvent::kPHOSPb;
2333 AliError(
"Warning: Special Trigger Not known");
2344 switch(selectSpecialSubTriggerClass){
2358 AliError(
"Warning: Special Subtrigger Class Not known");
2363 switch(selectSpecialSubTriggerClass){
2410 AliError(
"Warning: Special Subtrigger Class Not known");
2414 switch(selectSpecialSubTriggerClass){
2442 AliError(
"Warning: Special Subtrigger Class Not known");
2446 switch(selectSpecialSubTriggerClass){
2474 AliError(
"Warning: Special Subtrigger Class Not known");
2478 switch(selectSpecialSubTriggerClass){
2500 AliError(
"Warning: Special Subtrigger Class Not known");
2504 switch(selectSpecialSubTriggerClass){
2541 AliError(
"Warning: Special Subtrigger Class Not known");
2545 switch(selectSpecialSubTriggerClass){
2582 AliError(
"Warning: Special Subtrigger Class Not known");
2605 switch(removePileUp){
2613 AliError(
"RemovePileUpCut not defined");
2621 switch(extraSignal){
2635 AliError(Form(
"Extra Signal Rejection not defined %d",extraSignal));
2643 switch (v0FinderType){
2645 cout <<
"have chosen onfly V0" << endl;
2649 cout <<
"have chosen offline V0" << endl;
2653 AliError(Form(
" v0FinderType not defined %d",v0FinderType));
2742 AliError(Form(
" EtaCut not defined %d",etaCut));
2793 AliError(
"RCut not defined");
2801 switch(singlePtCut){
2827 AliError(Form(
"singlePtCut not defined %d",singlePtCut));
2873 AliError(Form(
"Warning: clsTPCCut not defined %d",clsTPCCut));
2881 switch(ededxSigmaCut){
2915 AliError(
"TPCdEdxCutElectronLine not defined");
2925 switch(pidedxSigmaCut){
2967 AliError(Form(
"Warning: pidedxSigmaCut not defined %d",pidedxSigmaCut));
2975 switch(piMomdedxSigmaCut){
3004 AliError(Form(
"piMomdedxSigmaCut not defined %d",piMomdedxSigmaCut));
3012 switch(piMaxMomdedxSigmaCut){
3032 AliError(Form(
"piMaxMomdedxSigmaCut not defined %d",piMaxMomdedxSigmaCut));
3040 switch(LowPRejectionSigmaCut){
3114 AliError(Form(
"LowPRejectionSigmaCut not defined %d",LowPRejectionSigmaCut));
3122 switch(TOFelectronPID){
3154 AliError(Form(
"TOFElectronCut not defined %d",TOFelectronPID));
3205 AliError(Form(
"Warning: QtMaxCut not defined %d",QtMaxCut));
3214 switch(chi2GammaCut){
3246 AliError(Form(
"Warning: Chi2GammaCut not defined %d",chi2GammaCut));
3290 AliError(Form(
"PsiPairCut not defined %d",psiCut));
3299 switch(doPhotonAsymmetryCut){
3321 AliError(Form(
"PhotonAsymmetryCut not defined %d",doPhotonAsymmetryCut));
3356 AliError(Form(
"Cosine Pointing Angle cut not defined %d",cosCut));
3392 AliError(Form(
"Shared Electron Cut not defined %d",sharedElec));
3419 AliError(Form(
"Shared Electron Cut not defined %d",toClose));
3427 switch(TRDElectronCut){
3444 AliError(Form(
"TRDElectronCut not defined %d",TRDElectronCut));
3454 switch(DCAZPhotonPrimVtx){
3486 cout<<
"Warning: DCAZPhotonPrimVtx not defined "<<DCAZPhotonPrimVtx<<endl;
3495 switch(DCARPhotonPrimVtx){
3527 cout<<
"Warning: DCARPhotonPrimVtx not defined "<<DCARPhotonPrimVtx<<endl;
3547 cout<<
"Warning: In-Plane or Out-Of-Plane not defined "<<inOutPlane<<endl;
3556 if((period.CompareTo(
"LHC15o")==0)||(period.CompareTo(
"LHC15k1_plus3")==0)||(period.CompareTo(
"LHC15k1a1")==0)
3557 ||(period.CompareTo(
"LHC15k1b1")==0)||(period.CompareTo(
"LHC15k1a2")==0)||(period.CompareTo(
"LHC15k1a3")==0)
3558 ||(period.CompareTo(
"LHC15k1b2")==0)||(period.CompareTo(
"LHC15k1b3")==0)||(period.CompareTo(
"LHC15k1_plus")==0)
3559 ||(period.CompareTo(
"LHC15k1")==0)||(period.CompareTo(
"LHC15k1_plus2")==0)||(period.CompareTo(
"LHC15k1_plus21")==0)
3560 ||(period.CompareTo(
"LHC15k1_plus31")==0)||(period.CompareTo(
"LHC15k1_plus32")==0)){
3574 TString periodName = ((
AliV0ReaderV1*)AliAnalysisManager::GetAnalysisManager()->GetTask(
"V0ReaderV1"))->GetPeriodName();
3576 AliMultSelection *MultSelection = (AliMultSelection*)event->FindListObject(
"MultSelection");
3577 AliCentrality *fESDCentrality = (AliCentrality*)esdEvent->GetCentrality();
3579 if(
fIsHeavyIon==2)
return fESDCentrality->GetCentralityPercentile(
"V0A");
3580 else return MultSelection->GetMultiplicityPercentile(
"V0M",kTRUE);
3581 }
else if(
fDetectorCentrality==1)
return MultSelection->GetMultiplicityPercentile(
"CL1",kTRUE);
3583 AliCentrality *fESDCentrality = (AliCentrality*)esdEvent->GetCentrality();
3585 if(
fIsHeavyIon==2)
return fESDCentrality->GetCentralityPercentile(
"V0A");
3586 else return fESDCentrality->GetCentralityPercentile(
"V0M");
3593 if(aodEvent->GetHeader()){
return ((AliVAODHeader*)aodEvent->GetHeader())->
GetCentrality();}
3607 if(centrality<0)
return kFALSE;
3609 Int_t centralityC=0;
3611 centralityC=
Int_t(centrality/10);
3617 centralityC=
Int_t(centrality);
3620 }
else return kFALSE;
3623 centralityC=
Int_t(centrality);
3629 Int_t nprimaryTracks = ((
AliV0ReaderV1*)AliAnalysisManager::GetAnalysisManager()->GetTask(
"V0ReaderV1"))->GetNumberOfPrimaryTracks();
3630 Int_t PrimaryTracks10[11][2] =
3644 Int_t PrimaryTracks5a[11][2] =
3658 Int_t PrimaryTracks5b[11][2] =
3673 if(event->IsA()==AliESDEvent::Class()) column = 0;
3674 if(event->IsA()==AliAODEvent::Class()) column = 1;
3683 centralityC=
Int_t(centrality/10);
3696 centralityC=
Int_t(centrality);
3699 }
else return kFALSE;
3709 centralityC=
Int_t(centrality);
3721 Double_t fVertexZ=
event->GetPrimaryVertex()->GetZ();
3725 fVertexZSPD = fESDEvent->GetPrimaryVertexSPD()->GetZ();
3729 fVertexZSPD = fAODEvent->GetPrimaryVertexSPD()->GetZ();
3732 if(TMath::Abs(fVertexZ)>
fMaxVertexZ)
return kFALSE;
3735 ->GetTask(
"V0ReaderV1"))->GetPeriodName();
3736 if (periodName.CompareTo(
"LHC11h")==0){
3737 if (TMath::Abs(fVertexZ-fVertexZSPD) > 0.1)
return kFALSE;
3740 if(
fUtils->IsFirstEventInChunk(event))
return kFALSE;
3741 if(!
fUtils->IsVertexSelected2013pA(event))
return kFALSE;
3742 if(
fUtils->IsPileUpEvent(event))
return kFALSE;
3754 if (fESDEvent->GetPrimaryVertex() != NULL){
3755 if(fESDEvent->GetPrimaryVertex()->GetNContributors()>0) {
3757 return fESDEvent->GetPrimaryVertex()->GetNContributors();
3761 if(fESDEvent->GetPrimaryVertexSPD() !=NULL){
3762 if(fESDEvent->GetPrimaryVertexSPD()->GetNContributors()>0) {
3764 return fESDEvent->GetPrimaryVertexSPD()->GetNContributors();
3766 AliWarning(Form(
"Number of contributors from bad vertex type:: %s",fESDEvent->GetPrimaryVertex()->GetName()));
3775 if (fAODEvent->GetPrimaryVertex() != NULL){
3776 if(fAODEvent->GetPrimaryVertex()->GetNContributors()>0) {
3777 return fAODEvent->GetPrimaryVertex()->GetNContributors();
3780 if(fAODEvent->GetPrimaryVertexSPD() !=NULL){
3781 if(fAODEvent->GetPrimaryVertexSPD()->GetNContributors()>0) {
3782 return fAODEvent->GetPrimaryVertexSPD()->GetNContributors();
3784 AliWarning(Form(
"Number of contributors from bad vertex type:: %s",fAODEvent->GetPrimaryVertex()->GetName()));
3798 AliInputEventHandler *fInputHandler=(AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
3802 UInt_t isSelected = AliVEvent::kAny;
3803 TString periodName = ((
AliV0ReaderV1*)AliAnalysisManager::GetAnalysisManager()->GetTask(
"V0ReaderV1"))->GetPeriodName();
3806 if (fInputHandler==NULL)
return kFALSE;
3807 if( fInputHandler->GetEventSelection() || fInputEvent->IsA()==AliAODEvent::Class()) {
3809 TString firedTrigClass = fInputEvent->GetFiredTriggerClasses();
3815 else if (periodName.CompareTo(
"LHC11c") == 0 || periodName.CompareTo(
"LHC11d") == 0 || periodName.CompareTo(
"LHC11e") == 0 || periodName.CompareTo(
"LHC11f") == 0 || periodName.CompareTo(
"LHC11g") == 0 || periodName.CompareTo(
"LHC12a") == 0 || periodName.CompareTo(
"LHC12b") == 0 || periodName.CompareTo(
"LHC12c") == 0 || periodName.CompareTo(
"LHC12d") == 0 || periodName.CompareTo(
"LHC12f") == 0 || periodName.CompareTo(
"LHC12g") == 0 || periodName.CompareTo(
"LHC12h") == 0 || periodName.CompareTo(
"LHC12i") == 0 ||periodName.CompareTo(
"LHC13g") == 0 ) {
3858 fIsSDDFired = !(fInputHandler->IsEventSelected() & AliVEvent::kFastOnly);
3863 if (fInputHandler->IsEventSelected() & AliVEvent::kMB)
hTriggerClass->Fill(0);
3864 if (fInputHandler->IsEventSelected() & AliVEvent::kINT7)
hTriggerClass->Fill(1);
3865 if (fInputHandler->IsEventSelected() & AliVEvent::kMUON)
hTriggerClass->Fill(2);
3866 if (fInputHandler->IsEventSelected() & AliVEvent::kHighMult)
hTriggerClass->Fill(3);
3867 if (fInputHandler->IsEventSelected() & AliVEvent::kEMC1)
hTriggerClass->Fill(4);
3868 if (fInputHandler->IsEventSelected() & AliVEvent::kCINT5)
hTriggerClass->Fill(5);
3869 if (fInputHandler->IsEventSelected() & AliVEvent::kCMUS5)
hTriggerClass->Fill(6);
3871 if (fInputHandler->IsEventSelected() & AliVEvent::kMUSH7)
hTriggerClass->Fill(7);
3873 if (fInputHandler->IsEventSelected() & AliVEvent::kMUL7)
hTriggerClass->Fill(8);
3875 if (fInputHandler->IsEventSelected() & AliVEvent::kMUU7)
hTriggerClass->Fill(9);
3877 if (fInputHandler->IsEventSelected() & AliVEvent::kEMC7)
hTriggerClass->Fill(10);
3879 if (fInputHandler->IsEventSelected() & AliVEvent::kMUS7)
hTriggerClass->Fill(11);
3880 if (fInputHandler->IsEventSelected() & AliVEvent::kPHI1)
hTriggerClass->Fill(12);
3881 if (fInputHandler->IsEventSelected() & AliVEvent::kPHI7)
hTriggerClass->Fill(13);
3884 if (fInputHandler->IsEventSelected() & AliVEvent::kEMCEJE)
hTriggerClass->Fill(14);
3885 if (fInputHandler->IsEventSelected() & AliVEvent::kEMCEGA)
hTriggerClass->Fill(15);
3886 if (fInputHandler->IsEventSelected() & AliVEvent::kCentral)
hTriggerClass->Fill(16);
3887 if (fInputHandler->IsEventSelected() & AliVEvent::kSemiCentral)
hTriggerClass->Fill(17);
3888 if (fInputHandler->IsEventSelected() & AliVEvent::kDG5)
hTriggerClass->Fill(18);
3889 if (fInputHandler->IsEventSelected() & AliVEvent::kZED)
hTriggerClass->Fill(19);
3890 if (fInputHandler->IsEventSelected() & AliVEvent::kSPI7)
hTriggerClass->Fill(20);
3892 if (fInputHandler->IsEventSelected() & AliVEvent::kINT8)
hTriggerClass->Fill(21);
3893 if (fInputHandler->IsEventSelected() & AliVEvent::kMuonSingleLowPt8)
hTriggerClass->Fill(22);
3894 if (fInputHandler->IsEventSelected() & AliVEvent::kMuonSingleHighPt8)
hTriggerClass->Fill(23);
3895 if (fInputHandler->IsEventSelected() & AliVEvent::kMuonLikeLowPt8)
hTriggerClass->Fill(24);
3896 if (fInputHandler->IsEventSelected() & AliVEvent::kMuonUnlikeLowPt8)
hTriggerClass->Fill(25);
3897 if (fInputHandler->IsEventSelected() & AliVEvent::kMuonUnlikeLowPt0)
hTriggerClass->Fill(26);
3898 if (fInputHandler->IsEventSelected() & AliVEvent::kUserDefined)
hTriggerClass->Fill(27);
3899 if (fInputHandler->IsEventSelected() & AliVEvent::kTRD)
hTriggerClass->Fill(28);
3900 if (fInputHandler->IsEventSelected() & AliVEvent::kFastOnly)
hTriggerClass->Fill(29);
3901 if (fInputHandler->IsEventSelected() & AliVEvent::kAnyINT)
hTriggerClass->Fill(30);
3902 if (fInputHandler->IsEventSelected() & AliVEvent::kAny)
hTriggerClass->Fill(31);
3903 if (!fInputHandler->IsEventSelected())
hTriggerClass->Fill(34);
3938 if (fInputHandler->IsEventSelected() & AliVEvent::kMuonSingleLowPt8)
hTriggerClassSelected->Fill(22);
3939 if (fInputHandler->IsEventSelected() & AliVEvent::kMuonSingleHighPt8)
hTriggerClassSelected->Fill(23);
3941 if (fInputHandler->IsEventSelected() & AliVEvent::kMuonUnlikeLowPt8)
hTriggerClassSelected->Fill(25);
3942 if (fInputHandler->IsEventSelected() & AliVEvent::kMuonUnlikeLowPt0)
hTriggerClassSelected->Fill(26);
3950 if(!isSelected)
return kFALSE;
3959 Int_t firstTPCRow = 0;
3969 if(radius <= radiusI){
3972 if(radius>radiusI && radius<=radiusO){
3973 firstTPCRow = (
Int_t)((radius-radiusI)/rSizeI);
3975 if(radius>radiusO && radius<=radiusOB){
3976 firstTPCRow = (
Int_t)(nClsI+(radius-radiusO)/rSizeO);
3979 if(radius>radiusOB){
3980 firstTPCRow =(
Int_t)(nClsIO+(radius-radiusOB)/rSizeOB);
3998 if(event->IsA()==AliESDEvent::Class()){
4000 if(!esdEvent)
return -999;
4001 AliESDv0 *v0 = esdEvent->GetV0(photon->
GetV0Index());
4002 if(!v0)
return -999;
4003 v0->GetPxPyPz(momV0[0],momV0[1],momV0[2]);
4005 if(event->IsA()==AliAODEvent::Class()){
4006 momV0[0] = photon->
GetPx();
4007 momV0[1] = photon->
GetPy();
4008 momV0[2] = photon->
GetPz();
4016 Double_t momV02 = momV0[0]*momV0[0] + momV0[1]*momV0[1] + momV0[2]*momV0[2];
4017 Double_t PosV02 = PosV0[0]*PosV0[0] + PosV0[1]*PosV0[1] + PosV0[2]*PosV0[2];
4020 Double_t cosinePointingAngle = -999;
4021 if(momV02*PosV02 > 0.0)
4022 cosinePointingAngle = (PosV0[0]*momV0[0] + PosV0[1]*momV0[1] + PosV0[2]*momV0[2] ) / TMath::Sqrt(momV02 * PosV02);
4024 return cosinePointingAngle;
4064 for(
Int_t i = 0; i<nV0s*2;i++){
4065 if(i==nV0*2)
continue;
4066 if(i==(nV0*2)+1)
continue;
4083 for(
Int_t i = 0;i<photons->GetEntries();i++){
4084 if(nV0 == i)
continue;
4090 Double_t dist = pow((posX - posCompX),2)+pow((posY - posCompY),2)+pow((posZ - posCompZ),2);
4104 TString periodName = ((
AliV0ReaderV1*)AliAnalysisManager::GetAnalysisManager()->GetTask(
"V0ReaderV1"))->GetPeriodName();
4120 if(rejection == 0)
return;
4122 AliGenCocktailEventHeader *cHeader = 0x0;
4123 AliAODMCHeader *cHeaderAOD = 0x0;
4124 Bool_t headerFound = kFALSE;
4125 AliMCEvent *mcEvent = 0x0;
4126 TClonesArray *mcEventAOD = 0x0;
4127 if(MCEvent->IsA()==AliMCEvent::Class()){
4128 if (dynamic_cast<AliMCEvent*>(MCEvent)){
4129 cHeader =
dynamic_cast<AliGenCocktailEventHeader*
>(
dynamic_cast<AliMCEvent*
>(MCEvent)->GenEventHeader());
4130 if(cHeader) headerFound = kTRUE;
4133 if(MCEvent->IsA()==AliAODEvent::Class()){
4134 cHeaderAOD =
dynamic_cast<AliAODMCHeader*
>(MCEvent->FindListObject(AliAODMCHeader::StdBranchName()));
4135 mcEventAOD =
dynamic_cast<TClonesArray*
>(MCEvent->FindListObject(AliAODMCParticle::StdBranchName()));
4138 if(cHeaderAOD) headerFound = kTRUE;
4142 TList *genHeaders = 0x0;
4143 if(cHeader) genHeaders = cHeader->GetHeaders();
4145 genHeaders = cHeaderAOD->GetCocktailHeaders();
4146 if(genHeaders->GetEntries()==1){
4151 AliGenEventHeader* gh = 0;
4153 Int_t firstindexA = 0;
4154 Int_t lastindexA = -1;
4155 if(rejection == 1 || rejection == 3)
fnHeaders = 1;
4157 for(
Int_t i = 0; i<genHeaders->GetEntries();i++){
4158 gh = (AliGenEventHeader*)genHeaders->At(i);
4159 TString GeneratorName = gh->GetName();
4160 lastindexA = lastindexA + gh->NProduced();
4162 for(
Int_t j = 0; j<HeaderList->GetEntries();j++){
4163 TString GeneratorInList = ((TObjString*)HeaderList->At(j))->GetString();
4164 if(GeneratorName.CompareTo(GeneratorInList) == 0){
4165 if (GeneratorInList.CompareTo(
"PARAM") == 0 || GeneratorInList.CompareTo(
"BOX") == 0 ){
4168 if (periodName.CompareTo(
"LHC14a1b")==0 || periodName.CompareTo(
"LHC14a1c")==0 ){
4169 if (gh->NProduced() > 10 && mcEvent->Particle(firstindexA+10)->GetPdgCode() ==
fAddedSignalPDGCode ){
4183 AliAODMCParticle *aodMCParticle =
static_cast<AliAODMCParticle*
>(mcEventAOD->At(firstindexA));
4185 if (periodName.CompareTo(
"LHC14a1b")==0 || periodName.CompareTo(
"LHC14a1c")==0 ){
4186 if (gh->NProduced() > 10){
4187 AliAODMCParticle *aodMCParticle2 =
static_cast<AliAODMCParticle*
>(mcEventAOD->At(firstindexA+10));
4209 firstindexA = firstindexA + gh->NProduced();
4218 if(rejection == 1 || rejection == 3){
4220 fNotRejectedEnd[0] = ((AliGenEventHeader*)genHeaders->At(0))->NProduced()-1;
4221 fGeneratorNames[0] = ((AliGenEventHeader*)genHeaders->At(0))->GetName();
4225 Int_t firstindex = 0;
4226 Int_t lastindex = -1;
4229 for(
Int_t i = 0; i<genHeaders->GetEntries();i++){
4230 gh = (AliGenEventHeader*)genHeaders->At(i);
4231 TString GeneratorName = gh->GetName();
4232 lastindex = lastindex + gh->NProduced();
4233 for(
Int_t j = 0; j<HeaderList->GetEntries();j++){
4234 TString GeneratorInList = ((TObjString*)HeaderList->At(j))->GetString();
4236 if(GeneratorName.CompareTo(GeneratorInList) == 0){
4237 if (GeneratorInList.CompareTo(
"PARAM") == 0 || GeneratorInList.CompareTo(
"BOX") == 0 ){
4240 if (periodName.CompareTo(
"LHC14a1b")==0 || periodName.CompareTo(
"LHC14a1c")==0 ){
4242 if (gh->NProduced() > 10 && mcEvent->Particle(firstindex+10)->GetPdgCode() ==
fAddedSignalPDGCode){
4261 AliAODMCParticle *aodMCParticle =
static_cast<AliAODMCParticle*
>(mcEventAOD->At(firstindex));
4263 if (periodName.CompareTo(
"LHC14a1b")==0 || periodName.CompareTo(
"LHC14a1c")==0 ){
4264 if (gh->NProduced() > 10) {
4265 AliAODMCParticle *aodMCParticle2 =
static_cast<AliAODMCParticle*
>(mcEventAOD->At(firstindex+10));
4295 firstindex = firstindex + gh->NProduced();
4311 AliGenPythiaEventHeader *mcHeaderPythia =
dynamic_cast<AliGenPythiaEventHeader*
>(
static_cast<AliMCEvent*
>(MCEvent)->GenEventHeader());
4312 if (mcHeaderPythia)
fGeneratorNames[0] =
"NoCocktailGeneratorFound_Pythia";
4313 AliGenDPMjetEventHeader *mcHeaderPhojet =
dynamic_cast<AliGenDPMjetEventHeader*
>(
static_cast<AliMCEvent*
>(MCEvent)->GenEventHeader());
4314 if (mcHeaderPhojet)
fGeneratorNames[0] =
"NoCocktailGeneratorFound_Phojet";
4315 AliGenHijingEventHeader *mcHeaderHijing =
dynamic_cast<AliGenHijingEventHeader*
>(
static_cast<AliMCEvent*
>(MCEvent)->GenEventHeader());
4316 if (mcHeaderHijing)
fGeneratorNames[0] =
"NoCocktailGeneratorFound_Hijing";
4329 if(index < 0)
return 0;
4338 if(!InputEvent || InputEvent->IsA()==AliESDEvent::Class()){
4339 if( index >= mcEvent->GetNumberOfPrimaries()){
4340 if( ((TParticle*)mcEvent->Particle(index))->GetMother(0) < 0)
return 1;
4341 return IsParticleFromBGEvent(((TParticle*)mcEvent->Particle(index))->GetMother(0),mcEvent,InputEvent);
4346 if(i == 0) accepted = 2;
4350 else if(InputEvent->IsA()==AliAODEvent::Class()){
4351 TClonesArray *AODMCTrackArray =
dynamic_cast<TClonesArray*
>(InputEvent->FindListObject(AliAODMCParticle::StdBranchName()));
4352 if (AODMCTrackArray){
4353 AliAODMCParticle *aodMCParticle =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(index));
4354 if(!aodMCParticle)
return 1;
4355 if(!aodMCParticle->IsPrimary()){
4356 if( aodMCParticle->GetMother() < 0)
return 1;
4359 index = abs(static_cast<AliAODMCParticle*>(AODMCTrackArray->At(index))->GetLabel());
4363 if(i == 0) accepted = 2;
4383 if(InputEvent->IsPileupFromSPD(3,0.8,3.,2.,5.)){
4401 ->GetTask(
"V0ReaderV1"))->GetNumberOfPrimaryTracks());
4408 if (!(period.CompareTo(
"LHC12f1a") == 0 || period.CompareTo(
"LHC12f1b") == 0 || period.CompareTo(
"LHC12i3") == 0 || period.CompareTo(
"LHC11a10a") == 0 || period.CompareTo(
"LHC11a10b") == 0 || period.CompareTo(
"LHC11a10b_bis") == 0 || period.CompareTo(
"LHC11a10a_bis") == 0 || period.CompareTo(
"LHC11a10b_plus") == 0 || period.Contains(
"LHC13d2")|| period.Contains(
"LHC14a1") ||
4409 period.CompareTo(
"LHC13e7") == 0 || period.Contains(
"LHC13b2_efix") || period.CompareTo(
"LHC14b2") == 0 ))
return 1.;
4426 }
else if (
fGeneratorNames[i].CompareTo(
"NoCocktailGeneratorFound") == 0){
4428 }
else if (
fGeneratorNames[i].CompareTo(
"NoCocktailGeneratorFound_Pythia") == 0){
4430 }
else if (
fGeneratorNames[i].CompareTo(
"NoCocktailGeneratorFound_Phojet") == 0){
4432 }
else if (
fGeneratorNames[i].CompareTo(
"NoCocktailGeneratorFound_Hijing") == 0){
4435 if (period.Contains(
"LHC13d2") || period.CompareTo(
"LHC13e7") == 0 || period.Contains(
"LHC13b2_efix") || period.Contains(
"LHC14a1") || period.CompareTo(
"LHC14b2") == 0 ){
4440 if (kCaseGen == 0)
return 1;
4446 if(!InputEvent || InputEvent->IsA()==AliESDEvent::Class()){
4447 mesonPt = ((TParticle*)mcEvent->Particle(index))->Pt();
4448 mesonMass = ((TParticle*)mcEvent->Particle(index))->GetCalcMass();
4449 PDGCode = ((TParticle*)mcEvent->Particle(index))->GetPdgCode();
4451 else if(InputEvent->IsA()==AliAODEvent::Class()){
4452 TClonesArray *AODMCTrackArray =
dynamic_cast<TClonesArray*
>(InputEvent->FindListObject(AliAODMCParticle::StdBranchName()));
4453 if (AODMCTrackArray){
4454 AliAODMCParticle *aodMCParticle =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(index));
4455 mesonPt = aodMCParticle->Pt();
4456 mesonMass = aodMCParticle->GetCalcMass();
4457 PDGCode = aodMCParticle->GetPdgCode();
4463 Float_t functionResultMC = 1.;
4468 if ( PDGCode == 111){
4472 }
else if ( PDGCode == 221){
4477 functionResultMC = dNdyMC / ( 2 * TMath::Pi())*(nMC-1.)*(nMC-2.) / (nMC*tMC*(nMC*tMC+mesonMass*(nMC-2.))) * TMath::Power(1.+(TMath::Sqrt(mesonPt*mesonPt+mesonMass*mesonMass)-mesonMass)/(nMC*tMC), -nMC);
4478 }
else if (kCaseGen == 2){
4482 if ( PDGCode == 111){
4486 }
else if ( PDGCode == 221){
4491 functionResultMC = dNdyMC / ( 2 * TMath::Pi())*(nMC-1.)*(nMC-2.) / (nMC*tMC*(nMC*tMC+mesonMass*(nMC-2.))) * TMath::Power(1.+(TMath::Sqrt(mesonPt*mesonPt+mesonMass*mesonMass)-mesonMass)/(nMC*tMC), -nMC);
4492 }
else if (kCaseGen == 4){
4499 if ( PDGCode == 111){
4505 }
else if ( PDGCode == 221){
4512 functionResultMC = a*TMath::Power(mesonPt,-1.*(b+c/(TMath::Power(mesonPt,d)+e)))*1./mesonPt *1./1.6 *1./(2.* TMath::Pi());
4514 }
else if (kCaseGen == 3 ){
4526 Float_t functionResultData = 1;
4527 if (kCaseGen == 1 || kCaseGen == 2 || kCaseGen == 4 ){
4531 if ( PDGCode == 111){
4535 }
else if ( PDGCode == 221){
4540 functionResultData = dNdyData / ( 2 * TMath::Pi())*(nData-1.)*(nData-2.) / (nData*tData*(nData*tData+mesonMass*(nData-2.))) * TMath::Power(1.+(TMath::Sqrt(mesonPt*mesonPt+mesonMass*mesonMass)-mesonMass)/(nData*tData), -nData);
4556 if (PDGCode == 111 || PDGCode == 221){
4557 if (functionResultData != 0. && functionResultMC != 0. && isfinite(functionResultData) && isfinite(functionResultMC)){
4558 weight = functionResultData/functionResultMC;
4559 if ( kCaseGen == 3){
4560 if (PDGCode == 111){
4565 if (PDGCode == 221){
4571 if (!isfinite(functionResultData)) weight = 1.;
4572 if (!isfinite(weight)) weight = 1.;
4574 }
else if (PDGCode == 310 && functionResultMC != 0 && isfinite(functionResultMC)){
4575 weight = functionResultMC;
4588 cout<<
"Warning: Initialization of Standardcuts2010PbPb failed"<<endl;}
4597 cout<<
"Warning: Initialization of Standardcuts2010pp failed"<<endl;}
4603 if(periodName.CompareTo(
"LHC12g") == 0 ||
4604 periodName.CompareTo(
"LHC13b") == 0 ||
4605 periodName.CompareTo(
"LHC13c") == 0 ||
4606 periodName.CompareTo(
"LHC13d") == 0 ||
4607 periodName.CompareTo(
"LHC13e") == 0 ||
4608 periodName.CompareTo(
"LHC13c3") == 0 ||
4609 periodName.CompareTo(
"LHC13c2") == 0 ||
4610 periodName.CompareTo(
"LHC13b4") == 0 ||
4611 periodName.CompareTo(
"LHC13b2_fix_1") == 0 ||
4612 periodName.CompareTo(
"LHC13b2_efix_p1") == 0 ||
4613 periodName.CompareTo(
"LHC13b2_efix_p2") == 0 ||
4614 periodName.CompareTo(
"LHC13b2_efix_p3") == 0 ||
4615 periodName.CompareTo(
"LHC13b2_efix_p4") == 0 ||
4616 periodName.CompareTo(
"LHC13e7") == 0 ||
4617 periodName.CompareTo(
"LHC13b3") == 0 ||
4618 periodName.CompareTo(
"LHC13b2") == 0 ||
4619 periodName.CompareTo(
"LHC13b2_plus") == 0 ||
4620 periodName.CompareTo(
"LHC13c1_bis") == 0 ||
4621 periodName.CompareTo(
"LHC13c1") == 0 ||
4622 periodName.CompareTo(
"LHC13b1") == 0 ||
4623 periodName.CompareTo(
"LHC12g4b_fix") == 0 ||
4624 periodName.CompareTo(
"LHC12g1_fix") == 0 ||
4625 periodName.CompareTo(
"LHC12g4c") == 0 ||
4626 periodName.CompareTo(
"LHC12h6") == 0 ||
4627 periodName.CompareTo(
"LHC12g4b") == 0 ||
4628 periodName.CompareTo(
"LHC12g4a") == 0 ||
4629 periodName.CompareTo(
"LHC12g4") == 0 ||
4630 periodName.CompareTo(
"LHC12g5") == 0 ||
4631 periodName.CompareTo(
"LHC12g2") == 0 ||
4632 periodName.CompareTo(
"LHC12g1") == 0 )
4634 printf(
" Gamma Conversion Cuts %s :: pPb Run doing Eta Shift of %f \n\n",(
GetCutNumber()).
Data(),-0.465);
4637 else if(periodName.CompareTo(
"LHC13f") == 0 ||
4638 periodName.CompareTo(
"LHC13c6b") == 0 ||
4639 periodName.CompareTo(
"LHC13c5") == 0 ||
4640 periodName.CompareTo(
"LHC13c4") == 0 )
4642 printf(
" Gamma Conversion Cuts %s :: Pbp Run doing Eta Shift of %f \n\n",(
GetCutNumber()).
Data(),0.465);
4645 else printf(
" Gamma Conversion Cuts %s :: Automatic Eta Shift requested but Period is not known -> No Shift \n\n",(
GetCutNumber()).
Data());
4652 eventPlaneAngle=eventPlaneAngle+TMath::Pi();
4653 Double_t gammaToEPAngle = eventPlaneAngle-photonPhi;
4654 if(gammaToEPAngle < 0) gammaToEPAngle=gammaToEPAngle+2*TMath::Pi();
4655 gammaToEPAngle = gammaToEPAngle-TMath::Pi();
4662 if(TMath::Abs(gammaToEPAngle)<=0.25*TMath::Pi() || TMath::Abs(gammaToEPAngle)>=0.75*TMath::Pi()){
4669 if(TMath::Abs(gammaToEPAngle)>0.25*TMath::Pi() && TMath::Abs(gammaToEPAngle)<0.75*TMath::Pi()){
4685 if(!negTrack || !posTrack) {
4688 if(negTrack->Charge() == posTrack->Charge()){
4691 Int_t nClusterITSneg = negTrack->GetITSNcls();
4692 Int_t nClusterITSpos = posTrack->GetITSNcls();
4695 if (nClusterITSneg > 1 && nClusterITSpos > 1){
4697 }
else if (nClusterITSneg > 1 || nClusterITSpos > 1){
Double_t fPIDMinPPionRejectionLowP
Double_t fTofPIDnSigmaAboveElectronLine
Bool_t SetMaxMomPiondEdxCut(Int_t piMaxMomdedxSigmaCut)
void GetCorrectEtaShiftFromPeriod(TString periodName)
AliPIDResponse * fPIDResponse
Double_t fPIDnSigmaAbovePionLine
Bool_t SetSinglePtCut(Int_t singlePtCut)
Bool_t SetCut(cutIds cutID, Int_t cut)
Bool_t fTriggerSelectedManually
Bool_t fDoPhotonAsymmetryCut
Bool_t PhotonIsSelectedAODMC(AliAODMCParticle *particle, TClonesArray *aodmcArray, Bool_t checkForConvertedGamma=kTRUE)
Bool_t SetMultiplicityMethod(Int_t multiplicityMethod)
Double_t fDoKaonRejectionLowP
Bool_t SetV0Finder(Int_t v0FinderType)
Int_t IsParticleFromBGEvent(Int_t index, AliMCEvent *mcEvent, AliVEvent *InputEvent=0x0)
Bool_t SetTRDElectronCut(Int_t TRDElectronCut)
Double_t GetArmenterosAlpha() const
Double_t fPIDMinPProtonRejectionLowP
virtual Double_t GetPz() const =0
Bool_t PIDProbabilityCut(AliConversionPhotonBase *photon, AliVEvent *event)
Double_t fPIDMinPKaonRejectionLowP
Int_t IsEventAcceptedByConversionCut(AliConversionCuts *ReaderCuts, AliVEvent *InputEvent, AliMCEvent *MCEvent, Int_t isHeavyIon)
void GetNotRejectedParticles(Int_t rejection, TList *HeaderList, AliVEvent *MCEvent)
Bool_t ArmenterosQtCut(AliConversionPhotonBase *photon)
Bool_t SetQtMaxCut(Int_t QtMaxCut)
Bool_t PhotonCuts(AliConversionPhotonBase *photon, AliVEvent *event)
Bool_t SetPhotonAsymmetryCut(Int_t doPhotonAsymmetryCut)
static AliVTrack * GetTrack(AliVEvent *event, Int_t label)
Int_t fRejectExtraSignals
void FillPhotonCutIndex(Int_t photoncut)
Bool_t fDoReweightHistoMCK0s
Bool_t SetPsiPairCut(Int_t psiCut)
Bool_t InPlaneOutOfPlaneCut(Double_t photonPhi, Double_t eventPlaneAngle=-100, Bool_t fill=kTRUE)
void PrintCutsWithValues()
Bool_t SetEtaCut(Int_t etaCut)
Bool_t IsCentralitySelected(AliVEvent *fInputEvent, AliMCEvent *fMCEvent=NULL)
Float_t GetPsiPair() const
Bool_t SetTPCdEdxCutPionLine(Int_t pidedxSigmaCut)
Double_t GetConversionZ() const
AliConversionCuts(const char *name="V0Cuts", const char *title="V0 Cuts")
Float_t GetDCAzToPrimVtx() const
Bool_t SetRejectExtraSignalsCut(Int_t extraSignal)
Bool_t PhotonIsSelected(AliConversionPhotonBase *photon, AliVEvent *event)
TString fNameHistoReweightingEta
virtual Double_t GetPx() const =0
Bool_t CosinePAngleCut(const AliConversionPhotonBase *photon, AliVEvent *event) const
TString * fGeneratorNames
Int_t * fNotRejectedStart
Double_t fDoPionRejectionLowP
Bool_t SpecificTrackCuts(AliAODTrack *negTrack, AliAODTrack *posTrack, Int_t &cutIndex)
Cut functions.
TH1D * hReweightMCHistEta
Bool_t SetIsHeavyIon(Int_t isHeavyIon)
Bool_t RejectToCloseV0s(AliAODConversionPhoton *photon, TList *photons, Int_t nV0)
Double_t fChi2CutConversion
static AliESDtrack * GetESDTrack(AliESDEvent *event, Int_t label)
TString fSpecialSubTriggerName
void FillElectonLabelArray(AliAODConversionPhoton *photon, Int_t nV0)
UChar_t DeterminePhotonQualityAOD(AliAODConversionPhoton *, AliVEvent *)
Bool_t IsTriggerSelected(AliVEvent *fInputEvent)
Bool_t SetTPCdEdxCutElectronLine(Int_t ededxSigmaCut)
Double_t fPIDnSigmaAboveElectronLine
Bool_t SetSharedElectronCut(Int_t sharedElec)
Float_t GetChi2perNDF() const
Double_t fLineCutZRSlopeMin
virtual Double_t GetPhotonP() const =0
Bool_t VertexZCut(AliVEvent *fInputEvent)
Double_t GetArmenterosQt() const
Bool_t PsiPairCut(const AliConversionPhotonBase *photon) const
Int_t fDetectorCentrality
Bool_t PhotonIsSelectedMC(TParticle *particle, AliMCEvent *mcEvent, Bool_t checkForConvertedGamma=kTRUE)
AliAnalysisUtils * fUtils
Double_t fDoProtonRejectionLowP
Bool_t SetDCAZPhotonPrimVtxCut(Int_t DCAZPhotonPrimVtx)
Bool_t fDoQtGammaSelection
Int_t GetTrackLabelNegative() const
void DeterminePhotonQuality(AliVTrack *negTrack, AliVTrack *posTrack)
Bool_t SetCentralityMax(Int_t centralityBin)
Double_t fPIDProbabilityCutNegativeParticle
Int_t GetTrackLabelPositive() const
Bool_t SetTOFElectronPIDCut(Int_t TOFelectronPID)
Int_t fMultiplicityMethod
TH1F * hEtaDistV0sAfterdEdxCuts
Int_t GetTrackLabel(Int_t i) const
TH2F * hCentralityVsNumberOfPrimaryTracks
void SetEtaShift(Double_t etaShift)
Double_t fPIDnSigmaAtLowPAroundKaonLine
Int_t * fElectronLabelArray
Bool_t EventIsSelected(AliVEvent *fInputEvent, AliMCEvent *fMCEvent)
Int_t GetNumberOfContributorsVtx(AliVEvent *event)
Float_t GetDCArToPrimVtx() const
TString fSpecialTriggerName
virtual Double_t GetPhotonPt() const =0
Bool_t SetDCARPhotonPrimVtxCut(Int_t DCARPhotonPrimVtx)
Double_t fPIDnSigmaAtLowPAroundPionLine
virtual ~AliConversionCuts()
Double_t GetCosineOfPointingAngle(const AliConversionPhotonBase *photon, AliVEvent *event) const
void InitCutHistograms(TString name="", Bool_t preCut=kTRUE)
Bool_t SetChi2GammaCut(Int_t chi2GammaCut)
Double_t fMinPPhotonAsymmetryCut
Bool_t Data(TH1F *h, Double_t *rangefit, Bool_t writefit, Double_t &sgn, Double_t &errsgn, Double_t &bkg, Double_t &errbkg, Double_t &sgnf, Double_t &errsgnf, Double_t &sigmafit, Int_t &status)
Bool_t SelectV0Finder(Bool_t onfly)
Bool_t AsymmetryCut(AliConversionPhotonBase *photon, AliVEvent *event)
Bool_t SetTPCClusterCut(Int_t clsTPCCut)
static AliConversionCuts * GetStandardCuts2010PbPb()
TString fNameHistoReweightingK0s
Bool_t SetRCut(Int_t RCut)
Double_t fTofPIDnSigmaBelowElectronLine
Bool_t SetInPlaneOutOfPlane(Int_t inOutPlane)
Double_t fPIDnSigmaAbovePionLineHighPt
Double_t GetConversionY() const
Bool_t SetCosPAngleCut(Int_t cosCut)
Bool_t fDoReweightHistoMCEta
Bool_t SetMinMomPiondEdxCut(Int_t piMinMomdedxSigmaCut)
Double_t fPIDTRDEfficiency
Bool_t fDoPhotonQualitySelectionCut
Bool_t TracksAreSelected(AliVTrack *negTrack, AliVTrack *posTrack)
Bool_t fUseCorrectedTPCClsInfo
TH1F * hTriggerClassSelected
virtual Double_t GetPy() const =0
static AliConversionCuts * GetStandardCuts2010pp()
Bool_t SetSelectSubTriggerClass(Int_t selectSpecialSubTriggerClass)
UChar_t GetPhotonQuality() const
Bool_t GetUseNewMultiplicityFramework(TString period)
Double_t fPIDnSigmaBelowElectronLine
Bool_t SetCentralityMin(Int_t useCentrality)
Int_t fNSpecialSubTriggerOptions
Float_t GetWeightForMeson(TString period, Int_t index, AliMCEvent *mcEvent, AliVEvent *InputEvent=0x0)
void LoadReweightingHistosMCFromFile()
Bool_t SetToCloseV0sCut(Int_t toClose)
TH1D * hReweightMCHistPi0
TH2F * hPsiPairDeltaPhiafter
Double_t fPIDnSigmaAtLowPAroundProtonLine
Int_t GetFirstTPCRow(Double_t radius)
Double_t fLineCutZValueMin
Int_t fModCentralityClass
Bool_t InitializeCutsFromCutString(const TString analysisCutSelection)
Double_t fPIDMaxPnSigmaAbovePionLine
Bool_t RejectSharedElectronV0s(AliAODConversionPhoton *photon, Int_t nV0, Int_t nV0s)
Bool_t AcceptanceCut(TParticle *particle, TParticle *ePos, TParticle *eNeg)
Int_t fAddedSignalPDGCode
TH1D * hReweightMCHistK0s
TString fPathTrFReweighting
Bool_t SetRemovePileUp(Int_t removePileUp)
Bool_t dEdxCuts(AliVTrack *track)
void CalculateDistanceOfClossetApproachToPrimVtx(const AliVVertex *primVertex)
Bool_t CorrectedTPCClusterCut(AliConversionPhotonBase *photon, AliVEvent *event)
TString fNameHistoReweightingPi0
Double_t fPIDProbabilityCutPositiveParticle
Bool_t SetSelectSpecialTrigger(Int_t selectSpecialTrigger)
Double_t GetCentrality(AliVEvent *event)
UInt_t fOfflineTriggerMask
Double_t fPIDMinPnSigmaAbovePionLine
Double_t GetConversionRadius() const
Double_t GetConversionX() const
static const char * fgkCutNames[kNCuts]
virtual Double_t GetPhotonEta() const =0
Bool_t AcceptanceCuts(AliConversionPhotonBase *photon)
Bool_t SetLowPRejectionCuts(Int_t LowPRejectionSigmaCut)
Bool_t fDoReweightHistoMCPi0
Double_t fMinPhotonAsymmetry