TString periodName = ((AliV0ReaderV1*)AliAnalysisManager::GetAnalysisManager()->GetTask(fV0ReaderName.Data()))->GetPeriodName();
-
if(fNotRejectedStart){
delete[] fNotRejectedStart;
fNotRejectedStart = NULL;
if(MCEvent->IsA()==AliAODEvent::Class()){ // MCEvent is a AODEvent in case of AOD
cHeaderAOD = dynamic_cast<AliAODMCHeader*>(MCEvent->FindListObject(AliAODMCHeader::StdBranchName()));
fMCStackAOD = dynamic_cast<TClonesArray*>(MCEvent->FindListObject(AliAODMCParticle::StdBranchName()));
-
-
if(cHeaderAOD) headerFound = kTRUE;
}
+// cout << "event starts here" << endl;
if(headerFound){
TList *genHeaders = 0x0;
if(cHeader) genHeaders = cHeader->GetHeaders();
// cout << "accepted" << endl;
if (GeneratorInList.CompareTo("PARAM") == 0 || GeneratorInList.CompareTo("BOX") == 0 ){
if(fMCStack){
- if (fMCStack->Particle(firstindexA)->GetPdgCode() == fAddedSignalPDGCode ) {
- if (periodName.CompareTo("LHC14a1b")==0 || periodName.CompareTo("LHC14a1c")==0 ){
+ if (periodName.CompareTo("LHC14a1b")==0 || periodName.CompareTo("LHC14a1c")==0 ){
+ if (fMCStack->Particle(firstindexA)->GetPdgCode() == fAddedSignalPDGCode ) {
if (gh->NProduced() > 10 && fMCStack->Particle(firstindexA+10)->GetPdgCode() == fAddedSignalPDGCode ){
// cout << "cond 1: "<< fnHeaders << endl;
fnHeaders++;
continue;
}
continue;
- } else {
-// cout << "cond 2: " << fnHeaders << endl;
- fnHeaders++;
- continue;
}
+ } else {
+// cout << "cond 2: " << fnHeaders << endl;
+ fnHeaders++;
+ continue;
+
}
}
if ( fMCStackAOD){
AliAODMCParticle *aodMCParticle = static_cast<AliAODMCParticle*>(fMCStackAOD->At(firstindexA));
- if ( aodMCParticle->GetPdgCode() == fAddedSignalPDGCode ){
- if (periodName.CompareTo("LHC14a1b")==0 || periodName.CompareTo("LHC14a1c")==0 ){
+ if (periodName.CompareTo("LHC14a1b")==0 || periodName.CompareTo("LHC14a1c")==0 ){
+ if ( aodMCParticle->GetPdgCode() == fAddedSignalPDGCode ){
if (gh->NProduced() > 10){
AliAODMCParticle *aodMCParticle2 = static_cast<AliAODMCParticle*>(fMCStackAOD->At(firstindexA+10));
if ( aodMCParticle2->GetPdgCode() == fAddedSignalPDGCode ){
}
}
continue;
- } else {
-// cout << "cond 2: " << fnHeaders << endl;
- fnHeaders++;
- continue;
- }
+ }
+ } else {
+// cout << "cond 2: " << fnHeaders << endl;
+ fnHeaders++;
+ continue;
}
}
continue;
if(GeneratorName.CompareTo(GeneratorInList) == 0){
if (GeneratorInList.CompareTo("PARAM") == 0 || GeneratorInList.CompareTo("BOX") == 0 ){
if(fMCStack){
- if (fMCStack->Particle(firstindex)->GetPdgCode() == fAddedSignalPDGCode ) {
- if (periodName.CompareTo("LHC14a1b")==0 || periodName.CompareTo("LHC14a1c")==0 ){
-// cout << "produced " << gh->NProduced() << " with box generator" << endl;
+ if (periodName.CompareTo("LHC14a1b")==0 || periodName.CompareTo("LHC14a1c")==0 ){
+ if (fMCStack->Particle(firstindex)->GetPdgCode() == fAddedSignalPDGCode ) {
+ cout << "produced " << gh->NProduced() << " with box generator" << endl;
if (gh->NProduced() > 10 && fMCStack->Particle(firstindex+10)->GetPdgCode() == fAddedSignalPDGCode){
// cout << "one of them was a pi0 or eta" << endl;
fNotRejectedStart[number] = firstindex;
// cout << "Number of particles produced for: " << i << "\t" << GeneratorName.Data() << "\t" << lastindex-firstindex+1 << endl;
continue;
}
- } else {
- fNotRejectedStart[number] = firstindex;
- fNotRejectedEnd[number] = lastindex;
- fGeneratorNames[number] = GeneratorName;
- number++;
- continue;
}
+ } else {
+ fNotRejectedStart[number] = firstindex;
+ fNotRejectedEnd[number] = lastindex;
+ fGeneratorNames[number] = GeneratorName;
+ number++;
+ continue;
}
}
if ( fMCStackAOD){
AliAODMCParticle *aodMCParticle = static_cast<AliAODMCParticle*>(fMCStackAOD->At(firstindex));
- if ( aodMCParticle->GetPdgCode() == fAddedSignalPDGCode ){
- if (periodName.CompareTo("LHC14a1b")==0 || periodName.CompareTo("LHC14a1c")==0 ){
+ if (periodName.CompareTo("LHC14a1b")==0 || periodName.CompareTo("LHC14a1c")==0 ){
+ if ( aodMCParticle->GetPdgCode() == fAddedSignalPDGCode ){
if (gh->NProduced() > 10) {
AliAODMCParticle *aodMCParticle2 = static_cast<AliAODMCParticle*>(fMCStackAOD->At(firstindex+10));
if ( aodMCParticle2->GetPdgCode() == fAddedSignalPDGCode ){
fNotRejectedStart[number] = firstindex;
fGeneratorNames[number] = GeneratorName;
number++;
- }
- continue;
- }
- } else {
- fNotRejectedStart[number] = firstindex;
- fNotRejectedEnd[number] = lastindex;
- fGeneratorNames[number] = GeneratorName;
- number++;
- continue;
- }
+ }
+ continue;
+ }
+ }
+ } else {
+ fNotRejectedStart[number] = firstindex;
+ fNotRejectedEnd[number] = lastindex;
+ fGeneratorNames[number] = GeneratorName;
+ number++;
+ continue;
}
}
continue;
fNotRejectedEnd[0] = static_cast<AliMCEvent*>(MCEvent)->Stack()->GetNprimary()-1;
fGeneratorNames = new TString[1];
fGeneratorNames[0] = "NoCocktailGeneratorFound";
-
- AliGenPythiaEventHeader *mcHeaderPythia = dynamic_cast<AliGenPythiaEventHeader*>(static_cast<AliMCEvent*>(MCEvent)->GenEventHeader());
- if (mcHeaderPythia) fGeneratorNames[0] = "NoCocktailGeneratorFound_Pythia";
- AliGenDPMjetEventHeader *mcHeaderPhojet = dynamic_cast<AliGenDPMjetEventHeader*>(static_cast<AliMCEvent*>(MCEvent)->GenEventHeader());
- if (mcHeaderPhojet) fGeneratorNames[0] = "NoCocktailGeneratorFound_Phojet";
- AliGenHijingEventHeader *mcHeaderHijing = dynamic_cast<AliGenHijingEventHeader*>(static_cast<AliMCEvent*>(MCEvent)->GenEventHeader());
- if (mcHeaderHijing) fGeneratorNames[0] = "NoCocktailGeneratorFound_Hijing";
-
SetRejectExtraSignalsCut(0);
}
//_________________________________________________________________________
Float_t AliConvEventCuts::GetWeightForMeson(TString period, Int_t index, AliStack *MCStack, AliVEvent *InputEvent){
- if (!( period.CompareTo("LHC11a10a") == 0 || period.CompareTo("LHC11a10b") == 0 || period.CompareTo("LHC11a10b_bis") == 0 || period.CompareTo("LHC11a10a_bis") == 0 || period.CompareTo("LHC11a10b_plus") == 0 || period.Contains("LHC13d2")|| period.Contains("LHC14a1") ||
- period.CompareTo("LHC13e7") == 0 || period.Contains("LHC13b2_efix") || period.CompareTo("LHC14b2") == 0 )) return 1.;
+ if (!( period.Contains("LHC13d2") || period.Contains("LHC14a1") || period.CompareTo("LHC13e7") == 0 || period.Contains("LHC13b2_efix") ||
+ period.CompareTo("LHC14b2") == 0 )) return 1.;
//period.CompareTo("LHC12f1a") == 0 || period.CompareTo("LHC12f1b") == 0 || period.CompareTo("LHC12i3") == 0 ||
Int_t kCaseGen = 0;
for (Int_t i = 0; i < fnHeaders; i++){
if (index >= fNotRejectedStart[i] && index < fNotRejectedEnd[i]+1){
- if (fGeneratorNames[i].CompareTo("Pythia") == 0){
- kCaseGen = 1;
- } else if (fGeneratorNames[i].CompareTo("DPMJET") == 0){
- kCaseGen = 2;
- } else if (fGeneratorNames[i].CompareTo("HIJING") == 0 ||
- fGeneratorNames[i].CompareTo("Hijing") == 0 ||
- fGeneratorNames[i].Contains("hijing")){
- kCaseGen = 3;
- } else if (fGeneratorNames[i].CompareTo("BOX") == 0){
- kCaseGen = 4;
- } else if (fGeneratorNames[i].CompareTo("PARAM") == 0){
- kCaseGen = 5;
- } else if (fGeneratorNames[i].CompareTo("NoCocktailGeneratorFound") == 0){
- kCaseGen = 6;
- } else if (fGeneratorNames[i].CompareTo("NoCocktailGeneratorFound_Pythia") == 0){
+ if (period.Contains("LHC13d2") || period.CompareTo("LHC13e7") == 0 || period.Contains("LHC13b2_efix") || period.Contains("LHC14a1") ||
+ period.CompareTo("LHC14b2") == 0 ){
kCaseGen = 1;
- } else if (fGeneratorNames[i].CompareTo("NoCocktailGeneratorFound_Phojet") == 0){
- kCaseGen = 2;
- } else if (fGeneratorNames[i].CompareTo("NoCocktailGeneratorFound_Hijing") == 0){
- kCaseGen = 3;
- }
- if (period.Contains("LHC13d2") || period.CompareTo("LHC13e7") == 0 || period.Contains("LHC13b2_efix") || period.Contains("LHC14a1") || period.CompareTo("LHC14b2") == 0 ){
- kCaseGen = 3;
}
}
}
if (kCaseGen == 0) return 1;
-
Double_t mesonPt = 0;
Double_t mesonMass = 0;
Int_t PDGCode = 0;
mesonPt = ((TParticle*)MCStack->Particle(index))->Pt();
mesonMass = ((TParticle*)MCStack->Particle(index))->GetCalcMass();
PDGCode = ((TParticle*)MCStack->Particle(index))->GetPdgCode();
- }
- else if(InputEvent->IsA()==AliAODEvent::Class()){
+ } else if(InputEvent->IsA()==AliAODEvent::Class()){
TClonesArray *AODMCTrackArray = dynamic_cast<TClonesArray*>(InputEvent->FindListObject(AliAODMCParticle::StdBranchName()));
if (AODMCTrackArray){
AliAODMCParticle *aodMCParticle = static_cast<AliAODMCParticle*>(AODMCTrackArray->At(index));
}
Float_t functionResultMC = 1.;
- if (kCaseGen == 1){ // Pythia 6
- Float_t dNdyMC = 2.1462;
- Float_t nMC = 7.06055;
- Float_t tMC = 0.12533;
- if ( PDGCode == 111){
- dNdyMC = 2.1462;
- nMC = 7.06055;
- tMC = 0.12533;
- } else if ( PDGCode == 221){
- dNdyMC = 0.2357;
- nMC = 5.9105;
- tMC = 0.1525;
- }
- functionResultMC = dNdyMC / ( 2 * TMath::Pi())*(nMC-1.)*(nMC-2.) / (nMC*tMC*(nMC*tMC+mesonMass*(nMC-2.))) * TMath::Power(1.+(TMath::Sqrt(mesonPt*mesonPt+mesonMass*mesonMass)-mesonMass)/(nMC*tMC), -nMC);
- } else if (kCaseGen == 2){ // Phojet
- Float_t dNdyMC = 2.35978;
- Float_t nMC = 6.81795;
- Float_t tMC = 0.11492;
- if ( PDGCode == 111){
- dNdyMC = 2.35978;
- nMC = 6.81795;
- tMC = 0.11492;
- } else if ( PDGCode == 221){
- dNdyMC = 0.3690;
- nMC = 5.55809;
- tMC = 0.13387;
- }
- functionResultMC = dNdyMC / ( 2 * TMath::Pi())*(nMC-1.)*(nMC-2.) / (nMC*tMC*(nMC*tMC+mesonMass*(nMC-2.))) * TMath::Power(1.+(TMath::Sqrt(mesonPt*mesonPt+mesonMass*mesonMass)-mesonMass)/(nMC*tMC), -nMC);
- } else if (kCaseGen == 4){ // BOX generators pp
- // functionResultMC = 1./sqrt(1.-mesonMass*mesonMass/((mesonMass*mesonMass+mesonPt*mesonPt)*cosh(mesonY)*cosh(mesonY)));
- Float_t a = 0.23437;
- Float_t b = 5.6661;
- Float_t c = -1430.5863;
- Float_t d = -0.6966624;
- Float_t e = 252.3742;
- if ( PDGCode == 111){
- a = 0.23437;
- b = 5.6661;
- c = -1430.5863;
- d = -0.6966624;
- e = 252.3742;
- } else if ( PDGCode == 221){
- a = 0.10399;
- b = 4.35311;
- c = -12.17723;
- d = -0.01172;
- e =1.85140;
- }
- functionResultMC = a*TMath::Power(mesonPt,-1.*(b+c/(TMath::Power(mesonPt,d)+e)))*1./mesonPt *1./1.6 *1./(2.* TMath::Pi());
- // cout << functionResultMC << endl;
- } 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);
- }
+ 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);
}
Float_t functionResultData = 1;
- if (kCaseGen == 1 || kCaseGen == 2 || kCaseGen == 4 ){
- Float_t dNdyData = 2.2328;
- Float_t nData = 7.1473;
- Float_t tData = 0.1346;
- if ( PDGCode == 111){
- dNdyData = 2.2328;
- nData = 7.1473;
- tData = 0.1346;
- } else if ( PDGCode == 221){
- dNdyData = 0.38992; //be careful this fit is not optimal, eta in data still has problems
- nData = 5.72778;
- tData = 0.13835;
- }
- 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 {
- 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);
- }
-
+ 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);
}
Double_t weight = 1;
void AddTask_GammaConvV1_pp( Int_t trainConfig = 1, // change different set of cuts
- Bool_t isMC = kFALSE, // run MC
- Int_t enableQAMesonTask = 0, // enable meson QA in AliAnalysisTaskGammaConvV1
- Int_t enableQAPhotonTask = 0, // enable photon QA in AliAnalysisTaskGammaConvV1
- TString fileNameInputForWeighting = "MCSpectraInput.root", // path to file for weigting input
- TString cutnumberAODBranch = "0000000060084001001500000", // cutnumber for AOD branch
+ Bool_t isMC = kFALSE, // run MC
+ Int_t enableQAMesonTask = 0, // enable meson QA in AliAnalysisTaskGammaConvV1
+ Int_t enableQAPhotonTask = 0, // enable photon QA in AliAnalysisTaskGammaConvV1
+ TString fileNameInputForWeighting = "MCSpectraInput.root", // path to file for weigting input
+ TString cutnumberAODBranch = "0000000060084001001500000", // cutnumber for AOD branch
TString periodname = "LHC12f1x" // period name
- ) {
+ ) {
// ================= Load Librariers =================================
gSystem->Load("libCore");
task->SetIsMC(isMC);
// Cut Numbers to use in Analysis
Int_t numberOfCuts = 4;
-
+ if ( trainConfig == 60) numberOfCuts = 2;
+
TString *eventCutArray = new TString[numberOfCuts];
TString *photonCutArray = new TString[numberOfCuts];
TString *mesonCutArray = new TString[numberOfCuts];
eventCutArray[ 1] = "0000011"; photonCutArray[ 1] = "002000092173028250400000"; mesonCutArray[1] = "01521065000000"; //pion 0-sigma cut for 0.4GeV<p<3.5GeV above -10-sigma
eventCutArray[ 2] = "0000011"; photonCutArray[ 2] = "002000092273028250400000"; mesonCutArray[2] = "01521065000000"; //pion 1-sigma cut for 0.4GeV<p<3.5GeV above -10-sigma
eventCutArray[ 3] = "0000011"; photonCutArray[ 3] = "002000092873028250400000"; mesonCutArray[3] = "01521065000000"; //pion 2-sigma cut for 0.4GeV<p<3.5GeV above 1-sigma
+ } else if (trainConfig == 60) {
+ eventCutArray[ 0] = "0000011"; photonCutArray[ 0] = "002000092273028250400000"; mesonCutArray[0] = "01521035000000"; //New standard cut for eta analysis
+ eventCutArray[ 1] = "0000012"; photonCutArray[ 1] = "002000092273028250400000"; mesonCutArray[1] = "01521035000000"; //New standard cut for eta analysis
} else {
- Error(Form("GammaConvV1_%i",trainConfig), "wrong trainConfig variable no cuts have been specified for the configuration");
- return;
+ Error(Form("GammaConvV1_%i",trainConfig), "wrong trainConfig variable no cuts have been specified for the configuration");
+ return;
}
TList *EventCutList = new TList();