AliAnalysisTaskSE(),\r
fListHist(0x0), \r
fAODAnalysis(kFALSE),\r
- fUseFilterAOD(kFALSE),\r
- fApplyCut(kTRUE),\r
fFilter(1<<4),\r
fAODMCHeader(NULL),\r
fAODArrayMCInfo(NULL),\r
fMaxopening3D(0.1),\r
fMaxInvmass(0.1),\r
fSetMassConstraint(kFALSE),\r
- fDebugLevel(0),\r
fMonitorEventPlane(kFALSE),\r
fMonitorContamination(kFALSE),\r
fMonitorPhotonic(kFALSE),\r
fcutsRP(0),\r
fcutsPOI(0),\r
fHFECuts(0),\r
- fRejectKinkMother(kFALSE),\r
fPID(0),\r
fPIDTOFOnly(0),\r
fPIDqa(0),\r
AliAnalysisTaskSE(name),\r
fListHist(0x0),\r
fAODAnalysis(kFALSE),\r
- fUseFilterAOD(kFALSE),\r
- fApplyCut(kTRUE),\r
fFilter(1<<4), \r
fAODMCHeader(NULL),\r
fAODArrayMCInfo(NULL),\r
fMaxopening3D(0.1),\r
fMaxInvmass(0.1),\r
fSetMassConstraint(kFALSE),\r
- fDebugLevel(0),\r
fMonitorEventPlane(kFALSE),\r
fMonitorContamination(kFALSE),\r
fMonitorPhotonic(kFALSE),\r
fcutsRP(0),\r
fcutsPOI(0),\r
fHFECuts(0),\r
- fRejectKinkMother(kFALSE),\r
fPID(0),\r
fPIDTOFOnly(0),\r
fPIDqa(0),\r
AliAnalysisTaskSE(ref),\r
fListHist(NULL),\r
fAODAnalysis(ref.fAODAnalysis), \r
- fUseFilterAOD(ref.fUseFilterAOD),\r
- fApplyCut(ref.fApplyCut),\r
fFilter(ref.fFilter),\r
fAODMCHeader(ref.fAODMCHeader),\r
fAODArrayMCInfo(ref.fAODArrayMCInfo),\r
fMaxopening3D(ref.fMaxopening3D),\r
fMaxInvmass(ref.fMaxInvmass),\r
fSetMassConstraint(ref.fSetMassConstraint),\r
- fDebugLevel(ref.fDebugLevel),\r
fMonitorEventPlane(ref.fMonitorEventPlane),\r
fMonitorContamination(ref.fMonitorContamination),\r
fMonitorPhotonic(ref.fMonitorPhotonic),\r
fcutsRP(NULL),\r
fcutsPOI(NULL),\r
fHFECuts(NULL),\r
- fRejectKinkMother(ref.fRejectKinkMother),\r
fPID(NULL),\r
fPIDTOFOnly(NULL),\r
fPIDqa(NULL),\r
AliAnalysisTaskFlowTPCTOFEPSP &target = dynamic_cast<AliAnalysisTaskFlowTPCTOFEPSP &>(o);\r
target.fListHist = fListHist;\r
target.fAODAnalysis = fAODAnalysis;\r
- target.fUseFilterAOD = fUseFilterAOD;\r
- target.fApplyCut = fApplyCut;\r
target.fFilter = fFilter;\r
target.fAODMCHeader = fAODMCHeader;\r
target.fAODArrayMCInfo = fAODArrayMCInfo;\r
target.fMaxopening3D = fMaxopening3D;\r
target.fMaxInvmass = fMaxInvmass;\r
target.fSetMassConstraint = fSetMassConstraint;\r
- target.fDebugLevel = fDebugLevel;\r
target.fMonitorEventPlane = fMonitorEventPlane;\r
target.fMonitorContamination = fMonitorContamination;\r
target.fMonitorPhotonic = fMonitorPhotonic;\r
target.fcutsRP = fcutsRP;\r
target.fcutsPOI = fcutsPOI;\r
target.fHFECuts = fHFECuts;\r
- target.fRejectKinkMother = fRejectKinkMother;\r
target.fPID = fPID;\r
target.fPIDTOFOnly = fPIDTOFOnly;\r
target.fPIDqa = fPIDqa;\r
//\r
// Destructor\r
//\r
+ \r
+\r
if(fArraytrack) delete fArraytrack;\r
if(fListHist) delete fListHist;\r
if(fcutsRP) delete fcutsRP;\r
if(fflowEvent) delete fflowEvent;\r
if(fHFEBackgroundCuts) delete fHFEBackgroundCuts;\r
if(fPIDBackground) delete fPIDBackground;\r
- if(fBackgroundSubtraction) delete fBackgroundSubtraction;\r
+ //if(fBackgroundSubtraction) delete fBackgroundSubtraction;\r
//if(fPIDBackgroundqa) delete fPIDBackgroundqa;\r
//if(fHFEVZEROEventPlane) delete fHFEVZEROEventPlane;\r
if ( fDebugStreamer ) delete fDebugStreamer;\r
+ \r
\r
}\r
//________________________________________________________________________\r
//AliFlowTrackCuts::trackParameterMix rpmix = AliFlowTrackCuts::kPure;\r
//AliFlowTrackCuts::trackParameterMix poimix = AliFlowTrackCuts::kPure;\r
\r
- AliDebug(2,"test");\r
-\r
AliDebug(2,"AliAnalysisTaskFlowTPCTOFEPSP: User create output objects");\r
- \r
+\r
+\r
// AOD or ESD\r
AliVEventHandler *inputHandler = dynamic_cast<AliVEventHandler *>(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());\r
if(!TString(inputHandler->IsA()->GetName()).CompareTo("AliAODInputHandler")){\r
\r
AliDebug(2,"AliAnalysisTaskFlowTPCTOFEPSP: common constants");\r
\r
- \r
// HFE cuts\r
\r
if(!fHFECuts){\r
if(!fPID->GetNumberOfPIDdetectors()) fPID->AddDetector("TPC", 0);\r
AliDebug(2,Form("AliAnalysisTaskFlowTPCTOFEPSP: GetNumber of PID detectors %d",fPID->GetNumberOfPIDdetectors()));\r
fPID->InitializePID();\r
- AliDebug(2,"Init ");\r
fPIDqa->Initialize(fPID);\r
- AliDebug(2,"Init qa");\r
fPID->SortDetectors();\r
- AliDebug(2,"Sort detectors");\r
-\r
+ \r
AliDebug(2,"AliAnalysisTaskFlowTPCTOFEPSP: pid and pidqa");\r
\r
- if(!fPIDTOFOnly->GetNumberOfPIDdetectors()) fPIDTOFOnly->AddDetector("TPC", 0);\r
+ if(!fPIDTOFOnly->GetNumberOfPIDdetectors()) {\r
+ fPIDTOFOnly->AddDetector("TOF", 0);\r
+ fPIDTOFOnly->ConfigureTOF(3.);\r
+ }\r
fPIDTOFOnly->InitializePID();\r
fPIDTOFOnly->SortDetectors();\r
\r
\r
if (fMonitorPhotonic) {\r
if(!fBackgroundSubtraction) fBackgroundSubtraction = new AliHFENonPhotonicElectron();\r
+ if(fAODAnalysis) fBackgroundSubtraction->SetAOD(kTRUE); \r
fBackgroundSubtraction->Init();\r
}\r
\r
for(Int_t i=0; i<=nBinsPt; i++) binLimPt[i]=(Double_t)TMath::Power(10,binLimLogPt[i]);\r
*/\r
\r
- Int_t nBinsPt = 24;\r
- Double_t binLimPt[25] = {0., 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1., 1.1, 1.2,\r
- 1.3, 1.4, 1.5, 1.75, 2., 2.25, 2.5, 3., 3.5, 4., 5.,\r
- 6.};\r
-\r
+ Int_t nBinsPt = 20;\r
+ Double_t binLimPt[21] = {0., 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1., 1.1, 1.2,\r
+ 1.3, 1.4, 1.5, 2., 2.5, 3., 4., 6.};\r
\r
Int_t nBinsPtPlus = fNbBinsPtQCumulant;\r
Double_t minPtPlus = fMinPtQCumulant;\r
Double_t binLimEta[nBinsEta+1];\r
for(Int_t i=0; i<=nBinsEta; i++) binLimEta[i]=(Double_t)minEta + (maxEta-minEta)/nBinsEta*(Double_t)i ;\r
\r
- Int_t nBinsStep = 7;\r
+ Int_t nBinsStep = 6;\r
Double_t minStep = 0.;\r
- Double_t maxStep = 7.;\r
+ Double_t maxStep = 6.;\r
Double_t binLimStep[nBinsStep+1];\r
for(Int_t i=0; i<=nBinsStep; i++) binLimStep[i]=(Double_t)minStep + (maxStep-minStep)/nBinsStep*(Double_t)i ;\r
\r
fDeltaPhiMapsTaggedPhotonicLS->Sumw2(); \r
AliDebug(2,"AliAnalysisTaskFlowTPCTOFEPSP: deltaphimapstaggedphotonicls"); \r
\r
- /*\r
- const Int_t nDimhbp=3;\r
- Int_t nBinhbp[nDimhbp] = {nBinsCos,nBinsC,nBinsPt};\r
- \r
- fCosPhiMapsTaggedPhotonic = new THnSparseF("CosPhiMapsTaggedPhotonic","CosPhiMapsTaggedPhotonic",nDimhbp,nBinhbp);\r
- fCosPhiMapsTaggedPhotonic->SetBinEdges(0,binLimCos);\r
- fCosPhiMapsTaggedPhotonic->SetBinEdges(1,binLimC);\r
- fCosPhiMapsTaggedPhotonic->SetBinEdges(2,binLimPt);\r
- fCosPhiMapsTaggedPhotonic->Sumw2();\r
- AliDebug(2,"AliAnalysisTaskFlowTPCTOFEPSP: cosphimapstaggedphotonic");\r
- \r
- fCosPhiMapsTaggedNonPhotonic = new THnSparseF("CosPhiMapsTaggedNonPhotonic","CosPhiMapsTaggedNonPhotonic",nDimhbp,nBinhbp);\r
- fCosPhiMapsTaggedNonPhotonic->SetBinEdges(0,binLimCos);\r
- fCosPhiMapsTaggedNonPhotonic->SetBinEdges(1,binLimC);\r
- fCosPhiMapsTaggedNonPhotonic->SetBinEdges(2,binLimPt);\r
- fCosPhiMapsTaggedNonPhotonic->Sumw2();\r
- AliDebug(2,"AliAnalysisTaskFlowTPCTOFEPSP: cosphimapstaggednonphotonic");\r
- \r
- fCosPhiMapsTaggedPhotonicLS = new THnSparseF("CosPhiMapsTaggedPhotonicLS","CosPhiMapsTaggedPhotonicLS",nDimhbp,nBinhbp);\r
- fCosPhiMapsTaggedPhotonicLS->SetBinEdges(0,binLimCos);\r
- fCosPhiMapsTaggedPhotonicLS->SetBinEdges(1,binLimC);\r
- fCosPhiMapsTaggedPhotonicLS->SetBinEdges(2,binLimPt);\r
- fCosPhiMapsTaggedPhotonicLS->Sumw2();\r
- AliDebug(2,"AliAnalysisTaskFlowTPCTOFEPSP: cosphimapstaggedphotonicls");\r
- */\r
const Int_t nDimMCSource=3;\r
Int_t nBinMCSource[nDimMCSource] = {nBinsC,nBinsPt,nBinsSource};\r
fMCSourceDeltaPhiMaps = new THnSparseF("MCSourceDeltaPhiMaps","MCSourceDeltaPhiMaps",nDimMCSource,nBinMCSource);\r
if(fMonitorPhotonic) {\r
fListHist->Add(fPIDBackgroundqa->MakeList("HFEpidBackgroundQA"));\r
fListHist->Add(fDeltaPhiMapsTaggedPhotonic);\r
- //fListHist->Add(fCosPhiMapsTaggedPhotonic);\r
fListHist->Add(fDeltaPhiMapsTaggedNonPhotonic);\r
- //fListHist->Add(fCosPhiMapsTaggedNonPhotonic);\r
fListHist->Add(fDeltaPhiMapsTaggedPhotonicLS);\r
- //fListHist->Add(fCosPhiMapsTaggedPhotonicLS);\r
fListHist->Add(fMCSourceDeltaPhiMaps);\r
fListHist->Add(fOppSignDeltaPhiMaps);\r
fListHist->Add(fSameSignDeltaPhiMaps);\r
\r
AliDebug(2,"AliAnalysisTaskFlowTPCTOFEPSP: add event plane");\r
\r
+ fListHist->Print();\r
+\r
PostData(1, fListHist);\r
//for(Int_t bincless = 0; bincless < fNbBinsCentralityQCumulant; bincless++) {\r
// PostData(bincless+2,fflowEvent); \r
// Loop over event\r
//\r
\r
+ \r
Double_t massElectron = 0.000511;\r
Double_t mcReactionPlane = 0.0;\r
\r
}\r
}\r
\r
- \r
+ \r
/////////////////\r
// centrality\r
/////////////////\r
AliDebug(2,"Does not pass the centrality correlation cut");\r
return;\r
}\r
- if(multTPC < (-40.7+1.49*multGlob) || multTPC > (55.0+1.79*multGlob)){\r
+ if(multTPC < (-36.81+1.48*multGlob) && multTPC > (63.03+1.78*multGlob)){\r
AliDebug(2,"Does not pass the multiplicity correlation cut");\r
return;\r
}\r
\r
}\r
else {\r
- \r
+\r
Double_t qVx, qVy; //TR: info\r
eventPlaneV0 = TVector2::Phi_0_2pi(vEPa->CalculateVZEROEventPlane(fInputEvent,10,2,qVx,qVy));\r
if(eventPlaneV0 > TMath::Pi()) eventPlaneV0 = eventPlaneV0 - TMath::Pi();\r
eventPlaneV0C = TVector2::Phi_0_2pi(vEPa->CalculateVZEROEventPlane(fInputEvent,9,2,qVx,qVy));\r
if(eventPlaneV0C > TMath::Pi()) eventPlaneV0C = eventPlaneV0C - TMath::Pi();\r
qV0C.Set(qVx,qVy);\r
- \r
+\r
if(eventPlaneV0<-900) return;\r
if(eventPlaneV0A<-900) return;\r
if(eventPlaneV0C<-900) return;\r
\r
+\r
eventPlaneV0=TVector2::Phi_0_2pi(eventPlaneV0);\r
eventPlaneV0A=TVector2::Phi_0_2pi(eventPlaneV0A);\r
eventPlaneV0C=TVector2::Phi_0_2pi(eventPlaneV0C);\r
valuensparsea[1] = eventPlanesub1a;\r
valuensparsea[2] = eventPlanesub2a;\r
} \r
- //printf("%f %f %f\n",valuensparsea[0],valuensparsea[1],valuensparsea[2]);\r
fEventPlane->Fill(&valuensparsea[0]);\r
\r
// Fill\r
}\r
}\r
\r
-\r
- ///////////////////////////////////\r
- // Loop for kink mother AOD\r
- //////////////////////////////////\r
- // Look at kink mother in case of AOD\r
- Int_t numberofvertices = 1;\r
- AliAODEvent *aodevent = NULL;\r
- Int_t numberofmotherkink = 0; \r
- if(fAODAnalysis) {\r
- aodevent = dynamic_cast<AliAODEvent *>(fInputEvent);\r
- if(aodevent) {\r
- numberofvertices = aodevent->GetNumberOfVertices();\r
- }\r
- }\r
- Double_t listofmotherkink[numberofvertices];\r
- if(fAODAnalysis && aodevent) {\r
- for(Int_t ivertex=0; ivertex < numberofvertices; ivertex++) {\r
- AliAODVertex *aodvertex = aodevent->GetVertex(ivertex);\r
- if(!aodvertex) continue;\r
- if(aodvertex->GetType()==AliAODVertex::kKink) {\r
- AliAODTrack *mother = (AliAODTrack *) aodvertex->GetParent();\r
- if(!mother) continue;\r
- Int_t idmother = mother->GetID();\r
- listofmotherkink[numberofmotherkink] = idmother;\r
- AliDebug(2,Form("ID %d",idmother));\r
- numberofmotherkink++;\r
- }\r
- }\r
- }\r
\r
//////////////////////////\r
// Loop over track\r
//////////////////////////\r
- \r
for(Int_t k = 0; k < nbtracks; k++){\r
\r
AliVTrack *track = (AliVTrack *) fInputEvent->GetTrack(k);\r
continue;\r
} \r
AliDebug(2,"Find AOD track on");\r
- if(fUseFilterAOD){\r
- if(!(aodtrack->TestFilterBit(fFilter))) continue; // Only process AOD tracks where the HFE is set\r
- }\r
+ if(!(aodtrack->TestFilterBit(fFilter))) continue; // Only process AOD tracks where the HFE is set\r
}\r
\r
- if(fApplyCut) {\r
-\r
- valuetrackingcuts[0] = track->Pt(); \r
- valuetrackingcuts[1] = 0;\r
- \r
- // RecKine: ITSTPC cuts \r
- if(!fHFECuts->CheckParticleCuts(AliHFEcuts::kStepRecKineITSTPC + AliHFEcuts::kNcutStepsMCTrack, (TObject *)track)) continue;\r
- if(fMonitorTrackCuts) fTrackingCuts->Fill(&valuetrackingcuts[0]);\r
-\r
- // Reject kink mother\r
- if(fRejectKinkMother) {\r
- if(fAODAnalysis) {\r
- Bool_t kinkmotherpass = kTRUE;\r
- for(Int_t kinkmother = 0; kinkmother < numberofmotherkink; kinkmother++) {\r
- if(track->GetID() == listofmotherkink[kinkmother]) {\r
- kinkmotherpass = kFALSE;\r
- continue;\r
- }\r
- }\r
- if(!kinkmotherpass) continue;\r
- }\r
- else {\r
- AliESDtrack *esdtrack = dynamic_cast<AliESDtrack *>(track);\r
- if(esdtrack){ \r
- if(esdtrack->GetKinkIndex(0) != 0) continue; \r
- } // Quick and dirty fix to reject both kink mothers and daughters\r
- }\r
- } \r
-\r
- valuetrackingcuts[1] = 1; \r
- if(fMonitorTrackCuts) fTrackingCuts->Fill(&valuetrackingcuts[0]); \r
- // RecPrim\r
- if(!fHFECuts->CheckParticleCuts(AliHFEcuts::kStepRecPrim + AliHFEcuts::kNcutStepsMCTrack, (TObject *)track)) continue;\r
- valuetrackingcuts[1] = 2; \r
- if(fMonitorTrackCuts) fTrackingCuts->Fill(&valuetrackingcuts[0]); \r
- \r
- // HFEcuts: ITS layers cuts\r
- if(!fHFECuts->CheckParticleCuts(AliHFEcuts::kStepHFEcutsITS + AliHFEcuts::kNcutStepsMCTrack, (TObject *)track)) continue;\r
- valuetrackingcuts[1] = 3; \r
- if(fMonitorTrackCuts) fTrackingCuts->Fill(&valuetrackingcuts[0]); \r
-\r
- // HFE cuts: TOF PID and mismatch flag\r
- if(!fHFECuts->CheckParticleCuts(AliHFEcuts::kStepHFEcutsTOF + AliHFEcuts::kNcutStepsMCTrack, (TObject *)track)) continue;\r
- valuetrackingcuts[1] = 4; \r
- if(fMonitorTrackCuts) fTrackingCuts->Fill(&valuetrackingcuts[0]); \r
- \r
- // HFE cuts: TPC PID cleanup\r
- if(!fHFECuts->CheckParticleCuts(AliHFEcuts::kStepHFEcutsTPC + AliHFEcuts::kNcutStepsMCTrack, (TObject *)track)) continue;\r
- valuetrackingcuts[1] = 5; \r
- if(fMonitorTrackCuts) fTrackingCuts->Fill(&valuetrackingcuts[0]); \r
- \r
- // HFEcuts: Nb of tracklets TRD0\r
- if(!fHFECuts->CheckParticleCuts(AliHFEcuts::kStepHFEcutsTRD + AliHFEcuts::kNcutStepsMCTrack, (TObject *)track)) continue;\r
- valuetrackingcuts[1] = 6; \r
- if(fMonitorTrackCuts) fTrackingCuts->Fill(&valuetrackingcuts[0]); \r
+ \r
+ valuetrackingcuts[0] = track->Pt(); \r
+ valuetrackingcuts[1] = 0;\r
+ \r
+ // RecKine: ITSTPC cuts \r
+ if(!fHFECuts->CheckParticleCuts(AliHFEcuts::kStepRecKineITSTPC + AliHFEcuts::kNcutStepsMCTrack, (TObject *)track)) continue;\r
+ if(fMonitorTrackCuts) fTrackingCuts->Fill(&valuetrackingcuts[0]);\r
+ \r
+ // RecPrim\r
+ if(!fHFECuts->CheckParticleCuts(AliHFEcuts::kStepRecPrim + AliHFEcuts::kNcutStepsMCTrack, (TObject *)track)) continue;\r
+ valuetrackingcuts[1] = 1; \r
+ if(fMonitorTrackCuts) fTrackingCuts->Fill(&valuetrackingcuts[0]); \r
+ \r
+ // HFEcuts: ITS layers cuts\r
+ if(!fHFECuts->CheckParticleCuts(AliHFEcuts::kStepHFEcutsITS + AliHFEcuts::kNcutStepsMCTrack, (TObject *)track)) continue;\r
+ valuetrackingcuts[1] = 2; \r
+ if(fMonitorTrackCuts) fTrackingCuts->Fill(&valuetrackingcuts[0]); \r
+ \r
+ // HFE cuts: TOF and mismatch flag\r
+ if(!fHFECuts->CheckParticleCuts(AliHFEcuts::kStepHFEcutsTOF + AliHFEcuts::kNcutStepsMCTrack, (TObject *)track)) continue;\r
+ valuetrackingcuts[1] = 3; \r
+ if(fMonitorTrackCuts) fTrackingCuts->Fill(&valuetrackingcuts[0]); \r
+ \r
+ // HFE cuts: TPC PID cleanup\r
+ if(!fHFECuts->CheckParticleCuts(AliHFEcuts::kStepHFEcutsTPC + AliHFEcuts::kNcutStepsMCTrack, (TObject *)track)) continue;\r
+ valuetrackingcuts[1] = 4; \r
+ if(fMonitorTrackCuts) fTrackingCuts->Fill(&valuetrackingcuts[0]); \r
+ \r
+ // HFEcuts: Nb of tracklets TRD0\r
+ if(!fHFECuts->CheckParticleCuts(AliHFEcuts::kStepHFEcutsTRD + AliHFEcuts::kNcutStepsMCTrack, (TObject *)track)) continue;\r
+ valuetrackingcuts[1] = 5; \r
+ if(fMonitorTrackCuts) fTrackingCuts->Fill(&valuetrackingcuts[0]); \r
\r
- }\r
AliDebug(2,"Survived");\r
\r
/////////////////////////////////////////////////////////\r
AliDebug(2,Form("A: Number of tracks %d",fflowEvent->NumberOfTracks()));\r
for(Int_t iRPs=0; iRPs< fflowEvent->NumberOfTracks(); iRPs++) {\r
AliFlowTrack *iRP = (AliFlowTrack*) (fflowEvent->GetTrack(iRPs));\r
- if(!iRP) continue;\r
//if(!iRP->InRPSelection()) continue;\r
if( TMath::Abs(idtrack) == TMath::Abs(iRP->GetID()) ) {\r
iRP->SetForPOISelection(kTRUE);\r
fProfileCosPhiMaps->Fill(valuensparsehprofile[1],valuensparsehprofile[2],valuensparseh[0]); //TR: info\r
}\r
}\r
- \r
+\r
if(fMonitorPhotonic) {\r
Int_t indexmother = -1;\r
Int_t source = 1;\r
fArraytrack = NULL;\r
}\r
}\r
- \r
+\r
+ fBackgroundSubtraction->CountPoolAssociated(fInputEvent,binct);\r
+\r
PostData(1, fListHist);\r
+ \r
\r
\r
}\r