,fHistCentrDistr(0x0)
,fCentralityNoPassForFlattening(0)
,fptminAsso(0)
+,fSparsephipsiULS(0)
+,fSparsephipsiLS(0)
+,fSparseMassULS(0)
+,fSparseMassLS(0)
+,fAssoTPCCluster(0)
+,fAssoITSRefit(0)
+,fPhiCut(0)
{
//Named constructor
,fHistCentrDistr(0x0)
,fCentralityNoPassForFlattening(0)
,fptminAsso(0)
+,fSparsephipsiULS(0)
+,fSparsephipsiLS(0)
+,fSparseMassULS(0)
+,fSparseMassLS(0)
+,fAssoTPCCluster(0)
+,fAssoITSRefit(0)
+,fPhiCut(0)
{
//Default constructor
fPID = new AliHFEpid("hfePid");
if(!(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kCentral)) return;
}
if(fTrigger==1){
- if(!(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kSemiCentral)) return;
+
+ if ( !(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kAny) ) return;
+
+ TString firedTriggerClasses = static_cast<const AliAODEvent*>(InputEvent())->GetFiredTriggerClasses();
+
+ if ( ! ( firedTriggerClasses.Contains("CVLN_B2-B-NOPF-ALLNOTRD") || firedTriggerClasses.Contains("CVLN_R1-B-NOPF-ALLNOTRD") || firedTriggerClasses.Contains("CSEMI_R1-B-NOPF-ALLNOTRD") ) ) return;
}
if(fTrigger==2){
if(!(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kEMCEGA)) return;
if(fTrigger==4){
if(!(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & (AliVEvent::kCentral | AliVEvent::kSemiCentral))) return;
}
+ if(fTrigger==5){
+ if(!(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & (AliVEvent::kSemiCentral))) return;
+ }
+
//---------------CENTRALITY AND EVENT SELECTION-----------------------
//==========================================================================================================
Double_t eta = track->Eta();
Double_t phi = track->Phi();
+
+ if(fPhiCut){
+ if(phi<1.4 || phi >3.14)continue; //to have same EMCal phi acceptance
+ }
+
+
+
Double_t pt = track->Pt(); //pt track after cuts
if(pt<fpTCutmin || pt>fpTCutmax) continue;
//==========================================================================================================
//=========================================================================================================
//----------------------Selection and Flow of Photonic Electrons-----------------------------
Bool_t fFlagPhotonicElec = kFALSE;
- SelectPhotonicElectron(iTracks,track,fFlagPhotonicElec);
+ SelectPhotonicElectron(iTracks,track,fTPCnSigma,evPlAngV0,fFlagPhotonicElec);
if(fFlagPhotonicElec){fPhotoElecPt->Fill(pt);}
// Semi inclusive electron
if(!fFlagPhotonicElec){fSemiInclElecPt->Fill(pt);}
//----------hfe end---------
}
//_________________________________________
-void AliAnalysisTaskFlowITSTPCTOFQCSP::SelectPhotonicElectron(Int_t itrack,const AliAODTrack *track, Bool_t &fFlagPhotonicElec)
+void AliAnalysisTaskFlowITSTPCTOFQCSP::SelectPhotonicElectron(Int_t itrack,const AliAODTrack *track,Float_t fTPCnSigma,Double_t evPlAngV0, Bool_t &fFlagPhotonicElec)
{
//Identify non-heavy flavour electrons using Invariant mass method
}
// if(!track->TestFilterMask(AliAODTrack::kTrkGlobalNoDCA)) continue; // TESTBIT FOR AOD double Counting
if(!trackAsso->TestFilterMask(AliAODTrack::kTrkTPCOnly)) continue;
- if((!(trackAsso->GetStatus()&AliESDtrack::kITSrefit)|| (!(trackAsso->GetStatus()&AliESDtrack::kTPCrefit)))) continue;
+
+ if(fAssoITSRefit){
+ if(!(trackAsso->GetStatus()&AliESDtrack::kITSrefit)) continue;
+ }
+
+ if(!(trackAsso->GetStatus()&AliESDtrack::kTPCrefit)) continue;
+
+// if((!(trackAsso->GetStatus()&AliESDtrack::kITSrefit)|| (!(trackAsso->GetStatus()&AliESDtrack::kTPCrefit)))) continue;
if(jTracks == itrack) continue;
nsigma = fPID->GetPIDResponse() ? fPID->GetPIDResponse()->NumberOfSigmasTPC(trackAsso, AliPID::kElectron) : 1000;
- if(trackAsso->GetTPCNcls() < 80) continue;
+ //if(trackAsso->GetTPCNcls() < 80) continue;
+ if(trackAsso->GetTPCNcls() < fAssoTPCCluster) continue;
if(nsigma < -3 || nsigma > 3) continue;
if(trackAsso->Eta()<-0.9 || trackAsso->Eta()>0.9) continue;
if(ptAsso < fptminAsso) continue;
if(fFlagLS) fInvmassLS1->Fill(mass);
if(fFlagULS) fInvmassULS1->Fill(mass);
+ if(fFlagULS){
+ Double_t MassSparseULS[3] = {
+ track->Pt(),
+ mass
+ };
+ fSparseMassULS->Fill(MassSparseULS);
+ }
+ if(fFlagLS){
+ Double_t MassSparseLS[3] = {
+ track->Pt(),
+ mass
+ };
+ fSparseMassLS->Fill(MassSparseLS);
+ }
+
+
if(mass<fInvmassCut){
if(fFlagULS){fULSElecPt->Fill(track->Pt());}
if(fFlagLS){fLSElecPt->Fill(track->Pt());}
}
+
+ Double_t phi = track->Phi();
+ Float_t DeltaPhi_eEP = TVector2::Phi_0_2pi(phi - evPlAngV0);
+ if(DeltaPhi_eEP > TMath::Pi()) {DeltaPhi_eEP = DeltaPhi_eEP - TMath::Pi();}
+
+
+ if(mass<fInvmassCut){
+ if(fFlagULS){
+ Double_t ulsSparse[3] = {
+ track->Pt(),
+ fTPCnSigma,
+ DeltaPhi_eEP
+ };
+ fSparsephipsiULS->Fill(ulsSparse);
+ }
+ if(fFlagLS){
+ Double_t lsSparse[3] = {
+ track->Pt(),
+ fTPCnSigma,
+ DeltaPhi_eEP
+ };
+ fSparsephipsiLS->Fill(lsSparse);
+ }
+ }
+
+
+
if(mass<fInvmassCut && fFlagULS && !flagPhotonicElec){
flagPhotonicElec = kTRUE;
}
fQAPidSparse->GetAxis(2)->SetTitle("tpcnsigma");
fOutputList->Add(fQAPidSparse);
//===========================================================================
+
+
+
+ Int_t binsphipsi[3] = { 100, 150, 6};
+ Double_t xminphipsi[3] = { 0., -15, 0};
+ Double_t xmaxphipsi[3] = { 5., 15, TMath::Pi()};
+ fSparsephipsiULS = new THnSparseF("fSparsephipsiULS", "pt:tpcnsigma:DeltaPhiULS", 3, binsphipsi, xminphipsi, xmaxphipsi);
+ fSparsephipsiULS->GetAxis(0)->SetTitle("pt (Gev/c)");
+ fSparsephipsiULS->GetAxis(1)->SetTitle("tpcnsigma");
+ fSparsephipsiULS->GetAxis(2)->SetTitle("DeltaPhiULS");
+ fOutputList->Add(fSparsephipsiULS);
+
+ fSparsephipsiLS = new THnSparseF("fSparsephipsiLS", "pt:tpcnsigma:DeltaPhiLS", 3, binsphipsi, xminphipsi, xmaxphipsi);
+ fSparsephipsiLS->GetAxis(0)->SetTitle("pt (Gev/c)");
+ fSparsephipsiLS->GetAxis(1)->SetTitle("tpcnsigma");
+ fSparsephipsiLS->GetAxis(2)->SetTitle("DeltaPhiLS");
+ fOutputList->Add(fSparsephipsiLS);
+
+
+ Int_t binsmass[2] = { 100, 200};
+ Double_t xminmass[2] = { 0., 0};
+ Double_t xmaxmass[2] = { 5., 1.};
+ fSparseMassULS = new THnSparseF("fSparseMassULS", "pt:mass (GeV/c^{2})", 2, binsmass, xminmass, xmaxmass);
+ fSparseMassULS->GetAxis(0)->SetTitle("pt (Gev/c)");
+ fSparseMassULS->GetAxis(1)->SetTitle("mass");
+ fOutputList->Add(fSparseMassULS);
+
+ fSparseMassLS = new THnSparseF("fSparseMassLS", "pt:mass (GeV/c^{2})", 2, binsmass, xminmass, xmaxmass);
+ fSparseMassLS->GetAxis(0)->SetTitle("pt (Gev/c)");
+ fSparseMassLS->GetAxis(1)->SetTitle("mass");
+ fOutputList->Add(fSparseMassLS);
+
+
PostData(1,fOutputList);
// create and post flowevent
fFlowEvent = new AliFlowEvent(10000);
}//...after centrality selectrion
//============================================================================================================================
if(fMultCut){
- if(fTrigger==1 || fTrigger==4){
+ if(fTrigger==1 || fTrigger==4 || fTrigger==5){
if(! (multTPC > (-36.73 + 1.48*multGlob) && multTPC < (62.87 + 1.78*multGlob))){
// cout <<" Trigger ==" <<fTrigger<< endl;
centralitypass = kFALSE;