Float_t gammaPsiPair = gamma->GetPsiPair();
Float_t gammaCosPointing = fConversionCuts->GetCosineOfPointingAngle(gamma,event);
Float_t gammaMass = gamma->GetMass();
- Float_t dcaToPrim[2];
- gamma->GetDistanceOfClossetApproachToPrimVtx(fInputEvent->GetPrimaryVertex(),dcaToPrim);
TVectorF conversionPoint(3);
conversionPoint(0) = gamma->GetConversionX();
conversionPoint(1) = gamma->GetConversionY();
<< "psipair=" << gammaPsiPair
<< "cosPoint=" << gammaCosPointing
<< "mass="<< gammaMass
- << "dcaR="<< dcaToPrim[0]
- << "dcaZ="<< dcaToPrim[1]
- << "TruePhoton=" << isTruePhoton
+ << "TruePhoton=" << isTruePhoton
<< "conversionPoint=" << &conversionPoint
<< "daugtherProp.=" << &daughterProp
<< "\n";
<< "psipair=" << gammaPsiPair
<< "cosPoint=" << gammaCosPointing
<< "mass="<< gammaMass
- << "dcaR="<< dcaToPrim[0]
- << "dcaZ="<< dcaToPrim[1]
- << "conversionPoint=" << &conversionPoint
+ << "conversionPoint=" << &conversionPoint
<< "daugtherProp.=" << &daughterProp
<< "\n";
}
fCutFolder(NULL),
fESDList(NULL),
fBackList(NULL),
+ fMotherList(NULL),
fTrueList(NULL),
fMCList(NULL),
fOutputContainer(0),
fMoveParticleAccordingToVertex(kFALSE),
fIsHeavyIon(kFALSE),
fDoMesonAnalysis(kTRUE),
+ fDoChicAnalysis(kFALSE),
+ fDoMesonQA(kFALSE),
fIsFromMBHeader(kTRUE),
fIsMC(kFALSE)
{
fCutFolder(NULL),
fESDList(NULL),
fBackList(NULL),
+ fMotherList(NULL),
fTrueList(NULL),
fMCList(NULL),
fOutputContainer(0),
fMoveParticleAccordingToVertex(kFALSE),
fIsHeavyIon(kFALSE),
fDoMesonAnalysis(kTRUE),
+ fDoChicAnalysis(kFALSE),
+ fDoMesonQA(kFALSE),
fIsFromMBHeader(kTRUE),
fIsMC(kFALSE)
{
fGammasPool = 0x0;
}
}
-
//___________________________________________________________
void AliAnalysisTaskGammaConvDalitzV1::InitBack(){
- Double_t *zBinLimitsArray= new Double_t[9];
- zBinLimitsArray[0] = -50.00;
- zBinLimitsArray[1] = -3.375;
- zBinLimitsArray[2] = -1.605;
- zBinLimitsArray[3] = -0.225;
- zBinLimitsArray[4] = 1.065;
- zBinLimitsArray[5] = 2.445;
- zBinLimitsArray[6] = 4.245;
- zBinLimitsArray[7] = 50.00;
- zBinLimitsArray[8] = 1000.00;
-
- Double_t *multiplicityBinLimitsArrayTracks= new Double_t[6];
- multiplicityBinLimitsArrayTracks[0] = 0;
- multiplicityBinLimitsArrayTracks[1] = 8.5;
- multiplicityBinLimitsArrayTracks[2] = 16.5;
- multiplicityBinLimitsArrayTracks[3] = 27.5;
- multiplicityBinLimitsArrayTracks[4] = 41.5;
- multiplicityBinLimitsArrayTracks[5] = 200.;
-
- if(fIsHeavyIon){
- multiplicityBinLimitsArrayTracks[0] = 0;
- multiplicityBinLimitsArrayTracks[1] = 200.;
- multiplicityBinLimitsArrayTracks[2] = 500.;
- multiplicityBinLimitsArrayTracks[3] = 1000.;
- multiplicityBinLimitsArrayTracks[4] = 1500.;
- multiplicityBinLimitsArrayTracks[5] = 5000.;
- }
-
- Double_t *multiplicityBinLimitsArrayV0s= new Double_t[5];
-
- multiplicityBinLimitsArrayV0s[0] = 2;
- multiplicityBinLimitsArrayV0s[1] = 3;
- multiplicityBinLimitsArrayV0s[2] = 4;
- multiplicityBinLimitsArrayV0s[3] = 5;
- multiplicityBinLimitsArrayV0s[4] = 9999;
-
- if(fIsHeavyIon){
- multiplicityBinLimitsArrayV0s[0] = 2;
- multiplicityBinLimitsArrayV0s[1] = 10;
- multiplicityBinLimitsArrayV0s[2] = 30;
- multiplicityBinLimitsArrayV0s[3] = 50;
- multiplicityBinLimitsArrayV0s[4] = 9999;
- }
-
const Int_t nDim = 4;
- Int_t nBins[nDim] = {1000,250,8,5};
- Double_t xMin[nDim] = {0,0, 0,0};
- Double_t xMax[nDim] = {1,25,8,5};
-
- sESDMotherInvMassPtZM = new THnSparseF*[fnCuts];
+ Int_t nBins[nDim] = {800,250,7,4};
+ Double_t xMin[nDim] = {0,0, 0,0};
+ Double_t xMax[nDim] = {0.8,25,7,4};
+
+ sESDMotherInvMassPtZM = new THnSparseF*[fnCuts];
sESDMotherBackInvMassPtZM = new THnSparseF*[fnCuts];
-
fBGHandler = new AliGammaConversionAODBGHandler*[fnCuts];
-
+ //fBGHandlerRP = new AliConversionAODBGHandlerRP*[fnCuts];
for(Int_t iCut = 0; iCut<fnCuts;iCut++){
+ //if (((AliConversionMesonCuts*)fCutMesonArray->At(iCut))->DoBGCalculation()){
+
+
+ TString cutstringElectron = ((AliDalitzElectronCuts*)fCutElectronArray->At(iCut))->GetCutNumber();
+ TString cutstringMeson = ((AliConversionMesonCuts*)fCutMesonArray->At(iCut))->GetCutNumber();
+ TString cutstringGamma = ((AliConversionCuts*)fCutGammaArray->At(iCut))->GetCutNumber();
+
+
+
+ Int_t collisionSystem = atoi((TString)(((AliConversionCuts*)fCutGammaArray->At(iCut))->GetCutNumber())(0,1));
+ Int_t centMin = atoi((TString)(((AliConversionCuts*)fCutGammaArray->At(iCut))->GetCutNumber())(1,1));
+ Int_t centMax = atoi((TString)(((AliConversionCuts*)fCutGammaArray->At(iCut))->GetCutNumber())(2,1));
+
+ if(collisionSystem == 1 || collisionSystem == 2 ||
+ collisionSystem == 5 || collisionSystem == 8 ||
+ collisionSystem == 9){
+ centMin = centMin*10;
+ centMax = centMax*10;
+ }
+ else if(collisionSystem == 3 || collisionSystem == 6){
+ centMin = centMin*5;
+ centMax = centMax*5;
+ }
+ else if(collisionSystem == 4 || collisionSystem == 7){
+ centMin = ((centMin*5)+45);
+ centMax = ((centMax*5)+45);
+ }
- TString cutstringElectron = ((AliDalitzElectronCuts*)fCutElectronArray->At(iCut))->GetCutNumber();
- TString cutstringMeson = ((AliConversionMesonCuts*)fCutMesonArray->At(iCut))->GetCutNumber();
- TString cutstringGamma = ((AliConversionCuts*)fCutGammaArray->At(iCut))->GetCutNumber();
+ fBackList[iCut] = new TList();
+ fBackList[iCut]->SetName(Form("%s_%s_%s Back histograms",cutstringGamma.Data(),cutstringElectron.Data(),cutstringMeson.Data()));
+ fBackList[iCut]->SetOwner(kTRUE);
+ fCutFolder[iCut]->Add(fBackList[iCut]);
+ sESDMotherBackInvMassPtZM[iCut] = new THnSparseF("Back_Back_InvMass_Pt_z_m","Back_Back_InvMass_Pt_z_m",nDim,nBins,xMin,xMax);
+ fBackList[iCut]->Add(sESDMotherBackInvMassPtZM[iCut]);
- fBackList[iCut] = new TList();
- fBackList[iCut]->SetName(Form("%s_%s_%s Back histograms",cutstringGamma.Data(),cutstringElectron.Data(),cutstringMeson.Data()));
- fBackList[iCut]->SetOwner(kTRUE);
- fCutFolder[iCut]->Add(fBackList[iCut]);
+ fMotherList[iCut] = new TList();
+ fMotherList[iCut]->SetName(Form("%s_%s_%s Mother histograms",cutstringGamma.Data(),cutstringElectron.Data(),cutstringMeson.Data()));
+ fMotherList[iCut]->SetOwner(kTRUE);
+ fCutFolder[iCut]->Add(fMotherList[iCut]);
- sESDMotherInvMassPtZM[iCut] = new THnSparseF("Back_Mother_InvMass_Pt_z_m","Back_Mother_InvMass_Pt_z_m",nDim,nBins,xMin,xMax);
- sESDMotherInvMassPtZM[iCut]->Sumw2();
- fBackList[iCut]->Add(sESDMotherInvMassPtZM[iCut]);
- sESDMotherBackInvMassPtZM[iCut] = new THnSparseF("Back_Back_InvMass_Pt_z_m","Back_Back_InvMass_Pt_z_m",nDim,nBins,xMin,xMax);
- sESDMotherBackInvMassPtZM[iCut]->Sumw2();
- fBackList[iCut]->Add(sESDMotherBackInvMassPtZM[iCut]);
+ sESDMotherInvMassPtZM[iCut] = new THnSparseF("Back_Mother_InvMass_Pt_z_m","Back_Mother_InvMass_Pt_z_m",nDim,nBins,xMin,xMax);
+ fMotherList[iCut]->Add(sESDMotherInvMassPtZM[iCut]);
- if(((AliDalitzElectronCuts*)fCutElectronArray->At(iCut))->UseTrackMultiplicity()) {
- fBGHandler[iCut] = new AliGammaConversionAODBGHandler(9,6,((AliDalitzElectronCuts*)fCutElectronArray->At(iCut))->NumberOfRotationEvents());
- fBGHandler[iCut]->Initialize(zBinLimitsArray, multiplicityBinLimitsArrayTracks);
- }
- else{
- fBGHandler[iCut] = new AliGammaConversionAODBGHandler(9,5,((AliDalitzElectronCuts*)fCutElectronArray->At(iCut))->NumberOfRotationEvents());
- fBGHandler[iCut]->Initialize(zBinLimitsArray, multiplicityBinLimitsArrayV0s);
- }
- if( ( (AliDalitzElectronCuts*)fCutElectronArray->At(iCut))->GetBKGMethod() == 3 ){
+
+ fBGHandler[iCut] = new AliGammaConversionAODBGHandler(
+ collisionSystem,centMin,centMax,
+ ((AliDalitzElectronCuts*)fCutElectronArray->At(iCut))->NumberOfRotationEvents(),
+ ((AliDalitzElectronCuts*)fCutElectronArray->At(iCut))->UseTrackMultiplicity());
+
+ if( ( (AliDalitzElectronCuts*)fCutElectronArray->At(iCut))->GetBKGMethod() == 3 ){
fGammasPool[iCut] = new TList();
- }
- }
+ }
+ //}
+ }
}
//______________________________________________________________________
fCutFolder = new TList*[fnCuts];
fESDList = new TList*[fnCuts];
fBackList = new TList*[fnCuts];
+ fMotherList = new TList*[fnCuts];
hNEvents = new TH1I*[fnCuts];
hNGoodESDTracks = new TH1I*[fnCuts];
hESDConvGammaPt = new TH1F*[fnCuts];
hESDDalitzPositronPt = new TH1F*[fnCuts];
hESDDalitzElectronPhi = new TH1F*[fnCuts];
hESDDalitzPositronPhi = new TH1F*[fnCuts];
+
+ if( fDoMesonQA ) {
hESDDalitzElectronAfterPt = new TH1F*[fnCuts];
hESDDalitzPositronAfterPt = new TH1F*[fnCuts];
hESDDalitzElectronAfterPhi = new TH1F*[fnCuts];
hESDEposEnegPsiPairDPhi = new TH2F*[fnCuts];
hESDEposEnegInvMassPt = new TH2F*[fnCuts];
hESDEposEnegLikeSignBackInvMassPt = new TH2F*[fnCuts];
+
+ }
+
+
+
hESDMotherInvMassPt = new TH2F*[fnCuts];
+
+ if(fDoChicAnalysis) {
hESDPi0MotherInvMassPt = new TH2F*[fnCuts];
hESDPi0MotherDiffInvMassPt = new TH2F*[fnCuts];
- hESDPi0MotherDiffLimInvMassPt = new TH2F*[fnCuts];
+ hESDPi0MotherDiffLimInvMassPt = new TH2F*[fnCuts];
+ }
+
+
hESDMotherBackInvMassPt = new TH2F*[fnCuts];
hESDDalitzPositronPhi[iCut] = new TH1F("ESD_DalitzPositron_Phi","ESD_DalitzPositron_Phi",360,0,2*TMath::Pi());
fESDList[iCut]->Add(hESDDalitzPositronPhi[iCut]);
+
+ if ( fDoMesonQA ) {
+
+
hESDDalitzElectronAfterPt[iCut] = new TH1F("ESD_DalitzElectron_After_Pt","ESD_DalitzElectron_After_Pt",1000,0,25);
fESDList[iCut]->Add(hESDDalitzElectronAfterPt[iCut]);
hESDDalitzPositronAfterPt[iCut] = new TH1F("ESD_DalitzPositron_After_Pt","ESD_DalitzPositron_After_Pt",1000,0,25);
fESDList[iCut]->Add(hESDDalitzPositronAfterPt[iCut]);
-
-
+
hESDDalitzElectronAfterPhi[iCut] = new TH1F("ESD_DalitzElectron_After_Phi","ESD_DalitzElectron_After_Phi",360,0,2*TMath::Pi());
fESDList[iCut]->Add(hESDDalitzElectronAfterPhi[iCut]);
hESDDalitzPosEleAfterTPCdEdxSignal[iCut] =new TH2F("ESD_DalitzPosEle_After_TPCdEdxSignal","ESD_DalitzPosEle_After_TPCdEdxSignal" ,150,0.05,20.0,800,0.0,200);
fESDList[iCut]->Add(hESDDalitzPosEleAfterTPCdEdxSignal[iCut]);
+ hESDMotherPhi[iCut] = new TH1F("ESD_DalitzMother_Phi","ESD_DalitzMother_Phi",360,0,2*TMath::Pi());
+ fESDList[iCut]->Add(hESDMotherPhi[iCut]);
+
hESDEposEnegPsiPairDPhi[iCut] = new TH2F("ESD_EposEneg_PsiPair_DPhi","ESD_EposEneg_PsiPair_DPhi", 100, -1.0,1.0,100,-1.0,1.0 );
fESDList[iCut]->Add(hESDEposEnegPsiPairDPhi[iCut]);
hESDEposEnegLikeSignBackInvMassPt[iCut] = new TH2F("ESD_EposEneg_LikeSignBack_InvMassPt","ESD_EposEneg_LikeSignBack_InvMassPt",5000,0.,5.,100,0.,10.);
fESDList[iCut]->Add(hESDEposEnegLikeSignBackInvMassPt[iCut]);
+
+ }
+
+
+
+
+
+
+
hESDMotherInvMassPt[iCut] = new TH2F("ESD_DalitzMother_InvMass_Pt","ESD_DalitzMother_InvMass_Pt",1000,0,1,250,0,25);
fESDList[iCut]->Add(hESDMotherInvMassPt[iCut]);
- hESDMotherPhi[iCut] = new TH1F("ESD_DalitzMother_Phi","ESD_DalitzMother_Phi",360,0,2*TMath::Pi());
- fESDList[iCut]->Add(hESDMotherPhi[iCut]);
+
+ if( fDoChicAnalysis) {
hESDPi0MotherInvMassPt[iCut] = new TH2F("ESD_Pi0Mother_InvMass_Pt","ESD_Pi0Mother_InvMass_Pt",4000,0,4,250,0,25);
fESDList[iCut]->Add(hESDPi0MotherInvMassPt[iCut]);
hESDPi0MotherDiffLimInvMassPt[iCut] = new TH2F("ESD_Pi0Mother_DiffLimInvMass_Pt","ESD_Pi0Mother_DiffLimInvMass_Pt",2000,0,2,250,0,25);
fESDList[iCut]->Add(hESDPi0MotherDiffLimInvMassPt[iCut]);
+
+ }
+
hESDMotherBackInvMassPt[iCut] = new TH2F("ESD_DalitzBackground_InvMass_Pt","ESD_DalitzBackground_InvMass_Pt",1000,0,1,250,0,25);
fESDList[iCut]->Add(hESDMotherBackInvMassPt[iCut]);
-
+ if ( fDoMesonQA ) {
+
TAxis *AxisAfter = hESDDalitzPosEleAfterTPCdEdx[iCut]->GetXaxis();
Int_t bins = AxisAfter->GetNbins();
Double_t from = AxisAfter->GetXmin();
AxisAfter->Set(bins, newBins);
delete [] newBins;
+
+ }
hMCEtaInAccPt = new TH1F*[fnCuts];
hMCChiCPt = new TH1F*[fnCuts];
hMCChiCInAccPt = new TH1F*[fnCuts];
+
+
+ if ( fDoMesonQA ) {
+ hESDEposEnegTruePi0DalitzInvMassPt = new TH2F*[fnCuts];
+ hESDEposEnegTrueEtaDalitzInvMassPt = new TH2F*[fnCuts];
+ hESDEposEnegTruePhotonInvMassPt = new TH2F*[fnCuts];
+ hESDEposEnegTrueJPsiInvMassPt = new TH2F*[fnCuts];
+ }
- hESDEposEnegTruePi0DalitzInvMassPt = new TH2F*[fnCuts];
- hESDEposEnegTrueEtaDalitzInvMassPt = new TH2F*[fnCuts];
- hESDEposEnegTruePhotonInvMassPt = new TH2F*[fnCuts];
- hESDEposEnegTrueJPsiInvMassPt = new TH2F*[fnCuts];
+ if( fDoChicAnalysis ){
hESDTrueMotherChiCInvMassPt = new TH2F*[fnCuts];
hESDTrueMotherChiCDiffInvMassPt = new TH2F*[fnCuts];
+ }
+
+
hESDTrueMotherInvMassPt = new TH2F*[fnCuts];
hESDTrueMotherDalitzInvMassPt = new TH2F*[fnCuts];
hESDTrueMotherPi0GGInvMassPt = new TH2F*[fnCuts];
fTrueList[iCut]->SetOwner(kTRUE);
fCutFolder[iCut]->Add(fTrueList[iCut]);
-
+ if ( fDoMesonQA ) {
hESDEposEnegTruePi0DalitzInvMassPt[iCut] = new TH2F("ESD_EposEneg_TruePi0Dalitz_InvMassPt","ESD_EposEneg_TruePi0Dalitz_InvMassPt",5000,0.,5.,100,0.,10.);
fTrueList[iCut]->Add(hESDEposEnegTruePi0DalitzInvMassPt[iCut]);
hESDEposEnegTrueJPsiInvMassPt[iCut] = new TH2F("ESD_EposEneg_TrueJPsi_InvMassPt","ESD_EposEneg_TrueJPsi_InvMassPt",5000,0.,5.,100,0.,10.);
fTrueList[iCut]->Add(hESDEposEnegTrueJPsiInvMassPt[iCut]);
+ }
hESDTruePositronPt[iCut] = new TH1F("ESD_TruePositron_Pt","ESD_TruePositron_Pt",1000,0,25);
hESDTruePi0DalitzSecPositronPt[iCut] = new TH1F("ESD_TruePi0DalitzSecPositron_Pt","ESD_TruePi0DalitzSecPositron_Pt",1000,0,25);
fTrueList[iCut]->Add(hESDTruePi0DalitzSecPositronPt[iCut]);
- hESDTrueMotherChiCInvMassPt[iCut] = new TH2F("ESD_TrueMotherChiC_InvMass_Pt","ESD_TrueMotherChiC_InvMass_Pt",1000,0,4,250,0,25);
+ if( fDoChicAnalysis) {
+
+ hESDTrueMotherChiCInvMassPt[iCut] = new TH2F("ESD_TrueMotherChiC_InvMass_Pt","ESD_TrueMotherChiC_InvMass_Pt",4000,0,4,250,0,25);
fTrueList[iCut]->Add(hESDTrueMotherChiCInvMassPt[iCut]);
- hESDTrueMotherChiCDiffInvMassPt[iCut] = new TH2F("ESD_TrueMotherChiCDiff_InvMass_Pt","ESD_TrueMotherChiCDiff_InvMass_Pt",1000,0,1,250,0,25);
+ hESDTrueMotherChiCDiffInvMassPt[iCut] = new TH2F("ESD_TrueMotherChiCDiff_InvMass_Pt","ESD_TrueMotherChiCDiff_InvMass_Pt",2000,0,2,250,0,25);
fTrueList[iCut]->Add(hESDTrueMotherChiCDiffInvMassPt[iCut]);
+
+ }
- hESDTrueMotherInvMassPt[iCut] = new TH2F("ESD_TrueMother_InvMass_Pt","ESD_TrueMother_InvMass_Pt",1000,0,1,250,0,25);
+ hESDTrueMotherInvMassPt[iCut] = new TH2F("ESD_TrueMother_InvMass_Pt","ESD_TrueMother_InvMass_Pt",1000,0,1,250,0,25);
fTrueList[iCut]->Add(hESDTrueMotherInvMassPt[iCut]);
hESDTrueMotherDalitzInvMassPt[iCut] = new TH2F("ESD_TrueMother_Dalitz_InvMass_Pt","ESD_TrueMother_Dalitz_InvMass_Pt",1000,0,1,250,0,25);
fSelectorElectronIndex = fElecSelector->GetReconstructedElectronsIndex(); // Electrons from default Cut
fSelectorPositronIndex = fElecSelector->GetReconstructedPositronsIndex(); // Positrons from default Cut
- CountESDTracks(); // Estimate Event Multiplicity
+ //CountESDTracks(); // Estimate Event Multiplicity
+ fNumberOfESDTracks = fV0Reader->GetNumberOfPrimaryTracks();
//AddTaskContainers(); //Add conatiner
for(Int_t iCut = 0; iCut<fnCuts; iCut++){
continue;
}
else{
- printf(" Gamma Conversion Task %s :: Eta Shift Manually Set to %f \n\n",
+ printf(" Gamma Conversion Dalitz Task %s :: Eta Shift Manually Set to %f \n\n",
(((AliConversionCuts*)fCutGammaArray->At(iCut))->GetCutNumber()).Data(),((AliConversionCuts*)fCutGammaArray->At(iCut))->GetEtaShift());
((AliConversionCuts*)fCutGammaArray->At(iCut))->DoEtaShift(kFALSE); // Eta Shift Set, make sure that it is called only once
((AliDalitzElectronCuts*)fCutElectronArray->At(iCut))->SetEtaShift( ((AliConversionCuts*)fCutGammaArray->At(iCut))->GetEtaShift() );
}
- vector<Int_t> lGoodElectronIndex(0);
- vector<Int_t> lGoodPositronIndex(0);
-
+ vector<Int_t> lGoodElectronIndexPrev(0);
+ vector<Int_t> lGoodPositronIndexPrev(0);
+
+
+
for(UInt_t i = 0; i < fSelectorElectronIndex.size(); i++){
AliESDtrack* electronCandidate = fESDEvent->GetTrack(fSelectorElectronIndex[i]);
if(! ((AliDalitzElectronCuts*)fCutElectronArray->At(fiCut))->ElectronIsSelected(electronCandidate) ) continue;
- lGoodElectronIndex.push_back( fSelectorElectronIndex[i] );
+ lGoodElectronIndexPrev.push_back( fSelectorElectronIndex[i] );
hESDDalitzElectronPt[fiCut]->Fill(electronCandidate->Pt());
hESDDalitzElectronPhi[fiCut]->Fill(electronCandidate->Phi());
if( fMCEvent ) {
AliESDtrack* positronCandidate = fESDEvent->GetTrack( fSelectorPositronIndex[i] );
if(! ((AliDalitzElectronCuts*)fCutElectronArray->At(fiCut))->ElectronIsSelected(positronCandidate) ) continue;
- lGoodPositronIndex.push_back( fSelectorPositronIndex[i] );
+ lGoodPositronIndexPrev.push_back( fSelectorPositronIndex[i] );
hESDDalitzPositronPt[fiCut]->Fill( positronCandidate->Pt() );
hESDDalitzPositronPhi[fiCut]->Fill( positronCandidate->Phi() );
}
- vector<Bool_t> lElectronPsiIndex(lGoodElectronIndex.size(), kTRUE);
- vector<Bool_t> lPositronPsiIndex(lGoodPositronIndex.size(), kTRUE);
+ vector<Bool_t> lElectronPsiIndex(lGoodElectronIndexPrev.size(), kTRUE);
+ vector<Bool_t> lPositronPsiIndex(lGoodPositronIndexPrev.size(), kTRUE);
if( ((AliDalitzElectronCuts*)fCutElectronArray->At(fiCut))->DoPsiPairCut() == kTRUE ){
- for( UInt_t i = 0; i < lGoodElectronIndex.size(); i++ ) {
+ for( UInt_t i = 0; i < lGoodElectronIndexPrev.size(); i++ ) {
- AliESDtrack *electronCandidate = fESDEvent->GetTrack(lGoodElectronIndex[i]);
+ AliESDtrack *electronCandidate = fESDEvent->GetTrack(lGoodElectronIndexPrev[i]);
- for(UInt_t j = 0; j < lGoodPositronIndex.size(); j++){
- AliESDtrack *positronCandidate = fESDEvent->GetTrack(lGoodPositronIndex[j]);
+ for(UInt_t j = 0; j < lGoodPositronIndexPrev.size(); j++){
+ AliESDtrack *positronCandidate = fESDEvent->GetTrack(lGoodPositronIndexPrev[j]);
Double_t psiPair = GetPsiPair(positronCandidate,electronCandidate);
Double_t deltaPhi = magField * TVector2::Phi_mpi_pi( electronCandidate->GetConstrainedParam()->Phi()-positronCandidate->GetConstrainedParam()->Phi());
}
+ vector<Int_t> lGoodElectronIndex(0);
+ vector<Int_t> lGoodPositronIndex(0);
+
+
+ for( UInt_t i = 0; i < lGoodElectronIndexPrev.size(); i++ ) {
+
+ if( lElectronPsiIndex[i] == kTRUE )
+ lGoodElectronIndex.push_back( lGoodElectronIndexPrev[i] );
+ }
+
+ for( UInt_t i = 0; i < lGoodPositronIndexPrev.size(); i++ ) {
+
+ if( lPositronPsiIndex[i] == kTRUE )
+ lGoodPositronIndex.push_back( lGoodPositronIndexPrev[i] );
+ }
+
+
+
for(UInt_t i = 0; i < lGoodElectronIndex.size(); i++){
- if( lElectronPsiIndex[i] == kFALSE ) continue;
+ //if( lElectronPsiIndex[i] == kFALSE ) continue;
AliESDtrack *electronCandidate = fESDEvent->GetTrack(lGoodElectronIndex[i]);
for(UInt_t j = 0; j < lGoodPositronIndex.size(); j++){
- if( lPositronPsiIndex[j] == kFALSE ) continue;
+ //if( lPositronPsiIndex[j] == kFALSE ) continue;
AliESDtrack *positronCandidate = fESDEvent->GetTrack(lGoodPositronIndex[j]);
AliKFParticle positronCandidateKF( *positronCandidate->GetConstrainedParam(), ::kPositron );
Double_t deltaPhi = magField * TVector2::Phi_mpi_pi( electronCandidate->GetConstrainedParam()->Phi()-positronCandidate->GetConstrainedParam()->Phi());
-
- AliKFConversionPhoton* virtualPhoton = new AliKFConversionPhoton(electronCandidateKF,positronCandidateKF);
+ AliKFConversionPhoton* virtualPhoton = NULL;
+ virtualPhoton = new AliKFConversionPhoton(electronCandidateKF,positronCandidateKF);
AliKFVertex primaryVertexImproved(*fInputEvent->GetPrimaryVertex());
virtualPhoton->SetTrackLabels( lGoodPositronIndex[j], lGoodElectronIndex[i]);
- if(fMCEvent){
-
- // AliStack *fMCStack= fMCEvent->Stack();
- Int_t labeln=TMath::Abs(electronCandidate->GetLabel());
- Int_t labelp=TMath::Abs(positronCandidate->GetLabel());
- TParticle *fNegativeMCParticle = fMCStack->Particle(labeln);
- TParticle *fPositiveMCParticle = fMCStack->Particle(labelp);
- if( fPositiveMCParticle && fNegativeMCParticle) {
- virtualPhoton->SetMCLabelPositive(labelp);
- virtualPhoton->SetMCLabelNegative(labeln);
-
- }
-
- TParticle *mcVgamma=virtualPhoton->GetMCParticle(fMCStack);
-
-
- if(mcVgamma){
- // Check if it is a true photon
- if(mcVgamma->GetPdgCode() == 22){
- isPhoton = kTRUE;
- }else if(mcVgamma->GetPdgCode() == 443){
- isJPsi = kTRUE;
- }
- else if( IsDalitz( mcVgamma ) ){
- if ( mcVgamma->GetPdgCode() == 111 ) isPi0Dalitz = kTRUE;
- else if( mcVgamma->GetPdgCode() == 221 ) isEtaDalitz = kTRUE;
- }
- }
- }
-
+
AliAODConversionPhoton *vphoton = new AliAODConversionPhoton(virtualPhoton); //To Apply PsiPairCut
-
+
+
+
+ if ( fDoMesonQA ) {
+
hESDEposEnegPsiPairDPhi[fiCut]->Fill(deltaPhi,psiPair);
hESDEposEnegInvMassPt[fiCut]->Fill(vphoton->GetMass(),vphoton->Pt());
- if( fMCEvent ) {
- if(isPhoton) hESDEposEnegTruePhotonInvMassPt[fiCut]->Fill(vphoton->GetMass(),vphoton->Pt());
- else if(isJPsi) hESDEposEnegTrueJPsiInvMassPt[fiCut]->Fill(vphoton->GetMass(),vphoton->Pt());
- else if(isPi0Dalitz)hESDEposEnegTruePi0DalitzInvMassPt[fiCut]->Fill(vphoton->GetMass(),vphoton->Pt());
- else if(isEtaDalitz)hESDEposEnegTrueEtaDalitzInvMassPt[fiCut]->Fill(vphoton->GetMass(),vphoton->Pt());
-
- }
+ if( fMCEvent ) {
+
+ Int_t labeln=TMath::Abs(electronCandidate->GetLabel());
+ Int_t labelp=TMath::Abs(positronCandidate->GetLabel());
+ TParticle *fNegativeMCParticle = fMCStack->Particle(labeln);
+ TParticle *fPositiveMCParticle = fMCStack->Particle(labelp);
+
+ if( fPositiveMCParticle && fNegativeMCParticle) {
+ virtualPhoton->SetMCLabelPositive(labelp);
+ virtualPhoton->SetMCLabelNegative(labeln);
+ }
+
+ TParticle *mcVgamma=virtualPhoton->GetMCParticle(fMCStack);
+
+ if(mcVgamma){
+ // Check if it is a true photon
+ if(mcVgamma->GetPdgCode() == 22){
+ isPhoton = kTRUE;
+ }else if(mcVgamma->GetPdgCode() == 443){
+ isJPsi = kTRUE;
+ }
+ else if( IsDalitz( mcVgamma ) ){
+ if ( mcVgamma->GetPdgCode() == 111 ) isPi0Dalitz = kTRUE;
+ else if( mcVgamma->GetPdgCode() == 221 ) isEtaDalitz = kTRUE;
+ }
+ }
+
+
+ if(isPhoton) hESDEposEnegTruePhotonInvMassPt[fiCut]->Fill(vphoton->GetMass(),vphoton->Pt());
+ else if(isJPsi) hESDEposEnegTrueJPsiInvMassPt[fiCut]->Fill(vphoton->GetMass(),vphoton->Pt());
+ else if(isPi0Dalitz)hESDEposEnegTruePi0DalitzInvMassPt[fiCut]->Fill(vphoton->GetMass(),vphoton->Pt());
+ else if(isEtaDalitz)hESDEposEnegTrueEtaDalitzInvMassPt[fiCut]->Fill(vphoton->GetMass(),vphoton->Pt());
+ }
+ }
- fGoodVirtualGammas->Add( vphoton );
+ if( ! fDoChicAnalysis ) {
+
+ if ( ((AliDalitzElectronCuts*) fCutElectronArray->At(fiCut))->DoMassCut() == kTRUE ) {
+
+ Double_t MassCutMax = 1000.0;
+ if( ((AliDalitzElectronCuts*) fCutElectronArray->At(fiCut))->GetMassCutLowPt() >= ((AliDalitzElectronCuts*) fCutElectronArray->At(fiCut))->GetMassCutHighPt() ){
+ MassCutMax = ((AliDalitzElectronCuts*) fCutElectronArray->At(fiCut))->GetMassCutLowPt();
+ }
+ else {
+ MassCutMax = ((AliDalitzElectronCuts*) fCutElectronArray->At(fiCut))->GetMassCutHighPt();
+ }
+
+ if( vphoton->GetMass() > MassCutMax ) {
+
+
+ delete vphoton;
+ vphoton = 0x0;
+ delete virtualPhoton;
+ virtualPhoton = 0x0;
+ continue;
+
+ }
+
+ }
+ }
+
+
+ fGoodVirtualGammas->Add( vphoton );
+ delete virtualPhoton;
+ virtualPhoton=NULL;
}
}
-
+
//Computing mixing event
+
+ if( fDoMesonQA ) {
- for(UInt_t i = 0; i < lGoodElectronIndex.size(); i++){
+ for(UInt_t i = 0; i < lGoodElectronIndex.size(); i++){
- if( lElectronPsiIndex[i] == kFALSE ) continue;
+ //if( lElectronPsiIndex[i] == kFALSE ) continue;
AliESDtrack *electronCandidate1 = fESDEvent->GetTrack(lGoodElectronIndex[i]);
for(UInt_t j = i+1; j < lGoodElectronIndex.size(); j++){
- if( lElectronPsiIndex[j] == kFALSE ) continue;
+ //if( lElectronPsiIndex[j] == kFALSE ) continue;
AliESDtrack *electronCandidate2 = fESDEvent->GetTrack(lGoodElectronIndex[j]);
hESDEposEnegLikeSignBackInvMassPt[fiCut]->Fill(vphoton->GetMass(),vphoton->Pt());
delete vphoton;
delete virtualPhoton;
-
+ vphoton = 0x0;
+ virtualPhoton = 0x0;
}
}
- for(UInt_t i = 0; i < lGoodPositronIndex.size(); i++){
+ for(UInt_t i = 0; i < lGoodPositronIndex.size(); i++){
+
+
- if( lPositronPsiIndex[i] == kFALSE ) continue;
+ //if( lPositronPsiIndex[i] == kFALSE ) continue;
AliESDtrack *positronCandidate1 = fESDEvent->GetTrack(lGoodPositronIndex[i]);
for(UInt_t j = i+1; j < lGoodPositronIndex.size(); j++){
- if( lPositronPsiIndex[j] == kFALSE ) continue;
+ // if( lPositronPsiIndex[j] == kFALSE ) continue;
AliESDtrack *positronCandidate2 = fESDEvent->GetTrack(lGoodPositronIndex[j]);
delete vphoton;
- delete virtualPhoton;
+ delete virtualPhoton;
+ vphoton = 0x0;
+ virtualPhoton = 0x0;
}
}
-
+ }
}
//________________________________________________________________________
mbin = fBGHandler[fiCut]->GetMultiplicityBinIndex(fGoodGammas->GetEntries());
}
- AliESDtrack *positronVgamma = fESDEvent->GetTrack( Vgamma->GetTrackLabelPositive() );
- AliESDtrack *electronVgamma = fESDEvent->GetTrack( Vgamma->GetTrackLabelNegative() );
- Double_t clsToFPos = ((AliDalitzElectronCuts*)fCutElectronArray->At(fiCut))->GetNFindableClustersTPC(positronVgamma);
- Double_t clsToFNeg = ((AliDalitzElectronCuts*)fCutElectronArray->At(fiCut))->GetNFindableClustersTPC(electronVgamma);
+ AliESDtrack *positronVgamma = 0;
+ AliESDtrack *electronVgamma = 0;
- Float_t bPos[2];
- Float_t bCovPos[3];
- positronVgamma->GetImpactParameters(bPos,bCovPos);
- if (bCovPos[0]<=0 || bCovPos[2]<=0) {
- AliDebug(1, "Estimated b resolution lower or equal zero!");
- bCovPos[0]=0; bCovPos[2]=0;
- }
+ Double_t clsToFPos = -1.0;
+ Double_t clsToFNeg = -1.0;
- Float_t bNeg[2];
- Float_t bCovNeg[3];
- positronVgamma->GetImpactParameters(bNeg,bCovNeg);
- if (bCovNeg[0]<=0 || bCovNeg[2]<=0) {
- AliDebug(1, "Estimated b resolution lower or equal zero!");
- bCovNeg[0]=0; bCovNeg[2]=0;
- }
+ Float_t dcaToVertexXYPos = -1.0;
+ Float_t dcaToVertexZPos = -1.0;
+ Float_t dcaToVertexXYNeg = -1.0;
+ Float_t dcaToVertexZNeg = -1.0;
- Float_t dcaToVertexXYPos = bPos[0];
- Float_t dcaToVertexZPos = bPos[1];
- Float_t dcaToVertexXYNeg = bNeg[0];
- Float_t dcaToVertexZNeg = bNeg[1];
+
+ if ( fDoMesonQA ) {
+
+ positronVgamma = fESDEvent->GetTrack( Vgamma->GetTrackLabelPositive() );
+ electronVgamma = fESDEvent->GetTrack( Vgamma->GetTrackLabelNegative() );
+ clsToFPos = ((AliDalitzElectronCuts*)fCutElectronArray->At(fiCut))->GetNFindableClustersTPC(positronVgamma);
+ clsToFNeg = ((AliDalitzElectronCuts*)fCutElectronArray->At(fiCut))->GetNFindableClustersTPC(electronVgamma);
+
+ Float_t bPos[2];
+ Float_t bCovPos[3];
+ positronVgamma->GetImpactParameters(bPos,bCovPos);
+ if (bCovPos[0]<=0 || bCovPos[2]<=0) {
+ AliDebug(1, "Estimated b resolution lower or equal zero!");
+ bCovPos[0]=0; bCovPos[2]=0;
+ }
+
+ Float_t bNeg[2];
+ Float_t bCovNeg[3];
+ positronVgamma->GetImpactParameters(bNeg,bCovNeg);
+ if (bCovNeg[0]<=0 || bCovNeg[2]<=0) {
+ AliDebug(1, "Estimated b resolution lower or equal zero!");
+ bCovNeg[0]=0; bCovNeg[2]=0;
+ }
+
+ dcaToVertexXYPos = bPos[0];
+ dcaToVertexZPos = bPos[1];
+ dcaToVertexXYNeg = bNeg[0];
+ dcaToVertexZNeg = bNeg[1];
+
+ }
if( ((AliDalitzElectronCuts*) fCutElectronArray->At(fiCut))->DoMassCut() == kTRUE ) {
if( ((AliDalitzElectronCuts*) fCutElectronArray->At(fiCut))->MassCut( pi0cand->Pt() , Vgamma->GetMass() ) == kTRUE ){
hESDMotherInvMassPt[fiCut]->Fill(pi0cand->M(),pi0cand->Pt());
- hESDMotherPhi[fiCut]->Fill(pi0cand->Phi());
+
Double_t sparesFill[4] = {pi0cand->M(),pi0cand->Pt(),(Double_t)zbin,(Double_t)mbin};
sESDMotherInvMassPtZM[fiCut]->Fill(sparesFill,1);
- if( lGoodVirtualGamma[virtualGammaIndex] == kFALSE ) {
- hESDDalitzElectronAfterPt[fiCut]->Fill( electronVgamma->Pt() );
- hESDDalitzPositronAfterPt[fiCut]->Fill( positronVgamma->Pt() );
+ if ( fDoMesonQA ) {
+
+ hESDMotherPhi[fiCut]->Fill(pi0cand->Phi());
- hESDDalitzElectronAfterPhi[fiCut]->Fill( electronVgamma->Phi() );
- hESDDalitzPositronAfterPhi[fiCut]->Fill( positronVgamma->Phi() );
+ if( lGoodVirtualGamma[virtualGammaIndex] == kFALSE ) {
+
+ hESDDalitzElectronAfterPt[fiCut]->Fill( electronVgamma->Pt() );
+ hESDDalitzPositronAfterPt[fiCut]->Fill( positronVgamma->Pt() );
+
+ hESDDalitzElectronAfterPhi[fiCut]->Fill( electronVgamma->Phi() );
+ hESDDalitzPositronAfterPhi[fiCut]->Fill( positronVgamma->Phi() );
- hESDDalitzElectronAfterNFindClsTPC[fiCut]->Fill(clsToFNeg,electronVgamma->Pt());
- hESDDalitzPositronAfterNFindClsTPC[fiCut]->Fill(clsToFPos,positronVgamma->Pt());
+ hESDDalitzElectronAfterNFindClsTPC[fiCut]->Fill(clsToFNeg,electronVgamma->Pt());
+ hESDDalitzPositronAfterNFindClsTPC[fiCut]->Fill(clsToFPos,positronVgamma->Pt());
- hESDDalitzPosEleAfterDCAxy[fiCut]->Fill( dcaToVertexXYNeg, electronVgamma->Pt() );
- hESDDalitzPosEleAfterDCAz[fiCut]->Fill( dcaToVertexZNeg, electronVgamma->Pt() );
- hESDDalitzPosEleAfterDCAxy[fiCut]->Fill( dcaToVertexXYPos, positronVgamma->Pt() );
- hESDDalitzPosEleAfterDCAz[fiCut]->Fill( dcaToVertexZPos, positronVgamma->Pt() );
+ hESDDalitzPosEleAfterDCAxy[fiCut]->Fill( dcaToVertexXYNeg, electronVgamma->Pt() );
+ hESDDalitzPosEleAfterDCAz[fiCut]->Fill( dcaToVertexZNeg, electronVgamma->Pt() );
+ hESDDalitzPosEleAfterDCAxy[fiCut]->Fill( dcaToVertexXYPos, positronVgamma->Pt() );
+ hESDDalitzPosEleAfterDCAz[fiCut]->Fill( dcaToVertexZPos, positronVgamma->Pt() );
- hESDDalitzPosEleAfterTPCdEdx[fiCut]->Fill( positronVgamma->P(),((AliDalitzElectronCuts*)fCutElectronArray->At(fiCut))->GetPIDResponse()->NumberOfSigmasTPC(positronVgamma, AliPID::kElectron) );
- hESDDalitzPosEleAfterTPCdEdx[fiCut]->Fill( electronVgamma->P(),((AliDalitzElectronCuts*)fCutElectronArray->At(fiCut))->GetPIDResponse()->NumberOfSigmasTPC(electronVgamma, AliPID::kElectron) );
+ hESDDalitzPosEleAfterTPCdEdx[fiCut]->Fill( positronVgamma->P(),((AliDalitzElectronCuts*)fCutElectronArray->At(fiCut))->GetPIDResponse()->NumberOfSigmasTPC(positronVgamma, AliPID::kElectron) );
+ hESDDalitzPosEleAfterTPCdEdx[fiCut]->Fill( electronVgamma->P(),((AliDalitzElectronCuts*)fCutElectronArray->At(fiCut))->GetPIDResponse()->NumberOfSigmasTPC(electronVgamma, AliPID::kElectron) );
- hESDDalitzPosEleAfterTPCdEdxSignal[fiCut]->Fill( positronVgamma->P(), TMath::Abs(positronVgamma->GetTPCsignal()));
- hESDDalitzPosEleAfterTPCdEdxSignal[fiCut]->Fill( electronVgamma->P(), TMath::Abs(electronVgamma->GetTPCsignal()));
-
+ hESDDalitzPosEleAfterTPCdEdxSignal[fiCut]->Fill( positronVgamma->P(), TMath::Abs(positronVgamma->GetTPCsignal()));
+ hESDDalitzPosEleAfterTPCdEdxSignal[fiCut]->Fill( electronVgamma->P(), TMath::Abs(electronVgamma->GetTPCsignal()));
- lGoodVirtualGamma[virtualGammaIndex] = kTRUE;
+ lGoodVirtualGamma[virtualGammaIndex] = kTRUE;
+ }
}
Double_t sparesFill[4] = {pi0cand->M(),pi0cand->Pt(),(Double_t)zbin,(Double_t)mbin};
sESDMotherInvMassPtZM[fiCut]->Fill(sparesFill,1);
- if( lGoodVirtualGamma[virtualGammaIndex] == kFALSE ) {
+
+ if ( fDoMesonQA ) {
+
+ hESDMotherPhi[fiCut]->Fill(pi0cand->Phi());
+
+ if( lGoodVirtualGamma[virtualGammaIndex] == kFALSE ) {
hESDDalitzElectronAfterPt[fiCut]->Fill( electronVgamma->Pt() );
hESDDalitzPositronAfterPt[fiCut]->Fill( positronVgamma->Pt() );
lGoodVirtualGamma[virtualGammaIndex] = kTRUE;
- }
+ }
+ }
}
-
+ if( fDoChicAnalysis) {
hESDPi0MotherInvMassPt[fiCut]->Fill(pi0cand->M(),pi0cand->Pt());
hESDPi0MotherDiffInvMassPt[fiCut]->Fill( diffMass , pi0cand->Pt() );
- if(Vgamma->GetMass() > 2.5 && Vgamma->GetMass()<3.4 ){
+ if( Vgamma->GetMass() > 2.5 && Vgamma->GetMass() < 3.4){
hESDPi0MotherDiffLimInvMassPt[fiCut]->Fill( diffMass , pi0cand->Pt() );
- }
+ }
+ }
if(fMCEvent){
ProcessTrueMesonCandidates(pi0cand,gamma,Vgamma);
method = ( (AliDalitzElectronCuts*)fCutElectronArray->At(fiCut))->GetBKGMethod();
+
+
+
if( method == 1 ) {
if(fGoodGammas->GetEntries() > 0 ){
}
- if(gammaMotherLabel>=0 && ( gammaMotherLabel == virtualGammaGrandMotherLabel) ){
- if(((TParticle*)MCStack->Particle(virtualGammaGrandMotherLabel))->GetPdgCode() == 445 ||
- ((TParticle*)MCStack->Particle(virtualGammaGrandMotherLabel))->GetPdgCode() == 10443 ||
- ((TParticle*)MCStack->Particle(virtualGammaGrandMotherLabel))->GetPdgCode() == 20443 ){
- isTrueChiC=kTRUE;
- hESDTrueMotherChiCInvMassPt[fiCut]->Fill(Pi0Candidate->M(),Pi0Candidate->Pt());
- hESDTrueMotherChiCDiffInvMassPt[fiCut]->Fill(Pi0Candidate->M()-TrueVirtualGammaCandidate->GetMass(),Pi0Candidate->Pt());
- }
- }
+ if( fDoChicAnalysis) {
+ if(gammaMotherLabel>=0 && ( gammaMotherLabel == virtualGammaGrandMotherLabel) ){
+ if(((TParticle*)MCStack->Particle(virtualGammaGrandMotherLabel))->GetPdgCode() == 445 ||
+ ((TParticle*)MCStack->Particle(virtualGammaGrandMotherLabel))->GetPdgCode() == 10443 ||
+ ((TParticle*)MCStack->Particle(virtualGammaGrandMotherLabel))->GetPdgCode() == 20443 ){
+ isTrueChiC=kTRUE;
+ hESDTrueMotherChiCInvMassPt[fiCut]->Fill(Pi0Candidate->M(),Pi0Candidate->Pt());
+ hESDTrueMotherChiCDiffInvMassPt[fiCut]->Fill(Pi0Candidate->M()-TrueVirtualGammaCandidate->GetMass(),Pi0Candidate->Pt());
+ }
+ }
+ }
if( ( isTruePi0 || isTrueEta) && massCutAccept ){ // True Pion or Eta
void SetMesonCutList(TList *CutArray){
fCutMesonArray = CutArray;
}
+ void SetDoChicAnalysis(Bool_t flag){ fDoChicAnalysis = flag; }
+ void SetDoMesonQA(Bool_t flag){ fDoMesonQA = flag; }
private:
TList **fCutFolder;
TList **fESDList;
TList **fBackList;
+ TList **fMotherList;
TList **fTrueList;
TList **fMCList;
TList *fOutputContainer;
Bool_t fMoveParticleAccordingToVertex;
Bool_t fIsHeavyIon;
Bool_t fDoMesonAnalysis;
+ Bool_t fDoChicAnalysis;
+ Bool_t fDoMesonQA;
Bool_t fIsFromMBHeader;
Bool_t fIsMC;
/**************************************************************************
* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- * *
- * Authors: Svein Lindal, Daniel Lohner *
- * Version 1.0 *
- * *
- * Permission to use, copy, modify and distribute this software and its *
- * documentation strictly for non-commercial purposes is hereby granted *
- * without fee, provided that the above copyright notice appears in all *
- * copies and that both the copyright notice and this permission notice *
- * appear in the supporting documentation. The authors make no claims *
- * about the suitability of this software for any purpose. It is *
- * provided "as is" without express or implied warranty. *
+ * *
+ * Authors: Svein Lindal, Daniel Lohner *
+ * Version 1.0 *
+ * *
+ * Permission to use, copy, modify and distribute this software and its *
+ * documentation strictly for non-commercial purposes is hereby granted *
+ * without fee, provided that the above copyright notice appears in all *
+ * copies and that both the copyright notice and this permission notice *
+ * appear in the supporting documentation. The authors make no claims *
+ * about the suitability of this software for any purpose. It is *
+ * provided "as is" without express or implied warranty. *
**************************************************************************/
////////////////////////////////////////////////
fNameHistoReweightingPi0(""),
fNameHistoReweightingEta(""),
fNameHistoReweightingK0s(""),
+ fNameFitDataPi0(""),
+ fNameFitDataEta(""),
+ fNameFitDataK0s(""),
hdEdxCuts(NULL),
hTPCdEdxbefore(NULL),
hTPCdEdxafter(NULL),
hReweightMCHistPi0(NULL),
hReweightMCHistEta(NULL),
hReweightMCHistK0s(NULL),
+ fFitDataPi0(NULL),
+ fFitDataEta(NULL),
+ fFitDataK0s(NULL),
fPreSelCut(kFALSE),
fTriggerSelectedManually(kFALSE),
fSpecialTriggerName("")
fNameHistoReweightingPi0(ref.fNameHistoReweightingPi0),
fNameHistoReweightingEta(ref.fNameHistoReweightingEta),
fNameHistoReweightingK0s(ref.fNameHistoReweightingK0s),
+ fNameFitDataPi0(ref.fNameFitDataPi0),
+ fNameFitDataEta(ref.fNameFitDataEta),
+ fNameFitDataK0s(ref.fNameFitDataK0s),
hdEdxCuts(NULL),
hTPCdEdxbefore(NULL),
hTPCdEdxafter(NULL),
hReweightMCHistPi0(NULL),
hReweightMCHistEta(NULL),
hReweightMCHistK0s(NULL),
+ fFitDataPi0(NULL),
+ fFitDataEta(NULL),
+ fFitDataK0s(NULL),
fPreSelCut(ref.fPreSelCut),
fTriggerSelectedManually(ref.fTriggerSelectedManually),
fSpecialTriggerName(ref.fSpecialTriggerName)
// Destructor
//Deleting fHistograms leads to seg fault it it's added to output collection of a task
// if(fHistograms)
- // delete fHistograms;
+ // delete fHistograms;
// fHistograms = NULL;
if(fCutString != NULL){
delete fCutString;
else fHistograms->SetName(Form("%s_%s",name.Data(),GetCutNumber().Data()));
}
- if (hReweightMCHistPi0) fHistograms->Add(hReweightMCHistPi0);
- if (hReweightMCHistEta) fHistograms->Add(hReweightMCHistEta);
- if (hReweightMCHistK0s) fHistograms->Add(hReweightMCHistK0s);
-
+ if (hReweightMCHistPi0){
+ hReweightMCHistPi0->SetName("MCInputForWeightingPi0");
+ fHistograms->Add(hReweightMCHistPi0);
+ }
+ if (hReweightMCHistEta){
+ hReweightMCHistEta->SetName("MCInputForWeightingEta");
+ fHistograms->Add(hReweightMCHistEta);
+ }
+ if (hReweightMCHistK0s){
+ hReweightMCHistK0s->SetName("MCInputForWeightingK0s");
+ fHistograms->Add(hReweightMCHistK0s);
+ }
+ if (fFitDataPi0){
+ fFitDataPi0->SetName("DataFitForWeightingPi0");
+ fHistograms->Add(fFitDataPi0);
+ }
+ if (fFitDataEta){
+ fFitDataEta->SetName("DataFitForWeightingEta");
+ fHistograms->Add(fFitDataEta);
+ }
+ if (fFitDataK0s){
+ fFitDataK0s->SetName("DataFitForWeightingK0s");
+ fHistograms->Add(fFitDataK0s);
+ }
// IsPhotonSelected
hCutIndex=new TH1F(Form("IsPhotonSelected %s",GetCutNumber().Data()),"IsPhotonSelected",10,-0.5,9.5);
hCutIndex->GetXaxis()->SetBinLabel(kPhotonIn+1,"in");
}
if(abs(ePos->Vz()) > fMaxZ){
- return kFALSE; // outside material
+ return kFALSE; // outside material
}
if(abs(eNeg->Vz()) > fMaxZ){
- return kFALSE; // outside material
+ return kFALSE; // outside material
}
if( ePos->R() <= ((abs(ePos->Vz()) * fLineCutZRSlope) - fLineCutZValue)){
return kFALSE; // cuts on distance from collision point
}
if(abs(ePos->Zv()) > fMaxZ){
- return kFALSE; // outside material
+ return kFALSE; // outside material
}
if(abs(eNeg->Zv()) > fMaxZ){
- return kFALSE; // outside material
+ return kFALSE; // outside material
}
if( rPos <= ((abs(ePos->Zv()) * fLineCutZRSlope) - fLineCutZValue)){
cutIndex++;
// Single Pt Cut
- if( negTrack->Pt()< fSinglePtCut || posTrack->Pt()< fSinglePtCut){
+ if( negTrack->Pt()< fSinglePtCut || posTrack->Pt()< fSinglePtCut){
if(hTrackCuts)hTrackCuts->Fill(cutIndex);
return kFALSE;
}
Double_t t0 = fPIDResponse->GetTOFResponse().GetStartTime(fCurrentTrack->P());
Double_t times[5];
fCurrentTrack->GetIntegratedTimes(times);
- Double_t TOFsignal = fCurrentTrack->GetTOFsignal();
+ Double_t TOFsignal = fCurrentTrack->GetTOFsignal();
Double_t dT = TOFsignal - t0 - times[0];
hTOFbefore->Fill(fCurrentTrack->P(),dT);
}
Double_t *posProbArray = new Double_t[AliPID::kSPECIES];
Double_t *negProbArray = new Double_t[AliPID::kSPECIES];
- AliESDtrack* negTrack = esdEvent->GetTrack(photon->GetTrackLabelNegative());
- AliESDtrack* posTrack = esdEvent->GetTrack(photon->GetTrackLabelPositive());
+ AliESDtrack* negTrack = esdEvent->GetTrack(photon->GetTrackLabelNegative());
+ AliESDtrack* posTrack = esdEvent->GetTrack(photon->GetTrackLabelPositive());
if(negProbArray && posProbArray){
if (fNameHistoReweightingPi0.CompareTo("") != 0 && fDoReweightHistoMCPi0 ){
hReweightMCHistPi0 = (TH1D*)f->Get(fNameHistoReweightingPi0.Data());
if (hReweightMCHistPi0) AliInfo(Form("%s has been loaded from %s", fNameHistoReweightingPi0.Data(),fPathTrFReweighting.Data() ));
- else AliWarning(Form("%s not found in %s",fPathTrFReweighting.Data(), fNameHistoReweightingPi0.Data() ));
+ else AliWarning(Form("%s not found in %s", fNameHistoReweightingPi0.Data() ,fPathTrFReweighting.Data()));
+ }
+ if (fNameFitDataPi0.CompareTo("") != 0 && fDoReweightHistoMCPi0 ){
+ fFitDataPi0 = (TF1*)f->Get(fNameFitDataPi0.Data());
+ if (fFitDataPi0) AliInfo(Form("%s has been loaded from %s", fNameFitDataPi0.Data(),fPathTrFReweighting.Data() ));
+ else AliWarning(Form("%s not found in %s",fPathTrFReweighting.Data(), fNameFitDataPi0.Data() ));
}
+
if (fNameHistoReweightingEta.CompareTo("") != 0 && fDoReweightHistoMCEta){
hReweightMCHistEta = (TH1D*)f->Get(fNameHistoReweightingEta.Data());
if (hReweightMCHistEta) AliInfo(Form("%s has been loaded from %s", fNameHistoReweightingEta.Data(),fPathTrFReweighting.Data() ));
- else AliWarning(Form("%s not found in %s",fPathTrFReweighting.Data(), fNameHistoReweightingEta.Data() ));
+ else AliWarning(Form("%s not found in %s", fNameHistoReweightingEta.Data(),fPathTrFReweighting.Data() ));
+
+ }
+
+ if (fNameFitDataEta.CompareTo("") != 0 && fDoReweightHistoMCEta){
+ fFitDataEta = (TF1*)f->Get(fNameFitDataEta.Data());
+ if (fFitDataEta) AliInfo(Form("%s has been loaded from %s", fNameFitDataEta.Data(),fPathTrFReweighting.Data() ));
+ else AliWarning(Form("%s not found in %s", fNameFitDataEta.Data(),fPathTrFReweighting.Data() ));
}
if (fNameHistoReweightingK0s.CompareTo("") != 0 && fDoReweightHistoMCK0s){
hReweightMCHistK0s = (TH1D*)f->Get(fNameHistoReweightingK0s.Data());
if (hReweightMCHistK0s) AliInfo(Form("%s has been loaded from %s", fNameHistoReweightingK0s.Data(),fPathTrFReweighting.Data() ));
- else AliWarning(Form("%s not found in %s",fPathTrFReweighting.Data(), fNameHistoReweightingK0s.Data() ));
+ else AliWarning(Form("%s not found in %s", fNameHistoReweightingK0s.Data(),fPathTrFReweighting.Data() ));
}
+ if (fNameFitDataK0s.CompareTo("") != 0 && fDoReweightHistoMCK0s){
+ fFitDataK0s = (TF1*)f->Get(fNameFitDataK0s.Data());
+ if (fFitDataK0s) AliInfo(Form("%s has been loaded from %s", fNameFitDataK0s.Data(),fPathTrFReweighting.Data() ));
+ else AliWarning(Form("%s not found in %s", fNameFitDataK0s.Data(),fPathTrFReweighting.Data() ));
+
+ }
+
}
///________________________________________________________________________
Bool_t AliConversionCuts::InitializeCutsFromCutString(const TString analysisCutSelection ) {
// Initialize Cuts from a given Cut string
- if(fDoReweightHistoMCPi0 || fDoReweightHistoMCEta || fDoReweightHistoMCK0s) LoadReweightingHistosMCFromFile();
+ if(fDoReweightHistoMCPi0 || fDoReweightHistoMCEta || fDoReweightHistoMCK0s) {
+ AliInfo("Weighting was enabled");
+ LoadReweightingHistosMCFromFile();
+
+ }
AliInfo(Form("Set Photoncut Number: %s",analysisCutSelection.Data()));
if(analysisCutSelection.Length()!=kNCuts) {
}
const char *cutSelection = analysisCutSelection.Data();
-#define ASSIGNARRAY(i) fCuts[i] = cutSelection[i] - '0'
+#define ASSIGNARRAY(i) fCuts[i] = cutSelection[i] - '0'
for(Int_t ii=0;ii<kNCuts;ii++){
ASSIGNARRAY(ii);
}
switch(etaCut){
case 0: // 0.9
- fEtaCut = 0.9;
+ fEtaCut = 0.9;
fLineCutZRSlope = tan(2*atan(exp(-fEtaCut)));
- fEtaCutMin = -0.1;
+ fEtaCutMin = -0.1;
fLineCutZRSlopeMin = 0.;
break;
- case 1: // 1.2 // changed from 1.2 to 0.6 on 2013.06.10
- fEtaCut = 0.6;
+ case 1: // 1.2 // changed from 1.2 to 0.6 on 2013.06.10
+ fEtaCut = 0.6;
fLineCutZRSlope = tan(2*atan(exp(-fEtaCut)));
- fEtaCutMin = -0.1;
+ fEtaCutMin = -0.1;
fLineCutZRSlopeMin = 0.;
break;
- case 2: // 1.4
- fEtaCut = 1.4;
+ case 2: // 1.4
+ fEtaCut = 1.4;
fLineCutZRSlope = tan(2*atan(exp(-fEtaCut)));
- fEtaCutMin = -0.1;
+ fEtaCutMin = -0.1;
fLineCutZRSlopeMin = 0.;
break;
case 3: // 0.8
- fEtaCut = 0.8;
+ fEtaCut = 0.8;
fLineCutZRSlope = tan(2*atan(exp(-fEtaCut)));
- fEtaCutMin = -0.1;
+ fEtaCutMin = -0.1;
fLineCutZRSlopeMin = 0.;
break;
case 4: // 0.75
- fEtaCut = 0.75;
+ fEtaCut = 0.75;
fLineCutZRSlope = tan(2*atan(exp(-fEtaCut)));
- fEtaCutMin = -0.1;
+ fEtaCutMin = -0.1;
fLineCutZRSlopeMin = 0.;
break;
case 5: // 0.5
- fEtaCut = 0.5;
+ fEtaCut = 0.5;
fLineCutZRSlope = tan(2*atan(exp(-fEtaCut)));
- fEtaCutMin = -0.1;
+ fEtaCutMin = -0.1;
fLineCutZRSlopeMin = 0.;
break;
case 6: // 5.
- fEtaCut = 5.;
+ fEtaCut = 5.;
fLineCutZRSlope = tan(2*atan(exp(-fEtaCut)));
- fEtaCutMin = -0.1;
+ fEtaCutMin = -0.1;
fLineCutZRSlopeMin = 0.;
break;
case 7:
- fEtaCut = 0.3;
+ fEtaCut = 0.3;
fLineCutZRSlope = tan(2*atan(exp(-fEtaCut)));
- fEtaCutMin = -0.1;
+ fEtaCutMin = -0.1;
fLineCutZRSlopeMin = 0.;
break;
// case 8: // 0.1 - 0.8
- // fEtaCut = 0.9;
+ // fEtaCut = 0.9;
// fLineCutZRSlope = tan(2*atan(exp(-fEtaCut)));
- // fEtaCutMin = 0.1;
+ // fEtaCutMin = 0.1;
// fLineCutZRSlopeMin = tan(2*atan(exp(-fEtaCutMin)));
// break;
case 8: // 0.4
- fEtaCut = 0.4;
+ fEtaCut = 0.4;
fLineCutZRSlope = tan(2*atan(exp(-fEtaCut)));
- fEtaCutMin = -0.1;
+ fEtaCutMin = -0.1;
fLineCutZRSlopeMin = 0.;
break;
case 9: // 10
- fEtaCut = 10;
+ fEtaCut = 10;
fLineCutZRSlope = tan(2*atan(exp(-fEtaCut)));
- fEtaCutMin = -0.1;
+ fEtaCutMin = -0.1;
fLineCutZRSlopeMin = 0.;
break;
default:
if(fESDEvent){
if (fESDEvent->GetPrimaryVertex() != NULL){
if(fESDEvent->GetPrimaryVertex()->GetNContributors()>0) {
-// cout << "accepted global" << fESDEvent->GetEventNumberInFile() << " with NCont: " << fESDEvent->GetPrimaryVertex()->GetNContributors() << endl;
+// cout << "accepted global" << fESDEvent->GetEventNumberInFile() << " with NCont: " << fESDEvent->GetPrimaryVertex()->GetNContributors() << endl;
return fESDEvent->GetPrimaryVertex()->GetNContributors();
}
}
if(fESDEvent->GetPrimaryVertexSPD() !=NULL){
if(fESDEvent->GetPrimaryVertexSPD()->GetNContributors()>0) {
-// cout << "accepted SPD" << fESDEvent->GetEventNumberInFile() << " with NCont: " << fESDEvent->GetPrimaryVertexSPD()->GetNContributors() << endl;
+// cout << "accepted SPD" << fESDEvent->GetEventNumberInFile() << " with NCont: " << fESDEvent->GetPrimaryVertexSPD()->GetNContributors() << endl;
return fESDEvent->GetPrimaryVertexSPD()->GetNContributors();
} else {
AliWarning(Form("Number of contributors from bad vertex type:: %s",fESDEvent->GetPrimaryVertex()->GetName()));
fGeneratorNames[i].Contains("hijing")){
kCaseGen = 3;
} else if (fGeneratorNames[i].CompareTo("BOX") == 0){
- kCaseGen = 4;
+ kCaseGen = 4;
} else if (fGeneratorNames[i].CompareTo("PARAM") == 0){
kCaseGen = 5;
} else if (fGeneratorNames[i].CompareTo("NoCocktailGeneratorFound") == 0){
} else if (fGeneratorNames[i].CompareTo("NoCocktailGeneratorFound_Hijing") == 0){
kCaseGen = 3;
}
+ TString periodName = ((AliV0ReaderV1*)AliAnalysisManager::GetAnalysisManager()
+ ->GetTask("V0ReaderV1"))->GetPeriodName();
+
+ if (periodName.Contains("LHC13d2")){
+ kCaseGen = 3;
+ }
}
}
if (kCaseGen == 0) return 1;
} else if (kCaseGen == 3 ){ // HIJING
if ( PDGCode == 111 && fDoReweightHistoMCPi0 && hReweightMCHistPi0!= 0x0){
functionResultMC = hReweightMCHistPi0->Interpolate(mesonPt);
- }
+ }
+ if ( PDGCode == 221 && fDoReweightHistoMCEta && hReweightMCHistEta!= 0x0){
+ functionResultMC = hReweightMCHistEta->Interpolate(mesonPt);
+ }
if ( PDGCode == 310 && fDoReweightHistoMCK0s && hReweightMCHistK0s!= 0x0){
functionResultMC = hReweightMCHistK0s->Interpolate(mesonPt);
}
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);
// cout << functionResultData << endl;
} else {
- Float_t a = 0.;
- Float_t b = 0.;
- Float_t c = 0.;
- Float_t d = 0.;
- Float_t e = 0.;
- if ( PDGCode == 111 ){
- if (fModCentralityClass == 1 && fCentralityMin == 0 && fCentralityMax == 1 ){ // 0-5 % PbPb
- a = 25.8747458223;
- b = 5.8761820045;
- c = -33.9928191673;
- d = 3.0731850142;
- e = 13.2500447620;
- } else if (fModCentralityClass == 1 && fCentralityMin == 1 && fCentralityMax == 2){ // 5-10% PbPb
- a = 21.7518148922;
- b = 5.8441200081;
- c = -17.1497051691;
- d = 2.3799090842;
- e = 5.4346404718;
- } else if (fModCentralityClass == 0 && fCentralityMin == 0 && fCentralityMax == 1){ // 0-10% PbPb
- a = 22.9852133622;
- b = 5.8602063916;
- c = -17.0992478654;
- d = 2.4426218039;
- e = 5.1194526345;
- } else if (fModCentralityClass == 0 && fCentralityMin == 1 && fCentralityMax == 2){ // 10-20% PbPb
- a = 19.3237333776;
- b = 5.8145906958;
- c = -13.8316665424;
- d = 2.3737630637;
- e = 4.7690300693;
- } else if (fModCentralityClass == 0 && fCentralityMin == 2 && fCentralityMax == 4){ // 20-40% PbPb
- a = 11.2656032751;
- b = 5.8003194354;
- c = -13.3936105929;
- d = 2.3371452334;
- e = 4.4726244958;
- } else if (fModCentralityClass == 0 && fCentralityMin == 4 && fCentralityMax == 6){ // 40-60% PbPb
- a = 4.1578154081;
- b = 5.6450005163;
- c = -8.4309375240;
- d = 1.8918308704;
- e = 2.9429194709;
- } else if (fModCentralityClass == 0 && fCentralityMin == 6 && fCentralityMax == 8){ // 60-80% PbPb
- a = 1.0635443810;
- b = 5.1337469970;
- c = -8.5906997238;
- d = 2.9794995997;
- e = 3.9294980048;
- } else if (fModCentralityClass == 0 && fCentralityMin == 0 && fCentralityMax == 2){ // 0-20% PbPb
- a = 21.7018745556;
- b = 5.9019352094;
- c = -14.2295510326;
- d = 2.2104490688;
- e = 4.2969671500;
- } else if (fModCentralityClass == 0 && fCentralityMin == 0 && fCentralityMax == 4){ // 0-40% PbPb
- a = 16.8227412106;
- b = 5.8660502207;
- c = -12.0978551215;
- d = 2.1695068981;
- e = 3.5349621182;
- } else if (fModCentralityClass == 0 && fCentralityMin == 0 && fCentralityMax == 8){ // 0-80% PbPb
- a = 9.4675681080;
- b = 5.8114944205;
- c = -10.4901523616;
- d = 2.0607982712;
- e = 2.9262259130;
- } else if (fModCentralityClass == 0 && fCentralityMin == 4 && fCentralityMax == 8){ // 60-80% PbPb
- a = 2.5985551785;
- b = 5.4118895738;
- c = -8.2510958428;
- d = 2.2551249190;
- e = 3.0700919491;
- }
-
- functionResultData = a*TMath::Power(mesonPt,-1*(b+c/(TMath::Power(mesonPt,d)+e)));
- }
+ if ( PDGCode == 111 && fDoReweightHistoMCPi0 && fFitDataPi0!= 0x0){
+ functionResultData = fFitDataPi0->Eval(mesonPt);
+ }
+ if ( PDGCode == 221 && fDoReweightHistoMCEta && fFitDataEta!= 0x0){
+ functionResultData = fFitDataEta->Eval(mesonPt);
+ }
+ if ( PDGCode == 310 && fDoReweightHistoMCK0s && fFitDataK0s!= 0x0){
+ functionResultData = fFitDataK0s->Eval(mesonPt);
+ }
+
+// Float_t a = 0.;
+// Float_t b = 0.;
+// Float_t c = 0.;
+// Float_t d = 0.;
+// Float_t e = 0.;
+// if ( PDGCode == 111 ){
+// if (fModCentralityClass == 1 && fCentralityMin == 0 && fCentralityMax == 1 ){ // 0-5 % PbPb
+// a = 25.8747458223;
+// b = 5.8761820045;
+// c = -33.9928191673;
+// d = 3.0731850142;
+// e = 13.2500447620;
+// } else if (fModCentralityClass == 1 && fCentralityMin == 1 && fCentralityMax == 2){ // 5-10% PbPb
+// a = 21.7518148922;
+// b = 5.8441200081;
+// c = -17.1497051691;
+// d = 2.3799090842;
+// e = 5.4346404718;
+// } else if (fModCentralityClass == 0 && fCentralityMin == 0 && fCentralityMax == 1){ // 0-10% PbPb
+// a = 22.9852133622;
+// b = 5.8602063916;
+// c = -17.0992478654;
+// d = 2.4426218039;
+// e = 5.1194526345;
+// } else if (fModCentralityClass == 0 && fCentralityMin == 1 && fCentralityMax == 2){ // 10-20% PbPb
+// a = 19.3237333776;
+// b = 5.8145906958;
+// c = -13.8316665424;
+// d = 2.3737630637;
+// e = 4.7690300693;
+// } else if (fModCentralityClass == 0 && fCentralityMin == 2 && fCentralityMax == 4){ // 20-40% PbPb
+// a = 11.2656032751;
+// b = 5.8003194354;
+// c = -13.3936105929;
+// d = 2.3371452334;
+// e = 4.4726244958;
+// } else if (fModCentralityClass == 0 && fCentralityMin == 4 && fCentralityMax == 6){ // 40-60% PbPb
+// a = 4.1578154081;
+// b = 5.6450005163;
+// c = -8.4309375240;
+// d = 1.8918308704;
+// e = 2.9429194709;
+// } else if (fModCentralityClass == 0 && fCentralityMin == 6 && fCentralityMax == 8){ // 60-80% PbPb
+// a = 1.0635443810;
+// b = 5.1337469970;
+// c = -8.5906997238;
+// d = 2.9794995997;
+// e = 3.9294980048;
+// } else if (fModCentralityClass == 0 && fCentralityMin == 0 && fCentralityMax == 2){ // 0-20% PbPb
+// a = 21.7018745556;
+// b = 5.9019352094;
+// c = -14.2295510326;
+// d = 2.2104490688;
+// e = 4.2969671500;
+// } else if (fModCentralityClass == 0 && fCentralityMin == 0 && fCentralityMax == 4){ // 0-40% PbPb
+// a = 16.8227412106;
+// b = 5.8660502207;
+// c = -12.0978551215;
+// d = 2.1695068981;
+// e = 3.5349621182;
+// } else if (fModCentralityClass == 0 && fCentralityMin == 0 && fCentralityMax == 8){ // 0-80% PbPb
+// a = 9.4675681080;
+// b = 5.8114944205;
+// c = -10.4901523616;
+// d = 2.0607982712;
+// e = 2.9262259130;
+// } else if (fModCentralityClass == 0 && fCentralityMin == 4 && fCentralityMax == 8){ // 60-80% PbPb
+// a = 2.5985551785;
+// b = 5.4118895738;
+// c = -8.2510958428;
+// d = 2.2551249190;
+// e = 3.0700919491;
+// }
+//
+// functionResultData = a*TMath::Power(mesonPt,-1*(b+c/(TMath::Power(mesonPt,d)+e)));
+// }
}
//Create and return standard 2010 PbPb cuts
AliConversionCuts *cuts=new AliConversionCuts("StandardCuts2010PbPb","StandardCuts2010PbPb");
if(!cuts->InitializeCutsFromCutString("100000204209297002322000000")){
- cout<<"Warning: Initialization of Standardcuts2010PbPb failed"<<endl;}
+ cout<<"Warning: Initialization of Standardcuts2010PbPb failed"<<endl;}
return cuts;
}
//Create and return standard 2010 PbPb cuts
AliConversionCuts *cuts=new AliConversionCuts("StandardCuts2010pp","StandardCuts2010pp");
if(!cuts->InitializeCutsFromCutString("000001100209366300380000000")){
- cout<<"Warning: Initialization of Standardcuts2010pp failed"<<endl;}
+ cout<<"Warning: Initialization of Standardcuts2010pp failed"<<endl;}
return cuts;
}
///________________________________________________________________________
#define ALICONVERSIONCUTS_H
// Class handling all kinds of selection cuts for Gamma Conversion analysis
-// Authors: Svein Lindal, Daniel Lohner *
+// Authors: Svein Lindal, Daniel Lohner *
#include "AliAODpidUtil.h"
#include "AliConversionPhotonBase.h"
using namespace std;
class AliConversionCuts : public AliAnalysisCuts {
-
+
public:
enum cutIds {
- kisHeavyIon,
- kCentralityMin,
- kCentralityMax,
- kselectV0AND,
- kmultiplicityMethod,
- kremovePileUp,
- kExtraSignals,
- kv0FinderType,
- ketaCut,
- kRCut,
- ksinglePtCut,
- kclsTPCCut,
- kededxSigmaCut,
- kpidedxSigmaCut,
- kpiMomdedxSigmaCut,
- kpiMaxMomdedxSigmaCut,
- kLowPRejectionSigmaCut,
- kTOFelectronPID,
- kQtMaxCut,
- kchi2GammaCut,
- kPsiPair,
- kdoPhotonAsymmetryCut,
- kCosPAngle,
- kElecShare,
- kToCloseV0s,
+ kisHeavyIon,
+ kCentralityMin,
+ kCentralityMax,
+ kselectV0AND,
+ kmultiplicityMethod,
+ kremovePileUp,
+ kExtraSignals,
+ kv0FinderType,
+ ketaCut,
+ kRCut,
+ ksinglePtCut,
+ kclsTPCCut,
+ kededxSigmaCut,
+ kpidedxSigmaCut,
+ kpiMomdedxSigmaCut,
+ kpiMaxMomdedxSigmaCut,
+ kLowPRejectionSigmaCut,
+ kTOFelectronPID,
+ kQtMaxCut,
+ kchi2GammaCut,
+ kPsiPair,
+ kdoPhotonAsymmetryCut,
+ kCosPAngle,
+ kElecShare,
+ kToCloseV0s,
kDcaRPrimVtx,
kDcaZPrimVtx,
- kNCuts
+ kNCuts
};
enum photonCuts {
Bool_t RejectToCloseV0s(AliAODConversionPhoton* photon, TList *photons, Int_t nV0);
Int_t IsParticleFromBGEvent(Int_t index, AliStack *MCStack, AliVEvent *InputEvent = 0x0);
void GetNotRejectedParticles(Int_t rejection, TList *HeaderList, AliVEvent *MCEvent);
- void SetUseReweightingWithHistogramFromFile( Bool_t pi0reweight=kTRUE, Bool_t etareweight=kFALSE, Bool_t k0sreweight=kFALSE,TString path="$ALICE_ROOT/PWGGA/GammaConv/MCSpectraInput.root",
- TString histoNamePi0 = "Hijing_PbPb_2760GeV_0005", TString histoNameEta = "", TString histoNameK0s = "") {
+ void SetUseReweightingWithHistogramFromFile( Bool_t pi0reweight=kTRUE, Bool_t etareweight=kFALSE, Bool_t k0sreweight=kFALSE, TString path="$ALICE_ROOT/PWGGA/GammaConv/MCSpectraInput.root",
+ TString histoNamePi0 = "", TString histoNameEta = "", TString histoNameK0s = "",
+ TString fitNamePi0 = "", TString fitNameEta = "", TString fitNameK0s ="" ) {
+ AliInfo(Form("enabled reweighting for: pi0 : %i, eta: %i, K0s: %i",pi0reweight, etareweight, k0sreweight));
fDoReweightHistoMCPi0 = pi0reweight;
fDoReweightHistoMCEta = etareweight;
fDoReweightHistoMCK0s = k0sreweight;
fNameHistoReweightingPi0 =histoNamePi0;
fNameHistoReweightingEta =histoNameEta;
fNameHistoReweightingK0s =histoNameK0s;
+ fNameFitDataPi0 =fitNamePi0;
+ fNameFitDataEta =fitNameEta;
+ fNameFitDataK0s =fitNameK0s;
+
}
void LoadReweightingHistosMCFromFile ();
// Event Cuts
Double_t fMinPPhotonAsymmetryCut; // Min Momentum for Asymmetry Cut
Double_t fMinPhotonAsymmetry; // Asymmetry Cut
Int_t fIsHeavyIon; // flag for heavy ion
- Int_t fDetectorCentrality; // centrality detecotor V0M or CL1
+ Int_t fDetectorCentrality; // centrality detecotor V0M or CL1
Int_t fModCentralityClass; // allows to select smaller centrality classes
Double_t fMaxVertexZ; // max z offset of vertex
Int_t fCentralityMin; // centrality selection lower bin value
TString fNameHistoReweightingPi0; //Histogram name for reweighting Pi0
TString fNameHistoReweightingEta; //Histogram name for reweighting Eta
TString fNameHistoReweightingK0s; //Histogram name for reweighting K0s
+ TString fNameFitDataPi0; //Fit name for fit to spectrum of pi0s in Data
+ TString fNameFitDataEta; //Fit name for fit to spectrum of etas in Data
+ TString fNameFitDataK0s; //Fit name for fit to spectrum of k0s in Data
// Histograms
TH1F *hdEdxCuts; // bookkeeping for dEdx cuts
TH2F *hTPCdEdxbefore; // TPC dEdx before cuts
TH1D *hReweightMCHistPi0; //histogram input for reweighting Pi0
TH1D *hReweightMCHistEta; //histogram input for reweighting Eta
TH1D *hReweightMCHistK0s; //histogram input for reweighting K0s
+ TF1 *fFitDataPi0; //fit to pi0 spectrum in Data
+ TF1 *fFitDataEta; //fit to eta spectrum in Data
+ TF1 *fFitDataK0s; //fit to K0s spectrum in Data
Bool_t fPreSelCut; // Flag for preselection cut used in V0Reader
Bool_t fTriggerSelectedManually; // Flag for manual trigger selection
TString fSpecialTriggerName; // Name of the Special Triggers
private:
- ClassDef(AliConversionCuts,4)
+ ClassDef(AliConversionCuts,5)
};
fesdTrackCuts->SetMinNClustersITS(3);\r
// 3 hits in total in the ITS. At least 1 hit in any layer of SPD\r
break;\r
+ case 5: fesdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kAny);\r
+ fesdTrackCuts->SetMinNClustersITS(4);\r
+ // 4 hits in total in the ITS. At least 1 hit in any layer of SPD\r
+ break;\r
+ case 6: fesdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kAny);\r
+ fesdTrackCuts->SetMinNClustersITS(5);\r
+ // 5 hits in total in the ITS. At least 1 hit in any layer of SPD\r
+ break;\r
default:\r
cout<<"Warning: clsITSCut not defined "<<clsITSCut<<endl;\r
return kFALSE;\r
fEtaCut = 0.5; //changed from 0.3 to 0.5 2013.06.10\r
fDoEtaCut = kTRUE;\r
break;\r
+ case 8: fEtaCut = 0.4;\r
+ fDoEtaCut = kTRUE;\r
+ break;\r
default:\r
cout<<"Warning: EtaCut not defined "<<etaCut<<endl;\r
return kFALSE;\r
for(Int_t i = 0; i<numberOfCuts; i++){
+ analysisCuts[i] = new AliConversionCuts();
+
if (trainConfig == 1 ){
- if (i == 0 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0005V0M", "", "");
- if (i == 1 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0510V0M", "", "");
- if (i == 2 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0010V0M", "", "");
- if (i == 3 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE,fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_1020V0M", "", "");
+ if (i == 0 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0005V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_0005V0M");
+ if (i == 1 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0510V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_0510V0M");
+ if (i == 2 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0010V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_0010V0M");
+ if (i == 3 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE,fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_1020V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_1020V0M");
} else if (trainConfig == 2){
- if (i == 0 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_2040V0M", "", "");
- if (i == 1 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_4060V0M", "", "");
- if (i==2 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_6080V0M", "", "");
- if (i == 3 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0080V0M", "", "");
+ if (i == 0 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_2040V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_2040V0M");
+ if (i == 1 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_4060V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_4060V0M");
+ if (i==2 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_6080V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_6080V0M");
+ if (i == 3 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0080V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_0080V0M");
} else if (trainConfig == 3){
- if (i == 0 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0020V0M", "", "");
- if (i == 1 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0040V0M", "", "");
- if (i == 2 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_4080V0M", "", "");
- if (i == 3 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0080V0M", "", "");
+ if (i == 0 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0020V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_0020V0M");
+ if (i == 1 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0040V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_0040V0M");
+ if (i == 2 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_4080V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_4080V0M");
+ if (i == 3 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0080V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_0080V0M");
} else if (trainConfig == 4){
- if (i == 0 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0010V0M", "", "");
- if (i == 1 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE,fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_1020V0M", "", "");
- if (i == 2 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_2040V0M", "", "");
+ if (i == 0 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0010V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_0010V0M");
+ if (i == 1 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE,fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_1020V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_1020V0M");
+ if (i == 2 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_2040V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_2040V0M");
} else if (trainConfig == 5 ){
- if (i == 0 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0005V0M", "", "");
- if (i == 1 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0510V0M", "", "");
- if (i == 2 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0010V0M", "", "");
- if (i == 3 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE,fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_1020V0M", "", "");
+ if (i == 0 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0005V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_0005V0M");
+ if (i == 1 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0510V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_0510V0M");
+ if (i == 2 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0010V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_0010V0M");
+ if (i == 3 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE,fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_1020V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_1020V0M");
} else if (trainConfig == 6){
- if (i == 0 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_2040V0M", "", "");
- if (i == 1 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_4060V0M", "", "");
- if (i==2 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_6080V0M", "", "");
- if (i == 3 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0080V0M", "", "");
+ if (i == 0 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_2040V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_2040V0M");
+ if (i == 1 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_4060V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_4060V0M");
+ if (i==2 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_6080V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_6080V0M");
} else if (trainConfig == 9){
if (doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_PbPb_2760GeV_0005", "", "");
if (i == 1) analysisCuts[i]->SelectSpecialTrigger(AliVEvent::kMB, "AliVEvent::kMB" );
if (i == 3) analysisCuts[i]->SelectSpecialTrigger(AliVEvent::kCentral,"AliVEvent::kCentral" );
} else if (trainConfig == 10){
- if (i == 0 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0020V0M", "", "");
- if (i == 1 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0040V0M", "", "");
- if (i == 2 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_4080V0M", "", "");
- if (i == 3 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0080V0M", "", "");
+ if (i == 0 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0020V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_0020V0M");
+ if (i == 1 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0040V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_0040V0M");
+ if (i == 2 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_4080V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_4080V0M");
+ if (i == 3 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0080V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_0080V0M");
} else if (trainConfig == 11){
- if (i == 0 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0010V0M", "", "");
- if (i == 1 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE,fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_1020V0M", "", "");
- if (i == 2 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_2040V0M", "", "");
+ if (i == 0 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0010V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_0010V0M");
+ if (i == 1 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE,fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_1020V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_1020V0M);
+ if (i == 2 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_2040V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_2040V0M");
} else if (trainConfig == 12 ){
- if (i == 0 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0005TPC", "", "");
- if (i == 1 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0510TPC", "", "");
- if (i == 2 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0010TPC", "", "");
- if (i == 3 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE,fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_1020TPC", "", "");
+ if (i == 0 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0005TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_0005V0M");
+ if (i == 1 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0510TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_0510V0M");
+ if (i == 2 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0010TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_0010V0M");
+ if (i == 3 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE,fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_1020TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_1020V0M");
} else if (trainConfig == 13){
- if (i == 0 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_2040TPC", "", "");
- if (i == 1 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_4060TPC", "", "");
- if (i==2 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_6080TPC", "", "");
- if (i == 3 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0080TPC", "", "");
+ if (i == 0 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_2040TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_2040V0M");
+ if (i == 1 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_4060TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_4060V0M");
+ if (i==2 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_6080TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_6080V0M");
+ if (i == 3 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0080TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_0080V0M");
} else if (trainConfig == 14){
- if (i == 0 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0020TPC", "", "");
- if (i == 1 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0040TPC", "", "");
- if (i == 2 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_4080TPC", "", "");
- if (i == 3 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0080TPC", "", "");
+ if (i == 0 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0020TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_0020V0M");
+ if (i == 1 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0040TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_0040V0M");
+ if (i == 2 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_4080TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_4080V0M");
+ if (i == 3 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0080TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_0080V0M");
} else if (trainConfig == 15){
- if (i == 0 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0010TPC", "", "");
- if (i == 1 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE,fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_1020TPC", "", "");
- if (i == 2 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_2040TPC", "", "");
+ if (i == 0 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0010TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_0010V0M");
+ if (i == 1 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE,fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_1020TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_1020V0M");
+ if (i == 2 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_2040TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_2040V0M");
} else if (trainConfig == 16 ){
- if (i == 0 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0005TPC", "", "");
- if (i == 1 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0510TPC", "", "");
- if (i == 2 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0010TPC", "", "");
- if (i == 3 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE,fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_1020TPC", "", "");
+ if (i == 0 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0005TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_0005V0M");
+ if (i == 1 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0510TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_0510V0M");
+ if (i == 2 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0010TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_0010V0M");
+ if (i == 3 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE,fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_1020TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_1020V0M");
} else if (trainConfig == 17){
- if (i == 0 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_2040TPC", "", "");
- if (i == 1 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_4060TPC", "", "");
- if (i==2 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_6080TPC", "", "");
- if (i == 3 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0080TPC", "", "");
+ if (i == 0 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_2040TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_2040V0M");
+ if (i == 1 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_4060TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_4060V0M");
+ if (i==2 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_6080TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_6080V0M");
+ if (i == 3 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0080TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_0080V0M");
} else if (trainConfig == 20){
- if (i == 0 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0020TPC", "", "");
- if (i == 1 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0040TPC", "", "");
- if (i == 2 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_4080TPC", "", "");
- if (i == 3 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0080TPC", "", "");
+ if (i == 0 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0020TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_0020V0M");
+ if (i == 1 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0040TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_0040V0M");
+ if (i == 2 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_4080TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_4080V0M");
+ if (i == 3 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0080TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_0080V0M");
} else if (trainConfig == 21){
- if (i == 0 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0010TPC", "", "");
- if (i == 1 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE,fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_1020TPC", "", "");
- if (i == 2 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_2040TPC", "", "");
+ if (i == 0 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0010TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_0010V0M");
+ if (i == 1 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE,fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_1020TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_1020V0M");
+ if (i == 2 && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_2040TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_2040V0M");
}
- analysisCuts[i] = new AliConversionCuts();
analysisCuts[i]->InitializeCutsFromCutString(cutarray[i].Data());
ConvCutList->Add(analysisCuts[i]);