25 #include "AliAODTrack.h" 26 #include "AliESDtrack.h" 27 #include "AliAnalysisManager.h" 28 #include "AliInputEventHandler.h" 29 #include "AliMCEventHandler.h" 30 #include "AliAODHandler.h" 34 #include "TObjString.h" 35 #include "AliMCEvent.h" 36 #include "AliAODEvent.h" 37 #include "AliESDEvent.h" 38 #include "AliCentrality.h" 39 #include "AliMultSelection.h" 43 #include "AliGenCocktailEventHeader.h" 44 #include "AliGenDPMjetEventHeader.h" 45 #include "AliGenPythiaEventHeader.h" 46 #include "AliGenHijingEventHeader.h" 47 #include "AliTriggerAnalysis.h" 49 #include "AliVCaloCells.h" 50 #include "AliAODMCParticle.h" 51 #include "AliAODMCHeader.h" 52 #include "AliEMCALTriggerPatchInfo.h" 67 "SelectSpecialTrigger",
68 "SelectSpecialSubTriggerClass",
77 AliAnalysisCuts(name,title),
80 fDoLightOutput(kFALSE),
83 fDetectorCentrality(0),
84 fModCentralityClass(0),
85 fEnableVertexCut(kTRUE),
89 fMultiplicityMethod(0),
91 fSpecialSubTrigger(0),
92 fRemovePileUp(kFALSE),
93 fRemovePileUpSPD(kFALSE),
95 fPastFutureRejectionLow(0),
96 fPastFutureRejectionHigh(0),
97 fDoPileUpRejectV0MTPCout(0),
98 fFPileUpRejectV0MTPCout(0),
99 fRejectExtraSignals(0),
100 fOfflineTriggerMask(0),
105 fNotRejectedStart(NULL),
106 fNotRejectedEnd(NULL),
107 fGeneratorNames(NULL),
108 fPeriodEnum(kNoPeriod),
115 fDoCentralityFlat(0),
116 fPathWeightsFlatCent(
""),
117 fNameHistoNotFlatCentrality(
""),
118 fDoReweightHistoMCPi0(kFALSE),
119 fDoReweightHistoMCEta(kFALSE),
120 fDoReweightHistoMCK0s(kFALSE),
121 fPathTrFReweighting(
""),
122 fNameHistoReweightingPi0(
""),
123 fNameHistoReweightingEta(
""),
124 fNameHistoReweightingK0s(
""),
128 fHistoEventCuts(NULL),
129 fHistoPastFutureBits(NULL),
131 hCentralityNotFlat(NULL),
134 hNPileupVertices(NULL),
135 hPileupVertexToPrimZ(NULL),
136 hPileupVertexToPrimZSPDPileup(NULL),
137 hPileupVertexToPrimZTrackletvsHits(NULL),
138 hEventPlaneAngle(NULL),
141 hTriggerClassSelected(NULL),
142 hTriggerClassesCorrelated(NULL),
143 hReweightMCHistPi0(NULL),
144 hReweightMCHistEta(NULL),
145 hReweightMCHistK0s(NULL),
149 fAddedSignalPDGCode(0),
151 fTriggerSelectedManually(kFALSE),
152 fSpecialTriggerName(
""),
153 fSpecialSubTriggerName(
""),
154 fNSpecialSubTriggerOptions(0),
155 hSPDClusterTrackletBackgroundBefore(NULL),
156 hSPDClusterTrackletBackground(NULL),
158 fCorrTaskSetting(
""),
160 fTriggerPatchInfo(NULL),
161 fMainTriggerPatchEMCAL(NULL),
162 fCaloTriggersName(
""),
163 fCaloTriggerPatchInfoName(
""),
165 fTriggersEMCALSelected(-1),
166 fEMCALTrigInitialized(kFALSE),
167 fSecProdBoundary(1.0),
170 fMaxFacPtHardSingleParticle(1.5),
171 fMimicTrigger(kFALSE),
172 fRejectTriggerOverlap(kFALSE),
173 fDoMultiplicityWeighting(kFALSE),
174 fPathReweightingMult(
""),
175 fNameHistoReweightingMultData(
""),
176 fNameHistoReweightingMultMC(
""),
177 hReweightMultData(NULL),
178 hReweightMultMC(NULL),
184 fUtils =
new AliAnalysisUtils();
193 AliAnalysisCuts(ref),
300 fUtils =
new AliAnalysisUtils();
340 TH1::AddDirectory(kFALSE);
439 hTriggerClass->GetXaxis()->SetBinLabel( 9,
"kMUL7/kMuonLikePB");
440 hTriggerClass->GetXaxis()->SetBinLabel(10,
"kMUU7/kMuonUnlikePB");
444 hTriggerClass->GetXaxis()->SetBinLabel(14,
"kPHI7/kPHI8/kPHOSPb");
453 hTriggerClass->GetXaxis()->SetBinLabel(23,
"kMuonSingleLowPt8");
454 hTriggerClass->GetXaxis()->SetBinLabel(24,
"kMuonSingleHighPt8");
455 hTriggerClass->GetXaxis()->SetBinLabel(25,
"kMuonLikeLowPt8");
456 hTriggerClass->GetXaxis()->SetBinLabel(26,
"kMuonUnlikeLowPt8");
457 hTriggerClass->GetXaxis()->SetBinLabel(27,
"kMuonUnlikeLowPt0");
466 hTriggerClass->GetXaxis()->SetBinLabel(36,
"failed Physics Selection");
467 hTriggerClass->GetXaxis()->SetBinLabel(37,
"mimickedTrigger");
532 TH1::AddDirectory(kTRUE);
545 if(mcEvent && event->IsA()==AliESDEvent::Class()){
547 AliMCEventHandler* mcHandler =
dynamic_cast<AliMCEventHandler*
> (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler());
552 if (!mcHandler->InitOk() ){
556 if (!mcHandler->TreeK() ){
580 if(event->IsA()==AliESDEvent::Class()){
581 AliTriggerAnalysis fTriggerAnalysis;
582 fHasV0AND = fTriggerAnalysis.IsOfflineTriggerFired((
AliESDEvent*)event, AliTriggerAnalysis::kV0AND);
609 Int_t nClustersLayer0 =
event->GetNumberOfITSClusters(0);
610 Int_t nClustersLayer1 =
event->GetNumberOfITSClusters(1);
611 Int_t nTracklets =
event->GetMultiplicity()->GetNumberOfTracklets();
616 if(event->IsA()==AliESDEvent::Class()){
620 for(
Int_t i=0; i<nPileVert;i++){
621 const AliESDVertex* pv = ((
AliESDEvent*)event)->GetPileupVertexSPD(i);
622 Int_t nc2 = pv->GetNContributors();
627 if (TMath::Abs(distZMax) < TMath::Abs(distZ) ){
639 if(
fUtils->IsPileUpMV(event)){
645 if(
fUtils->IsFirstEventInChunk(event)){
651 if(
fUtils->IsPileUpEvent(event)){
657 if (
fUtils->IsSPDClusterVsTrackletBG(event)){
666 if(event->IsPileupFromSPD(3,0.8,3.,2.,5.) ){
672 if (
fUtils->IsSPDClusterVsTrackletBG(event)){
705 AliEventplane *EventPlane =
event->GetEventplane();
730 AliInfo(
"Entering loading of weights for centrality flattening");
753 AliInfo(
"Entering loading of weights for multiplicity weighting");
763 if(hReweightMultDatatemp){
772 if(hReweightMultMCtemp){
787 AliInfo(
"Entering loading of histograms for weighting");
796 if(hReweightMCHistPi0temp){
814 if(hReweightMCHistEtatemp){
833 if(hReweightMCHistK0stemp){
859 AliInfo(
"Centrality flattening was enabled");
864 AliInfo(
"Multiplicity weighting was enabled");
868 AliInfo(
"Particle Weighting was enabled");
873 AliInfo(Form(
"Set Event Cut Number: %s",analysisCutSelection.Data()));
874 if(analysisCutSelection.Length()!=
kNCuts) {
875 AliError(Form(
"Cut selection has the wrong length! size is %d, number of cuts is %d", analysisCutSelection.Length(),
kNCuts));
878 if(!analysisCutSelection.IsAlnum()){
879 AliError(
"Cut selection is not alphanumeric");
886 TString analysisCutSelectionLowerCase = Form(
"%s",analysisCutSelection.Data());
887 analysisCutSelectionLowerCase.ToLower();
888 const char *cutSelection = analysisCutSelectionLowerCase.Data();
889 #define ASSIGNARRAY(i) fCuts[i] = ((int)cutSelection[i]>=(int)'a') ? cutSelection[i]-'a'+10 : cutSelection[i]-'0' 922 }
else return kFALSE;
928 }
else return kFALSE;
934 }
else return kFALSE;
940 }
else return kFALSE;
946 }
else return kFALSE;
952 }
else return kFALSE;
958 }
else return kFALSE;
964 }
else return kFALSE;
967 AliError(
"Cut id out of range");
971 AliError(
"Cut id %d not recognized");
985 printf(
"\nEvent cutnumber \n");
987 printf(
"%d",
fCuts[ic]);
992 printf(
"Running in pp mode \n");
995 printf(
"\t only events triggered by V0AND will be analysed \n");
997 printf(
"\t only events triggered by T0AND will be analysed \n");
1002 printf(
"\t only events triggered by V0OR will be analysed \n");
1004 printf(
"\t only events where SDD was present will be analysed \n");
1009 printf(
"\t only events triggered by V0AND will be analysed \n");
1011 printf(
"\t only events where SDD was present will be analysed and triggered by VOAND\n");
1022 printf(
"Running in PbPb mode \n");
1024 printf(
"\t centrality selection based on V0M \n");
1026 printf(
"\t centrality selection based on Cl1 \n");
1028 printf(
"\t centrality selection based on ZNA \n");
1046 printf(
"\t only events triggered by kMB, kCentral, kSemiCentral will be analysed \n");
1054 printf(
"Running in pPb mode \n");
1056 printf(
"\t centrality selection based on V0A \n");
1058 printf(
"\t centrality selection based on Cl1 \n");
1060 printf(
"\t centrality selection based on ZNA \n");
1070 printf(
"\t only events triggered by kINT7 will be analysed \n");
1077 else printf(
"\t No vertex cut \n");
1080 printf(
"\t Doing pile up removal \n");
1082 printf(
"\t Doing pile up removal using SPD \n");
1085 printf(
"\t Doing extra pile up removal V0M vs TPCout \n");
1088 printf(
"\t Doing extra past-future pile up removal\n");
1092 printf(
"MC event cuts: \n");
1095 else if (
fRejectExtraSignals == 4) printf(
"\t special handling for Jets embedded in MB events \n");
1097 printf(
"\t maximum factor between jet and pt hard = %2.2f \n",
fMaxFacPtHard);
1253 AliError(Form(
"SetHeavyIon not defined %d",isHeavyIon));
1263 if(minCentrality<0||minCentrality>20){
1264 AliError(Form(
"minCentrality not defined %d",minCentrality));
1276 if(maxCentrality<0||maxCentrality>20){
1277 AliError(Form(
"maxCentrality not defined %d",maxCentrality));
1288 switch(selectSpecialTrigger){
1318 fOfflineTriggerMask=AliVEvent::kPHI7 | AliVEvent::kPHI1 | AliVEvent::kPHI8 | AliVEvent::kPHOSPb;
1352 AliError(
"Warning: Special Trigger Not known");
1363 switch(selectSpecialSubTriggerClass){
1374 AliError(
"Warning: Special Subtrigger Class Not known");
1378 switch(selectSpecialSubTriggerClass){
1403 AliError(
"Warning: Special Subtrigger Class Not known");
1407 switch(selectSpecialSubTriggerClass){
1503 AliError(
"Warning: Special Subtrigger Class Not known");
1507 switch(selectSpecialSubTriggerClass){
1554 AliError(
"Warning: Special Subtrigger Class Not known");
1558 switch(selectSpecialSubTriggerClass){
1607 AliError(
"Warning: Special Subtrigger Class Not known");
1611 switch(selectSpecialSubTriggerClass){
1639 AliError(
"Warning: Special Subtrigger Class Not known");
1643 switch(selectSpecialSubTriggerClass){
1687 AliError(
"Warning: Special Subtrigger Class Not known");
1691 switch(selectSpecialSubTriggerClass){
1783 AliError(
"Warning: Special Subtrigger Class Not known");
1787 switch(selectSpecialSubTriggerClass){
1865 AliError(
"Warning: Special Subtrigger Class Not known");
1869 switch(selectSpecialSubTriggerClass){
1997 AliError(
"Warning: Special Subtrigger Class Not known");
2021 switch(removePileUp){
2166 fUtils->SetASPDCvsTCut(200.);
2167 fUtils->SetBSPDCvsTCut(7.);
2182 AliError(
"RemovePileUpCut not defined");
2191 switch(extraSignal){
2208 AliError(Form(
"Extra Signal Rejection not defined %d",extraSignal));
2243 AliError(Form(
"Vertex Cut not defined %d",vertexCut));
2287 Int_t runnumber =
event->GetRunNumber();
2290 AliMultSelection *MultSelection = (AliMultSelection*)event->FindListObject(
"MultSelection");
2292 AliWarning (
"AliMultSelection object not found !");
2297 if (runnumber > 266329 && runnumber < 267139)
2298 return MultSelection->GetMultiplicityPercentile(
"V0C");
2300 return MultSelection->GetMultiplicityPercentile(
"V0A");
2302 return MultSelection->GetMultiplicityPercentile(
"V0M");
2305 return MultSelection->GetMultiplicityPercentile(
"CL1",kTRUE);
2307 if (runnumber > 266329 && runnumber < 267139)
2308 return MultSelection->GetMultiplicityPercentile(
"ZNC",kTRUE);
2310 return MultSelection->GetMultiplicityPercentile(
"ZNA",kTRUE);
2314 AliCentrality *fESDCentrality = (AliCentrality*)esdEvent->GetCentrality();
2317 if (runnumber > 196432 && runnumber < 197389)
2318 return fESDCentrality->GetCentralityPercentile(
"V0C");
2320 return fESDCentrality->GetCentralityPercentile(
"V0A");
2322 return fESDCentrality->GetCentralityPercentile(
"V0M");
2325 return fESDCentrality->GetCentralityPercentile(
"CL1");
2327 if (runnumber > 196432 && runnumber < 197389)
2328 return fESDCentrality->GetCentralityPercentile(
"ZNC");
2330 return fESDCentrality->GetCentralityPercentile(
"ZNA");
2338 AliMultSelection *MultSelection = (AliMultSelection*)aodEvent->FindListObject(
"MultSelection");
2340 AliWarning (
"AliMultSelection object not found !");
2344 if(
fIsHeavyIon==2)
return MultSelection->GetMultiplicityPercentile(
"V0A");
2345 else return MultSelection->GetMultiplicityPercentile(
"V0M",kTRUE);
2346 }
else if(
fDetectorCentrality==1)
return MultSelection->GetMultiplicityPercentile(
"CL1",kTRUE);
2347 else if(
fDetectorCentrality==2)
return MultSelection->GetMultiplicityPercentile(
"ZNA",kTRUE);
2350 if(aodEvent->GetHeader()){
return ((AliVAODHeader*)aodEvent->GetHeader())->
GetCentrality();}
2365 Int_t primaryTracksPP[9] = { 0, 2, 5, 10, 15,
2380 if(centrality<0 && !mcEvent)
return kFALSE;
2383 Int_t centralityC=0;
2385 centralityC=
Int_t(centrality);
2391 centralityC=
Int_t(centrality);
2394 }
else return kFALSE;
2397 centralityC=
Int_t(centrality);
2400 }
else return kFALSE;
2403 Int_t PrimaryTracks10[11][2] =
2417 Int_t PrimaryTracksLHC11h10[11][2] =
2431 Int_t PrimaryTracksLHC15o10[11][2] =
2445 Int_t PrimaryTracksLHC10h5[21][2] =
2469 Int_t PrimaryTracksLHC11h5[21][2] =
2493 Int_t PrimaryTracksLHC15o5[21][2] =
2517 Int_t PrimaryTracksLHC17n10[11][2] =
2533 if(event->IsA()==AliESDEvent::Class()) column = 0;
2534 if(event->IsA()==AliAODEvent::Class()) column = 1;
2550 centralityC=
Int_t(centrality/10);
2552 if(
fCentralityMin==0 && nprimaryTracks >= PrimaryTracksLHC15o10[0][column])
return kFALSE;
2554 }
else return kFALSE;
2563 centralityC=
Int_t(centrality/10);
2578 centralityC =
Int_t(centrality);
2580 if(
fCentralityMin==0 && nprimaryTracks >= PrimaryTracksLHC15o5[0][column])
return kFALSE;
2582 }
else return kFALSE;
2591 centralityC=
Int_t(centrality);
2594 }
else return kFALSE;
2598 Int_t PrimaryTracksLHC11h10AltMin[11][2] =
2612 Int_t PrimaryTracksLHC11h10AltMax[11][2] =
2626 Int_t PrimaryTracksLHC11h5AltMin[21][2] =
2650 Int_t PrimaryTracksLHC11h5AltMax[21][2] =
2679 if(nprimaryTracks > PrimaryTracksLHC11h10AltMin[
fCentralityMax][column] && nprimaryTracks <= PrimaryTracksLHC11h10AltMax[
fCentralityMin][column])
2687 centralityC=
Int_t(centrality/10);
2697 if(nprimaryTracks > PrimaryTracksLHC11h5AltMin[
fCentralityMax][column] && nprimaryTracks <= PrimaryTracksLHC11h5AltMax[
fCentralityMin][column])
2704 centralityC=
Int_t(centrality);
2707 }
else return kFALSE;
2717 Double_t fVertexZ=
event->GetPrimaryVertex()->GetZ();
2721 fVertexZSPD = fESDEvent->GetPrimaryVertexSPD()->GetZ();
2725 fVertexZSPD = fAODEvent->GetPrimaryVertexSPD()->GetZ();
2728 if(TMath::Abs(fVertexZ)>
fMaxVertexZ)
return kFALSE;
2732 if (TMath::Abs(fVertexZ-fVertexZSPD) > 0.1)
return kFALSE;
2735 if(!
fUtils->IsVertexSelected2013pA(event))
return kFALSE;
2746 TBits fIR1 =
event->GetHeader()->GetIRInt1InteractionMap();
2747 TBits fIR2 =
event->GetHeader()->GetIRInt2InteractionMap();
2748 UShort_t bunchCrossings =
event->GetBunchCrossNumber();
2750 for(
Int_t i = 0; i<180;i++){
2751 if(fIR1.TestBitNumber(i))
2756 Bool_t isOutOfBunchPileup = 0;
2759 if(pf1 < -89) pf1 = -89;
2760 if(pf2 > 89) pf2 = 89;
2761 Int_t pf2maxForT0 = pf2;
2763 for (
Int_t i=pf1;i<=pf2;i++) {
2765 if (i<=pf2maxForT0) isOutOfBunchPileup|=fIR2.TestBitNumber(90+i);
2766 if (i>0 && i<=ir1skip)
continue;
2767 isOutOfBunchPileup|=fIR1.TestBitNumber(90+i);
2769 return isOutOfBunchPileup;
2775 Bool_t isPileUpV0MTPCout=0;
2780 multV0M =
event->GetVZEROData()->GetMTotV0A();
2782 multV0M =
event->GetVZEROData()->GetMTotV0A() +
event->GetVZEROData()->GetMTotV0C() ;
2787 if (multV0M < valFunc ) isPileUpV0MTPCout=1;
2790 return isPileUpV0MTPCout;
2799 if (fESDEvent->GetPrimaryVertex() != NULL){
2800 if(fESDEvent->GetPrimaryVertex()->GetNContributors()>0) {
2802 return fESDEvent->GetPrimaryVertex()->GetNContributors();
2806 if(fESDEvent->GetPrimaryVertexSPD() !=NULL){
2807 if(fESDEvent->GetPrimaryVertexSPD()->GetNContributors()>0) {
2809 return fESDEvent->GetPrimaryVertexSPD()->GetNContributors();
2811 AliWarning(Form(
"Number of contributors from bad vertex type:: %s",fESDEvent->GetPrimaryVertex()->GetName()));
2820 if (fAODEvent->GetPrimaryVertex() != NULL){
2821 if(fAODEvent->GetPrimaryVertex()->GetNContributors()>0) {
2822 return fAODEvent->GetPrimaryVertex()->GetNContributors();
2825 if(fAODEvent->GetPrimaryVertexSPD() !=NULL){
2826 if(fAODEvent->GetPrimaryVertexSPD()->GetNContributors()>0) {
2827 return fAODEvent->GetPrimaryVertexSPD()->GetNContributors();
2829 AliWarning(Form(
"Number of contributors from bad vertex type:: %s",fAODEvent->GetPrimaryVertex()->GetName()));
2842 AliGenCocktailEventHeader *cHeader = 0x0;
2843 Bool_t headerFound = kFALSE;
2867 cHeader =
dynamic_cast<AliGenCocktailEventHeader*
>(mcEvent->GenEventHeader());
2868 if(cHeader) headerFound = kTRUE;
2876 TList *genHeaders = 0x0;
2877 if(cHeader) genHeaders = cHeader->GetHeaders();
2878 AliGenEventHeader* gh = 0;
2879 for(
Int_t i = 0; i<genHeaders->GetEntries();i++){
2880 gh = (AliGenEventHeader*)genHeaders->At(i);
2881 TString GeneratorName = gh->GetName();
2882 if (GeneratorName.CompareTo(
"AliGenPythiaEventHeader") == 0 || GeneratorName.Contains(
"Pythia8Jets")){
2883 Bool_t eventAccepted = kTRUE;
2884 TParticle * jet = 0;
2885 Int_t nTriggerJets =
dynamic_cast<AliGenPythiaEventHeader*
>(gh)->NTriggerJets();
2888 for(
Int_t ijet = 0; ijet< nTriggerJets; ijet++){
2889 dynamic_cast<AliGenPythiaEventHeader*
>(gh)->TriggerJet(ijet, tmpjet);
2890 jet =
new TParticle(94, 21, -1, -1, -1, -1, tmpjet[0],tmpjet[1],tmpjet[2],tmpjet[3], 0,0,0,0);
2893 eventAccepted= kFALSE;
2897 if (jet)
delete jet;
2899 for(Long_t i = 0; i < mcEvent->GetNumberOfPrimaries(); i++) {
2900 TParticle* particle = (TParticle *)mcEvent->Particle(i);
2901 if (!particle)
continue;
2902 if (TMath::Abs(particle->GetPdgCode()) == 111 || TMath::Abs(particle->GetPdgCode()) == 221){
2904 eventAccepted= kFALSE;
2912 Double_t ptHardBinRanges[21] = { 5, 7, 9, 12, 16,
2914 70, 85, 99, 115, 132,
2915 150, 169, 190, 212, 235,
2917 Double_t weightsBins[20] = { 43.7553, 13.5848, 6.788, 2.67826, 0.975255,
2918 0.39069, 0.127342, 0.0465597, 0.0206539, 0.00750243,
2919 0.00319118, 0.00122291, 0.000641232, 0.000321437, 0.000168273,
2920 9.17033e-05, 5.34755e-05, 3.01354e-05, 1.74518e-05, 2.8004e-05};
2922 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
2923 if (bin < 20) weight = weightsBins[bin];
2926 Double_t ptHardBinRanges[21] = { 5, 7, 9, 12, 16,
2928 70, 85, 99, 115, 132,
2929 150, 169, 190, 212, 235,
2931 Double_t weightsBins[20] = { 43.8654, 13.6215, 6.79856, 2.67526, 0.978794,
2932 0.390797, 0.127769, 0.0465714, 0.0206173, 0.00750282,
2933 0.00318773, 0.00122533, 0.000644385, 0.000321225, 0.00016846,
2934 9.18305e-05, 5.33507e-05, 3.00677e-05, 1.74608e-05, 2.80823e-05};
2937 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
2938 if (bin < 20) weight = weightsBins[bin];
2941 Double_t ptHardBinRanges[21] = { 5, 7, 9, 12, 16,
2943 70, 85, 99, 115, 132,
2944 150, 169, 190, 212, 235,
2946 Double_t weightsBins[20] = { 16.0869, 4.61169, 2.14976, 0.782544, 0.264854,
2947 9.7619E-02, 2.92747E-02, 9.89515E-03, 4.05152E-03, 1.35393E-03,
2948 5.29864E-04, 1.88317E-04, 9.23E-05, 4.29E-05, 2.09E-05,
2949 1.06E-05, 5.76E-06, 3.00E-06, 1.62E-06, 2.10E-06 };
2951 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
2952 if (bin < 20) weight = weightsBins[bin];
2956 Double_t ptHardBinRanges[13] = { 5, 7, 9, 12, 16,
2959 Double_t weightsBins[12] = { 7.858393e-03, 4.718691e-03, 4.077575e-03, 2.814527e-03, 1.669625e-03,
2960 1.007535e-03, 4.536554e-04, 2.111041e-04, 1.094840e-04, 4.404973e-05,
2961 1.933238e-05, 1.562895e-05};
2963 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
2964 if (bin < 12) weight = weightsBins[bin];
2967 Double_t ptHardBinRanges[20] = { 5, 11, 21, 36, 57,
2968 84, 117, 152, 191, 1000000,
2970 21, 28, 36, 45, 57 };
2971 Double_t weightsBins[19] = { 4.43629 , 0.49523, 0.0394921, 0.00383174, 0.000446559,
2972 6.37374e-05, 1.03134e-05, 2.27012e-06, 7.59281e-07, 0,
2973 2.62906, 1.12884, 0.656873, 0.262822, 0.0876732,
2974 0.0307759, 0.0087083, 0.0027664, 0.00106203};
2978 if (binFromFile != -1 && binFromFile >9 && ptHard < 57) bin = 9;
2979 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
2980 if (bin < 19) weight = weightsBins[bin];
2983 Double_t ptHardBinRanges[20] = { 5, 11, 21, 36, 57,
2984 84, 117, 152, 191, 1000000,
2986 21, 28, 36, 45, 57 };
2988 Double_t weightsBins[19] = { 4.43897 , 0.495766, 0.039486, 0.00383011, 0.000447104,
2989 6.37277e-05, 1.03166e-05, 2.26971e-06, 7.59023e-07, 0,
2990 2.63331, 1.12815, 0.657034, 0.262756, 0.0877227,
2991 0.0307638, 0.00870635, 0.00276658, 0.00106229};
2994 if (binFromFile != -1 && binFromFile >9 && ptHard < 57) bin = 9;
2995 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
2996 if (bin < 19) weight = weightsBins[bin];
2999 Double_t ptHardBinRanges[21] = { 5, 7, 9, 12, 16,
3001 70, 85, 99, 115, 132,
3002 150, 169, 190, 212, 235,
3004 Double_t weightsBins[20] = { 28.3084, 8.43277, 4.07753, 1.54359, 0.543318,
3005 0.208394, 0.0652349, 0.0186904, 0.00834528, 0.00301414,
3006 0.00125939, 0.000474403, 0.000244052, 0.00011924, 6.09838e-05,
3007 3.24148e-05, 1.84314e-05, 1.00926e-05, 5.68632e-06, 8.38092e-06};
3009 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
3010 if (bin < 20) weight = weightsBins[bin];
3013 Double_t ptHardBinRanges[6] = { 7, 9, 12, 16, 21, 1000};
3014 Double_t weightsBins[5] = { 6.731200e-03, 7.995602e-03, 6.778717e-03, 4.643571e-03, 6.014497e-03};
3016 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
3017 if (bin < 5) weight = weightsBins[bin];
3020 Double_t ptHardBinRanges[7] = { 14, 19, 26, 35, 48, 66, 1000};
3021 Double_t weightsBins[6] = { 6.071458e-03, 3.941701e-03, 2.001984e-03, 9.862765e-04, 3.893911e-04, 1.865924e-04};
3023 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
3024 if (bin < 6) weight = weightsBins[bin];
3027 Double_t ptHardBinRanges[8] = { 0, 5, 11, 21, 36, 57, 84, 1000};
3028 Double_t weightsBins[7] = { 0.00151999, 0.000100346, 1.27688e-05, 1.82388e-06, 3.08506e-07, 6.00308e-08, 1.88414e-08};
3030 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
3031 if (bin < 7) weight = weightsBins[bin];
3034 Double_t ptHardBinRanges[11] = { 5, 11, 21, 36, 57,
3035 84, 117, 152, 191, 234,
3037 Double_t weightsBins[10] = { 2.24185e-6 , 2.48463e-7, 2.23171e-8, 2.43667e-9, 3.29934e-10,
3038 5.34592e-11, 1.00937e-11, 2.6493e-12, 8.53912e-13, 5.43077e-13};
3040 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
3041 if (bin < 10) weight = weightsBins[bin];
3043 Double_t ptHardBinRanges[21] = { 5, 7, 9, 12, 16, 21, 28, 36, 45, 57, 70, 85, 99, 115, 132, 150, 169, 190, 212, 235, 10000};
3044 Double_t weightsBins[20] = {1.565930E+01, 4.598350E+00, 2.081240E+00, 7.744650E-01, 2.644240E-01, 1.002330E-01, 2.979190E-02, 9.696490E-03, 3.950930E-03, 1.333040E-03, 5.210630E-04, 1.927180E-04, 9.235930E-05, 4.346820E-05, 2.120660E-05, 1.073260E-05, 5.701210E-06, 3.047490E-06, 1.664780E-06, 2.123400E-06};
3046 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
3047 if (bin < 20) weight = weightsBins[bin];
3049 Double_t ptHardBinRanges[21] = { 5, 7, 9, 12, 16, 21, 28, 36, 45, 57, 70, 85, 99, 115, 132, 150, 169, 190, 212, 235, 10000};
3050 Double_t weightsBins[20] = {2.723740E+01, 8.127540E+00, 3.934400E+00, 1.492720E+00, 5.268010E-01, 2.033790E-01, 6.361520E-02, 2.256080E-02, 9.638840E-03, 3.372890E-03, 1.381980E-03, 5.121390E-04, 2.613120E-04, 1.260940E-04, 6.393150E-05, 3.386080E-05, 1.926040E-05, 1.046950E-05, 5.895950E-06, 8.658420E-06};
3052 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
3053 if (bin < 20) weight = weightsBins[bin];
3055 Double_t ptHardBinRanges[21] = { 5, 7, 9, 12, 16, 21, 28, 36, 45, 57, 70, 85, 99, 115, 132, 150, 169, 190, 212, 235, 10000};
3056 Double_t weightsBins[20] = {2.716550E+01, 8.121430E+00, 3.932100E+00, 1.492830E+00, 5.272190E-01, 2.023090E-01, 6.371860E-02, 2.245360E-02, 9.590340E-03, 3.369300E-03, 1.384470E-03, 5.119390E-04, 2.606910E-04, 1.259110E-04, 6.408650E-05, 3.396290E-05, 1.917340E-05, 1.044610E-05, 5.882680E-06, 8.672390E-06};
3058 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
3059 if (bin < 20) weight = weightsBins[bin];
3061 Double_t ptHardBinRanges[7] = { 5, 11, 21, 36, 57, 84, 10000};
3062 Double_t weightsBins[6] = { 0.0002181, 3.13684e-05, 5.01515e-06, 9.50662e-07, 2.08186e-07, 7.96555e-08};
3064 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
3065 if (bin < 6) weight = weightsBins[bin];
3067 Double_t ptHardBinRanges[9] = { 8, 10, 14, 19, 26, 35, 48, 66, 10000};
3068 Double_t weightsBins[8] = { 0.000813592, 0.00172074, 0.00187963, 0.00184331, 0.00142672, 0.0010083, 0.000599846, 0.000499877};
3070 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
3071 if (bin < 8) weight = weightsBins[bin];
3076 if (weight == -1)
return kFALSE;
3077 else return eventAccepted;
3082 AliGenEventHeader * eventHeader = mcEvent->GenEventHeader();
3083 TString eventHeaderName = eventHeader->ClassName();
3084 Bool_t eventAccepted = kFALSE;
3085 if (eventHeaderName.CompareTo(
"AliGenPythiaEventHeader") == 0 || eventHeaderName.Contains(
"Pythia8Jets")){
3086 eventAccepted = kTRUE;
3088 if(event->IsA()==AliAODEvent::Class()){
3089 AliAODMCHeader *mch = NULL;
3092 mch =
dynamic_cast<AliAODMCHeader*
>(aod->FindListObject(
"mcHeader"));
3094 Int_t nGenerators = mch->GetNCocktailHeaders();
3095 if ( nGenerators > 0 ){
3096 for(
Int_t igen = 0; igen < nGenerators; igen++)
3098 AliGenEventHeader * eventHeaderGen = mch->GetCocktailHeader(igen) ;
3099 TString name = eventHeaderGen->GetName();
3100 if (name.CompareTo(
"AliGenPythiaEventHeader") == 0 || name.Contains(
"Pythia8Jets")){
3101 eventAccepted = kTRUE;
3102 eventHeader = eventHeaderGen;
3111 TParticle * jet = 0;
3112 Int_t nTriggerJets =
dynamic_cast<AliGenPythiaEventHeader*
>(eventHeader)->NTriggerJets();
3113 Float_t ptHard =
dynamic_cast<AliGenPythiaEventHeader*
>(eventHeader)->
GetPtHard();
3115 for(
Int_t ijet = 0; ijet< nTriggerJets; ijet++){
3116 dynamic_cast<AliGenPythiaEventHeader*
>(eventHeader)->TriggerJet(ijet, tmpjet);
3117 jet =
new TParticle(94, 21, -1, -1, -1, -1, tmpjet[0],tmpjet[1],tmpjet[2],tmpjet[3], 0,0,0,0);
3120 eventAccepted= kFALSE;
3125 for(Long_t i = 0; i < mcEvent->GetNumberOfPrimaries(); i++) {
3126 TParticle* particle = (TParticle *)mcEvent->Particle(i);
3127 if (!particle)
continue;
3128 if (TMath::Abs(particle->GetPdgCode()) == 111 || TMath::Abs(particle->GetPdgCode()) == 221){
3130 eventAccepted= kFALSE;
3138 Double_t ptHardBinRanges[21] = { 5, 7, 9, 12, 16,
3140 70, 85, 99, 115, 132,
3141 150, 169, 190, 212, 235,
3143 Double_t weightsBins[20] = { 43.7553, 13.5848, 6.788, 2.67826, 0.975255,
3144 0.39069, 0.127342, 0.0465597, 0.0206539, 0.00750243,
3145 0.00319118, 0.00122291, 0.000641232, 0.000321437, 0.000168273,
3146 9.17033e-05, 5.34755e-05, 3.01354e-05, 1.74518e-05, 2.8004e-05};
3148 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
3149 if (bin < 20) weight = weightsBins[bin];
3152 Double_t ptHardBinRanges[21] = { 5, 7, 9, 12, 16,
3154 70, 85, 99, 115, 132,
3155 150, 169, 190, 212, 235,
3157 Double_t weightsBins[20] = { 43.8654, 13.6215, 6.79856, 2.67526, 0.978794,
3158 0.390797, 0.127769, 0.0465714, 0.0206173, 0.00750282,
3159 0.00318773, 0.00122533, 0.000644385, 0.000321225, 0.00016846,
3160 9.18305e-05, 5.33507e-05, 3.00677e-05, 1.74608e-05, 2.80823e-05};
3163 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
3164 if (bin < 20) weight = weightsBins[bin];
3167 Double_t ptHardBinRanges[21] = { 5, 7, 9, 12, 16,
3169 70, 85, 99, 115, 132,
3170 150, 169, 190, 212, 235,
3172 Double_t weightsBins[20] = { 16.0869, 4.61169, 2.14976, 0.782544, 0.264854,
3173 9.7619E-02, 2.92747E-02, 9.89515E-03, 4.05152E-03, 1.35393E-03,
3174 5.29864E-04, 1.88317E-04, 9.23E-05, 4.29E-05, 2.09E-05,
3175 1.06E-05, 5.76E-06, 3.00E-06, 1.62E-06, 2.10E-06 };
3177 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
3178 if (bin < 20) weight = weightsBins[bin];
3182 Double_t ptHardBinRanges[13] = { 5, 7, 9, 12, 16,
3185 Double_t weightsBins[12] = { 7.858393e-03, 4.718691e-03, 4.077575e-03, 2.814527e-03, 1.669625e-03,
3186 1.007535e-03, 4.536554e-04, 2.111041e-04, 1.094840e-04, 4.404973e-05,
3187 1.933238e-05, 1.562895e-05};
3189 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
3190 if (bin < 12) weight = weightsBins[bin];
3193 Double_t ptHardBinRanges[20] = { 5, 11, 21, 36, 57,
3194 84, 117, 152, 191, 1000000,
3196 21, 28, 36, 45, 57 };
3197 Double_t weightsBins[19] = { 4.43629 , 0.49523, 0.0394921, 0.00383174, 0.000446559,
3198 6.37374e-05, 1.03134e-05, 2.27012e-06, 7.59281e-07, 0,
3199 2.62906, 1.12884, 0.656873, 0.262822, 0.0876732,
3200 0.0307759, 0.0087083, 0.0027664, 0.00106203};
3204 if (binFromFile != -1 && binFromFile >9 && ptHard < 57) bin = 9;
3205 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
3206 if (bin < 19) weight = weightsBins[bin];
3209 Double_t ptHardBinRanges[20] = { 5, 11, 21, 36, 57,
3210 84, 117, 152, 191, 1000000,
3212 21, 28, 36, 45, 57 };
3214 Double_t weightsBins[19] = { 4.43897 , 0.495766, 0.039486, 0.00383011, 0.000447104,
3215 6.37277e-05, 1.03166e-05, 2.26971e-06, 7.59023e-07, 0,
3216 2.63331, 1.12815, 0.657034, 0.262756, 0.0877227,
3217 0.0307638, 0.00870635, 0.00276658, 0.00106229};
3220 if (binFromFile != -1 && binFromFile >9 && ptHard < 57) bin = 9;
3221 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
3222 if (bin < 19) weight = weightsBins[bin];
3225 Double_t ptHardBinRanges[21] = { 5, 7, 9, 12, 16,
3227 70, 85, 99, 115, 132,
3228 150, 169, 190, 212, 235,
3230 Double_t weightsBins[20] = { 28.3084, 8.43277, 4.07753, 1.54359, 0.543318,
3231 0.208394, 0.0652349, 0.0186904, 0.00834528, 0.00301414,
3232 0.00125939, 0.000474403, 0.000244052, 0.00011924, 6.09838e-05,
3233 3.24148e-05, 1.84314e-05, 1.00926e-05, 5.68632e-06, 8.38092e-06};
3235 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
3236 if (bin < 20) weight = weightsBins[bin];
3239 Double_t ptHardBinRanges[6] = { 7, 9, 12, 16, 21, 1000};
3240 Double_t weightsBins[5] = { 6.731200e-03, 7.995602e-03, 6.778717e-03, 4.643571e-03, 6.014497e-03};
3242 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
3243 if (bin < 5) weight = weightsBins[bin];
3246 Double_t ptHardBinRanges[7] = { 14, 19, 26, 35, 48, 66, 1000};
3247 Double_t weightsBins[6] = { 6.071458e-03, 3.941701e-03, 2.001984e-03, 9.862765e-04, 3.893911e-04, 1.865924e-04};
3249 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
3250 if (bin < 6) weight = weightsBins[bin];
3253 Double_t ptHardBinRanges[8] = { 0, 5, 11, 21, 36, 57, 84, 1000};
3254 Double_t weightsBins[7] = { 0.00151999, 0.000100346, 1.27688e-05, 1.82388e-06, 3.08506e-07, 6.00308e-08, 1.88414e-08};
3256 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
3257 if (bin < 7) weight = weightsBins[bin];
3260 Double_t ptHardBinRanges[11] = { 5, 11, 21, 36, 57,
3261 84, 117, 152, 191, 234,
3263 Double_t weightsBins[10] = { 2.24185e-6 , 2.48463e-7, 2.23171e-8, 2.43667e-9, 3.29934e-10,
3264 5.34592e-11, 1.00937e-11, 2.6493e-12, 8.53912e-13, 5.43077e-13};
3266 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
3267 if (bin < 10) weight = weightsBins[bin];
3269 Double_t ptHardBinRanges[21] = { 5, 7, 9, 12, 16, 21, 28, 36, 45, 57, 70, 85, 99, 115, 132, 150, 169, 190, 212, 235, 10000};
3270 Double_t weightsBins[20] = {2.723740E+01, 8.127540E+00, 3.934400E+00, 1.492720E+00, 5.268010E-01, 2.033790E-01, 6.361520E-02, 2.256080E-02, 9.638840E-03, 3.372890E-03, 1.381980E-03, 5.121390E-04, 2.613120E-04, 1.260940E-04, 6.393150E-05, 3.386080E-05, 1.926040E-05, 1.046950E-05, 5.895950E-06, 8.658420E-06};
3272 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
3273 if (bin < 20) weight = weightsBins[bin];
3275 Double_t ptHardBinRanges[21] = { 5, 7, 9, 12, 16, 21, 28, 36, 45, 57, 70, 85, 99, 115, 132, 150, 169, 190, 212, 235, 10000};
3276 Double_t weightsBins[20] = {2.716550E+01, 8.121430E+00, 3.932100E+00, 1.492830E+00, 5.272190E-01, 2.023090E-01, 6.371860E-02, 2.245360E-02, 9.590340E-03, 3.369300E-03, 1.384470E-03, 5.119390E-04, 2.606910E-04, 1.259110E-04, 6.408650E-05, 3.396290E-05, 1.917340E-05, 1.044610E-05, 5.882680E-06, 8.672390E-06};
3278 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
3279 if (bin < 20) weight = weightsBins[bin];
3281 Double_t ptHardBinRanges[7] = { 5, 11, 21, 36, 57, 84, 10000};
3282 Double_t weightsBins[6] = { 0.0002181, 3.13684e-05, 5.01515e-06, 9.50662e-07, 2.08186e-07, 7.96555e-08};
3284 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
3285 if (bin < 6) weight = weightsBins[bin];
3287 Double_t ptHardBinRanges[9] = { 8, 10, 14, 19, 26, 35, 48, 66, 10000};
3288 Double_t weightsBins[8] = { 0.000813592, 0.00172074, 0.00187963, 0.00184331, 0.00142672, 0.0010083, 0.000599846, 0.000499877};
3290 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
3291 if (bin < 8) weight = weightsBins[bin];
3293 Double_t ptHardBinRanges[21] = { 5, 7, 9, 12, 16, 21, 28, 36, 45, 57, 70, 85, 99, 115, 132, 150, 169, 190, 212, 235, 10000};
3294 Double_t weightsBins[20] = { 16.1083, 4.60917, 2.15196, 0.782021, 0.26541,
3295 0.0978374, 0.0294286, 0.00989457, 0.0040615, 0.00135787,
3296 0.000531766, 0.000188772, 9.23331e-05, 4.30245e-05, 2.10196e-05,
3297 1.06695e-05, 5.78742e-06, 3.02897e-06, 1.62702e-06, 2.12118e-06 };
3300 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
3301 if (bin < 20) weight = weightsBins[bin];
3306 if (weight == -1)
return kFALSE;
3307 else return eventAccepted;
3322 AliGenCocktailEventHeader *cHeader = 0x0;
3323 Bool_t headerFound = kFALSE;
3345 cHeader =
dynamic_cast<AliGenCocktailEventHeader*
>(mcEvent->GenEventHeader());
3346 if(cHeader) headerFound = kTRUE;
3355 TList *genHeaders = 0x0;
3356 if(cHeader) genHeaders = cHeader->GetHeaders();
3357 AliGenEventHeader* gh = 0;
3358 for(
Int_t i = 0; i<genHeaders->GetEntries();i++){
3359 gh = (AliGenEventHeader*)genHeaders->At(i);
3360 TString GeneratorName = gh->GetName();
3361 if (GeneratorName.CompareTo(
"AliGenPythiaEventHeader") == 0 || GeneratorName.Contains(
"Pythia8Jets")){
3362 AliGenPythiaEventHeader* gPythia =
dynamic_cast<AliGenPythiaEventHeader*
>(gh);
3363 NTrials = gPythia->Trials();
3364 XSection = gPythia->GetXsection();
3369 AliGenEventHeader * eventHeader = mcEvent->GenEventHeader();
3371 TString eventHeaderName = eventHeader->ClassName();
3372 if (eventHeaderName.CompareTo(
"AliGenPythiaEventHeader") == 0 || eventHeaderName.Contains(
"Pythia8Jets")){
3373 AliGenPythiaEventHeader* gPythia =
dynamic_cast<AliGenPythiaEventHeader*
>(eventHeader);
3374 NTrials = gPythia->Trials();
3375 XSection = gPythia->GetXsection();
3382 if(event->IsA()==AliAODEvent::Class()){
3383 AliAODMCHeader *mch = NULL;
3386 mch =
dynamic_cast<AliAODMCHeader*
>(aod->FindListObject(
"mcHeader"));
3388 Int_t nGenerators = mch->GetNCocktailHeaders();
3389 if ( nGenerators > 0 ){
3390 for(
Int_t igen = 0; igen < nGenerators; igen++){
3391 AliGenEventHeader * eventHeaderGen = mch->GetCocktailHeader(igen) ;
3392 TString name = eventHeaderGen->GetName();
3393 if (name.CompareTo(
"AliGenPythiaEventHeader") == 0 || name.Contains(
"Pythia8Jets")){
3394 AliGenPythiaEventHeader* gPythia =
dynamic_cast<AliGenPythiaEventHeader*
>(eventHeaderGen);
3395 NTrials = gPythia->Trials();
3396 XSection = gPythia->GetXsection();
3416 AliGenCocktailEventHeader *cHeader = 0x0;
3417 Bool_t headerFound = kFALSE;
3433 cHeader =
dynamic_cast<AliGenCocktailEventHeader*
>(mcEvent->GenEventHeader());
3434 if(cHeader) headerFound = kTRUE;
3441 TList *genHeaders = 0x0;
3442 if(cHeader) genHeaders = cHeader->GetHeaders();
3443 AliGenEventHeader* gh = 0;
3444 for(
Int_t i = 0; i<genHeaders->GetEntries();i++){
3445 gh = (AliGenEventHeader*)genHeaders->At(i);
3446 TString GeneratorName = gh->GetName();
3447 if (GeneratorName.CompareTo(
"AliGenPythiaEventHeader") == 0 || GeneratorName.Contains(
"Pythia8Jets")){
3448 return dynamic_cast<AliGenPythiaEventHeader*
>(gh)->
GetPtHard();
3452 AliGenEventHeader * eventHeader = mcEvent->GenEventHeader();
3454 TString eventHeaderName = eventHeader->ClassName();
3455 if (eventHeaderName.CompareTo(
"AliGenPythiaEventHeader") == 0 || eventHeaderName.Contains(
"Pythia8Jets")){
3456 return dynamic_cast<AliGenPythiaEventHeader*
>(eventHeader)->
GetPtHard();
3460 if(event->IsA()==AliAODEvent::Class()){
3461 AliAODMCHeader *mch = NULL;
3464 mch =
dynamic_cast<AliAODMCHeader*
>(aod->FindListObject(
"mcHeader"));
3466 Int_t nGenerators = mch->GetNCocktailHeaders();
3467 if ( nGenerators > 0 ){
3468 for(
Int_t igen = 0; igen < nGenerators; igen++)
3470 AliGenEventHeader * eventHeaderGen = mch->GetCocktailHeader(igen) ;
3471 TString name = eventHeaderGen->GetName();
3472 if (name.CompareTo(
"AliGenPythiaEventHeader") == 0 || name.Contains(
"Pythia8Jets")){
3473 return dynamic_cast<AliGenPythiaEventHeader*
>(eventHeaderGen)->
GetPtHard();
3492 Int_t runRangesEMCalL0 [52] = { 144871, 145288, 146375, 146382,
3494 150209, 153056, 153911, 153915,
3495 158135, 158136, 158178, 158182, 160683,
3496 160764, 161139, 161256, 161379, 161457,
3497 161525, 161556, 161558, 161609, 161630,
3499 173731, 177144, 177147, 177653, 177724, 178327,
3518 Double_t thresholdEMCalL0[51] = { 2.11, 3.43, 1.71, 2.05,
3520 1.94, 3.39, 4.01, 5.25, 5.5,
3521 2.05, 5.50, 2.05, 5.50, 2.05, 1.71, 5.50, 1.71, 5.50, 1.71, 5.50, 1.71, 5.50, 1.71, 5.50, 1.71,
3522 2.01, 1.75, 1.52, 2.01, 1.52, 1.85,
3542 Double_t spreadEMCalL0[51] = { 0., 0., 0, 0,
3545 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
3546 0., 0., 0., 0., 0.2, 0.2,
3566 Int_t runRangesEMCalL1[21] = { 179796,
3585 Double_t thresholdEMCalL1[20] = { 9.5,
3604 Double_t spreadEMCalL1[20] = { 1.0,
3624 Int_t runRangesEMCalL1G2[21] = { 195180,
3642 Double_t thresholdEMCalL1G2[19] = { 7.2,
3660 Double_t spreadEMCalL1G2[19] = { 0.3,
3679 Int_t runnumber =
event->GetRunNumber();
3682 if (runnumber < runRangesEMCalL0[0])
return kTRUE;
3684 while (!(runnumber >= runRangesEMCalL0[binRun] && runnumber < runRangesEMCalL0[binRun+1] ) && binRun < 51 ){
3688 if (binRun==51)
return kFALSE;
3690 Double_t threshold = thresholdEMCalL0[binRun];
3692 if (isMC && spreadEMCalL0[binRun] != 0.){
3693 TF1* triggerSmearing =
new TF1(
"triggerSmearing",
"[0]*exp(-0.5*((x-[1])/[2])**2)",0,15);
3694 triggerSmearing->SetParameter(0, 1/(spreadEMCalL0[binRun]*TMath::Sqrt(TMath::Pi()*2)));
3695 triggerSmearing->SetParameter(1, thresholdEMCalL0[binRun]);
3696 triggerSmearing->SetParameter(2, spreadEMCalL0[binRun]);
3697 threshold = triggerSmearing->GetRandom();
3698 delete triggerSmearing;
3703 TClonesArray * arrClustersMimic = NULL;
3705 nclus =
event->GetNumberOfCaloClusters();
3707 arrClustersMimic =
dynamic_cast<TClonesArray*
>(
event->FindListObject(Form(
"%sClustersBranch",
fCorrTaskSetting.Data())));
3708 if(!arrClustersMimic)
3709 AliFatal(Form(
"%sClustersBranch was not found in AliConvEventCuts! Check the correction framework settings!",
fCorrTaskSetting.Data()));
3710 nclus = arrClustersMimic->GetEntries();
3713 if(nclus == 0)
return kFALSE;
3716 Bool_t eventIsAccepted = kFALSE;
3717 for(
Int_t i = 0; i < nclus; i++){
3718 if (eventIsAccepted)
continue;
3719 AliVCluster* clus = NULL;
3720 if(event->IsA()==AliESDEvent::Class()){
3721 if(arrClustersMimic)
3722 clus =
new AliESDCaloCluster(*(AliESDCaloCluster*)arrClustersMimic->At(i));
3724 clus =
event->GetCaloCluster(i);
3725 }
else if(event->IsA()==AliAODEvent::Class()){
3726 if(arrClustersMimic)
3727 clus =
new AliAODCaloCluster(*(AliAODCaloCluster*)arrClustersMimic->At(i));
3729 clus =
event->GetCaloCluster(i);
3733 if(arrClustersMimic)
delete clus;
3736 if (!clus->IsEMCAL()) {
3737 if(arrClustersMimic)
delete clus;
3740 if (clus->GetM02()<0.1) {
3741 if(arrClustersMimic)
delete clus;
3744 if (clus->GetNCells()<2) {
3745 if(arrClustersMimic)
delete clus;
3748 if (clus->E() > threshold ){
3750 eventIsAccepted = kTRUE;
3752 if(arrClustersMimic)
3755 return eventIsAccepted;
3762 if (runnumber < runRangesEMCalL1[0])
return kTRUE;
3764 while (!(runnumber >= runRangesEMCalL1[binRun] && runnumber < runRangesEMCalL1[binRun+1] ) && binRun < 20 ){
3768 if (binRun==20)
return kFALSE;
3769 Double_t threshold = thresholdEMCalL1[binRun];
3771 if (isMC && spreadEMCalL1[binRun] != 0.){
3772 TF1* triggerSmearing =
new TF1(
"triggerSmearing",
"[0]*exp(-0.5*((x-[1])/[2])**2)",0,15);
3773 triggerSmearing->SetParameter(0, 1/(spreadEMCalL1[binRun]*TMath::Sqrt(TMath::Pi()*2)));
3774 triggerSmearing->SetParameter(1, thresholdEMCalL1[binRun]);
3775 triggerSmearing->SetParameter(2, spreadEMCalL1[binRun]);
3776 threshold = triggerSmearing->GetRandom();
3777 delete triggerSmearing;
3782 TClonesArray * arrClustersMimic = NULL;
3785 nclus =
event->GetNumberOfCaloClusters();
3787 arrClustersMimic =
dynamic_cast<TClonesArray*
>(
event->FindListObject(Form(
"%sClustersBranch",
fCorrTaskSetting.Data())));
3788 if(!arrClustersMimic)
3789 AliFatal(Form(
"%sClustersBranch was not found in AliConvEventCuts! Check the correction framework settings!",
fCorrTaskSetting.Data()));
3790 nclus = arrClustersMimic->GetEntries();
3793 if(nclus == 0)
return kFALSE;
3796 Bool_t eventIsAccepted = kFALSE;
3797 for(
Int_t i = 0; i < nclus; i++){
3798 if (eventIsAccepted)
continue;
3799 AliVCluster* clus = NULL;
3800 if(event->IsA()==AliESDEvent::Class()){
3801 if(arrClustersMimic)
3802 clus =
new AliESDCaloCluster(*(AliESDCaloCluster*)arrClustersMimic->At(i));
3804 clus =
event->GetCaloCluster(i);
3805 }
else if(event->IsA()==AliAODEvent::Class()){
3806 if(arrClustersMimic)
3807 clus =
new AliAODCaloCluster(*(AliAODCaloCluster*)arrClustersMimic->At(i));
3809 clus =
event->GetCaloCluster(i);
3812 if(arrClustersMimic)
delete clus;
3815 if (!clus->IsEMCAL()) {
3816 if(arrClustersMimic)
delete clus;
3819 if (clus->GetM02()<0.1) {
3820 if(arrClustersMimic)
delete clus;
3823 if (clus->GetNCells()<2) {
3824 if(arrClustersMimic)
delete clus;
3827 if (clus->E() > threshold ){
3829 eventIsAccepted = kTRUE;
3831 if(arrClustersMimic)
3834 return eventIsAccepted;
3836 if (runnumber < runRangesEMCalL1G2[0])
return kTRUE;
3838 while (!(runnumber >= runRangesEMCalL1G2[binRun] && runnumber < runRangesEMCalL1G2[binRun+1] ) && binRun < 19 ){
3843 if (binRun==19)
return kFALSE;
3844 Double_t threshold = thresholdEMCalL1G2[binRun];
3845 if (isMC && spreadEMCalL1G2[binRun] != 0.){
3846 TF1* triggerSmearing =
new TF1(
"triggerSmearing",
"[0]*exp(-0.5*((x-[1])/[2])**2)",0,15);
3847 triggerSmearing->SetParameter(0, 1/(spreadEMCalL1G2[binRun]*TMath::Sqrt(TMath::Pi()*2)));
3848 triggerSmearing->SetParameter(1, thresholdEMCalL1G2[binRun]);
3849 triggerSmearing->SetParameter(2, spreadEMCalL1G2[binRun]);
3850 threshold = triggerSmearing->GetRandom();
3851 delete triggerSmearing;
3856 TClonesArray * arrClustersMimic = NULL;
3858 nclus =
event->GetNumberOfCaloClusters();
3860 arrClustersMimic =
dynamic_cast<TClonesArray*
>(
event->FindListObject(Form(
"%sClustersBranch",
fCorrTaskSetting.Data())));
3861 if(!arrClustersMimic)
3862 AliFatal(Form(
"%sClustersBranch was not found in AliConvEventCuts! Check the correction framework settings!",
fCorrTaskSetting.Data()));
3863 nclus = arrClustersMimic->GetEntries();
3866 if(nclus == 0)
return kFALSE;
3869 Bool_t eventIsAccepted = kFALSE;
3870 for(
Int_t i = 0; i < nclus; i++){
3871 if (eventIsAccepted)
continue;
3872 AliVCluster* clus = NULL;
3873 if(event->IsA()==AliESDEvent::Class()){
3874 if(arrClustersMimic)
3875 clus =
new AliESDCaloCluster(*(AliESDCaloCluster*)arrClustersMimic->At(i));
3877 clus =
event->GetCaloCluster(i);
3878 }
else if(event->IsA()==AliAODEvent::Class()){
3879 if(arrClustersMimic)
3880 clus =
new AliAODCaloCluster(*(AliAODCaloCluster*)arrClustersMimic->At(i));
3882 clus =
event->GetCaloCluster(i);
3885 if(arrClustersMimic)
delete clus;
3888 if (!clus->IsEMCAL()) {
3889 if(arrClustersMimic)
delete clus;
3892 if (clus->GetM02()<0.1) {
3893 if(arrClustersMimic)
delete clus;
3896 if (clus->GetNCells()<2) {
3897 if(arrClustersMimic)
delete clus;
3900 if (clus->E() > threshold ){
3902 eventIsAccepted = kTRUE;
3904 if(arrClustersMimic)
3907 return eventIsAccepted;
3924 AliInputEventHandler *fInputHandler=(AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
3927 UInt_t isSelected = AliVEvent::kAny;
3929 if (fInputHandler==NULL)
return kFALSE;
3930 if( fInputHandler->GetEventSelection() ||
event->IsA()==AliAODEvent::Class()) {
3932 TString firedTrigClass =
event->GetFiredTriggerClasses();
3973 if (fInputHandler->IsEventSelected() & AliVEvent::kINT7) isSelected = 0;
3975 if (fInputHandler->IsEventSelected() & AliVEvent::kMB) isSelected = 0;
3977 if (fInputHandler->IsEventSelected() & AliVEvent::kINT8) isSelected = 0;
3979 if (fInputHandler->IsEventSelected() & AliVEvent::kINT7) isSelected = 0;
3981 if (fInputHandler->IsEventSelected() & AliVEvent::kMB) isSelected = 0;
3983 if (fInputHandler->IsEventSelected() & AliVEvent::kINT8) isSelected = 0;
3987 if (fInputHandler->IsEventSelected() & AliVEvent::kINT7) isSelected = 0;
3988 if (fInputHandler->IsEventSelected() & AliVEvent::kEMC7) isSelected = 0;
3990 if (fInputHandler->IsEventSelected() & AliVEvent::kINT8) isSelected = 0;
3991 if (fInputHandler->IsEventSelected() & AliVEvent::kEMC7) isSelected = 0;
3993 if (fInputHandler->IsEventSelected() & AliVEvent::kINT7) isSelected = 0;
3994 if (fInputHandler->IsEventSelected() & AliVEvent::kEMC7) isSelected = 0;
3996 if (fInputHandler->IsEventSelected() & AliVEvent::kINT8) isSelected = 0;
3997 if (fInputHandler->IsEventSelected() & AliVEvent::kEMC7) isSelected = 0;
4003 if (fInputHandler->IsEventSelected() & AliVEvent::kINT7) isSelected = 0;
4005 if (fInputHandler->IsEventSelected() & AliVEvent::kEMC7) isSelected = 0;
4007 if (firedTrigClass.Contains(
"7EG2")) isSelected = 0;
4010 if (fInputHandler->IsEventSelected() & AliVEvent::kINT8) isSelected = 0;
4011 if (fInputHandler->IsEventSelected() & AliVEvent::kEMC7) isSelected = 0;
4012 if (firedTrigClass.Contains(
"8EG2")) isSelected = 0;
4015 if (fInputHandler->IsEventSelected() & AliVEvent::kINT7) isSelected = 0;
4017 if (fInputHandler->IsEventSelected() & AliVEvent::kEMC7) isSelected = 0;
4020 if (fInputHandler->IsEventSelected() & AliVEvent::kINT7) isSelected = 0;
4021 if (fInputHandler->IsEventSelected() & AliVEvent::kEMC7) isSelected = 0;
4024 if (fInputHandler->IsEventSelected() & AliVEvent::kINT7) isSelected = 0;
4026 if (fInputHandler->IsEventSelected() & AliVEvent::kEMC7) isSelected = 0;
4028 if (firedTrigClass.Contains(
"7DG2")) isSelected = 0;
4031 if (fInputHandler->IsEventSelected() & AliVEvent::kINT8) isSelected = 0;
4032 if (fInputHandler->IsEventSelected() & AliVEvent::kEMC7) isSelected = 0;
4033 if (firedTrigClass.Contains(
"8DG2")) isSelected = 0;
4036 if (fInputHandler->IsEventSelected() & AliVEvent::kINT7) isSelected = 0;
4038 if (fInputHandler->IsEventSelected() & AliVEvent::kEMC7) isSelected = 0;
4041 if (fInputHandler->IsEventSelected() & AliVEvent::kINT7) isSelected = 0;
4042 if (fInputHandler->IsEventSelected() & AliVEvent::kEMC7) isSelected = 0;
4044 if (
fSpecialTrigger == 10 && (fInputHandler->IsEventSelected() & AliVEvent::kCaloOnly) ){
4047 if (firedTrigClass.Contains(
"INT7-")) isSelected = 0;
4049 if (firedTrigClass.Contains(
"INT1-")) isSelected = 0;
4051 if (firedTrigClass.Contains(
"INT8-")) isSelected = 0;
4053 if (firedTrigClass.Contains(
"INT7-")) isSelected = 0;
4055 if (firedTrigClass.Contains(
"INT1-")) isSelected = 0;
4057 if (firedTrigClass.Contains(
"INT8-")) isSelected = 0;
4061 if (firedTrigClass.Contains(
"INT7-")) isSelected = 0;
4062 if (firedTrigClass.Contains(
"EMC7-")) isSelected = 0;
4064 if (firedTrigClass.Contains(
"INT8-")) isSelected = 0;
4065 if (firedTrigClass.Contains(
"EMC8-")) isSelected = 0;
4067 if (firedTrigClass.Contains(
"INT7-")) isSelected = 0;
4068 if (firedTrigClass.Contains(
"EMC7-")) isSelected = 0;
4070 if (firedTrigClass.Contains(
"INT8-")) isSelected = 0;
4071 if (firedTrigClass.Contains(
"EMC8-")) isSelected = 0;
4075 if (firedTrigClass.Contains(
"INT7-")) isSelected = 0;
4076 if (firedTrigClass.Contains(
"EMC7-")) isSelected = 0;
4077 if (firedTrigClass.Contains(
"7EG2")) isSelected = 0;
4079 if (firedTrigClass.Contains(
"INT8-")) isSelected = 0;
4080 if (firedTrigClass.Contains(
"EMC8-")) isSelected = 0;
4081 if (firedTrigClass.Contains(
"8EG2")) isSelected = 0;
4083 if (firedTrigClass.Contains(
"INT7-")) isSelected = 0;
4084 if (firedTrigClass.Contains(
"EMC7-")) isSelected = 0;
4086 if (firedTrigClass.Contains(
"INT8-")) isSelected = 0;
4087 if (firedTrigClass.Contains(
"EMC8-")) isSelected = 0;
4089 if (firedTrigClass.Contains(
"INT7-")) isSelected = 0;
4090 if (firedTrigClass.Contains(
"DMC7-")) isSelected = 0;
4091 if (firedTrigClass.Contains(
"7DG2")) isSelected = 0;
4093 if (firedTrigClass.Contains(
"INT8-")) isSelected = 0;
4094 if (firedTrigClass.Contains(
"DMC8-")) isSelected = 0;
4095 if (firedTrigClass.Contains(
"8DG2")) isSelected = 0;
4097 if (firedTrigClass.Contains(
"INT7-")) isSelected = 0;
4098 if (firedTrigClass.Contains(
"DMC7-")) isSelected = 0;
4100 if (firedTrigClass.Contains(
"INT7-")) isSelected = 0;
4101 if (firedTrigClass.Contains(
"DMC8-")) isSelected = 0;
4105 if (isSelected != 0 ){
4112 if ((fInputHandler->IsEventSelected() & AliVEvent::kEMC7) && firedTrigClass.Contains(
"EMC"))
hTriggerClassesCorrelated->Fill(3);
4119 if ((fInputHandler->IsEventSelected() & AliVEvent::kEMC7) && firedTrigClass.Contains(
"DMC"))
hTriggerClassesCorrelated->Fill(10);
4129 if (fInputHandler->IsEventSelected() & AliVEvent::kCaloOnly){
4166 for (
Int_t i=0; i<ClassesList->GetEntriesFast();++i){
4167 TObjString *NameClass = (TObjString*)ClassesList->At(i);
4168 if (firedTrigClass.Contains(NameClass->GetString())) isSelected = 1;
4172 for (
Int_t i=0; i<ClassesList->GetEntriesFast();++i){
4173 TObjString *NameClass = (TObjString*)ClassesList->At(i);
4174 if (firedTrigClass.Contains(NameClass->GetString())) isSelected = 1;
4178 for (
Int_t i=0; i<ClassesList->GetEntriesFast();++i){
4179 TObjString *NameClass = (TObjString*)ClassesList->At(i);
4180 if (firedTrigClass.Contains(NameClass->GetString())) isSelected = 1;
4185 for (
Int_t i=0; i<ClassesList->GetEntriesFast(); i++){
4186 TObjString *NameClass = (TObjString*)ClassesList->At(i);
4187 if (firedTrigClass.Contains(NameClass->GetString())) CheckClass+=
"1";
4188 else CheckClass+=
"0";
4190 if(CheckClass.Contains(
"0")) isSelected = 0;
4197 fIsSDDFired = !(fInputHandler->IsEventSelected() & AliVEvent::kFastOnly);
4199 Bool_t mimickedTrigger = kTRUE;
4206 if (mimickedTrigger){
4207 if (fInputHandler->IsEventSelected() & AliVEvent::kMB)
hTriggerClass->Fill(0);
4208 if (fInputHandler->IsEventSelected() & AliVEvent::kINT7)
hTriggerClass->Fill(1);
4209 if (fInputHandler->IsEventSelected() & AliVEvent::kMUON)
hTriggerClass->Fill(2);
4210 if (fInputHandler->IsEventSelected() & AliVEvent::kHighMult)
hTriggerClass->Fill(3);
4211 if (fInputHandler->IsEventSelected() & AliVEvent::kEMC1)
hTriggerClass->Fill(4);
4212 if (fInputHandler->IsEventSelected() & AliVEvent::kCINT5)
hTriggerClass->Fill(5);
4213 if (fInputHandler->IsEventSelected() & AliVEvent::kCMUS5)
hTriggerClass->Fill(6);
4215 if (fInputHandler->IsEventSelected() & AliVEvent::kMUSH7)
hTriggerClass->Fill(7);
4217 if (fInputHandler->IsEventSelected() & AliVEvent::kMUL7)
hTriggerClass->Fill(8);
4219 if (fInputHandler->IsEventSelected() & AliVEvent::kMUU7)
hTriggerClass->Fill(9);
4221 if (fInputHandler->IsEventSelected() & AliVEvent::kEMC7)
hTriggerClass->Fill(10);
4223 if (fInputHandler->IsEventSelected() & AliVEvent::kMUS7)
hTriggerClass->Fill(11);
4224 if (fInputHandler->IsEventSelected() & AliVEvent::kPHI1)
hTriggerClass->Fill(12);
4225 if (fInputHandler->IsEventSelected() & AliVEvent::kPHI7)
hTriggerClass->Fill(13);
4228 if (fInputHandler->IsEventSelected() & AliVEvent::kEMCEJE)
hTriggerClass->Fill(14);
4229 if (fInputHandler->IsEventSelected() & AliVEvent::kEMCEGA)
hTriggerClass->Fill(15);
4230 if (fInputHandler->IsEventSelected() & AliVEvent::kCentral)
hTriggerClass->Fill(16);
4231 if (fInputHandler->IsEventSelected() & AliVEvent::kSemiCentral)
hTriggerClass->Fill(17);
4232 if (fInputHandler->IsEventSelected() & AliVEvent::kDG5)
hTriggerClass->Fill(18);
4233 if (fInputHandler->IsEventSelected() & AliVEvent::kZED)
hTriggerClass->Fill(19);
4234 if (fInputHandler->IsEventSelected() & AliVEvent::kSPI7)
hTriggerClass->Fill(20);
4236 if (fInputHandler->IsEventSelected() & AliVEvent::kINT8)
hTriggerClass->Fill(21);
4237 if (fInputHandler->IsEventSelected() & AliVEvent::kMuonSingleLowPt8)
hTriggerClass->Fill(22);
4238 if (fInputHandler->IsEventSelected() & AliVEvent::kMuonSingleHighPt8)
hTriggerClass->Fill(23);
4239 if (fInputHandler->IsEventSelected() & AliVEvent::kMuonLikeLowPt8)
hTriggerClass->Fill(24);
4240 if (fInputHandler->IsEventSelected() & AliVEvent::kMuonUnlikeLowPt8)
hTriggerClass->Fill(25);
4241 if (fInputHandler->IsEventSelected() & AliVEvent::kMuonUnlikeLowPt0)
hTriggerClass->Fill(26);
4242 if (fInputHandler->IsEventSelected() & AliVEvent::kUserDefined)
hTriggerClass->Fill(27);
4243 if (fInputHandler->IsEventSelected() & AliVEvent::kTRD)
hTriggerClass->Fill(28);
4244 if (fInputHandler->IsEventSelected() & AliVEvent::kFastOnly)
hTriggerClass->Fill(29);
4245 if (fInputHandler->IsEventSelected() & AliVEvent::kCaloOnly)
hTriggerClass->Fill(30);
4246 if (fInputHandler->IsEventSelected() & AliVEvent::kAnyINT)
hTriggerClass->Fill(31);
4247 if (fInputHandler->IsEventSelected() & AliVEvent::kAny)
hTriggerClass->Fill(32);
4248 if (!fInputHandler->IsEventSelected())
hTriggerClass->Fill(35);
4254 if (mimickedTrigger){
4286 if (fInputHandler->IsEventSelected() & AliVEvent::kMuonSingleLowPt8)
hTriggerClassSelected->Fill(22);
4287 if (fInputHandler->IsEventSelected() & AliVEvent::kMuonSingleHighPt8)
hTriggerClassSelected->Fill(23);
4289 if (fInputHandler->IsEventSelected() & AliVEvent::kMuonUnlikeLowPt8)
hTriggerClassSelected->Fill(25);
4290 if (fInputHandler->IsEventSelected() & AliVEvent::kMuonUnlikeLowPt0)
hTriggerClassSelected->Fill(26);
4300 if(!isSelected)
return kFALSE;
4302 if (!mimickedTrigger )
return kFALSE;
4329 if(rejection == 0)
return;
4331 AliGenCocktailEventHeader *cHeader = 0x0;
4332 AliAODMCHeader *cHeaderAOD = 0x0;
4333 Bool_t headerFound = kFALSE;
4334 AliMCEvent *fMCEvent = 0x0;
4335 TClonesArray *fMCEventAOD = 0x0;
4336 if(event->IsA()==AliMCEvent::Class()){
4337 if(dynamic_cast<AliMCEvent*>(event)){
4338 cHeader =
dynamic_cast<AliGenCocktailEventHeader*
>(
dynamic_cast<AliMCEvent*
>(event)->GenEventHeader());
4339 fMCEvent =
dynamic_cast<AliMCEvent*
>(event);
4340 if(cHeader) headerFound = kTRUE;
4343 if(event->IsA()==AliAODEvent::Class()){
4344 cHeaderAOD =
dynamic_cast<AliAODMCHeader*
>(
event->FindListObject(AliAODMCHeader::StdBranchName()));
4345 fMCEventAOD =
dynamic_cast<TClonesArray*
>(
event->FindListObject(AliAODMCParticle::StdBranchName()));
4346 if(cHeaderAOD) headerFound = kTRUE;
4349 if (
fDebugLevel > 0 ) cout <<
"event starts here" << endl;
4351 TList *genHeaders = 0x0;
4352 if(cHeader) genHeaders = cHeader->GetHeaders();
4354 genHeaders = cHeaderAOD->GetCocktailHeaders();
4355 if(genHeaders->GetEntries()==1){
4360 AliGenEventHeader* gh = 0;
4362 Int_t firstindexA = 0;
4363 Int_t lastindexA = -1;
4364 if(rejection == 1 || rejection == 3)
fnHeaders = 1;
4365 if(rejection == 2 || rejection == 4){
4366 for(
Int_t i = 0; i<genHeaders->GetEntries();i++){
4367 gh = (AliGenEventHeader*)genHeaders->At(i);
4368 TString GeneratorName = gh->GetName();
4369 lastindexA = lastindexA + gh->NProduced();
4370 if (
fDebugLevel > 0 ) cout << i <<
"\t" << GeneratorName.Data() << endl;
4371 for(
Int_t j = 0; j<HeaderList->GetEntries();j++){
4372 TString GeneratorInList = ((TObjString*)HeaderList->At(j))->GetString();
4373 if (
fDebugLevel > 0 ) cout << GeneratorInList.Data() << endl;
4374 if(GeneratorInList.Contains(GeneratorName) ){
4376 if (GeneratorInList.BeginsWith(
"PARAM") || GeneratorInList.CompareTo(
"BOX") == 0 ){
4379 if (
fDebugLevel > 2 )cout <<
"number of produced particle: " << gh->NProduced() << endl;
4380 if (
fDebugLevel > 2 )cout <<
"pdg-code of first particle: " << fMCEvent->Particle(firstindexA)->GetPdgCode() << endl;
4382 if (gh->NProduced() > 10 && fMCEvent->Particle(firstindexA+10)->GetPdgCode() ==
fAddedSignalPDGCode && GeneratorInList.CompareTo(
"BOX") == 0){
4386 }
else if (gh->NProduced() == 3 && GeneratorInList.Contains(
"PARAM_EMC") && (i == 3 || i == 5) ){
4387 if (
fDebugLevel > 2 ) cout <<
"accepted EMC header "<< endl;
4391 }
else if (gh->NProduced() > 2 && GeneratorInList.Contains(
"PARAM_PHOS") && (i == 4 || i == 6) ){
4392 if (
fDebugLevel > 2 ) cout <<
"accepted PHOS header "<< endl;
4407 AliAODMCParticle *aodMCParticle =
static_cast<AliAODMCParticle*
>(fMCEventAOD->At(firstindexA));
4410 if (gh->NProduced() > 10 && GeneratorInList.CompareTo(
"BOX") == 0){
4411 AliAODMCParticle *aodMCParticle2 =
static_cast<AliAODMCParticle*
>(fMCEventAOD->At(firstindexA+10));
4417 }
else if (gh->NProduced() == 3 && GeneratorInList.Contains(
"PARAM_EMC") && (i == 3 || i == 5) ){
4418 if (
fDebugLevel > 2 ) cout <<
"accepted EMC header "<< endl;
4422 }
else if (gh->NProduced() > 2 && GeneratorInList.Contains(
"PARAM_PHOS") && (i == 4 || i == 6) ){
4423 if (
fDebugLevel > 2 ) cout <<
"accepted PHOS header "<< endl;
4439 if(GeneratorName.CompareTo(GeneratorInList) == 0 ){
4446 firstindexA = firstindexA + gh->NProduced();
4455 if(rejection == 1 || rejection == 3){
4457 fNotRejectedEnd[0] = ((AliGenEventHeader*)genHeaders->At(0))->NProduced()-1;
4458 fGeneratorNames[0] = ((AliGenEventHeader*)genHeaders->At(0))->GetName();
4463 Int_t firstindex = 0;
4464 Int_t lastindex = -1;
4467 for(
Int_t i = 0; i<genHeaders->GetEntries();i++){
4468 gh = (AliGenEventHeader*)genHeaders->At(i);
4469 TString GeneratorName = gh->GetName();
4470 lastindex = lastindex + gh->NProduced();
4471 if (
fDebugLevel > 0 ) cout << i <<
"\t" << GeneratorName.Data() << endl;
4472 for(
Int_t j = 0; j<HeaderList->GetEntries();j++){
4473 TString GeneratorInList = ((TObjString*)HeaderList->At(j))->GetString();
4474 if(GeneratorInList.Contains(GeneratorName) ){
4475 if (GeneratorInList.Contains(
"PARAM") || GeneratorInList.CompareTo(
"BOX") == 0 ){
4479 if (
fDebugLevel > 0 ) cout <<
"produced " << gh->NProduced() <<
" with box generator" << endl;
4480 if (gh->NProduced() > 10 && fMCEvent->Particle(firstindex+10)->GetPdgCode() ==
fAddedSignalPDGCode && GeneratorInList.CompareTo(
"BOX") == 0){
4481 if (
fDebugLevel > 0 ) cout <<
"one of them was a pi0 or eta" << endl;
4486 if (
fDebugLevel > 0 ) cout <<
"Number of particles produced for: " << i <<
"\t" << GeneratorName.Data() <<
"\t" << lastindex-firstindex+1 << endl;
4488 }
else if (gh->NProduced() == 3 && GeneratorInList.Contains(
"PARAM_EMC") && (i == 3 || i == 5) ){
4493 if (
fDebugLevel > 0 ) cout <<
"Number of particles produced for: " << i <<
"\t" << GeneratorName.Data() <<
"\t" << lastindex-firstindex+1 << endl;
4495 }
else if (gh->NProduced() > 2 && GeneratorInList.Contains(
"PARAM_PHOS") && (i == 4 || i == 6) ){
4500 if (
fDebugLevel > 0 ) cout <<
"Number of particles produced for: " << i <<
"\t" << GeneratorName.Data() <<
"\t" << lastindex-firstindex+1 << endl;
4514 AliAODMCParticle *aodMCParticle =
static_cast<AliAODMCParticle*
>(fMCEventAOD->At(firstindex));
4517 if (gh->NProduced() > 10 && GeneratorInList.CompareTo(
"BOX") == 0) {
4518 AliAODMCParticle *aodMCParticle2 =
static_cast<AliAODMCParticle*
>(fMCEventAOD->At(firstindex+10));
4526 }
else if (gh->NProduced() == 3 && GeneratorInList.Contains(
"PARAM_EMC") && (i == 3 || i == 5) ){
4531 if (
fDebugLevel > 0 ) cout <<
"Number of particles produced for: " << i <<
"\t" << GeneratorName.Data() <<
"\t" << lastindex-firstindex+1 << endl;
4533 }
else if (gh->NProduced() > 2 && GeneratorInList.Contains(
"PARAM_PHOS") && (i == 4 || i == 6) ){
4538 if (
fDebugLevel > 0 ) cout <<
"Number of particles produced for: " << i <<
"\t" << GeneratorName.Data() <<
"\t" << lastindex-firstindex+1 << endl;
4552 }
else if(GeneratorName.CompareTo(GeneratorInList) == 0 ){
4556 if (
fDebugLevel > 0 ) cout <<
"Number of particles produced for: " << i <<
"\t" << GeneratorName.Data() <<
"\t" << lastindex-firstindex+1 << endl;
4563 firstindex = firstindex + gh->NProduced();
4566 for (
Int_t i = 0; i < number; i++){
4576 fNotRejectedEnd[0] =
static_cast<AliMCEvent*
>(event)->GetNumberOfPrimaries()-1;
4593 if(index < 0)
return 0;
4596 if(!InputEvent || InputEvent->IsA()==AliESDEvent::Class()){
4597 if(!mcEvent)
return 0;
4598 if(index >= mcEvent->GetNumberOfPrimaries()){
4599 if( ((TParticle*)mcEvent->Particle(index))->GetMother(0) < 0)
return 0;
4600 return IsParticleFromBGEvent(((TParticle*)mcEvent->Particle(index))->GetMother(0),mcEvent,InputEvent, debug);
4607 if(i == 0) accepted = 2;
4610 if (debug > 1 && !accepted) cout <<
"rejected:" << index << endl;
4612 else if(InputEvent->IsA()==AliAODEvent::Class()){
4613 TClonesArray *AODMCTrackArray =
dynamic_cast<TClonesArray*
>(InputEvent->FindListObject(AliAODMCParticle::StdBranchName()));
4614 if (AODMCTrackArray){
4615 AliAODMCParticle *aodMCParticle =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(index));
4616 if(!aodMCParticle)
return 0;
4617 if(!aodMCParticle->IsPrimary()){
4618 if( aodMCParticle->GetMother() < 0)
return 0;
4621 index = TMath::Abs(static_cast<AliAODMCParticle*>(AODMCTrackArray->At(index))->GetLabel());
4625 if(i == 0) accepted = 2;
4638 if (mcEvent){isMC = kTRUE;}
4666 Int_t runnumber =
event->GetRunNumber();
4667 if ((runnumber>=144871) && (runnumber<=146860)) {
4669 AliVCaloCells *cells =
event->GetEMCALCells();
4670 const Short_t nCells = cells->GetNumberOfCells();
4672 if (event->IsA()==AliESDEvent::Class()) AliAnalysisManager::GetAnalysisManager()->LoadBranch(
"EMCALCells.");
4674 AliInputEventHandler *fInputHandler=(AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
4675 if (!fInputHandler)
return 3;
4678 Int_t nCellCount[12] = {0,0,0,0,0,0,0,0,0,0,0,0};
4679 for(
Int_t iCell=0; iCell<nCells; ++iCell) {
4680 Short_t cellId = cells->GetCellNumber(iCell);
4681 Double_t cellE = cells->GetCellAmplitude(cellId);
4682 Int_t sm = cellId / (24*48);
4683 if (cellE>0.1) ++nCellCount[sm];
4686 Bool_t fIsLedEvent = kFALSE;
4687 if (nCellCount[4] > 100) {
4688 fIsLedEvent = kTRUE;
4690 if ((runnumber>=146858) && (runnumber<=146860)) {
4691 if ((fInputHandler->IsEventSelected() & AliVEvent::kMB) && (nCellCount[3]>=21))
4692 fIsLedEvent = kTRUE;
4693 else if ((fInputHandler->IsEventSelected() & AliVEvent::kEMC1) && (nCellCount[3]>=35))
4694 fIsLedEvent = kTRUE;
4704 Int_t nClustersLayer0 =
event->GetNumberOfITSClusters(0);
4705 Int_t nClustersLayer1 =
event->GetNumberOfITSClusters(1);
4706 Int_t nTracklets =
event->GetMultiplicity()->GetNumberOfTracklets();
4711 if(event->IsA()==AliESDEvent::Class()){
4715 for(
Int_t i=0; i<nPileVert;i++){
4716 const AliESDVertex* pv= ((
AliESDEvent*)event)->GetPileupVertexSPD(i);
4717 Int_t nc2 = pv->GetNContributors();
4722 if (TMath::Abs(distZMax) < TMath::Abs(distZ) ){
4736 if(event->IsPileupFromSPD(3,0.8,3.,2.,5.) ){
4740 if (
fUtils->IsSPDClusterVsTrackletBG(event)){
4746 if(
fUtils->IsPileUpEvent(event) ){
4750 if (
fUtils->IsSPDClusterVsTrackletBG(event)){
4764 if(eventSphericity == -1)
return 14;
4775 if(
fUseSphericity == 4 && (eventSphericity==-1 || nPrimTracks > 20)){
4778 if(
fUseSphericity == 5 && (eventSphericity==-1 || nPrimTracks < 20)){
4781 if(
fUseSphericity == 6 && (eventSphericity>0.5 || nPrimTracks > 20)){
4784 if(
fUseSphericity == 7 && (eventSphericity>0.5 || nPrimTracks < 20)){
4787 if(
fUseSphericity == 8 && (eventSphericity<0.5 || nPrimTracks > 20)){
4790 if(
fUseSphericity == 9 && (eventSphericity<0.5 || nPrimTracks < 20)){
4810 AliEventplane *EventPlane =
event->GetEventplane();
4823 AliInfo(
"Inside the GetWeightForCentralityFlattening function");
4826 if(!event || event->IsA()==AliESDEvent::Class()){
4829 AliCentrality *fESDCentrality=(AliCentrality*)esdEvent->GetCentrality();
4831 centrality = fESDCentrality->GetCentralityPercentile(
"V0M");
4834 }
else if(event->IsA()==AliAODEvent::Class()){
4837 if(aodEvent->GetHeader()){
4838 centrality = ((AliVAODHeader*)aodEvent->GetHeader())->
GetCentrality();
4844 Float_t GetValueForWeight = 1.;
4847 Bool_t CorrCentrLoop = kFALSE;
4853 CorrCentrLoop = kTRUE;
4857 CorrCentrLoop = kTRUE;
4859 CorrCentrLoop = kFALSE;
4862 if (CorrCentrLoop && GetValueForWeight != 0. && maximum !=0. && isfinite(GetValueForWeight) && isfinite(maximum) ){
4863 weightCentrality = maximum/GetValueForWeight;
4864 if (!isfinite(GetValueForWeight)) weightCentrality = 1.;
4865 if (!isfinite(weightCentrality)) weightCentrality = 1.;
4868 return weightCentrality;
4894 Float_t relativeErrorData = 1;
4895 if(valueMC!=0) relativeErrorMC = errorMC / valueMC;
4896 if(valueData!=0) relativeErrorData = errorData / valueData;