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 fPastFutureRejectionLow(0),
94 fPastFutureRejectionHigh(0),
95 fDoPileUpRejectV0MTPCout(0),
96 fFPileUpRejectV0MTPCout(0),
97 fRejectExtraSignals(0),
98 fOfflineTriggerMask(0),
103 fNotRejectedStart(NULL),
104 fNotRejectedEnd(NULL),
105 fGeneratorNames(NULL),
106 fPeriodEnum(kNoPeriod),
113 fDoCentralityFlat(0),
114 fPathWeightsFlatCent(
""),
115 fNameHistoNotFlatCentrality(
""),
116 fDoReweightHistoMCPi0(kFALSE),
117 fDoReweightHistoMCEta(kFALSE),
118 fDoReweightHistoMCK0s(kFALSE),
119 fPathTrFReweighting(
""),
120 fNameHistoReweightingPi0(
""),
121 fNameHistoReweightingEta(
""),
122 fNameHistoReweightingK0s(
""),
126 fHistoEventCuts(NULL),
127 fHistoPastFutureBits(NULL),
129 hCentralityNotFlat(NULL),
132 hNPileupVertices(NULL),
133 hPileupVertexToPrimZ(NULL),
134 hPileupVertexToPrimZSPDPileup(NULL),
135 hPileupVertexToPrimZTrackletvsHits(NULL),
136 hEventPlaneAngle(NULL),
139 hTriggerClassSelected(NULL),
140 hTriggerClassesCorrelated(NULL),
141 hReweightMCHistPi0(NULL),
142 hReweightMCHistEta(NULL),
143 hReweightMCHistK0s(NULL),
147 fAddedSignalPDGCode(0),
149 fTriggerSelectedManually(kFALSE),
150 fSpecialTriggerName(
""),
151 fSpecialSubTriggerName(
""),
152 fNSpecialSubTriggerOptions(0),
153 hSPDClusterTrackletBackgroundBefore(NULL),
154 hSPDClusterTrackletBackground(NULL),
157 fTriggerPatchInfo(NULL),
158 fMainTriggerPatchEMCAL(NULL),
159 fCaloTriggersName(
""),
160 fCaloTriggerPatchInfoName(
""),
162 fTriggersEMCALSelected(-1),
163 fEMCALTrigInitialized(kFALSE),
164 fSecProdBoundary(1.0),
167 fMaxFacPtHardSingleParticle(1.5),
168 fMimicTrigger(kFALSE),
169 fRejectTriggerOverlap(kFALSE),
170 fDoMultiplicityWeighting(kFALSE),
171 fPathReweightingMult(
""),
172 fNameHistoReweightingMultData(
""),
173 fNameHistoReweightingMultMC(
""),
174 hReweightMultData(NULL),
175 hReweightMultMC(NULL),
181 fUtils =
new AliAnalysisUtils();
190 AliAnalysisCuts(ref),
192 fHeaderList(ref.fHeaderList),
193 fDoLightOutput(ref.fDoLightOutput),
194 fEventQuality(ref.fEventQuality),
195 fIsHeavyIon(ref.fIsHeavyIon),
196 fDetectorCentrality(ref.fDetectorCentrality),
197 fModCentralityClass(ref.fModCentralityClass),
198 fEnableVertexCut(ref.fEnableVertexCut),
199 fMaxVertexZ(ref.fMaxVertexZ),
200 fCentralityMin(ref.fCentralityMin),
201 fCentralityMax(ref.fCentralityMax),
202 fMultiplicityMethod(ref.fMultiplicityMethod),
203 fSpecialTrigger(ref.fSpecialTrigger),
204 fSpecialSubTrigger(ref.fSpecialSubTrigger),
205 fRemovePileUp(ref.fRemovePileUp),
206 fPastFutureRejectionLow(ref.fPastFutureRejectionLow),
207 fPastFutureRejectionHigh(ref.fPastFutureRejectionHigh),
208 fDoPileUpRejectV0MTPCout(ref.fDoPileUpRejectV0MTPCout),
209 fFPileUpRejectV0MTPCout(ref.fFPileUpRejectV0MTPCout),
210 fRejectExtraSignals(ref.fRejectExtraSignals),
211 fOfflineTriggerMask(ref.fOfflineTriggerMask),
212 fHasV0AND(ref.fHasV0AND),
213 fIsSDDFired(ref.fIsSDDFired),
214 fRandom(ref.fRandom),
215 fnHeaders(ref.fnHeaders),
216 fNotRejectedStart(NULL),
217 fNotRejectedEnd(NULL),
218 fGeneratorNames(ref.fGeneratorNames),
219 fPeriodEnum(ref.fPeriodEnum),
224 fEtaShift(ref.fEtaShift),
225 fDoEtaShift(ref.fDoEtaShift),
226 fDoCentralityFlat(ref.fDoCentralityFlat),
227 fPathWeightsFlatCent(ref.fPathWeightsFlatCent),
228 fNameHistoNotFlatCentrality(ref.fNameHistoNotFlatCentrality),
229 fDoReweightHistoMCPi0(ref.fDoReweightHistoMCPi0),
230 fDoReweightHistoMCEta(ref.fDoReweightHistoMCEta),
231 fDoReweightHistoMCK0s(ref.fDoReweightHistoMCK0s),
232 fPathTrFReweighting(ref.fPathTrFReweighting),
233 fNameHistoReweightingPi0(ref.fNameHistoReweightingPi0),
234 fNameHistoReweightingEta(ref.fNameHistoReweightingEta),
235 fNameHistoReweightingK0s(ref.fNameHistoReweightingK0s),
236 fNameFitDataPi0(ref.fNameFitDataPi0),
237 fNameFitDataEta(ref.fNameFitDataEta),
238 fNameFitDataK0s(ref.fNameFitDataK0s),
239 fHistoEventCuts(NULL),
240 fHistoPastFutureBits(NULL),
241 hCentrality(ref.hCentrality),
242 hCentralityNotFlat(ref.hCentralityNotFlat),
244 hVertexZ(ref.hVertexZ),
245 hNPileupVertices(ref.hNPileupVertices),
246 hPileupVertexToPrimZ(ref.hPileupVertexToPrimZ),
247 hPileupVertexToPrimZSPDPileup(ref.hPileupVertexToPrimZSPDPileup),
248 hPileupVertexToPrimZTrackletvsHits(ref.hPileupVertexToPrimZTrackletvsHits),
249 hEventPlaneAngle(ref.hEventPlaneAngle),
250 fEventPlaneAngle(ref.fEventPlaneAngle),
252 hTriggerClassSelected(NULL),
253 hTriggerClassesCorrelated(NULL),
254 hReweightMCHistPi0(ref.hReweightMCHistPi0),
255 hReweightMCHistEta(ref.hReweightMCHistEta),
256 hReweightMCHistK0s(ref.hReweightMCHistK0s),
257 fFitDataPi0(ref.fFitDataPi0),
258 fFitDataEta(ref.fFitDataEta),
259 fFitDataK0s(ref.fFitDataK0s),
260 fAddedSignalPDGCode(ref.fAddedSignalPDGCode),
261 fPreSelCut(ref.fPreSelCut),
262 fTriggerSelectedManually(ref.fTriggerSelectedManually),
263 fSpecialTriggerName(ref.fSpecialTriggerName),
264 fSpecialSubTriggerName(ref.fSpecialSubTriggerName),
265 fNSpecialSubTriggerOptions(ref.fNSpecialSubTriggerOptions),
266 hSPDClusterTrackletBackgroundBefore(NULL),
267 hSPDClusterTrackletBackground(NULL),
268 fV0ReaderName(ref.fV0ReaderName),
270 fTriggerPatchInfo(NULL),
271 fMainTriggerPatchEMCAL(NULL),
272 fCaloTriggersName(ref.fCaloTriggersName),
273 fCaloTriggerPatchInfoName(ref.fCaloTriggerPatchInfoName),
274 fTriggersEMCAL(ref.fTriggersEMCAL),
275 fTriggersEMCALSelected(ref.fTriggersEMCALSelected),
276 fEMCALTrigInitialized(kFALSE),
277 fSecProdBoundary(ref.fSecProdBoundary),
278 fMaxPtJetMC(ref.fMaxPtJetMC),
279 fMaxFacPtHard(ref.fMaxFacPtHard),
280 fMaxFacPtHardSingleParticle(ref.fMaxFacPtHardSingleParticle),
281 fMimicTrigger(ref.fMimicTrigger),
282 fRejectTriggerOverlap(ref.fRejectTriggerOverlap),
283 fDoMultiplicityWeighting(ref.fDoMultiplicityWeighting),
284 fPathReweightingMult(ref.fPathReweightingMult),
285 fNameHistoReweightingMultData(ref.fNameHistoReweightingMultData),
286 fNameHistoReweightingMultMC(ref.fNameHistoReweightingMultMC),
287 hReweightMultData(ref.hReweightMultData),
288 hReweightMultMC(ref.hReweightMultMC),
294 fUtils =
new AliAnalysisUtils();
334 TH1::AddDirectory(kFALSE);
427 hTriggerClass->GetXaxis()->SetBinLabel( 9,
"kMUL7/kMuonLikePB");
428 hTriggerClass->GetXaxis()->SetBinLabel(10,
"kMUU7/kMuonUnlikePB");
432 hTriggerClass->GetXaxis()->SetBinLabel(14,
"kPHI7/kPHI8/kPHOSPb");
441 hTriggerClass->GetXaxis()->SetBinLabel(23,
"kMuonSingleLowPt8");
442 hTriggerClass->GetXaxis()->SetBinLabel(24,
"kMuonSingleHighPt8");
443 hTriggerClass->GetXaxis()->SetBinLabel(25,
"kMuonLikeLowPt8");
444 hTriggerClass->GetXaxis()->SetBinLabel(26,
"kMuonUnlikeLowPt8");
445 hTriggerClass->GetXaxis()->SetBinLabel(27,
"kMuonUnlikeLowPt0");
453 hTriggerClass->GetXaxis()->SetBinLabel(35,
"failed Physics Selection");
454 hTriggerClass->GetXaxis()->SetBinLabel(36,
"mimickedTrigger");
512 TH1::AddDirectory(kTRUE);
525 if(mcEvent && event->IsA()==AliESDEvent::Class()){
527 AliMCEventHandler* mcHandler =
dynamic_cast<AliMCEventHandler*
> (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler());
532 if (!mcHandler->InitOk() ){
536 if (!mcHandler->TreeK() ){
540 if (!mcHandler->TreeTR() ) {
558 if(event->IsA()==AliESDEvent::Class()){
559 AliTriggerAnalysis fTriggerAnalysis;
560 fHasV0AND = fTriggerAnalysis.IsOfflineTriggerFired((
AliESDEvent*)event, AliTriggerAnalysis::kV0AND);
587 Int_t nClustersLayer0 =
event->GetNumberOfITSClusters(0);
588 Int_t nClustersLayer1 =
event->GetNumberOfITSClusters(1);
589 Int_t nTracklets =
event->GetMultiplicity()->GetNumberOfTracklets();
594 if(event->IsA()==AliESDEvent::Class()){
598 for(
Int_t i=0; i<nPileVert;i++){
599 const AliESDVertex* pv = ((
AliESDEvent*)event)->GetPileupVertexSPD(i);
600 Int_t nc2 = pv->GetNContributors();
605 if (TMath::Abs(distZMax) < TMath::Abs(distZ) ){
617 if(
fUtils->IsPileUpMV(event)){
623 if(
fUtils->IsFirstEventInChunk(event)){
629 if(
fUtils->IsPileUpEvent(event)){
635 if (
fUtils->IsSPDClusterVsTrackletBG(event)){
644 if(event->IsPileupFromSPD(3,0.8,3.,2.,5.) ){
650 if (
fUtils->IsSPDClusterVsTrackletBG(event)){
683 AliEventplane *EventPlane =
event->GetEventplane();
708 AliInfo(
"Entering loading of weights for centrality flattening");
731 AliInfo(
"Entering loading of weights for multiplicity weighting");
765 AliInfo(
"Entering loading of histograms for weighting");
831 AliInfo(
"Centrality flattening was enabled");
836 AliInfo(
"Multiplicity weighting was enabled");
840 AliInfo(
"Particle Weighting was enabled");
845 AliInfo(Form(
"Set Event Cut Number: %s",analysisCutSelection.Data()));
846 if(analysisCutSelection.Length()!=
kNCuts) {
847 AliError(Form(
"Cut selection has the wrong length! size is %d, number of cuts is %d", analysisCutSelection.Length(),
kNCuts));
850 if(!analysisCutSelection.IsAlnum()){
851 AliError(
"Cut selection is not alphanumeric");
858 TString analysisCutSelectionLowerCase = Form(
"%s",analysisCutSelection.Data());
859 analysisCutSelectionLowerCase.ToLower();
860 const char *cutSelection = analysisCutSelectionLowerCase.Data();
861 #define ASSIGNARRAY(i) fCuts[i] = ((int)cutSelection[i]>=(int)'a') ? cutSelection[i]-'a'+10 : cutSelection[i]-'0'
894 }
else return kFALSE;
900 }
else return kFALSE;
906 }
else return kFALSE;
912 }
else return kFALSE;
918 }
else return kFALSE;
924 }
else return kFALSE;
930 }
else return kFALSE;
936 }
else return kFALSE;
939 AliError(
"Cut id out of range");
943 AliError(
"Cut id %d not recognized");
957 printf(
"\nEvent cutnumber \n");
959 printf(
"%d",
fCuts[ic]);
963 printf(
"Running in pp mode \n");
966 printf(
"\t only events triggered by V0OR will be analysed \n");
968 printf(
"\t only events where SDD was present will be analysed \n");
972 printf(
"\t only events triggered by V0AND will be analysed \n");
974 printf(
"\t only events where SDD was present will be analysed and triggered by VOAND\n");
985 printf(
"Running in PbPb mode \n");
987 printf(
"\t centrality selection based on V0M \n");
989 printf(
"\t centrality selection based on Cl1 \n");
1005 printf(
"\t only events triggered by kMB, kCentral, kSemiCentral will be analysed \n");
1013 printf(
"Running in pPb mode \n");
1015 printf(
"\t centrality selection based on V0A \n");
1017 printf(
"\t centrality selection based on Cl1 \n");
1023 printf(
"\t only events triggered by kINT7 will be analysed \n");
1030 else printf(
"\t No vertex cut \n");
1033 printf(
"\t Doing pile up removal \n");
1035 printf(
"\t Doing extra pile up removal V0M vs TPCout \n");
1039 printf(
"MC event cuts: \n");
1043 printf(
"\t maximum factor between jet and pt hard = %2.2f \n",
fMaxFacPtHard);
1097 AliError(Form(
"SetHeavyIon not defined %d",isHeavyIon));
1107 if(minCentrality<0||minCentrality>9){
1108 AliError(Form(
"minCentrality not defined %d",minCentrality));
1120 if(maxCentrality<0||maxCentrality>9){
1121 AliError(Form(
"maxCentrality not defined %d",maxCentrality));
1132 switch(selectSpecialTrigger){
1162 fOfflineTriggerMask=AliVEvent::kPHI7 | AliVEvent::kPHI1 | AliVEvent::kPHI8 | AliVEvent::kPHOSPb;
1189 AliError(
"Warning: Special Trigger Not known");
1200 switch(selectSpecialSubTriggerClass){
1211 AliError(
"Warning: Special Subtrigger Class Not known");
1215 switch(selectSpecialSubTriggerClass){
1240 AliError(
"Warning: Special Subtrigger Class Not known");
1244 switch(selectSpecialSubTriggerClass){
1305 AliError(
"Warning: Special Subtrigger Class Not known");
1309 switch(selectSpecialSubTriggerClass){
1356 AliError(
"Warning: Special Subtrigger Class Not known");
1360 switch(selectSpecialSubTriggerClass){
1409 AliError(
"Warning: Special Subtrigger Class Not known");
1413 switch(selectSpecialSubTriggerClass){
1441 AliError(
"Warning: Special Subtrigger Class Not known");
1445 switch(selectSpecialSubTriggerClass){
1489 AliError(
"Warning: Special Subtrigger Class Not known");
1493 switch(selectSpecialSubTriggerClass){
1585 AliError(
"Warning: Special Subtrigger Class Not known");
1589 switch(selectSpecialSubTriggerClass){
1667 AliError(
"Warning: Special Subtrigger Class Not known");
1691 switch(removePileUp){
1825 AliError(
"RemovePileUpCut not defined");
1834 switch(extraSignal){
1848 AliError(Form(
"Extra Signal Rejection not defined %d",extraSignal));
1883 AliError(Form(
"Vertex Cut not defined %d",vertexCut));
1922 AliMultSelection *MultSelection = (AliMultSelection*)event->FindListObject(
"MultSelection");
1924 AliWarning (
"AliMultSelection object not found !");
1928 if(
fIsHeavyIon==2)
return MultSelection->GetMultiplicityPercentile(
"V0A");
1929 else return MultSelection->GetMultiplicityPercentile(
"V0M");
1930 }
else if(
fDetectorCentrality==1)
return MultSelection->GetMultiplicityPercentile(
"CL1",kTRUE);
1933 AliCentrality *fESDCentrality = (AliCentrality*)esdEvent->GetCentrality();
1935 if(
fIsHeavyIon==2)
return fESDCentrality->GetCentralityPercentile(
"V0A");
1936 else return fESDCentrality->GetCentralityPercentile(
"V0M");
1944 AliMultSelection *MultSelection = (AliMultSelection*)aodEvent->FindListObject(
"MultSelection");
1946 AliWarning (
"AliMultSelection object not found !");
1950 if(
fIsHeavyIon==2)
return MultSelection->GetMultiplicityPercentile(
"V0A");
1951 else return MultSelection->GetMultiplicityPercentile(
"V0M",kTRUE);
1952 }
else if(
fDetectorCentrality==1)
return MultSelection->GetMultiplicityPercentile(
"CL1",kTRUE);
1955 if(aodEvent->GetHeader()){
return ((AliVAODHeader*)aodEvent->GetHeader())->
GetCentrality();}
1969 Int_t primaryTracksPP[9] = { 0, 2, 5, 10, 15,
1984 if(centrality<0)
return kFALSE;
1986 Int_t centralityC=0;
1988 centralityC=
Int_t(centrality/10);
1994 centralityC=
Int_t(centrality);
1997 }
else return kFALSE;
2000 centralityC=
Int_t(centrality);
2007 Int_t PrimaryTracks10[11][2] =
2021 Int_t PrimaryTracksLHC11h10[11][2] =
2035 Int_t PrimaryTracks5a[11][2] =
2049 Int_t PrimaryTracksLHC11h5a[11][2] =
2063 Int_t PrimaryTracks5b[11][2] =
2077 Int_t PrimaryTracksLHC11h5b[11][2] =
2092 if(event->IsA()==AliESDEvent::Class()) column = 0;
2093 if(event->IsA()==AliAODEvent::Class()) column = 1;
2108 centralityC=
Int_t(centrality/10);
2127 centralityC=
Int_t(centrality);
2130 }
else return kFALSE;
2146 centralityC=
Int_t(centrality);
2159 Double_t fVertexZ=
event->GetPrimaryVertex()->GetZ();
2163 fVertexZSPD = fESDEvent->GetPrimaryVertexSPD()->GetZ();
2167 fVertexZSPD = fAODEvent->GetPrimaryVertexSPD()->GetZ();
2170 if(TMath::Abs(fVertexZ)>
fMaxVertexZ)
return kFALSE;
2174 if (TMath::Abs(fVertexZ-fVertexZSPD) > 0.1)
return kFALSE;
2177 if(!
fUtils->IsVertexSelected2013pA(event))
return kFALSE;
2188 TBits fIR1 =
event->GetHeader()->GetIRInt1InteractionMap();
2189 TBits fIR2 =
event->GetHeader()->GetIRInt2InteractionMap();
2190 UShort_t bunchCrossings =
event->GetBunchCrossNumber();
2192 for(
Int_t i = 0; i<180;i++){
2193 if(fIR1.TestBitNumber(i))
2198 Bool_t isOutOfBunchPileup = 0;
2201 if(pf1 < -89) pf1 = -89;
2202 if(pf2 > 89) pf2 = 89;
2203 Int_t pf2maxForT0 = pf2;
2205 for (
Int_t i=pf1;i<=pf2;i++) {
2207 if (i<=pf2maxForT0) isOutOfBunchPileup|=fIR2.TestBitNumber(90+i);
2208 if (i>0 && i<=ir1skip)
continue;
2209 isOutOfBunchPileup|=fIR1.TestBitNumber(90+i);
2211 return isOutOfBunchPileup;
2217 Bool_t isPileUpV0MTPCout=0;
2222 multV0M =
event->GetVZEROData()->GetMTotV0A();
2224 multV0M =
event->GetVZEROData()->GetMTotV0A() +
event->GetVZEROData()->GetMTotV0C() ;
2229 if (multV0M < valFunc ) isPileUpV0MTPCout=1;
2232 return isPileUpV0MTPCout;
2241 if (fESDEvent->GetPrimaryVertex() != NULL){
2242 if(fESDEvent->GetPrimaryVertex()->GetNContributors()>0) {
2244 return fESDEvent->GetPrimaryVertex()->GetNContributors();
2248 if(fESDEvent->GetPrimaryVertexSPD() !=NULL){
2249 if(fESDEvent->GetPrimaryVertexSPD()->GetNContributors()>0) {
2251 return fESDEvent->GetPrimaryVertexSPD()->GetNContributors();
2253 AliWarning(Form(
"Number of contributors from bad vertex type:: %s",fESDEvent->GetPrimaryVertex()->GetName()));
2262 if (fAODEvent->GetPrimaryVertex() != NULL){
2263 if(fAODEvent->GetPrimaryVertex()->GetNContributors()>0) {
2264 return fAODEvent->GetPrimaryVertex()->GetNContributors();
2267 if(fAODEvent->GetPrimaryVertexSPD() !=NULL){
2268 if(fAODEvent->GetPrimaryVertexSPD()->GetNContributors()>0) {
2269 return fAODEvent->GetPrimaryVertexSPD()->GetNContributors();
2271 AliWarning(Form(
"Number of contributors from bad vertex type:: %s",fAODEvent->GetPrimaryVertex()->GetName()));
2284 AliGenCocktailEventHeader *cHeader = 0x0;
2285 Bool_t headerFound = kFALSE;
2306 cHeader =
dynamic_cast<AliGenCocktailEventHeader*
>(mcEvent->GenEventHeader());
2307 if(cHeader) headerFound = kTRUE;
2315 TList *genHeaders = 0x0;
2316 if(cHeader) genHeaders = cHeader->GetHeaders();
2317 AliGenEventHeader* gh = 0;
2318 for(
Int_t i = 0; i<genHeaders->GetEntries();i++){
2319 gh = (AliGenEventHeader*)genHeaders->At(i);
2320 TString GeneratorName = gh->GetName();
2321 if (GeneratorName.CompareTo(
"AliGenPythiaEventHeader") == 0){
2322 Bool_t eventAccepted = kTRUE;
2323 TParticle * jet = 0;
2324 Int_t nTriggerJets =
dynamic_cast<AliGenPythiaEventHeader*
>(gh)->NTriggerJets();
2327 for(
Int_t ijet = 0; ijet< nTriggerJets; ijet++){
2328 dynamic_cast<AliGenPythiaEventHeader*
>(gh)->TriggerJet(ijet, tmpjet);
2329 jet =
new TParticle(94, 21, -1, -1, -1, -1, tmpjet[0],tmpjet[1],tmpjet[2],tmpjet[3], 0,0,0,0);
2332 eventAccepted= kFALSE;
2336 if (jet)
delete jet;
2338 for(Long_t i = 0; i < mcEvent->GetNumberOfPrimaries(); i++) {
2339 TParticle* particle = (TParticle *)mcEvent->Particle(i);
2340 if (!particle)
continue;
2341 if (TMath::Abs(particle->GetPdgCode()) == 111 || TMath::Abs(particle->GetPdgCode()) == 221){
2343 eventAccepted= kFALSE;
2351 Double_t ptHardBinRanges[21] = { 5, 7, 9, 12, 16,
2353 70, 85, 99, 115, 132,
2354 150, 169, 190, 212, 235,
2356 Double_t weightsBins[20] = { 43.7553, 13.5848, 6.788, 2.67826, 0.975255,
2357 0.39069, 0.127342, 0.0465597, 0.0206539, 0.00750243,
2358 0.00319118, 0.00122291, 0.000641232, 0.000321437, 0.000168273,
2359 9.17033e-05, 5.34755e-05, 3.01354e-05, 1.74518e-05, 2.8004e-05};
2362 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
2363 if (bin < 20) weight = weightsBins[bin];
2366 Double_t ptHardBinRanges[21] = { 5, 7, 9, 12, 16,
2368 70, 85, 99, 115, 132,
2369 150, 169, 190, 212, 235,
2371 Double_t weightsBins[20] = { 43.8654, 13.6215, 6.79856, 2.67526, 0.978794,
2372 0.390797, 0.127769, 0.0465714, 0.0206173, 0.00750282,
2373 0.00318773, 0.00122533, 0.000644385, 0.000321225, 0.00016846,
2374 9.18305e-05, 5.33507e-05, 3.00677e-05, 1.74608e-05, 2.80823e-05};
2377 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
2378 if (bin < 20) weight = weightsBins[bin];
2381 Double_t ptHardBinRanges[21] = { 5, 7, 9, 12, 16,
2383 70, 85, 99, 115, 132,
2384 150, 169, 190, 212, 235,
2386 Double_t weightsBins[20] = {16.0869, 4.61169, 2.14976, 0.782544, 0.264854,
2387 9.7619E-02, 2.92747E-02, 9.89515E-03, 4.05152E-03, 1.35393E-03,
2388 5.29864E-04, 1.88317E-04, 9.23E-05, 4.29E-05, 2.09E-05,
2389 1.06E-05, 5.76E-06, 3.00E-06, 1.62E-06, 2.10E-06 };
2391 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
2392 if (bin < 20) weight = weightsBins[bin];
2396 Double_t ptHardBinRanges[13] = { 5, 7, 9, 12, 16,
2399 Double_t weightsBins[12] = { 7.858393e-03, 4.718691e-03, 4.077575e-03, 2.814527e-03, 1.669625e-03,
2400 1.007535e-03, 4.536554e-04, 2.111041e-04, 1.094840e-04, 4.404973e-05,
2401 1.933238e-05, 1.562895e-05};
2403 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
2404 if (bin < 12) weight = weightsBins[bin];
2407 Double_t ptHardBinRanges[20] = { 5, 11, 21, 36, 57,
2408 84, 117, 152, 191, 1000000,
2410 21, 28, 36, 45, 57 };
2416 Double_t weightsBins[19] = { 4.43629 , 0.49523, 0.0394921, 0.00383174, 0.000446559,
2417 6.37374e-05, 1.03134e-05, 2.27012e-06, 7.59281e-07, 0,
2418 2.62906, 1.12884, 0.656873, 0.262822, 0.0876732,
2419 0.0307759, 0.0087083, 0.0027664, 0.00106203};
2423 if (binFromFile != -1 && binFromFile >9 && ptHard < 57) bin = 9;
2424 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
2425 if (bin < 19) weight = weightsBins[bin];
2428 Double_t ptHardBinRanges[20] = { 5, 11, 21, 36, 57,
2429 84, 117, 152, 191, 1000000,
2431 21, 28, 36, 45, 57 };
2433 Double_t weightsBins[19] = { 4.43897 , 0.495766, 0.039486, 0.00383011, 0.000447104,
2434 6.37277e-05, 1.03166e-05, 2.26971e-06, 7.59023e-07, 0,
2435 2.63331, 1.12815, 0.657034, 0.262756, 0.0877227,
2436 0.0307638, 0.00870635, 0.00276658, 0.00106229};
2439 if (binFromFile != -1 && binFromFile >9 && ptHard < 57) bin = 9;
2440 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
2441 if (bin < 19) weight = weightsBins[bin];
2444 Double_t ptHardBinRanges[21] = { 5, 7, 9, 12, 16,
2446 70, 85, 99, 115, 132,
2447 150, 169, 190, 212, 235,
2449 Double_t weightsBins[20] = { 28.3084, 8.43277, 4.07753, 1.54359, 0.543318,
2450 0.208394, 0.0652349, 0.0186904, 0.00834528, 0.00301414,
2451 0.00125939, 0.000474403, 0.000244052, 0.00011924, 6.09838e-05,
2452 3.24148e-05, 1.84314e-05, 1.00926e-05, 5.68632e-06, 8.38092e-06};
2454 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
2455 if (bin < 20) weight = weightsBins[bin];
2458 Double_t ptHardBinRanges[6] = { 7, 9, 12, 16, 21, 1000};
2459 Double_t weightsBins[5] = { 0.00672445, 0.00799158, 0.00678934, 0.00463908, 0.00600068};
2461 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
2462 if (bin < 5) weight = weightsBins[bin];
2465 Double_t ptHardBinRanges[7] = { 14, 19, 26, 35, 48, 66, 1000};
2466 Double_t weightsBins[6] = { 0.00608281, 0.00393646, 0.00200138, 0.000986267, 0.000389051, 0.0001863};
2468 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
2469 if (bin < 6) weight = weightsBins[bin];
2472 Double_t ptHardBinRanges[8] = { 0, 5, 11, 21, 36, 57, 84, 1000};
2473 Double_t weightsBins[7] = { 0.00151999, 0.000100346, 1.27688e-05, 1.82388e-06, 3.08506e-07, 6.00308e-08, 1.88414e-08};
2475 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
2476 if (bin < 7) weight = weightsBins[bin];
2479 Double_t ptHardBinRanges[11] = { 5, 11, 21, 36, 57,
2480 84, 117, 152, 191, 234,
2482 Double_t weightsBins[10] = { 2.24185e-6 , 2.48463e-7, 2.23171e-8, 2.43667e-9, 3.29934e-10,
2483 5.34592e-11, 1.00937e-11, 2.6493e-12, 8.53912e-13, 5.43077e-13};
2485 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
2486 if (bin < 10) weight = weightsBins[bin];
2492 if (weight == -1)
return kFALSE;
2493 else return eventAccepted;
2498 AliGenEventHeader * eventHeader = mcEvent->GenEventHeader();
2499 TString eventHeaderName = eventHeader->ClassName();
2500 if (eventHeaderName.CompareTo(
"AliGenPythiaEventHeader") == 0){
2501 Bool_t eventAccepted = kTRUE;
2502 TParticle * jet = 0;
2503 Int_t nTriggerJets =
dynamic_cast<AliGenPythiaEventHeader*
>(eventHeader)->NTriggerJets();
2504 Float_t ptHard =
dynamic_cast<AliGenPythiaEventHeader*
>(eventHeader)->
GetPtHard();
2506 for(
Int_t ijet = 0; ijet< nTriggerJets; ijet++){
2507 dynamic_cast<AliGenPythiaEventHeader*
>(eventHeader)->TriggerJet(ijet, tmpjet);
2508 jet =
new TParticle(94, 21, -1, -1, -1, -1, tmpjet[0],tmpjet[1],tmpjet[2],tmpjet[3], 0,0,0,0);
2511 eventAccepted= kFALSE;
2516 for(Long_t i = 0; i < mcEvent->GetNumberOfPrimaries(); i++) {
2517 TParticle* particle = (TParticle *)mcEvent->Particle(i);
2518 if (!particle)
continue;
2519 if (TMath::Abs(particle->GetPdgCode()) == 111 || TMath::Abs(particle->GetPdgCode()) == 221){
2521 eventAccepted= kFALSE;
2529 Double_t ptHardBinRanges[21] = { 5, 7, 9, 12, 16,
2531 70, 85, 99, 115, 132,
2532 150, 169, 190, 212, 235,
2534 Double_t weightsBins[20] = {16.0869, 4.61169, 2.14976, 0.782544, 0.264854,
2535 9.7619E-02, 2.92747E-02, 9.89515E-03, 4.05152E-03, 1.35393E-03,
2536 5.29864E-04, 1.88317E-04, 9.23E-05, 4.29E-05, 2.09E-05,
2537 1.06E-05, 5.76E-06, 3.00E-06, 1.62E-06, 2.10E-06 };
2539 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
2540 if (bin < 20) weight = weightsBins[bin];
2543 Double_t ptHardBinRanges[13] = { 5, 7, 9, 12, 16,
2546 Double_t weightsBins[12] = { 7.858393e-03, 4.718691e-03, 4.077575e-03, 2.814527e-03, 1.669625e-03,
2547 1.007535e-03, 4.536554e-04, 2.111041e-04, 1.094840e-04, 4.404973e-05,
2548 1.933238e-05, 1.562895e-05};
2550 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
2551 if (bin < 12) weight = weightsBins[bin];
2554 Double_t ptHardBinRanges[20] = { 5, 11, 21, 36, 57,
2555 84, 117, 152, 191, 1000000,
2557 21, 28, 36, 45, 57 };
2563 Double_t weightsBins[19] = { 4.43629 , 0.49523, 0.0394921, 0.00383174, 0.000446559,
2564 6.37374e-05, 1.03134e-05, 2.27012e-06, 7.59281e-07, 0,
2565 2.62906, 1.12884, 0.656873, 0.262822, 0.0876732,
2566 0.0307759, 0.0087083, 0.0027664, 0.00106203};
2570 if (binFromFile != -1 && binFromFile >9 && ptHard < 57) bin = 9;
2571 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
2572 if (bin < 19) weight = weightsBins[bin];
2575 Double_t ptHardBinRanges[20] = { 5, 11, 21, 36, 57,
2576 84, 117, 152, 191, 1000000,
2578 21, 28, 36, 45, 57 };
2580 Double_t weightsBins[19] = { 4.43897 , 0.495766, 0.039486, 0.00383011, 0.000447104,
2581 6.37277e-05, 1.03166e-05, 2.26971e-06, 7.59023e-07, 0,
2582 2.63331, 1.12815, 0.657034, 0.262756, 0.0877227,
2583 0.0307638, 0.00870635, 0.00276658, 0.00106229};
2586 if (binFromFile != -1 && binFromFile >9 && ptHard < 57) bin = 9;
2587 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
2588 if (bin < 19) weight = weightsBins[bin];
2591 Double_t ptHardBinRanges[21] = { 5, 7, 9, 12, 16,
2593 70, 85, 99, 115, 132,
2594 150, 169, 190, 212, 235,
2596 Double_t weightsBins[20] = { 28.3084, 8.43277, 4.07753, 1.54359, 0.543318,
2597 0.208394, 0.0652349, 0.0186904, 0.00834528, 0.00301414,
2598 0.00125939, 0.000474403, 0.000244052, 0.00011924, 6.09838e-05,
2599 3.24148e-05, 1.84314e-05, 1.00926e-05, 5.68632e-06, 8.38092e-06};
2601 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
2602 if (bin < 20) weight = weightsBins[bin];
2605 Double_t ptHardBinRanges[6] = { 7, 9, 12, 16, 21, 1000};
2606 Double_t weightsBins[5] = { 0.00672445, 0.00799158, 0.00678934, 0.00463908, 0.00600068};
2608 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
2609 if (bin < 5) weight = weightsBins[bin];
2612 Double_t ptHardBinRanges[7] = { 14, 19, 26, 35, 48, 66, 1000};
2613 Double_t weightsBins[6] = { 0.00608281, 0.00393646, 0.00200138, 0.000986267, 0.000389051, 0.0001863};
2615 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
2616 if (bin < 6) weight = weightsBins[bin];
2619 Double_t ptHardBinRanges[8] = { 0, 5, 11, 21, 36, 57, 84, 1000};
2620 Double_t weightsBins[7] = { 0.00151999, 0.000100346, 1.27688e-05, 1.82388e-06, 3.08506e-07, 6.00308e-08, 1.88414e-08};
2622 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
2623 if (bin < 7) weight = weightsBins[bin];
2626 Double_t ptHardBinRanges[11] = { 5, 11, 21, 36, 57,
2627 84, 117, 152, 191, 234,
2629 Double_t weightsBins[10] = { 2.24185e-6 , 2.48463e-7, 2.23171e-8, 2.43667e-9, 3.29934e-10,
2630 5.34592e-11, 1.00937e-11, 2.6493e-12, 8.53912e-13, 5.43077e-13};
2632 while (!((ptHard< ptHardBinRanges[bin+1] && ptHard > ptHardBinRanges[bin]) || (ptHard == ptHardBinRanges[bin]) ) )bin++;
2633 if (bin < 10) weight = weightsBins[bin];
2638 if (weight == -1)
return kFALSE;
2639 else return eventAccepted;
2654 AliGenCocktailEventHeader *cHeader = 0x0;
2655 Bool_t headerFound = kFALSE;
2674 cHeader =
dynamic_cast<AliGenCocktailEventHeader*
>(mcEvent->GenEventHeader());
2675 if(cHeader) headerFound = kTRUE;
2684 TList *genHeaders = 0x0;
2685 if(cHeader) genHeaders = cHeader->GetHeaders();
2686 AliGenEventHeader* gh = 0;
2687 for(
Int_t i = 0; i<genHeaders->GetEntries();i++){
2688 gh = (AliGenEventHeader*)genHeaders->At(i);
2689 TString GeneratorName = gh->GetName();
2690 if (GeneratorName.CompareTo(
"AliGenPythiaEventHeader") == 0){
2691 AliGenPythiaEventHeader* gPythia =
dynamic_cast<AliGenPythiaEventHeader*
>(gh);
2692 NTrials = gPythia->Trials();
2693 XSection = gPythia->GetXsection();
2698 AliGenEventHeader * eventHeader = mcEvent->GenEventHeader();
2700 TString eventHeaderName = eventHeader->ClassName();
2701 if (eventHeaderName.CompareTo(
"AliGenPythiaEventHeader") == 0){
2702 AliGenPythiaEventHeader* gPythia =
dynamic_cast<AliGenPythiaEventHeader*
>(eventHeader);
2703 NTrials = gPythia->Trials();
2704 XSection = gPythia->GetXsection();
2720 AliGenCocktailEventHeader *cHeader = 0x0;
2721 Bool_t headerFound = kFALSE;
2736 cHeader =
dynamic_cast<AliGenCocktailEventHeader*
>(mcEvent->GenEventHeader());
2737 if(cHeader) headerFound = kTRUE;
2744 TList *genHeaders = 0x0;
2745 if(cHeader) genHeaders = cHeader->GetHeaders();
2746 AliGenEventHeader* gh = 0;
2747 for(
Int_t i = 0; i<genHeaders->GetEntries();i++){
2748 gh = (AliGenEventHeader*)genHeaders->At(i);
2749 TString GeneratorName = gh->GetName();
2750 if (GeneratorName.CompareTo(
"AliGenPythiaEventHeader") == 0){
2751 return dynamic_cast<AliGenPythiaEventHeader*
>(gh)->
GetPtHard();
2755 AliGenEventHeader * eventHeader = mcEvent->GenEventHeader();
2757 TString eventHeaderName = eventHeader->ClassName();
2758 if (eventHeaderName.CompareTo(
"AliGenPythiaEventHeader") == 0){
2759 return dynamic_cast<AliGenPythiaEventHeader*
>(eventHeader)->
GetPtHard();
2774 Int_t runRangesEMCalL0 [35] = { 144871, 145288, 146375, 146382,
2776 150209, 153056, 153911, 153915,
2777 158135, 158136, 158178, 158182, 160683,
2778 160764, 161139, 161256, 161379, 161457,
2779 161525, 161556, 161558, 161609, 161630,
2781 173731, 177144, 177147, 177653, 177724, 178327,
2786 Double_t thresholdEMCalL0[34] = { 2.11, 3.43, 1.71, 2.05,
2788 1.94, 3.39, 4.01, 5.25, 5.5,
2789 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,
2790 2.01, 1.75, 1.52, 2.01, 1.52, 1.85,
2794 Double_t spreadEMCalL0[34] = { 0., 0., 0, 0,
2797 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
2798 0., 0., 0., 0., 0.2, 0.2,
2803 Int_t runRangesEMCalL1[4] = { 179796,
2808 Double_t thresholdEMCalL1[3] = { 9.5, 11.5, 5.5};
2809 Double_t spreadEMCalL1[3] = { 1.0, 0.5, 0.6};
2811 Int_t runRangesEMCalL1G2[3] = { 195180,
2815 Double_t thresholdEMCalL1G2[2] = { 7.2, 3.75};
2816 Double_t spreadEMCalL1G2[2] = { 0.3, 0.25};
2818 Int_t runnumber =
event->GetRunNumber();
2821 if (runnumber < runRangesEMCalL0[0])
return kTRUE;
2823 while (!(runnumber >= runRangesEMCalL0[binRun] && runnumber < runRangesEMCalL0[binRun+1] ) && binRun < 34 ){
2827 if (binRun==34)
return kFALSE;
2828 Double_t threshold = thresholdEMCalL0[binRun];
2830 if (isMC && spreadEMCalL0[binRun] != 0.){
2831 TF1* triggerSmearing =
new TF1(
"triggerSmearing",
"[0]*exp(-0.5*((x-[1])/[2])**2)",0,15);
2832 triggerSmearing->SetParameter(0, 1/(spreadEMCalL0[binRun]*TMath::Sqrt(TMath::Pi()*2)));
2833 triggerSmearing->SetParameter(1, thresholdEMCalL0[binRun]);
2834 triggerSmearing->SetParameter(2, spreadEMCalL0[binRun]);
2835 threshold = triggerSmearing->GetRandom();
2836 delete triggerSmearing;
2842 nclus =
event->GetNumberOfCaloClusters();
2844 if(nclus == 0)
return kFALSE;
2847 Bool_t eventIsAccepted = kFALSE;
2848 for(
Int_t i = 0; i < nclus; i++){
2849 AliVCluster* clus = NULL;
2850 clus =
event->GetCaloCluster(i);
2851 if (!clus)
continue;
2852 if (!clus->IsEMCAL())
continue;
2853 if (clus->GetM02()<0.1)
continue;
2854 if (clus->GetNCells()<2)
continue;
2855 if (clus->E() > threshold ){
2857 eventIsAccepted = kTRUE;
2860 return eventIsAccepted;
2867 if (runnumber < runRangesEMCalL1[0])
return kTRUE;
2869 while (!(runnumber >= runRangesEMCalL1[binRun] && runnumber < runRangesEMCalL1[binRun+1] ) && binRun < 3 ){
2873 if (binRun==3)
return kFALSE;
2874 Double_t threshold = thresholdEMCalL1[binRun];
2876 if (isMC && spreadEMCalL1[binRun] != 0.){
2877 TF1* triggerSmearing =
new TF1(
"triggerSmearing",
"[0]*exp(-0.5*((x-[1])/[2])**2)",0,15);
2878 triggerSmearing->SetParameter(0, 1/(spreadEMCalL1[binRun]*TMath::Sqrt(TMath::Pi()*2)));
2879 triggerSmearing->SetParameter(1, thresholdEMCalL1[binRun]);
2880 triggerSmearing->SetParameter(2, spreadEMCalL1[binRun]);
2881 threshold = triggerSmearing->GetRandom();
2882 delete triggerSmearing;
2888 nclus =
event->GetNumberOfCaloClusters();
2890 if(nclus == 0)
return kFALSE;
2893 Bool_t eventIsAccepted = kFALSE;
2894 for(
Int_t i = 0; i < nclus; i++){
2895 AliVCluster* clus = NULL;
2896 clus =
event->GetCaloCluster(i);
2897 if (!clus)
continue;
2898 if (!clus->IsEMCAL())
continue;
2899 if (clus->GetM02()<0.1)
continue;
2900 if (clus->GetNCells()<2)
continue;
2901 if (clus->E() > threshold ){
2903 eventIsAccepted = kTRUE;
2906 return eventIsAccepted;
2908 if (runnumber < runRangesEMCalL1G2[0])
return kTRUE;
2910 while (!(runnumber >= runRangesEMCalL1G2[binRun] && runnumber < runRangesEMCalL1G2[binRun+1] ) && binRun < 2 ){
2914 if (binRun==2)
return kFALSE;
2915 Double_t threshold = thresholdEMCalL1G2[binRun];
2916 if (isMC && spreadEMCalL1G2[binRun] != 0.){
2917 TF1* triggerSmearing =
new TF1(
"triggerSmearing",
"[0]*exp(-0.5*((x-[1])/[2])**2)",0,15);
2918 triggerSmearing->SetParameter(0, 1/(spreadEMCalL1G2[binRun]*TMath::Sqrt(TMath::Pi()*2)));
2919 triggerSmearing->SetParameter(1, thresholdEMCalL1G2[binRun]);
2920 triggerSmearing->SetParameter(2, spreadEMCalL1G2[binRun]);
2921 threshold = triggerSmearing->GetRandom();
2922 delete triggerSmearing;
2927 nclus =
event->GetNumberOfCaloClusters();
2929 if(nclus == 0)
return kFALSE;
2932 Bool_t eventIsAccepted = kFALSE;
2933 for(
Int_t i = 0; i < nclus; i++){
2934 AliVCluster* clus = NULL;
2935 clus =
event->GetCaloCluster(i);
2936 if (!clus)
continue;
2937 if (!clus->IsEMCAL())
continue;
2938 if (clus->GetM02()<0.1)
continue;
2939 if (clus->GetNCells()<2)
continue;
2940 if (clus->E() > threshold ){
2942 eventIsAccepted = kTRUE;
2945 return eventIsAccepted;
2962 AliInputEventHandler *fInputHandler=(AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
2965 UInt_t isSelected = AliVEvent::kAny;
2967 if (fInputHandler==NULL)
return kFALSE;
2968 if( fInputHandler->GetEventSelection() ||
event->IsA()==AliAODEvent::Class()) {
2970 TString firedTrigClass =
event->GetFiredTriggerClasses();
3011 if (fInputHandler->IsEventSelected() & AliVEvent::kINT7) isSelected = 0;
3013 if (fInputHandler->IsEventSelected() & AliVEvent::kMB) isSelected = 0;
3015 if (fInputHandler->IsEventSelected() & AliVEvent::kINT8) isSelected = 0;
3019 if (fInputHandler->IsEventSelected() & AliVEvent::kINT7) isSelected = 0;
3020 if (fInputHandler->IsEventSelected() & AliVEvent::kEMC7) isSelected = 0;
3022 if (fInputHandler->IsEventSelected() & AliVEvent::kINT8) isSelected = 0;
3023 if (fInputHandler->IsEventSelected() & AliVEvent::kEMC7) isSelected = 0;
3030 if (fInputHandler->IsEventSelected() & AliVEvent::kINT7) isSelected = 0;
3032 if (fInputHandler->IsEventSelected() & AliVEvent::kEMC7) isSelected = 0;
3034 if (firedTrigClass.Contains(
"7EG2")) isSelected = 0;
3037 if (fInputHandler->IsEventSelected() & AliVEvent::kINT8) isSelected = 0;
3038 if (fInputHandler->IsEventSelected() & AliVEvent::kEMC7) isSelected = 0;
3039 if (firedTrigClass.Contains(
"8EG2")) isSelected = 0;
3042 if (fInputHandler->IsEventSelected() & AliVEvent::kINT7) isSelected = 0;
3044 if (fInputHandler->IsEventSelected() & AliVEvent::kEMC7) isSelected = 0;
3047 if (fInputHandler->IsEventSelected() & AliVEvent::kINT7) isSelected = 0;
3048 if (fInputHandler->IsEventSelected() & AliVEvent::kEMC7) isSelected = 0;
3053 if (fInputHandler->IsEventSelected() & AliVEvent::kINT7) isSelected = 0;
3054 if (fInputHandler->IsEventSelected() & AliVEvent::kEMC7) isSelected = 0;
3055 if (firedTrigClass.Contains(
"7EG1")) isSelected = 0;
3057 if (fInputHandler->IsEventSelected() & AliVEvent::kINT8) isSelected = 0;
3058 if (fInputHandler->IsEventSelected() & AliVEvent::kEMC7) isSelected = 0;
3059 if (firedTrigClass.Contains(
"8EG1")) isSelected = 0;
3061 if (fInputHandler->IsEventSelected() & AliVEvent::kINT7) isSelected = 0;
3062 if (fInputHandler->IsEventSelected() & AliVEvent::kEMC7) isSelected = 0;
3064 if (fInputHandler->IsEventSelected() & AliVEvent::kINT7) isSelected = 0;
3065 if (fInputHandler->IsEventSelected() & AliVEvent::kEMC7) isSelected = 0;
3069 if (isSelected != 0 ){
3101 for (
Int_t i=0; i<ClassesList->GetEntriesFast();++i){
3102 TObjString *NameClass = (TObjString*)ClassesList->At(i);
3103 if (firedTrigClass.Contains(NameClass->GetString())) isSelected = 1;
3107 for (
Int_t i=0; i<ClassesList->GetEntriesFast();++i){
3108 TObjString *NameClass = (TObjString*)ClassesList->At(i);
3109 if (firedTrigClass.Contains(NameClass->GetString())) isSelected = 1;
3113 for (
Int_t i=0; i<ClassesList->GetEntriesFast();++i){
3114 TObjString *NameClass = (TObjString*)ClassesList->At(i);
3115 if (firedTrigClass.Contains(NameClass->GetString())) isSelected = 1;
3120 for (
Int_t i=0; i<ClassesList->GetEntriesFast(); i++){
3121 TObjString *NameClass = (TObjString*)ClassesList->At(i);
3122 if (firedTrigClass.Contains(NameClass->GetString())) CheckClass+=
"1";
3123 else CheckClass+=
"0";
3125 if(CheckClass.Contains(
"0")) isSelected = 0;
3132 fIsSDDFired = !(fInputHandler->IsEventSelected() & AliVEvent::kFastOnly);
3134 Bool_t mimickedTrigger = kTRUE;
3141 if (mimickedTrigger){
3142 if (fInputHandler->IsEventSelected() & AliVEvent::kMB)
hTriggerClass->Fill(0);
3143 if (fInputHandler->IsEventSelected() & AliVEvent::kINT7)
hTriggerClass->Fill(1);
3144 if (fInputHandler->IsEventSelected() & AliVEvent::kMUON)
hTriggerClass->Fill(2);
3145 if (fInputHandler->IsEventSelected() & AliVEvent::kHighMult)
hTriggerClass->Fill(3);
3146 if (fInputHandler->IsEventSelected() & AliVEvent::kEMC1)
hTriggerClass->Fill(4);
3147 if (fInputHandler->IsEventSelected() & AliVEvent::kCINT5)
hTriggerClass->Fill(5);
3148 if (fInputHandler->IsEventSelected() & AliVEvent::kCMUS5)
hTriggerClass->Fill(6);
3150 if (fInputHandler->IsEventSelected() & AliVEvent::kMUSH7)
hTriggerClass->Fill(7);
3152 if (fInputHandler->IsEventSelected() & AliVEvent::kMUL7)
hTriggerClass->Fill(8);
3154 if (fInputHandler->IsEventSelected() & AliVEvent::kMUU7)
hTriggerClass->Fill(9);
3156 if (fInputHandler->IsEventSelected() & AliVEvent::kEMC7)
hTriggerClass->Fill(10);
3158 if (fInputHandler->IsEventSelected() & AliVEvent::kMUS7)
hTriggerClass->Fill(11);
3159 if (fInputHandler->IsEventSelected() & AliVEvent::kPHI1)
hTriggerClass->Fill(12);
3160 if (fInputHandler->IsEventSelected() & AliVEvent::kPHI7)
hTriggerClass->Fill(13);
3163 if (fInputHandler->IsEventSelected() & AliVEvent::kEMCEJE)
hTriggerClass->Fill(14);
3164 if (fInputHandler->IsEventSelected() & AliVEvent::kEMCEGA)
hTriggerClass->Fill(15);
3165 if (fInputHandler->IsEventSelected() & AliVEvent::kCentral)
hTriggerClass->Fill(16);
3166 if (fInputHandler->IsEventSelected() & AliVEvent::kSemiCentral)
hTriggerClass->Fill(17);
3167 if (fInputHandler->IsEventSelected() & AliVEvent::kDG5)
hTriggerClass->Fill(18);
3168 if (fInputHandler->IsEventSelected() & AliVEvent::kZED)
hTriggerClass->Fill(19);
3169 if (fInputHandler->IsEventSelected() & AliVEvent::kSPI7)
hTriggerClass->Fill(20);
3171 if (fInputHandler->IsEventSelected() & AliVEvent::kINT8)
hTriggerClass->Fill(21);
3172 if (fInputHandler->IsEventSelected() & AliVEvent::kMuonSingleLowPt8)
hTriggerClass->Fill(22);
3173 if (fInputHandler->IsEventSelected() & AliVEvent::kMuonSingleHighPt8)
hTriggerClass->Fill(23);
3174 if (fInputHandler->IsEventSelected() & AliVEvent::kMuonLikeLowPt8)
hTriggerClass->Fill(24);
3175 if (fInputHandler->IsEventSelected() & AliVEvent::kMuonUnlikeLowPt8)
hTriggerClass->Fill(25);
3176 if (fInputHandler->IsEventSelected() & AliVEvent::kMuonUnlikeLowPt0)
hTriggerClass->Fill(26);
3177 if (fInputHandler->IsEventSelected() & AliVEvent::kUserDefined)
hTriggerClass->Fill(27);
3178 if (fInputHandler->IsEventSelected() & AliVEvent::kTRD)
hTriggerClass->Fill(28);
3179 if (fInputHandler->IsEventSelected() & AliVEvent::kFastOnly)
hTriggerClass->Fill(29);
3180 if (fInputHandler->IsEventSelected() & AliVEvent::kAnyINT)
hTriggerClass->Fill(30);
3181 if (fInputHandler->IsEventSelected() & AliVEvent::kAny)
hTriggerClass->Fill(31);
3182 if (!fInputHandler->IsEventSelected())
hTriggerClass->Fill(34);
3188 if (mimickedTrigger){
3220 if (fInputHandler->IsEventSelected() & AliVEvent::kMuonSingleLowPt8)
hTriggerClassSelected->Fill(22);
3221 if (fInputHandler->IsEventSelected() & AliVEvent::kMuonSingleHighPt8)
hTriggerClassSelected->Fill(23);
3223 if (fInputHandler->IsEventSelected() & AliVEvent::kMuonUnlikeLowPt8)
hTriggerClassSelected->Fill(25);
3224 if (fInputHandler->IsEventSelected() & AliVEvent::kMuonUnlikeLowPt0)
hTriggerClassSelected->Fill(26);
3234 if(!isSelected)
return kFALSE;
3236 if (!mimickedTrigger )
return kFALSE;
3263 if(rejection == 0)
return;
3265 AliGenCocktailEventHeader *cHeader = 0x0;
3266 AliAODMCHeader *cHeaderAOD = 0x0;
3267 Bool_t headerFound = kFALSE;
3268 AliMCEvent *fMCEvent = 0x0;
3269 TClonesArray *fMCEventAOD = 0x0;
3270 if(event->IsA()==AliMCEvent::Class()){
3271 if(dynamic_cast<AliMCEvent*>(event)){
3272 cHeader =
dynamic_cast<AliGenCocktailEventHeader*
>(
dynamic_cast<AliMCEvent*
>(event)->GenEventHeader());
3273 fMCEvent =
dynamic_cast<AliMCEvent*
>(event);
3274 if(cHeader) headerFound = kTRUE;
3277 if(event->IsA()==AliAODEvent::Class()){
3278 cHeaderAOD =
dynamic_cast<AliAODMCHeader*
>(
event->FindListObject(AliAODMCHeader::StdBranchName()));
3279 fMCEventAOD =
dynamic_cast<TClonesArray*
>(
event->FindListObject(AliAODMCParticle::StdBranchName()));
3280 if(cHeaderAOD) headerFound = kTRUE;
3283 if (
fDebugLevel > 0 ) cout <<
"event starts here" << endl;
3285 TList *genHeaders = 0x0;
3286 if(cHeader) genHeaders = cHeader->GetHeaders();
3288 genHeaders = cHeaderAOD->GetCocktailHeaders();
3289 if(genHeaders->GetEntries()==1){
3294 AliGenEventHeader* gh = 0;
3296 Int_t firstindexA = 0;
3297 Int_t lastindexA = -1;
3298 if(rejection == 1 || rejection == 3)
fnHeaders = 1;
3300 for(
Int_t i = 0; i<genHeaders->GetEntries();i++){
3301 gh = (AliGenEventHeader*)genHeaders->At(i);
3302 TString GeneratorName = gh->GetName();
3303 lastindexA = lastindexA + gh->NProduced();
3304 if (
fDebugLevel > 0 ) cout << i <<
"\t" << GeneratorName.Data() << endl;
3305 for(
Int_t j = 0; j<HeaderList->GetEntries();j++){
3306 TString GeneratorInList = ((TObjString*)HeaderList->At(j))->GetString();
3307 if (
fDebugLevel > 0 ) cout << GeneratorInList.Data() << endl;
3308 if(GeneratorName.CompareTo(GeneratorInList) == 0){
3310 if (GeneratorInList.CompareTo(
"PARAM") == 0 || GeneratorInList.CompareTo(
"BOX") == 0 ){
3314 if (gh->NProduced() > 10 && fMCEvent->Particle(firstindexA+10)->GetPdgCode() ==
fAddedSignalPDGCode ){
3329 AliAODMCParticle *aodMCParticle =
static_cast<AliAODMCParticle*
>(fMCEventAOD->At(firstindexA));
3332 if (gh->NProduced() > 10){
3333 AliAODMCParticle *aodMCParticle2 =
static_cast<AliAODMCParticle*
>(fMCEventAOD->At(firstindexA+10));
3355 firstindexA = firstindexA + gh->NProduced();
3364 if(rejection == 1 || rejection == 3){
3366 fNotRejectedEnd[0] = ((AliGenEventHeader*)genHeaders->At(0))->NProduced()-1;
3367 fGeneratorNames[0] = ((AliGenEventHeader*)genHeaders->At(0))->GetName();
3372 Int_t firstindex = 0;
3373 Int_t lastindex = -1;
3376 for(
Int_t i = 0; i<genHeaders->GetEntries();i++){
3377 gh = (AliGenEventHeader*)genHeaders->At(i);
3378 TString GeneratorName = gh->GetName();
3379 lastindex = lastindex + gh->NProduced();
3380 for(
Int_t j = 0; j<HeaderList->GetEntries();j++){
3381 TString GeneratorInList = ((TObjString*)HeaderList->At(j))->GetString();
3382 if (
fDebugLevel > 0 ) cout << i <<
"\t" << GeneratorName.Data() << endl;
3383 if(GeneratorName.CompareTo(GeneratorInList) == 0){
3384 if (GeneratorInList.CompareTo(
"PARAM") == 0 || GeneratorInList.CompareTo(
"BOX") == 0 ){
3388 if (
fDebugLevel > 0 ) cout <<
"produced " << gh->NProduced() <<
" with box generator" << endl;
3389 if (gh->NProduced() > 10 && fMCEvent->Particle(firstindex+10)->GetPdgCode() ==
fAddedSignalPDGCode){
3390 if (
fDebugLevel > 0 ) cout <<
"one of them was a pi0 or eta" << endl;
3395 if (
fDebugLevel > 0 ) cout <<
"Number of particles produced for: " << i <<
"\t" << GeneratorName.Data() <<
"\t" << lastindex-firstindex+1 << endl;
3408 AliAODMCParticle *aodMCParticle =
static_cast<AliAODMCParticle*
>(fMCEventAOD->At(firstindex));
3411 if (gh->NProduced() > 10) {
3412 AliAODMCParticle *aodMCParticle2 =
static_cast<AliAODMCParticle*
>(fMCEventAOD->At(firstindex+10));
3435 if (
fDebugLevel > 0 ) cout <<
"Number of particles produced for: " << i <<
"\t" << GeneratorName.Data() <<
"\t" << lastindex-firstindex+1 << endl;
3442 firstindex = firstindex + gh->NProduced();
3445 for (
Int_t i = 0; i < number; i++){
3455 fNotRejectedEnd[0] =
static_cast<AliMCEvent*
>(event)->GetNumberOfPrimaries()-1;
3472 if(index < 0)
return 0;
3475 if(!InputEvent || InputEvent->IsA()==AliESDEvent::Class()){
3476 if(!mcEvent)
return 0;
3477 if(index >= mcEvent->GetNumberOfPrimaries()){
3478 if( ((TParticle*)mcEvent->Particle(index))->GetMother(0) < 0)
return 0;
3479 return IsParticleFromBGEvent(((TParticle*)mcEvent->Particle(index))->GetMother(0),mcEvent,InputEvent);
3486 if(i == 0) accepted = 2;
3490 else if(InputEvent->IsA()==AliAODEvent::Class()){
3491 TClonesArray *AODMCTrackArray =
dynamic_cast<TClonesArray*
>(InputEvent->FindListObject(AliAODMCParticle::StdBranchName()));
3492 if (AODMCTrackArray){
3493 AliAODMCParticle *aodMCParticle =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(index));
3494 if(!aodMCParticle)
return 0;
3495 if(!aodMCParticle->IsPrimary()){
3496 if( aodMCParticle->GetMother() < 0)
return 0;
3499 index = TMath::Abs(static_cast<AliAODMCParticle*>(AODMCTrackArray->At(index))->GetLabel());
3503 if(i == 0) accepted = 2;
3516 if (mcEvent){isMC = kTRUE;}
3544 Int_t runnumber =
event->GetRunNumber();
3545 if ((runnumber>=144871) && (runnumber<=146860)) {
3547 AliVCaloCells *cells =
event->GetEMCALCells();
3548 const Short_t nCells = cells->GetNumberOfCells();
3550 if (event->IsA()==AliESDEvent::Class()) AliAnalysisManager::GetAnalysisManager()->LoadBranch(
"EMCALCells.");
3552 AliInputEventHandler *fInputHandler=(AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
3553 if (!fInputHandler)
return 3;
3556 Int_t nCellCount[12] = {0,0,0,0,0,0,0,0,0,0,0,0};
3557 for(
Int_t iCell=0; iCell<nCells; ++iCell) {
3558 Short_t cellId = cells->GetCellNumber(iCell);
3559 Double_t cellE = cells->GetCellAmplitude(cellId);
3560 Int_t sm = cellId / (24*48);
3561 if (cellE>0.1) ++nCellCount[sm];
3564 Bool_t fIsLedEvent = kFALSE;
3565 if (nCellCount[4] > 100) {
3566 fIsLedEvent = kTRUE;
3568 if ((runnumber>=146858) && (runnumber<=146860)) {
3569 if ((fInputHandler->IsEventSelected() & AliVEvent::kMB) && (nCellCount[3]>=21))
3570 fIsLedEvent = kTRUE;
3571 else if ((fInputHandler->IsEventSelected() & AliVEvent::kEMC1) && (nCellCount[3]>=35))
3572 fIsLedEvent = kTRUE;
3582 Int_t nClustersLayer0 =
event->GetNumberOfITSClusters(0);
3583 Int_t nClustersLayer1 =
event->GetNumberOfITSClusters(1);
3584 Int_t nTracklets =
event->GetMultiplicity()->GetNumberOfTracklets();
3589 if(event->IsA()==AliESDEvent::Class()){
3593 for(
Int_t i=0; i<nPileVert;i++){
3594 const AliESDVertex* pv= ((
AliESDEvent*)event)->GetPileupVertexSPD(i);
3595 Int_t nc2 = pv->GetNContributors();
3600 if (TMath::Abs(distZMax) < TMath::Abs(distZ) ){
3614 if(event->IsPileupFromSPD(3,0.8,3.,2.,5.) ){
3618 if (
fUtils->IsSPDClusterVsTrackletBG(event)){
3624 if(
fUtils->IsPileUpEvent(event) ){
3628 if (
fUtils->IsSPDClusterVsTrackletBG(event)){
3649 AliEventplane *EventPlane =
event->GetEventplane();
3662 AliInfo(
"Inside the GetWeightForCentralityFlattening function");
3665 if(!event || event->IsA()==AliESDEvent::Class()){
3668 AliCentrality *fESDCentrality=(AliCentrality*)esdEvent->GetCentrality();
3670 centrality = fESDCentrality->GetCentralityPercentile(
"V0M");
3673 }
else if(event->IsA()==AliAODEvent::Class()){
3676 if(aodEvent->GetHeader()){
3677 centrality = ((AliVAODHeader*)aodEvent->GetHeader())->
GetCentrality();
3683 Float_t GetValueForWeight = 1.;
3686 Bool_t CorrCentrLoop = kFALSE;
3692 CorrCentrLoop = kTRUE;
3693 }
else if (
fDoCentralityFlat == 2 && (centrality >=10. && centrality <= 20.) ){
3696 CorrCentrLoop = kTRUE;
3700 CorrCentrLoop = kTRUE;
3702 CorrCentrLoop = kFALSE;
3705 if (CorrCentrLoop && GetValueForWeight != 0. && maximum !=0. && isfinite(GetValueForWeight) && isfinite(maximum) ){
3706 weightCentrality = maximum/GetValueForWeight;
3707 if (!isfinite(GetValueForWeight)) weightCentrality = 1.;
3708 if (!isfinite(weightCentrality)) weightCentrality = 1.;
3711 return weightCentrality;
3730 if (relativeErrorData < 0.2 && relativeErrorMC < 0.2 ){
3731 if (isfinite(valueMultData) && isfinite(valueMultMC) ){
3732 weightMult = valueMultData/valueMultMC;
3751 if(index < 0)
return 0;
3759 if (kCaseGen == 0)
return 1;
3764 if(!event || event->IsA()==AliESDEvent::Class()){
3765 mesonPt = ((TParticle*)mcEvent->Particle(index))->Pt();
3767 PDGCode = ((TParticle*)mcEvent->Particle(index))->GetPdgCode();
3768 }
else if(event->IsA()==AliAODEvent::Class()){
3769 TClonesArray *AODMCTrackArray =
dynamic_cast<TClonesArray*
>(
event->FindListObject(AliAODMCParticle::StdBranchName()));
3770 if (AODMCTrackArray){
3771 AliAODMCParticle *aodMCParticle =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(index));
3772 mesonPt = aodMCParticle->Pt();
3774 PDGCode = aodMCParticle->GetPdgCode();
3780 Float_t functionResultMC = 1.;
3791 Float_t functionResultData = 1;
3803 if (PDGCode == 111 || PDGCode == 221){
3804 if (functionResultData != 0. && functionResultMC != 0. && isfinite(functionResultData) && isfinite(functionResultMC)){
3805 weight = functionResultData/functionResultMC;
3806 if ( kCaseGen == 3){
3807 if (PDGCode == 111){
3812 if (PDGCode == 221){
3818 if (!isfinite(functionResultData)) weight = 1.;
3819 if (!isfinite(weight)) weight = 1.;
3821 }
else if (PDGCode == 310 && functionResultMC != 0 && isfinite(functionResultMC)){
3822 weight = functionResultMC;
3838 printf(
" Gamma Conversion Cuts %s :: pPb Run doing Eta Shift of %f \n\n",(
GetCutNumber()).
Data(),-0.465);
3841 printf(
" Gamma Conversion Cuts %s :: Pbp Run doing Eta Shift of %f \n\n",(
GetCutNumber()).
Data(),0.465);
3844 else printf(
" Gamma Conversion Cuts %s :: Automatic Eta Shift requested but Period is not known -> No Shift \n\n",(
GetCutNumber()).
Data());
3856 AliError(Form(
"%s: fTriggerPatchInfo not available",GetName()));
3864 AliEMCALTriggerPatchInfo *patch;
3865 for (
Int_t iPatch = 0; iPatch < nPatch; iPatch++) {
3867 if (patch->IsMainTrigger()) {
3884 if (event->IsA()==AliESDEvent::Class()){
3894 AliError(Form(
"%s: Could not retrieve calo triggers %s!", GetName(),
fCaloTriggersName.Data()));
3900 if (event->IsA()==AliESDEvent::Class()){
3932 AliEMCALTriggerPatchInfo *patch;
3934 for (
Int_t iPatch = 0; iPatch < nPatch; iPatch++) {
3939 if (patch->IsGammaHigh()){
3943 if (patch->IsGammaLow()){
3947 if (patch->IsJetHigh()){
3951 if (patch->IsJetLow()){
3955 if (patch->IsLevel0()){
3966 AliDebug(2,
"Patch summary: ");
3967 AliDebug(2, Form(
"Number of patches: %d", nPatch));
3968 AliDebug(2, Form(
"Level0: [%d]" ,nL0));
3969 AliDebug(2, Form(
"Jet: low[%d], high[%d]" ,nJ2, nJ1));
3970 AliDebug(2, Form(
"Gamma: low[%d], high[%d]" ,nG2, nG1));
3982 SETBIT(triggers,
kG1);
3984 SETBIT(triggers,
kG2);
3986 SETBIT(triggers,
kJ1);
3988 SETBIT(triggers,
kJ2);
3990 SETBIT(triggers,
kL0);
4009 TClonesArray *arr = 0;
4011 if (!sname.IsNull()) {
4012 arr =
dynamic_cast<TClonesArray*
>(
event->FindListObject(sname));
4014 AliWarning(Form(
"%s: Could not retrieve array with name %s!", GetName(), name));
4024 TString objname(arr->GetClass()->GetName());
4025 TClass cls(objname);
4026 if (!cls.InheritsFrom(clname)) {
4027 AliWarning(Form(
"%s: Objects of type %s in %s are not inherited from %s!",
4028 GetName(), cls.GetName(), name, clname));
4037 if (eventpos < 0)
return kFALSE;
4038 TParticle* particle = (TParticle *)mcEvent->Particle(eventpos);
4039 if (!particle)
return kFALSE;
4040 if (TMath::Abs(particle->GetPdgCode()) == 11 ){
4041 if (particle->GetMother(0) != -1){
4042 TParticle* particleMother = (TParticle *)mcEvent->Particle(particle->GetMother(0));
4043 if (particleMother){
4044 if (TMath::Abs(particleMother->GetPdgCode()) == 22)
4045 particle = particleMother;
4049 if (particle->GetMother(0) != -1){
4050 Double_t deltaX = particle->Vx() - prodVtxX;
4051 Double_t deltaY = particle->Vy() - prodVtxY;
4052 Double_t deltaZ = particle->Vz() - prodVtxZ;
4055 Double_t realRadius3D = TMath::Sqrt(deltaX*deltaX+deltaY*deltaY+deltaZ*deltaZ);
4058 Bool_t dalitzCand = kFALSE;
4060 TParticle* firstmother = (TParticle *)mcEvent->Particle(particle->GetMother(0));
4061 if (!firstmother)
return kFALSE;
4062 Int_t pdgCodeFirstMother = firstmother->GetPdgCode();
4063 Bool_t intDecay = kFALSE;
4064 if ( pdgCodeFirstMother == 111 || pdgCodeFirstMother == 221 ) intDecay = kTRUE;
4065 if ( intDecay && TMath::Abs(particle->GetPdgCode()) == 11 ){
4070 Long_t source = particle->GetMother(0);
4071 Bool_t foundExcludedPart = kFALSE;
4072 Bool_t foundShower = kFALSE;
4073 Int_t pdgCodeMotherPrev = 0;
4074 Int_t pdgCodeMotherPPrevMother = 0;
4082 TParticle* mother = (TParticle *)mcEvent->Particle(source);
4083 source = mother->GetMother(0);
4085 Int_t pdgCodeMother = mother->GetPdgCode();
4087 if (pdgCodeMother == pdgCodeMotherPrev && pdgCodeMother == pdgCodeMotherPPrevMother) depth = 20;
4088 if (TMath::Abs(pdgCodeMother) == 11 && TMath::Abs(pdgCodeMotherPrev) == 22 && TMath::Abs(pdgCodeMotherPPrevMother) == 11 ){
4089 foundShower = kTRUE;
4092 if (TMath::Abs(pdgCodeMother) == 22 && TMath::Abs(pdgCodeMotherPrev) == 11 && TMath::Abs(pdgCodeMotherPPrevMother) == 22 ){
4093 foundShower = kTRUE;
4105 if (TMath::Abs(pdgCodeMother) == 310 || TMath::Abs(pdgCodeMother) == 130 || TMath::Abs(pdgCodeMother) == 321 ||
4106 TMath::Abs(pdgCodeMother) == 3122 || TMath::Abs(pdgCodeMother) == 3212 || TMath::Abs(pdgCodeMother) == 3222 ||
4107 TMath::Abs(pdgCodeMother) == 3112 || TMath::Abs(pdgCodeMother) == 3322 || TMath::Abs(pdgCodeMother) == 3312
4109 foundExcludedPart = kTRUE;
4112 pdgCodeMotherPPrevMother = pdgCodeMotherPrev;
4113 pdgCodeMotherPrev = pdgCodeMother;
4114 if (source == -1) depth = 20;
4120 if (foundExcludedPart){
4126 }
else if (foundShower){
4141 TClonesArray *AODMCTrackArray =
dynamic_cast<TClonesArray*
>(
event->FindListObject(AliAODMCParticle::StdBranchName()));
4142 if (AODMCTrackArray == NULL)
return kFALSE;
4143 AliAODMCParticle* currentParticle = AODMCParticle;
4144 if (TMath::Abs(currentParticle->GetPdgCode()) == 11 ){
4145 if (currentParticle->GetMother() != -1){
4146 AliAODMCParticle* particleMother =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(currentParticle->GetMother()));
4147 if (particleMother){
4148 if (TMath::Abs(particleMother->GetPdgCode()) == 22)
4149 currentParticle = particleMother;
4153 if (currentParticle->GetMother() > -1){
4154 Double_t deltaX = currentParticle->Xv() - prodVtxX;
4155 Double_t deltaY = currentParticle->Yv() - prodVtxY;
4156 Double_t deltaZ = currentParticle->Zv() - prodVtxZ;
4159 Double_t realRadius3D = TMath::Sqrt(deltaX*deltaX+deltaY*deltaY+deltaZ*deltaZ);
4161 Bool_t dalitzCand = kFALSE;
4163 AliAODMCParticle* firstmother =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(currentParticle->GetMother()));
4164 if (!firstmother)
return kFALSE;
4165 Int_t pdgCodeFirstMother = firstmother->GetPdgCode();
4166 Bool_t intDecay = kFALSE;
4167 if ( pdgCodeFirstMother == 111 || pdgCodeFirstMother == 221 ) intDecay = kTRUE;
4168 if ( intDecay && TMath::Abs(currentParticle->GetPdgCode()) == 11 ){
4173 Long_t source = currentParticle->GetMother();
4174 Bool_t foundExcludedPart = kFALSE;
4175 Bool_t foundShower = kFALSE;
4176 Int_t pdgCodeMotherPrev = 0;
4177 Int_t pdgCodeMotherPPrevMother = 0;
4185 AliAODMCParticle* mother =
static_cast<AliAODMCParticle*
>(AODMCTrackArray->At(source));
4186 source = mother->GetMother();
4188 Int_t pdgCodeMother = mother->GetPdgCode();
4190 if (pdgCodeMother == pdgCodeMotherPrev && pdgCodeMother == pdgCodeMotherPPrevMother) depth = 20;
4191 if (TMath::Abs(pdgCodeMother) == 11 && TMath::Abs(pdgCodeMotherPrev) == 22 && TMath::Abs(pdgCodeMotherPPrevMother) == 11 ){
4192 foundShower = kTRUE;
4195 if (TMath::Abs(pdgCodeMother) == 22 && TMath::Abs(pdgCodeMotherPrev) == 11 && TMath::Abs(pdgCodeMotherPPrevMother) == 22 ){
4196 foundShower = kTRUE;
4208 if (TMath::Abs(pdgCodeMother) == 310 || TMath::Abs(pdgCodeMother) == 130 || TMath::Abs(pdgCodeMother) == 321 ||
4209 TMath::Abs(pdgCodeMother) == 3122 || TMath::Abs(pdgCodeMother) == 3212 || TMath::Abs(pdgCodeMother) == 3222 ||
4210 TMath::Abs(pdgCodeMother) == 3112 || TMath::Abs(pdgCodeMother) == 3322 || TMath::Abs(pdgCodeMother) == 3312)
4212 foundExcludedPart = kTRUE;
4215 pdgCodeMotherPPrevMother = pdgCodeMotherPrev;
4216 pdgCodeMotherPrev = pdgCodeMother;
4217 if (source == -1) depth = 20;
4223 if (foundExcludedPart){
4229 }
else if (foundShower){
4244 if (particle != NULL && mcEvent != NULL){
4245 Int_t pdgSecondary = 0;
4249 Long_t motherID = particle->GetMother(0);
4250 Long_t grandMotherID = -1;
4254 grandMotherID = mcEvent->Particle(motherID)->GetMother(0);
4256 if (grandMotherID > -1){
4258 pdgSecondary = mcEvent->Particle(grandMotherID)->GetPdgCode();
4265 Long_t motherID = particle->GetMother(0);
4266 Long_t grandMotherID = -1;
4267 Long_t greatGrandMotherID = -1;
4271 grandMotherID = mcEvent->Particle(motherID)->GetMother(0);
4273 if (grandMotherID > -1){
4275 greatGrandMotherID = mcEvent->Particle(grandMotherID)->GetMother(0);
4277 if (greatGrandMotherID > -1){
4279 pdgSecondary = mcEvent->Particle(greatGrandMotherID)->GetPdgCode();
4285 if (TMath::Abs(pdgSecondary) == 3122 )
4288 else if ( TMath::Abs(pdgSecondary) == 310 )
4291 else if ( TMath::Abs(pdgSecondary) == 130 )
4294 else if ( TMath::Abs(pdgSecondary) == 221 )
4297 else if ( TMath::Abs(pdgSecondary) != 0 )
4307 if (particle != NULL && aodmcArray != NULL){
4308 Int_t pdgSecondary = 0;
4312 Long_t motherID = particle->GetMother();
4313 Long_t grandMotherID = -1;
4317 grandMotherID = ((AliAODMCParticle*)aodmcArray->At(motherID))->GetMother();
4319 if (grandMotherID > -1){
4321 pdgSecondary = ((AliAODMCParticle*)aodmcArray->At(grandMotherID))->GetPdgCode();
4328 Long_t motherID = particle->GetMother();
4329 Long_t grandMotherID = -1;
4330 Long_t greatGrandMotherID = -1;
4334 grandMotherID = ((AliAODMCParticle*)aodmcArray->At(motherID))->GetMother();
4336 if (grandMotherID > -1){
4338 greatGrandMotherID = ((AliAODMCParticle*)aodmcArray->At(grandMotherID))->GetMother();
4340 if (greatGrandMotherID > -1){
4342 pdgSecondary = ((AliAODMCParticle*)aodmcArray->At(greatGrandMotherID))->GetPdgCode();
4348 if (TMath::Abs(pdgSecondary) == 3122 )
4351 else if ( TMath::Abs(pdgSecondary) == 310 )
4354 else if ( TMath::Abs(pdgSecondary) == 130 )
4357 else if ( TMath::Abs(pdgSecondary) == 221 )
4360 else if ( TMath::Abs(pdgSecondary) != 0 )
4370 if (periodName.CompareTo(
"") == 0){
4374 if (periodName.CompareTo(
"") == 0) {
4377 AliError(
"No correct period could be set, periodName string empty");
4382 if (periodName.CompareTo(
"LHC10b") == 0 || periodName.CompareTo(
"LHC10c") == 0 || periodName.CompareTo(
"LHC10d") == 0 || periodName.CompareTo(
"LHC10e") == 0 ||
4383 periodName.CompareTo(
"LHC10f") == 0 || periodName.CompareTo(
"LHC10g") == 0 || periodName.CompareTo(
"LHC10bg") == 0
4387 }
else if (periodName.CompareTo(
"LHC10h") == 0) {
4390 }
else if (periodName.CompareTo(
"LHC11a") == 0) {
4393 }
else if (periodName.CompareTo(
"LHC11b") == 0) {
4396 }
else if (periodName.CompareTo(
"LHC11c") == 0 || periodName.CompareTo(
"LHC11d") == 0 || periodName.CompareTo(
"LHC11e") == 0 || periodName.CompareTo(
"LHC11f") == 0 ||
4397 periodName.CompareTo(
"LHC11g") == 0
4401 }
else if (periodName.CompareTo(
"LHC11h") == 0) {
4404 }
else if (periodName.CompareTo(
"LHC12a") == 0 || periodName.CompareTo(
"LHC12b") == 0 || periodName.CompareTo(
"LHC12c") == 0 || periodName.CompareTo(
"LHC12d") == 0 ||
4405 periodName.CompareTo(
"LHC12e") == 0 || periodName.CompareTo(
"LHC12f") == 0 || periodName.CompareTo(
"LHC12g") == 0 || periodName.CompareTo(
"LHC12h") == 0 ||
4406 periodName.CompareTo(
"LHC12i") == 0 || periodName.CompareTo(
"LHC12ai") == 0
4410 }
else if (periodName.CompareTo(
"LHC13b") == 0 || periodName.CompareTo(
"LHC13c") == 0 || periodName.CompareTo(
"LHC13bc") == 0){
4413 }
else if (periodName.CompareTo(
"LHC13d") == 0 || periodName.CompareTo(
"LHC13e") == 0 || periodName.CompareTo(
"LHC13de") == 0){
4416 }
else if (periodName.CompareTo(
"LHC13f") == 0 ){
4419 }
else if (periodName.CompareTo(
"LHC13g") == 0 ){
4422 }
else if ( periodName.CompareTo(
"LHC15f") == 0 || periodName.CompareTo(
"LHC15g") == 0 || periodName.CompareTo(
"LHC15h") == 0 || periodName.CompareTo(
"LHC15i") == 0 ||
4423 periodName.CompareTo(
"LHC15j") == 0 || periodName.CompareTo(
"LHC15k") == 0 || periodName.CompareTo(
"LHC15l") == 0 || periodName.CompareTo(
"LHC15m") == 0 ||
4424 periodName.CompareTo(
"LHC15fm") == 0
4428 }
else if (periodName.CompareTo(
"LHC15n") == 0 ){
4431 }
else if (periodName.CompareTo(
"LHC15o") == 0 ){
4434 }
else if (periodName.CompareTo(
"LHC16k") == 0 || periodName.CompareTo(
"LHC16l") == 0 ){
4437 }
else if (periodName.CompareTo(
"LHC16d") == 0 ){
4440 }
else if (periodName.CompareTo(
"LHC16e") == 0 ){
4443 }
else if (periodName.CompareTo(
"LHC16f") == 0 ){
4446 }
else if (periodName.CompareTo(
"LHC16g") == 0 ){
4449 }
else if (periodName.CompareTo(
"LHC16h") == 0 ){
4452 }
else if (periodName.CompareTo(
"LHC16i") == 0 ){
4455 }
else if (periodName.CompareTo(
"LHC16j") == 0 ){
4458 }
else if (periodName.CompareTo(
"LHC16o") == 0 ){
4461 }
else if (periodName.CompareTo(
"LHC16p") == 0 ){
4464 }
else if (periodName.CompareTo(
"LHC16q") == 0 ){
4467 }
else if (periodName.CompareTo(
"LHC16r") == 0 ){
4470 }
else if (periodName.CompareTo(
"LHC16s") == 0 ){
4473 }
else if (periodName.CompareTo(
"LHC16t") == 0 ){
4478 }
else if (periodName.CompareTo(
"LHC10d1") == 0){
4481 }
else if (periodName.CompareTo(
"LHC10d2") == 0){
4484 }
else if (periodName.CompareTo(
"LHC10d4a") == 0){
4487 }
else if (periodName.CompareTo(
"LHC10d4") == 0){
4490 }
else if (periodName.CompareTo(
"LHC10e12") == 0){
4493 }
else if (periodName.CompareTo(
"LHC10e13") == 0){
4496 }
else if (periodName.CompareTo(
"LHC10e20") == 0){
4499 }
else if (periodName.CompareTo(
"LHC10e21") == 0){
4502 }
else if (periodName.CompareTo(
"LHC10f6a") == 0){
4505 }
else if (periodName.CompareTo(
"LHC10f6") == 0){
4508 }
else if (periodName.Contains(
"LHC14j4")){
4511 }
else if (periodName.CompareTo(
"LHC13d2") == 0){
4514 }
else if (periodName.CompareTo(
"LHC13d2b") == 0){
4517 }
else if (periodName.CompareTo(
"LHC12a11a") == 0){
4520 }
else if (periodName.CompareTo(
"LHC12a11b") == 0){
4523 }
else if (periodName.CompareTo(
"LHC12a11c") == 0){
4526 }
else if (periodName.CompareTo(
"LHC12a11d") == 0){
4529 }
else if (periodName.CompareTo(
"LHC12a11e") == 0){
4532 }
else if (periodName.CompareTo(
"LHC12a11f") == 0){
4536 }
else if (periodName.CompareTo(
"LHC12a15c") == 0){
4539 }
else if (periodName.Contains(
"LHC12f1a") ){
4542 }
else if (periodName.Contains(
"LHC12f1b") ){
4545 }
else if (periodName.Contains(
"LHC12i3") ){
4548 }
else if (periodName.CompareTo(
"LHC15g1a") == 0){
4551 }
else if (periodName.CompareTo(
"LHC15g1b") == 0){
4554 }
else if (periodName.CompareTo(
"LHC13e4") == 0){
4557 }
else if (periodName.CompareTo(
"LHC13e5") == 0){
4560 }
else if (periodName.CompareTo(
"LHC14k1a") == 0){
4563 }
else if (periodName.CompareTo(
"LHC14k1b") == 0){
4566 }
else if (periodName.CompareTo(
"LHC12a15f") == 0){
4569 }
else if (periodName.CompareTo(
"LHC12a15g") == 0){
4572 }
else if (periodName.CompareTo(
"LHC12f2a") == 0){
4575 }
else if (periodName.CompareTo(
"LHC14a1a") == 0){
4578 }
else if (periodName.CompareTo(
"LHC14a1b") == 0){
4581 }
else if (periodName.CompareTo(
"LHC14a1c") == 0){
4585 }
else if (periodName.CompareTo(
"LHC14e2a") == 0){
4588 }
else if (periodName.CompareTo(
"LHC14e2b") == 0){
4591 }
else if (periodName.CompareTo(
"LHC14e2c") == 0){
4594 }
else if (periodName.Contains(
"LHC15h1")){
4597 }
else if (periodName.Contains(
"LHC15h2")){
4600 }
else if (periodName.CompareTo(
"LHC16c2") == 0){
4603 }
else if (periodName.CompareTo(
"LHC16c2_plus") == 0){
4607 }
else if (periodName.Contains(
"LHC13b2_efix")){
4610 }
else if (periodName.CompareTo(
"LHC13e7") == 0){
4613 }
else if (periodName.CompareTo(
"LHC14b2") == 0){
4616 }
else if (periodName.CompareTo(
"LHC13b4_fix") == 0){
4619 }
else if (periodName.CompareTo(
"LHC13b4_plus") == 0){
4622 }
else if (periodName.CompareTo(
"LHC16c3a") == 0){
4625 }
else if (periodName.CompareTo(
"LHC16c3b") == 0){
4628 }
else if (periodName.CompareTo(
"LHC16c3c") == 0){
4631 }
else if (periodName.CompareTo(
"LHC15g2") == 0){
4634 }
else if (periodName.CompareTo(
"LHC15a3a") == 0){
4637 }
else if (periodName.CompareTo(
"LHC15a3a_plus") == 0){
4640 }
else if (periodName.CompareTo(
"LHC15a3b") == 0){
4643 }
else if (periodName.CompareTo(
"LHC15d3a") == 0){
4646 }
else if (periodName.CompareTo(
"LHC15d3b") == 0){
4650 }
else if (periodName.CompareTo(
"LHC15g3a3") == 0){
4653 }
else if (periodName.CompareTo(
"LHC15g3a") == 0){
4656 }
else if (periodName.CompareTo(
"LHC15g3c2") == 0){
4659 }
else if (periodName.CompareTo(
"LHC15g3c3") == 0){
4662 }
else if (periodName.CompareTo(
"LHC15g3") == 0){
4665 }
else if (periodName.CompareTo(
"LHC16a2a") == 0){
4668 }
else if (periodName.CompareTo(
"LHC16a2b") == 0){
4671 }
else if (periodName.CompareTo(
"LHC16a2c") == 0){
4674 }
else if (periodName.CompareTo(
"LHC15l1a2") == 0){
4677 }
else if (periodName.CompareTo(
"LHC15l1b2") == 0){
4680 }
else if (periodName.CompareTo(
"LHC16h3") == 0){
4683 }
else if (periodName.CompareTo(
"LHC16h8a") == 0){
4686 }
else if (periodName.CompareTo(
"LHC16h8b") == 0){
4689 }
else if (periodName.CompareTo(
"LHC16k5a") == 0){
4692 }
else if (periodName.CompareTo(
"LHC16k5b") == 0){
4695 }
else if (periodName.CompareTo(
"LHC16k3a") == 0){
4698 }
else if (periodName.CompareTo(
"LHC16k3a2") == 0){
4701 }
else if (periodName.CompareTo(
"LHC17e2") == 0){
4704 }
else if (periodName.Contains(
"LHC15k1a1")){
4707 }
else if (periodName.Contains(
"LHC15k1a2")){
4710 }
else if (periodName.Contains(
"LHC15k1a3")){
4713 }
else if (periodName.Contains(
"LHC16j7")){
4716 }
else if (periodName.Contains(
"LHC16h4")){
4719 }
else if (periodName.Contains(
"LHC16g1")){
4722 }
else if (periodName.Contains(
"LHC16g1a")){
4725 }
else if (periodName.Contains(
"LHC16g1b")){
4728 }
else if (periodName.Contains(
"LHC16g1c")){
4731 }
else if (periodName.Contains(
"LHC16g2")){
4734 }
else if (periodName.Contains(
"LHC16g3")){
4737 }
else if (periodName.Contains(
"LHC16h2a")){
4740 }
else if (periodName.Contains(
"LHC16h2b")){
4743 }
else if (periodName.Contains(
"LHC16h2c")){
4746 }
else if (periodName.CompareTo(
"LHC16k3b") == 0){
4749 }
else if (periodName.CompareTo(
"LHC16k3b2") == 0){
4753 }
else if (periodName.CompareTo(
"LHC16j2a1") == 0){
4756 }
else if (periodName.CompareTo(
"LHC16j2b1") == 0){
4759 }
else if (periodName.CompareTo(
"LHC16j2a2") == 0){
4762 }
else if (periodName.CompareTo(
"LHC16j2b2") == 0){
4766 }
else if (periodName.CompareTo(
"LHC17f6") == 0){
4769 }
else if (periodName.CompareTo(
"LHC17f9") == 0){
4772 }
else if (periodName.CompareTo(
"LHC17d1") == 0){
4775 }
else if (periodName.CompareTo(
"LHC17d17") == 0){
4778 }
else if (periodName.CompareTo(
"LHC17f5") == 0){
4781 }
else if (periodName.CompareTo(
"LHC17d3") == 0){
4784 }
else if (periodName.CompareTo(
"LHC17e5") == 0){
4787 }
else if (periodName.CompareTo(
"LHC17d20a1") == 0){
4790 }
else if (periodName.CompareTo(
"LHC17d20a1_extra") == 0){
4793 }
else if (periodName.CompareTo(
"LHC17d20a2") == 0){
4796 }
else if (periodName.CompareTo(
"LHC17d20a2_extra") == 0){
4799 }
else if (periodName.CompareTo(
"LHC17d16") == 0){
4802 }
else if (periodName.CompareTo(
"LHC17d18") == 0){
4805 }
else if (periodName.CompareTo(
"LHC17f8a") == 0){
4808 }
else if (periodName.CompareTo(
"LHC17f8b") == 0){
4811 }
else if (periodName.CompareTo(
"LHC17f8c") == 0){
4814 }
else if (periodName.CompareTo(
"LHC17f8d") == 0){
4817 }
else if (periodName.CompareTo(
"LHC17f8e") == 0){
4821 }
else if (periodName.CompareTo(
"LHC17f2a") == 0){
4824 }
else if (periodName.CompareTo(
"LHC17f2a_fast") == 0){
4827 }
else if (periodName.CompareTo(
"LHC17f2a_cent") == 0){
4830 }
else if (periodName.CompareTo(
"LHC17f2a_cent_woSDD") == 0){
4833 }
else if (periodName.CompareTo(
"LHC17f2a_fast_fix") == 0){
4836 }
else if (periodName.CompareTo(
"LHC17f2a_cent_fix") == 0){
4839 }
else if (periodName.CompareTo(
"LHC17f2a_cent_woSDD_fix") == 0){
4842 }
else if (periodName.CompareTo(
"LHC17f2b") == 0){
4845 }
else if (periodName.CompareTo(
"LHC17f2b_fast") == 0){
4848 }
else if (periodName.CompareTo(
"LHC17f2b_cent") == 0){
4851 }
else if (periodName.CompareTo(
"LHC17f2b_cent_woSDD") == 0){
4854 }
else if (periodName.CompareTo(
"LHC17g8a_fast") == 0){
4857 }
else if (periodName.CompareTo(
"LHC17g8a_cent_woSDD") == 0){
4861 }
else if (periodName.CompareTo(
"LHC17a3a") == 0){
4864 }
else if (periodName.CompareTo(
"LHC17a3a_fast") == 0){
4867 }
else if (periodName.CompareTo(
"LHC17a3a_cent") == 0){
4870 }
else if (periodName.CompareTo(
"LHC17a3a_cent_woSDD") == 0){
4873 }
else if (periodName.CompareTo(
"LHC17a3b") == 0){
4876 }
else if (periodName.CompareTo(
"LHC17a3b_fast") == 0){
4879 }
else if (periodName.CompareTo(
"LHC17a3b_cent") == 0){
4882 }
else if (periodName.CompareTo(
"LHC17a3b_cent_woSDD") == 0){