fAxisIso(),
fAxisCent(),
fAxisZ(),
- fAxisMEEta(),
+ fAxisTrigEta(),
+ fAxisAssEta(),
fAxisMEPhi(),
fCorrSparse(NULL),
fTrigSparse(NULL),
fAxesList.SetOwner(kFALSE);
fTrackAxisList.SetOwner(kFALSE);
fTrigAxisList.SetOwner(kFALSE);
-
SetUpDefaultBins();
}
fAxisdEta.Set(32, -1.6, 1.6);
fAxisdEta.SetNameTitle("dEta", "delta eta");
+ fAxisTrigEta.SetNameTitle("tEta", "Eta");
+ fAxisTrigEta.Set(320, -0.8, 0.8);
+
+ fAxisAssEta.SetNameTitle("aEta", "Eta");
+ fAxisAssEta.Set(360, -0.9, 0.9);
+
fAxisdPhi.Set(32, -TMath::PiOver2(), 3*TMath::PiOver2());
fAxisdPhi.SetNameTitle("dPhi", "delta Phi");
fAxistPt.Set(13, tptbins);
fAxistPt.SetNameTitle("tPt", "trigger Pt");
- Double_t cptbins[19] = {0.7, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 5.0, 6.0, 8.0, 10.0, 12.5, 15, 20, 25, 30, 50, 100};
+ Double_t cptbins[19] = {0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 5.0, 6.0, 8.0, 10.0, 12.5, 15, 20, 25, 30, 50, 100};
fAxiscPt.Set(18, cptbins);
fAxiscPt.SetNameTitle("cPt", "track Pt");
fAxisCent.SetNameTitle("centrality", "centrality");
+ fAxisCent.Set(1, -999, 999);
fAxisZ.SetNameTitle("vtxz", "vtxz");
+ Double_t zbins[6] = {-10, -5, -1.5, 1.5, 5, 10 };
+ fAxisZ.Set(5, zbins);
fAxisIso.Set(1, -0.5, 2.5);
fAxisIso.SetNameTitle("iso", "isolation");
fAxesList.AddAt(&fAxisCent, 4);
fAxesList.AddAt(&fAxisZ, 5);
- fAxisMEEta.Set(320, -0.8, 0.8);
- fAxisMEEta.SetNameTitle("eta", "eta");
-
- fTrackAxisList.AddAt(&fAxisMEEta, 0);
+ fTrackAxisList.AddAt(&fAxisAssEta, 0);
fTrackAxisList.AddAt(&fAxistPt, 1);
fTrackAxisList.AddAt(&fAxiscPt, 2);
fTrackAxisList.AddAt(&fAxisCent, 3);
fTrackAxisList.AddAt(&fAxisZ, 4);
- fTrigAxisList.AddAt(&fAxisMEEta, 0);
+ fTrigAxisList.AddAt(&fAxisTrigEta, 0);
fTrigAxisList.AddAt(&fAxistPt, 1);
fTrigAxisList.AddAt(&fAxisCent, 2);
fTrigAxisList.AddAt(&fAxisZ, 3);
TAxis& GetAxisIso() { return fAxisIso; }\r
TAxis& GetAxisCent() { return fAxisCent; }\r
TAxis& GetAxisZ() { return fAxisZ; }\r
- TAxis& GetAxisMEEta() { return fAxisMEEta; }\r
+ TAxis& GetAxisTrigEta() { return fAxisTrigEta; }\r
+ TAxis& GetAxisAssEta() { return fAxisAssEta; }\r
TAxis& GetAxisMEPhi() { return fAxisMEPhi; }\r
\r
TList& GetAxisList() { return fAxesList; }\r
TAxis fAxisCent; //Centrality\r
TAxis fAxisZ; //vtx\r
\r
- TAxis fAxisMEEta ; //Eta axis for ME\r
+ TAxis fAxisTrigEta ; //Eta axis for ME\r
+ TAxis fAxisAssEta ; //Eta axis for ME\r
TAxis fAxisMEPhi ; //Phi axis for ME\r
\r
THnSparseF * fCorrSparse; // Sparse for corr\r
AliAnaConvCorrBase(const AliAnaConvCorrBase&); // not implemented\r
AliAnaConvCorrBase& operator=(const AliAnaConvCorrBase&); // not implemented\r
\r
- ClassDef(AliAnaConvCorrBase, 6); // example of analysis\r
+ ClassDef(AliAnaConvCorrBase, 7); // example of analysis\r
\r
};\r
\r
fDeltaAODBranchName("AliAODGammaConversion_gamma"),
fAxistPt(),
fAxiscPt(),
- fAxisEta(),
+ fAxisdEta(),
+ fAxisTrigEta(),
+ fAxisAssEta(),
fAxisPhi(),
fAxisCent(),
fAxisZ(),
fDoPhoton(kFALSE)
{
//constructor
+
+ Double_t tptbins[10] = {0.1, 3.0, 4.0, 5.0, 6.0, 8.0, 10.0, 15, 50, 100};
fAxistPt.SetNameTitle("tPtAxis", "tPt");
- fAxistPt.Set(20, 0, 100);
+ fAxistPt.Set(9, tptbins);
+ Double_t cptbins[13] = {0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 4.0, 5.0, 8.0, 10.0, 25, 50, 100};
fAxiscPt.SetNameTitle("cPtAxis", "cPt");
- fAxiscPt.Set(20, 0, 100);
+ fAxiscPt.Set(12, cptbins);
- fAxisEta.SetNameTitle("EtaAxis", "Eta");
- fAxisEta.Set(180, -0.9, 0.9);
+ fAxisdEta.SetNameTitle("dEtaAxis", "Eta");
+ fAxisdEta.Set(36, -1.8, 1.8);
+
+ fAxisTrigEta.SetNameTitle("TrigEtaAxis", "Eta");
+ fAxisTrigEta.Set(320, -0.8, 0.8);
+
+ fAxisAssEta.SetNameTitle("AssEtaAxis", "Eta");
+ fAxisAssEta.Set(360, -0.9, 0.9);
fAxisPhi.SetNameTitle("PhiAxis", "Phi");
fAxisPhi.Set(128, 0, TMath::TwoPi());
///________________________________________________________________________
void AliAnalysisTaskdPhi::SetUpCorrObjects() {
- ///Creat corr obj
- // fIsoAna = new AliAnaConvIsolation();
-
+ //Set up corr objects
AliDebug(AliLog::kDebug + 5, "Set Up corr objects");
-
-
-
if(fDoPhoton) {
fPhotonCorr = new AliAnaConvCorrPhoton("PhotonCorr","photon %s");
- fPhotonCorr->GetAxisCent().Set(fAxisCent.GetNbins(), fAxisCent.GetXbins()->GetArray());
- fPhotonCorr->GetAxisZ().Set(fAxisZ.GetNbins(), fAxisZ.GetXbins()->GetArray());
- fPhotonCorr->GetAxistPt().Set(fAxistPt.GetNbins(), fAxistPt.GetXbins()->GetArray());
- fPhotonCorr->GetAxiscPt().Set(fAxiscPt.GetNbins(), fAxiscPt.GetXbins()->GetArray());
+ SetUpCorrAxes(fPhotonCorr);
fPhotonCorr->CreateHistograms();
fHistograms->Add(fPhotonCorr->GetHistograms());
}
fPionCorr = new AliAnaConvCorrPion("PionCorr", "pion");
- fPionCorr->GetAxisCent().Set(fAxisCent.GetNbins(), fAxisCent.GetXbins()->GetArray());
- fPionCorr->GetAxisZ().Set(fAxisZ.GetNbins(), fAxisZ.GetXbins()->GetArray());
- fPionCorr->GetAxistPt().Set(fAxistPt.GetNbins(), fAxistPt.GetXbins()->GetArray());
- fPionCorr->GetAxiscPt().Set(fAxiscPt.GetNbins(), fAxiscPt.GetXbins()->GetArray());
+ SetUpCorrAxes(fPionCorr);
fPionCorr->GetAxisM().Set(fAxisPiM.GetNbins(), fAxisPiM.GetXbins()->GetArray());
fPionCorr->CreateHistograms();
fHistograms->Add(fPionCorr->GetHistograms());
}
-
-
+///________________________________________________________________________
+void AliAnalysisTaskdPhi::SetUpCorrAxes(AliAnaConvCorrBase * corr) {
+ ///Set up axes in corr object
+ corr->GetAxisCent().Set(fAxisCent.GetNbins(), fAxisCent.GetXbins()->GetArray());
+ const Double_t * zbins = fAxisZ.GetXbins()->GetArray();
+ if(zbins) {
+ corr->GetAxisZ().Set(fAxisZ.GetNbins(), fAxisZ.GetXbins()->GetArray());
+ } else {
+ corr->GetAxisZ().Set(fAxisZ.GetNbins(), fAxisZ.GetBinLowEdge(1), fAxisZ.GetBinUpEdge(fAxisZ.GetNbins()));
+ }
+
+ corr->GetAxistPt().Set(fAxistPt.GetNbins(), fAxistPt.GetXbins()->GetArray());
+ corr->GetAxiscPt().Set(fAxiscPt.GetNbins(), fAxiscPt.GetXbins()->GetArray());
+ corr->GetAxisdEta().Set(fAxisdEta.GetNbins(), fAxisdEta.GetBinLowEdge(1), fAxisdEta.GetBinUpEdge(fAxisdEta.GetNbins()));
+ corr->GetAxisTrigEta().Set(fAxisTrigEta.GetNbins(), fAxisTrigEta.GetBinLowEdge(1), fAxisTrigEta.GetBinUpEdge(fAxisTrigEta.GetNbins()));
+ corr->GetAxisAssEta().Set(fAxisAssEta.GetNbins(), fAxisAssEta.GetBinLowEdge(1), fAxisAssEta.GetBinUpEdge(fAxisAssEta.GetNbins()));
+}
MEHistograms->Add(hMEvents);
hTrackCent = new TH2I("hTrackCent", "N accepted tracks vs centrality",
- fAxisCent.GetNbins() > 2 ? 100 : 1, -999, 999,
+ fAxisCent.GetNbins() > 2 ? 100 : 1, fAxisCent.GetBinLowEdge(1), fAxisCent.GetBinUpEdge(fAxisCent.GetNbins()),
750, 0, 1500);
MEHistograms->Add(hTrackCent);
///create track array
TObjArray tracks;
- const Double_t etalim[2] = { fAxisEta.GetBinLowEdge(1), fAxisEta.GetBinUpEdge(fAxisEta.GetNbins())};
+ const Double_t etalim[2] = { fAxisTrigEta.GetBinLowEdge(1), fAxisTrigEta.GetBinUpEdge(fAxisTrigEta.GetNbins())};
for(Int_t iTrack = 0; iTrack < fInputEvent->GetNumberOfTracks(); iTrack++) {
AliVTrack * track = static_cast<AliVTrack*>(fInputEvent->GetTrack(iTrack));
if(track->Pt() < fAxiscPt.GetBinLowEdge(1) ) continue;
void AliAnalysisTaskdPhi::Process(TObjArray * gammas, TObjArray * tracks, const Float_t cent, const Float_t vtxz) {
///Process stuff
- const Double_t etalim[2] = { fAxisEta.GetBinLowEdge(1), fAxisEta.GetBinUpEdge(fAxisEta.GetNbins())};
+ const Double_t etalim[2] = { fAxisTrigEta.GetBinLowEdge(1), fAxisTrigEta.GetBinUpEdge(fAxisTrigEta.GetNbins())};
if(DebugLevel() > 4) printf("Number of accepted gammas, tracks %d %d \n", gammas->GetEntriesFast(), tracks->GetEntriesFast());
AliAnaConvCorrBase * gCorr = fPhotonCorr; //GetCorrObject(vertexBin, centBin, fPhotonCorr);
virtual void UserCreateOutputObjects();
virtual void SetUpCorrObjects();
+ virtual void SetUpCorrAxes(AliAnaConvCorrBase * corr);
virtual void UserExec(Option_t *option);
virtual void Terminate(Option_t *);
- TAxis& GetAxistPt() { return fAxistPt; }
- TAxis& GetAxiscPt() { return fAxiscPt; }
- TAxis& GetAxisEta() { return fAxisEta; }
- TAxis& GetAxisPhi() { return fAxisPhi; }
- TAxis& GetAxisZ() { return fAxisZ; }
- TAxis& GetAxisCent() { return fAxisCent; }
- TAxis& GetAxisPiMass() { return fAxisPiM; }
+ TAxis& GetAxistPt() { return fAxistPt; }
+ TAxis& GetAxiscPt() { return fAxiscPt; }
+ TAxis& GetAxisdEta() { return fAxisdEta; }
+ TAxis& GetAxisTrigEta() { return fAxisTrigEta; }
+ TAxis& GetAxisAssEta() { return fAxisAssEta; }
+ TAxis& GetAxisPhi() { return fAxisPhi; }
+ TAxis& GetAxisZ() { return fAxisZ; }
+ TAxis& GetAxisCent() { return fAxisCent; }
+ TAxis& GetAxisPiMass() { return fAxisPiM; }
void SetV0Filter(AliConversionCuts * filter) { fV0Filter = filter; }
TAxis fAxistPt; //comment
TAxis fAxiscPt; //comment
- TAxis fAxisEta; //comment
+ TAxis fAxisdEta; //comment
+ TAxis fAxisTrigEta; //comment
+ TAxis fAxisAssEta; //comment
TAxis fAxisPhi; //comment
TAxis fAxisCent; //comment
TAxis fAxisZ; //comment
AliAnalysisTaskdPhi(const AliAnalysisTaskdPhi&); // not implemented
AliAnalysisTaskdPhi& operator=(const AliAnalysisTaskdPhi&); // not implemented
- ClassDef(AliAnalysisTaskdPhi, 5);
+ ClassDef(AliAnalysisTaskdPhi, 6);
};
inline THnSparseF * AliAnalysisTaskdPhi::GetMEHistogram(Int_t binz, Int_t binc, TObjArray * array) {
AliAnalysisTaskdPhi *task = new AliAnalysisTaskdPhi((TString("slindalTask_dPhi")+"_" + v0Cut));
///Axes for histrograms
- Double_t cptbins[14] = {0.7, 1.0, 1.5, 2.0, 2.5, 3.0, 4.0, 5.0, 6.0, 8.0, 10.0, 15, 50, 100};
- task->GetAxiscPt().Set(13, cptbins);
+ Double_t cptbins[13] = {0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 4.0, 5.0, 8.0, 10.0, 25, 50, 100};
+ task->GetAxiscPt().Set(12, cptbins);
Double_t tptbins[10] = {2.0, 3.0, 4.0, 5.0, 6.0, 8.0, 10.0, 15, 50, 100};
task->GetAxistPt().Set(9, tptbins);
if(pbpb) {
- Double_t centBins[6] = {0, 5, 10, 30, 60, 90};
- task->GetAxisCent().Set(5, centBins);
+ Double_t centBins[7] = {0, 5, 10, 30, 50, 60, 90};
+ task->GetAxisCent().Set(6, centBins);
} else {
- task->GetAxisCent().Set(1, -9999, 9999);
+ Double_t centBins[2] = {-9999, 9999};
+ task->GetAxisCent().Set(1, centBins);
}
Double_t zbins[6] = { -10, -5, -1.5, 1.5, 5, 10};
Double_t mbins[17] = {0.07, 0.09, 0.1, 0.11, 0.12, 0.125, 0.1275, 0.13, 0.14, 0.1425, 0.145, 0.15, 0.16, 0.18, 0.2, 0.24, 0.26};
task->GetAxisPiMass().Set(16, mbins);
- //Track cuts for associated tracks
- AliConversionTrackCuts * cuts = new AliConversionTrackCuts();
- cuts->SetDCAZmax(2.5);
- cuts->SetDCAXYmax(1.5);
- cuts->SetTPCminNClusters(50);
- cuts->SetTPCCFoundClusters(0.6);
- cuts->SetTPCmaxChi2(10.0);
- cuts->SetRejectKinkDaughters();
- cuts->SetRequireTPCRefit(kFALSE);
- cuts->Print();
- task->SetTrackCuts(cuts);
+
+ //AliConversionTrackCuts * cuts = new AliConversionTrackCuts();
+ AliESDtrackCuts * trackCuts = new AliESDtrackCuts();
+
+ TFormula *f1NClustersTPCLinearPtDep = new TFormula("f1NClustersTPCLinearPtDep","70.+30./20.*x");
+ trackCuts->SetMinNClustersTPCPtDep(f1NClustersTPCLinearPtDep, 100);
+ trackCuts->SetMaxChi2PerClusterTPC(4);
+ trackCuts->SetRequireTPCStandAlone(kTRUE);
+ trackCuts->SetAcceptKinkDaughters(kFALSE);
+ trackCuts->SetRequireTPCRefit(kTRUE);
+ trackCuts->SetMaxFractionSharedTPCClusters(0.4);
+
+ trackCuts->SetMaxDCAToVertexXY(2.4);
+ trackCuts->SetMaxDCAToVertexZ(3.2);
+ trackCuts->SetDCAToVertex2D(kTRUE);
+
+ trackCuts->SetMaxChi2PerClusterITS(36);
+ trackCuts->SetMaxChi2TPCConstrainedGlobal(36);
+
+ trackCuts->SetRequireSigmaToVertex(kFALSE);
+
+ trackCuts->SetEtaRange(-0.9, 0.9);
+ trackCuts->SetPtRange(cptbins[0], 1000000.0);
+
+ trackCuts->SetRequireITSRefit(kFALSE);
+
+ //cuts->SetESDCuts(esdTrackCuts);
+ task->SetTrackCuts(trackCuts);
+
///Pion cuts
- AliConversionMesonCuts * picuts = new AliConversionMesonCuts();
+ AliConversionMesonCuts * picuts = new AliConversionMesonCuts("dphi_pioncuts");
picuts->InitializeCutsFromCutString(pionCut);
task->SetMesonFilter(picuts);
///V0 analysis cuts (applied before pion analysis)
AliConversionCuts * gcuts = new AliConversionCuts();
gcuts->InitializeCutsFromCutString(photoncut);
- task->SetV0Filter(gcuts);
+ task->SetPhotonFilter(gcuts);
}
//================================================
//below the trunk version
AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
TString baseString("slindal_dPhi_");
- baseString += v0Cut + "_";
+ baseString += v0Cut + "_" + pionCut;
//dumm output container
AliAnalysisDataContainer *coutput0 =
//define output containers, please use 'username'_'somename'
AliAnalysisDataContainer *coutput1 =
mgr->CreateContainer(baseString+"me", TList::Class(),
- AliAnalysisManager::kOutputContainer,baseString+"me.root");
+ AliAnalysisManager::kOutputContainer,baseString+".root");
//define output containers, please use 'username'_'somename'
- AliAnalysisDataContainer *coutput2 =
- mgr->CreateContainer(baseString+"photon", TList::Class(),
- AliAnalysisManager::kOutputContainer, baseString+"photon.root");
- //define output containers, please use 'username'_'somename'
- AliAnalysisDataContainer *coutput3 =
- mgr->CreateContainer(baseString+"pion", TList::Class(),
- AliAnalysisManager::kOutputContainer,baseString+"pion.root");
//========= Add PID Reponse to ANALYSIS manager ====
Bool_t isMC = kFALSE;
//========= Set Cutnumber for V0Reader ================================
// TString cutnumber = "100000000008400100150000000";
//========= Add V0 Reader to ANALYSIS manager if not yet existent =====
- if( !(AliV0ReaderV1*)mgr->GetTask("V0ReaderV1") ){
+ AliV0ReaderV1 * fV0ReaderV1 = (AliV0ReaderV1*)mgr->GetTask("V0ReaderV1");
+ if( !fV0reader ){
AliV0ReaderV1 *fV0ReaderV1 = new AliV0ReaderV1("V0ReaderV1");
fV0ReaderV1->SetUseOwnXYZCalculation(kTRUE);
}
fV0ReaderV1->Init();
-
mgr->AddTask(fV0ReaderV1);
mgr->ConnectInput(fV0ReaderV1,0,cinput);
task->SetV0Reader(fV0ReaderV1);
///V0 analysis cuts (applied before pion analysis)
AliConversionCuts * v0cuts = new AliConversionCuts();
v0cuts->InitializeCutsFromCutString(v0Cut);
+ task->SetV0Reader(fV0ReaderV1);
task->SetV0Filter(v0cuts);
}
mgr->ConnectInput (task, 0, cinput );
mgr->ConnectOutput (task, 0, coutput0);
mgr->ConnectOutput (task, 1, coutput1);
- mgr->ConnectOutput (task, 2, coutput2);
- mgr->ConnectOutput (task, 3, coutput3);
return task;
}