33 #include <TParticle.h>
34 #include <TDatabasePDG.h>
43 #include "AliMCEvent.h"
44 #include "AliCFManager.h"
45 #include "AliCFContainer.h"
47 #include "AliInputEventHandler.h"
48 #include "AliAnalysisManager.h"
49 #include "AliAODHandler.h"
50 #include "AliAODEvent.h"
51 #include "AliAODRecoDecay.h"
57 #include "AliAODMCParticle.h"
58 #include "AliAODMCHeader.h"
59 #include "AliESDtrack.h"
61 #include "THnSparse.h"
63 #include "AliESDtrackCuts.h"
78 #include "AliAnalysisDataSlot.h"
79 #include "AliAnalysisDataContainer.h"
81 #include "AliPIDResponse.h"
87 fHistEventsProcessed(0x0),
92 fCountGenLimAccNoAcc(0),
98 fCountRecoITSClusters(0),
103 fFillFromGenerated(kFALSE),
104 fOriginDselection(0),
105 fAcceptanceUnf(kTRUE),
109 fUseFlatPtWeight(kFALSE),
111 fUseNchWeight(kFALSE),
112 fUseTrackletsWeight(kFALSE),
113 fUseMultRatioAsWeight(kFALSE),
118 fCentralitySelection(kTRUE),
120 fRejectIfNoQuark(kTRUE),
121 fUseMCVertex(kFALSE),
124 fConfiguration(kCheetah),
130 fLctoV0bachelorOption(1),
131 fGenLctoV0bachelorOption(0),
132 fUseSelectionBit(kTRUE),
134 fMultiplicityEstimator(kNtrk10),
136 fZvtxCorrectedNtrkEstimator(kFALSE),
139 fUseAdditionalCuts(kFALSE),
140 fUseCutsForTMVA(kFALSE),
141 fUseCascadeTaskForLctoV0bachelor(kFALSE),
142 fCutOnMomConservation(0.00001)
153 fHistEventsProcessed(0x0),
158 fCountGenLimAccNoAcc(0),
164 fCountRecoITSClusters(0),
169 fFillFromGenerated(kFALSE),
170 fOriginDselection(0),
171 fAcceptanceUnf(kTRUE),
175 fUseFlatPtWeight(kFALSE),
177 fUseNchWeight(kFALSE),
178 fUseTrackletsWeight(kFALSE),
179 fUseMultRatioAsWeight(kFALSE),
184 fCentralitySelection(kTRUE),
186 fRejectIfNoQuark(kTRUE),
187 fUseMCVertex(kFALSE),
190 fConfiguration(kCheetah),
196 fLctoV0bachelorOption(1),
197 fGenLctoV0bachelorOption(0),
198 fUseSelectionBit(kTRUE),
200 fMultiplicityEstimator(kNtrk10),
202 fZvtxCorrectedNtrkEstimator(kFALSE),
205 fUseAdditionalCuts(kFALSE),
206 fUseCutsForTMVA(kFALSE),
207 fUseCascadeTaskForLctoV0bachelor(kFALSE),
208 fCutOnMomConservation(0.00001)
217 DefineOutput(1,TH1I::Class());
218 DefineOutput(2,AliCFContainer::Class());
219 DefineOutput(3,THnSparseD::Class());
220 DefineOutput(4,AliRDHFCuts::Class());
222 DefineOutput(5,TList::Class());
234 AliAnalysisTaskSE::operator=(c) ;
250 fCFManager(c.fCFManager),
251 fHistEventsProcessed(c.fHistEventsProcessed),
252 fCorrelation(c.fCorrelation),
253 fListProfiles(c.fListProfiles),
254 fCountMC(c.fCountMC),
255 fCountGenLimAcc(c.fCountGenLimAcc),
256 fCountGenLimAccNoAcc(c.fCountGenLimAccNoAcc),
257 fCountAcc(c.fCountAcc),
258 fCountVertex(c.fCountVertex),
259 fCountRefit(c.fCountRefit),
260 fCountReco(c.fCountReco),
261 fCountRecoAcc(c.fCountRecoAcc),
262 fCountRecoITSClusters(c.fCountRecoITSClusters),
263 fCountRecoPPR(c.fCountRecoPPR),
264 fCountRecoPID(c.fCountRecoPID),
266 fDecayChannel(c.fDecayChannel),
267 fFillFromGenerated(c.fFillFromGenerated),
268 fOriginDselection(c.fOriginDselection),
269 fAcceptanceUnf(c.fAcceptanceUnf),
271 fUseWeight(c.fUseWeight),
273 fUseFlatPtWeight(c.fUseFlatPtWeight),
274 fUseZWeight(c.fUseZWeight),
275 fUseNchWeight(c.fUseNchWeight),
276 fUseTrackletsWeight(c.fUseTrackletsWeight),
277 fUseMultRatioAsWeight(c.fUseMultRatioAsWeight),
279 fPartName(c.fPartName),
280 fDauNames(c.fDauNames),
282 fCentralitySelection(c.fCentralitySelection),
283 fFakeSelection(c.fFakeSelection),
284 fRejectIfNoQuark(c.fRejectIfNoQuark),
285 fUseMCVertex(c.fUseMCVertex),
286 fDsOption(c.fDsOption),
287 fGenDsOption(c.fGenDsOption),
288 fConfiguration(c.fConfiguration),
289 fFuncWeight(c.fFuncWeight),
290 fHistoPtWeight(c.fHistoPtWeight),
291 fHistoMeasNch(c.fHistoMeasNch),
292 fHistoMCNch(c.fHistoMCNch),
293 fResonantDecay(c.fResonantDecay),
294 fLctoV0bachelorOption(c.fLctoV0bachelorOption),
295 fGenLctoV0bachelorOption(c.fGenLctoV0bachelorOption),
296 fUseSelectionBit(c.fUseSelectionBit),
297 fPDGcode(c.fPDGcode),
298 fMultiplicityEstimator(c.fMultiplicityEstimator),
299 fRefMult(c.fRefMult),
300 fZvtxCorrectedNtrkEstimator(c.fZvtxCorrectedNtrkEstimator),
301 fIsPPData(c.fIsPPData),
302 fIsPPbData(c.fIsPPbData),
303 fUseAdditionalCuts(c.fUseAdditionalCuts),
304 fUseCutsForTMVA(c.fUseCutsForTMVA),
305 fUseCascadeTaskForLctoV0bachelor(c.fUseCascadeTaskForLctoV0bachelor),
306 fCutOnMomConservation(c.fCutOnMomConservation)
339 if (fDebug>1) printf(
"AliCFTaskVertexingHF::Init()");
340 if(
fUseWeight &&
fUseZWeight) { AliFatal(
"Can not use at the same time pt and z-vtx weights, please choose");
return; }
341 if(
fUseWeight &&
fUseNchWeight) { AliInfo(
"Beware, using at the same time pt and Nch weights, please check"); }
347 AliFatal(
"No cuts defined - Exiting...");
458 AliFatal(
"The decay channel MUST be defined according to AliCFVertexing::DecayChannel - Exiting...");
462 const char* nameoutput=GetOutputSlot(4)->GetContainer()->GetName();
464 copyfCuts->SetName(nameoutput);
467 PostData(4, copyfCuts);
470 AliFatal(
"Failing initializing AliRDHFCuts object - Exiting...");
479 period[0] =
"LHC13b"; period[1] =
"LHC13c";
482 period[0] =
"LHC10b"; period[1] =
"LHC10c"; period[2] =
"LHC10d"; period[3] =
"LHC10e";
486 for(
Int_t i=0; i<nProfiles; i++){
489 hprof->SetName(Form(
"ProfileTrkVsZvtx%s\n",period[i].
Data()));
513 PostData(2,
fCFManager->GetParticleContainer()) ;
516 AliDebug(3,Form(
"*** Processing event %d\n",
fEvents));
519 AliWarning(
"Flag to fill container with generated value ON ---> dca, d0pi, d0K, d0xd0, cosPointingAngle will be set as dummy!");
523 Error(
"UserExec",
"NO EVENT FOUND!");
529 TClonesArray *arrayBranch=0;
531 if(!aodEvent && AODEvent() && IsStandardAOD()) {
534 aodEvent =
dynamic_cast<AliAODEvent*
> (AODEvent());
537 AliAODHandler* aodHandler = (AliAODHandler*)
538 ((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler());
539 if(aodHandler->GetExtensions()) {
540 AliAODExtension *ext = (AliAODExtension*)aodHandler->GetExtensions()->FindObject(
"AliAOD.VertexingHF.root");
545 arrayBranch=(TClonesArray*)aodFromExt->GetList()->FindObject(
"D0toKpi");
549 arrayBranch=(TClonesArray*)aodFromExt->GetList()->FindObject(
"Dstar");
553 arrayBranch=(TClonesArray*)aodFromExt->GetList()->FindObject(
"CascadesHF");
559 arrayBranch=(TClonesArray*)aodFromExt->GetList()->FindObject(
"Charm3Prong");
563 arrayBranch=(TClonesArray*)aodFromExt->GetList()->FindObject(
"Charm4Prong");
574 arrayBranch=(TClonesArray*)aodEvent->GetList()->FindObject(
"D0toKpi");
578 arrayBranch=(TClonesArray*)aodEvent->GetList()->FindObject(
"Dstar");
582 arrayBranch=(TClonesArray*)aodEvent->GetList()->FindObject(
"CascadesHF");
588 arrayBranch=(TClonesArray*)aodEvent->GetList()->FindObject(
"Charm3Prong");
592 arrayBranch=(TClonesArray*)aodEvent->GetList()->FindObject(
"Charm4Prong");
600 AliAODVertex *aodVtx = (AliAODVertex*)aodEvent->GetPrimaryVertex();
602 AliDebug(3,
"The event was skipped due to missing vertex");
607 AliError(
"Could not find array of HF vertices");
620 TClonesArray* mcArray =
dynamic_cast<TClonesArray*
>(aodEvent->FindListObject(AliAODMCParticle::StdBranchName()));
622 AliError(
"Could not find Monte-Carlo in AOD");
626 Int_t icountGenLimAcc = 0;
627 Int_t icountGenLimAccNoAcc = 0;
629 Int_t icountReco = 0;
630 Int_t icountVertex = 0;
631 Int_t icountRefit = 0;
632 Int_t icountRecoAcc = 0;
633 Int_t icountRecoITSClusters = 0;
634 Int_t icountRecoPPR = 0;
635 Int_t icountRecoPID = 0;
638 AliAODMCHeader *mcHeader =
dynamic_cast<AliAODMCHeader*
>(aodEvent->GetList()->FindObject(AliAODMCHeader::StdBranchName()));
640 AliError(
"Could not find MC Header in AOD");
706 AliError(
"No AliCFVertexingHF initialized");
707 delete[] containerInput;
708 delete[] containerInputMC;
712 Double_t zPrimVertex = aodVtx ->GetZ();
713 Double_t zMCVertex = mcHeader->GetVtxZ();
714 Int_t runnumber = aodEvent->GetRunNumber();
720 nTracklets = (
Double_t)nTrackletsEta10;
729 nTracklets = (
Double_t)nTrackletsEta10Corr;
741 AliDebug(2,Form(
"Using Nch weights, Mult=%d Weight=%f\n",nChargedMCPhysicalPrimary,
fWeight));
746 AliDebug(3,Form(
"z coordinate of MC vertex = %f, it was required to be within [-%f, +%f], skipping event", zMCVertex,
fCuts->
GetMaxVtxZ(),
fCuts->
GetMaxVtxZ()));
747 delete[] containerInput;
748 delete[] containerInputMC;
753 if(aodEvent->GetTriggerMask()==0 &&
754 (runnumber>=195344 && runnumber<=195677)){
755 AliDebug(3,
"Event rejected because of null trigger mask");
756 delete[] containerInput;
757 delete[] containerInputMC;
762 AliESDtrackCuts** trackCuts =
new AliESDtrackCuts*[cfVtxHF->
GetNProngs()];
800 delete[] containerInput;
801 delete[] containerInputMC;
817 AliAODVZERO *vzeroAOD = (AliAODVZERO*)aodEvent->GetVZEROData();
818 if(vzeroAOD) vzeroMult = vzeroAOD->GetMTotV0A() + vzeroAOD->GetMTotV0C();
827 for (
Int_t iPart=0; iPart<mcArray->GetEntriesFast(); iPart++) {
828 AliAODMCParticle* mcPart =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(iPart));
830 AliError(
"Failed casting particle from MC array!, Skipping particle");
838 if (!
fCFManager->CheckParticleCuts(0, mcPart)) {
839 AliDebug(2,
"Check the MC-level cuts - not desidered particle");
843 AliDebug(3, Form(
"\n\n---> COOL! we found a particle (particle %d)!!! with PDG code = %d \n\n", iPart, mcPart->GetPdgCode()));
849 AliDebug(2,Form(
"Impossible to set the label array for particle %d (decaychannel = %d)", iPart,
fDecayChannel));
855 AliDebug(2,Form(
"Check on the family wrong for particle %d!!! (decaychannel = %d)", iPart,
fDecayChannel));
859 AliDebug(2,Form(
"Check on the family OK for particle %d!!! (decaychannel = %d)", iPart,
fDecayChannel));
863 Bool_t mcContainerFilled = cfVtxHF -> FillMCContainer(containerInputMC);
864 AliDebug(2, Form(
"particle = %d mcContainerFilled = %d", iPart, mcContainerFilled));
865 if (mcContainerFilled) {
868 AliDebug(2,
"Using Histogram as Pt weight function");
872 AliDebug(2,
"Using function");
876 AliDebug(2,
"Using FONLL");
879 AliDebug(2,Form(
"pt = %f, weight = %f",containerInputMC[0],
fWeight));
882 AliDebug(3, Form(
"Not in limited acceptance, containerInputMC[0] = %f, containerInputMC[1] = %f", containerInputMC[0], containerInputMC[1]));
886 AliDebug(3, Form(
"YES!! in limited acceptance, containerInputMC[0] = %f, containerInputMC[1] = %f", containerInputMC[0],containerInputMC[1]));
890 if (TMath::Abs(containerInputMC[1]) < 0.5) {
893 AliDebug(3,
"MC Lim Acc container filled\n");
895 if (!(cfVtxHF-> MCAcceptanceStep())) {
897 icountGenLimAccNoAcc++;
898 AliDebug(3,
"MC Lim Acc No Acc container filled\n");
906 AliDebug(3,
"MC container filled \n");
911 Bool_t mcAccepStep = cfVtxHF-> MCAcceptanceStep();
914 AliDebug(3,
"MC acceptance cut passed\n");
921 AliDebug(3,
"Vertex cut passed and container filled\n");
928 AliDebug(3,
"MC Refit cut passed and container filled\n");
932 AliDebug(3,
"MC Refit cut not passed\n");
937 AliDebug (3,
"MC vertex step not passed\n");
942 AliDebug (3,
"MC in acceptance step not passed\n");
947 AliDebug (3,
"MC container not filled\n");
951 if (cquarks<2) AliDebug(2,Form(
"Event with %d c-quarks", cquarks));
952 AliDebug(2,Form(
"Found %i MC particles that are %s!!",icountMC,
fPartName.Data()));
953 AliDebug(2,Form(
"Found %i MC particles that are %s and satisfy Acc cuts!!",icountAcc,
fPartName.Data()));
954 AliDebug(2,Form(
"Found %i MC particles that are %s and satisfy Vertex cuts!!",icountVertex,
fPartName.Data()));
955 AliDebug(2,Form(
"Found %i MC particles that are %s and satisfy Refit cuts!!",icountRefit,
fPartName.Data()));
965 AliDebug(2,Form(
"Found %d vertices for decay channel %d",arrayBranch->GetEntriesFast(),
fDecayChannel));
968 for(
Int_t iCandid = 0; iCandid<arrayBranch->GetEntriesFast();iCandid++){
1008 if (!signAssociation){
1014 if (isPartOrAntipart == 0){
1015 AliDebug(2, Form(
"The candidate pdg code doesn't match the requirement set in the task (fSign = %d)",
fSign));
1020 AliDebug(3,Form(
"iCandid=%d - signAssociation=%d, isPartOrAntipart=%d",iCandid, signAssociation, isPartOrAntipart));
1023 AliDebug(3, Form(
"CF task: RecoContFilled for candidate %d is %d", iCandid, (
Int_t)recoContFilled));
1024 if (recoContFilled){
1029 AliDebug(2,
"Using Histogram as Pt weight function");
1033 AliDebug(2,
"Using function");
1037 AliDebug(2,
"Using FONLL");
1040 AliDebug(2, Form(
"pt = %f, weight = %f",containerInput[0],
fWeight));
1049 if (recoStep) AliDebug(2, Form(
"particle = %d --> CF task: Reco step for candidate %d is %d", iCandid, iCandid, (
Int_t)recoStep));
1054 Bool_t isBitSelected = kTRUE;
1064 if(!((dynamic_cast<AliAODRecoCascadeHF*>(charmCandidate))->CheckCascadeFlags())) isBitSelected = kFALSE;
1072 if (recoStep && recoContFilled && vtxCheck){
1075 AliDebug(3,
"Reco step passed and container filled\n");
1079 if (recoAcceptanceStep) {
1082 AliDebug(3,
"Reco acceptance cut passed and container filled\n");
1086 Bool_t bUnfolding = cfVtxHF -> FillUnfoldingMatrix(
fPDGcode,fill);
1092 if (recoITSnCluster){
1094 icountRecoITSClusters++;
1095 AliDebug(3,
"Reco n ITS cluster cut passed and container filled\n");
1098 Int_t recoAnalysisCuts = -1, recoPidSelection = -1;
1104 if(keepDs) recoAnalysisCuts=3;
1108 if (keepLctoV0bachelor) recoAnalysisCuts=3;
1110 AliInputEventHandler* inputHandler = (AliInputEventHandler*) (man->GetInputEventHandler());
1111 AliPIDResponse* pidResponse = inputHandler->GetPIDResponse();
1118 Bool_t tempAn=(recoAnalysisCuts == 3 || recoAnalysisCuts == isPartOrAntipart);
1120 if (
fDecayChannel == 32) tempAn=(recoAnalysisCuts >0 || recoAnalysisCuts == isPartOrAntipart);
1125 AliDebug(3,
"Reco Analysis cuts passed and container filled \n");
1133 if(keepDs) recoPidSelection=3;
1136 if (keepLctoV0bachelor) recoPidSelection=3;
1139 Bool_t tempPid=(recoPidSelection == 3 || recoPidSelection == isPartOrAntipart);
1141 if (
fDecayChannel == 32) tempPid=(recoPidSelection >0 || recoPidSelection == isPartOrAntipart);
1147 if (isPartOrAntipart == 1){
1149 }
else if (isPartOrAntipart == 2){
1152 if ((weigPID < 0) || (weigPID > 1)) weigPID = 0.;
1156 Int_t labDau0=((AliAODTrack*)charmCandidate->GetDaughter(0))->GetLabel();
1157 AliAODMCParticle* firstDau=(AliAODMCParticle*)mcArray->UncheckedAt(TMath::Abs(labDau0));
1159 Int_t pdgCode0=TMath::Abs(firstDau->GetPdgCode());
1162 }
else if(pdgCode0==211){
1165 if ((weigPID < 0) || (weigPID > 1)) weigPID = 0.;
1173 AliDebug(3,
"Reco PID cuts passed and container filled \n");
1176 Bool_t bUnfolding = cfVtxHF -> FillUnfoldingMatrix(
fPDGcode,fill);
1181 AliDebug(3,
"Analysis Cuts step not passed \n");
1187 AliDebug(3,
"PID selection not passed \n");
1193 AliDebug(3,
"Number of ITS cluster step not passed\n");
1199 AliDebug(3,
"Reco acceptance step not passed\n");
1205 AliDebug(3,
"Reco step not passed\n");
1222 delete[] containerInput;
1223 delete[] containerInputMC;
1229 delete [] trackCuts;
1242 AliAnalysisTaskSE::Terminate();
1247 AliInfo(Form(
"Found %i MC particles that are %s in MC and satisfy Acc cuts, in %d events",
fCountAcc,
fPartName.Data(),
fEvents));
1248 AliInfo(Form(
"Found %i MC particles that are %s in MC and satisfy Acc cuts, and satisfy Vertex requirement in %d events",
fCountVertex,
fPartName.Data(),
fEvents));
1249 AliInfo(Form(
"Found %i MC particles that are %s in MC and satisfy Acc cuts, and satisfy ITS+TPC refit requirementin %d events",
fCountRefit,
fPartName.Data(),
fEvents));
1257 AliCFContainer *cont=
dynamic_cast<AliCFContainer*
> (GetOutputData(2));
1259 printf(
"CONTAINER NOT FOUND\n");
1266 Int_t nvarToPlot = 0;
1269 for (
Int_t ih = 0; ih<3; ih++){
1275 h[ih] =
new TH1D[nvarToPlot];
1277 for(
Int_t iC=1;iC<nvarToPlot; iC++){
1279 h[0][iC] = *(cont->ShowProjection(iC,0));
1281 h[1][iC] = *(cont->ShowProjection(iC,1));
1283 h[2][iC] = *(cont->ShowProjection(iC,4));
1289 for (
Int_t ih = 0; ih<3; ih++){
1290 h[ih] =
new TH1D[nvarToPlot];
1292 for(
Int_t iC=0;iC<nvarToPlot; iC++){
1294 h[0][iC] = *(cont->ShowProjection(iC,0));
1296 h[1][iC] = *(cont->ShowProjection(iC,1));
1298 h[2][iC] = *(cont->ShowProjection(iC,4));
1306 titles =
new TString[nvarToPlot];
1307 titles[0]=
"pT_Dplus (GeV/c)";
1308 titles[1]=
"rapidity";
1309 titles[2]=
"phi (rad)";
1310 titles[3]=
"cT (#mum)";
1311 titles[4]=
"cosPointingAngle";
1312 titles[5]=
"pT_1 (GeV/c)";
1313 titles[6]=
"pT_2 (GeV/c)";
1314 titles[7]=
"pT_3 (GeV/c)";
1315 titles[8]=
"d0_1 (#mum)";
1316 titles[9]=
"d0_2 (#mum)";
1317 titles[10]=
"d0_3 (#mum)";
1318 titles[11]=
"zVertex (cm)";
1321 titles =
new TString[nvarToPlot];
1322 titles[0]=
"p_{T}(#Lambda_{c}) [GeV/c]";
1323 titles[1]=
"y(#Lambda_{c})";
1324 titles[2]=
"#varphi(#Lambda_{c}) [rad]";
1325 titles[3]=
"onTheFlyStatusV0";
1326 titles[4]=
"z_{vtx} [cm]";
1327 titles[5]=
"centrality";
1329 titles[7]=
"multiplicity";
1331 titles[8]=
"p(bachelor) [GeV/c]";
1332 titles[9]=
"p_{T}(V0) [GeV/c]";
1334 titles[11]=
"#varphi(V0) [rad]";
1335 titles[12]=
"m_{inv}(#pi^{+}#pi^{+}) [GeV/c^{2}]";
1336 titles[13]=
"dcaV0 (nSigma)";
1337 titles[14]=
"cosine pointing angle (V0)";
1338 titles[15]=
"cosine pointing angle (#Lambda_{c})";
1343 titles =
new TString[nvarToPlot];
1344 titles[0]=
"pT_D0 (GeV/c)";
1345 titles[1]=
"rapidity";
1346 titles[2]=
"cosThetaStar";
1347 titles[3]=
"pT_pi (GeV/c)";
1348 titles[4]=
"pT_K (Gev/c)";
1349 titles[5]=
"cT (#mum)";
1350 titles[6]=
"dca (#mum)";
1351 titles[7]=
"d0_pi (#mum)";
1352 titles[8]=
"d0_K (#mum)";
1353 titles[9]=
"d0xd0 (#mum^2)";
1354 titles[10]=
"cosPointingAngle";
1355 titles[11]=
"phi (rad)";
1360 titles =
new TString[nvarToPlot];
1362 titles[0]=
"p_{T}(#Lambda_{c}) [GeV/c]";
1363 titles[1]=
"y(#Lambda_{c})";
1364 titles[2]=
"#varphi(#Lambda_{c}) [rad]";
1365 titles[3]=
"onTheFlyStatusV0";
1366 titles[4]=
"z_{vtx} [cm]";
1367 titles[5]=
"centrality";
1369 titles[7]=
"multiplicity";
1371 titles[0]=
"pT_candidate (GeV/c)";
1372 titles[1]=
"rapidity";
1373 titles[2]=
"cT (#mum)";
1375 titles[4]=
"z_{vtx}";
1376 titles[5]=
"centrality";
1378 titles[7]=
"multiplicity";
1382 Int_t markers[16]={20,24,21,25,27,28,
1386 for(
Int_t iC=0;iC<nvarToPlot; iC++){
1387 for(
Int_t iStep=0;iStep<3;iStep++){
1388 h[iStep][iC].SetTitle(titles[iC].
Data());
1389 h[iStep][iC].GetXaxis()->SetTitle(titles[iC].
Data());
1390 Double_t maxh=h[iStep][iC].GetMaximum();
1391 h[iStep][iC].GetYaxis()->SetRangeUser(0,maxh*1.2);
1392 h[iStep][iC].SetMarkerStyle(markers[iC]);
1393 h[iStep][iC].SetMarkerColor(colors[iStep]);
1397 gStyle->SetCanvasColor(0);
1398 gStyle->SetFrameFillColor(0);
1399 gStyle->SetTitleFillColor(0);
1400 gStyle->SetStatColor(0);
1403 TCanvas * c1 =
new TCanvas(Form(
"c1New_%d",
fDecayChannel),
"Vars 0, 1, 2, 3",1100,1200);
1406 for(
Int_t iVar=0; iVar<4; iVar++){
1408 h[0][iVar].DrawCopy(
"p");
1410 h[1][iVar].DrawCopy(
"p");
1412 h[2][iVar].DrawCopy(
"p");
1415 TCanvas * c2 =
new TCanvas(Form(
"c2New_%d",
fDecayChannel),
"Vars 4, 5, 6, 7",1100,1200);
1418 for(
Int_t iVar=4; iVar<8; iVar++){
1420 h[0][iVar].DrawCopy(
"p");
1422 h[1][iVar].DrawCopy(
"p");
1424 h[2][iVar].DrawCopy(
"p");
1428 TCanvas * c3 =
new TCanvas(Form(
"c3New_%d",
fDecayChannel),
"Vars 8, 9, 10, 11",1100,1200);
1431 for(
Int_t iVar=8; iVar<12; iVar++){
1433 h[0][iVar].DrawCopy(
"p");
1435 h[1][iVar].DrawCopy(
"p");
1437 h[2][iVar].DrawCopy(
"p");
1440 TCanvas * c4 =
new TCanvas(Form(
"c4New_%d",
fDecayChannel),
"Vars 12, 13, 14, 15",1100,1200);
1443 for(
Int_t iVar=12; iVar<16; iVar++){
1445 h[0][iVar].DrawCopy(
"p");
1447 h[1][iVar].DrawCopy(
"p");
1449 h[2][iVar].DrawCopy(
"p");
1467 TFile* file_projection =
new TFile(
"CFtaskHFprojectionNew.root",
"RECREATE");
1472 for(
Int_t iC=0;iC<nvarToPlot; iC++){
1473 for(
Int_t iStep=0;iStep<3;iStep++){
1474 h[iStep][iC].Write(Form(
"Step%d_%s",iStep,titles[iC].
Data()));
1477 file_projection->Close();
1478 for (
Int_t ih = 0; ih<3; ih++)
delete [] h[ih];
1490 Info(
"UserCreateOutputObjects",
"CreateOutputObjects of task %s\n", GetName());
1494 const char* nameoutput=GetOutputSlot(1)->GetContainer()->GetName();
1500 PostData(2,
fCFManager->GetParticleContainer()) ;
1512 fFuncWeight=
new TF1(
"funcWeight",
"[0]+[1]*TMath::Exp(-[2]*x)",0.,50.);
1524 fFuncWeight=
new TF1(
"funcWeight",
"[0]+[1]/TMath::Power(x,[2])",0.05,50.);
1536 fFuncWeight=
new TF1(
"funcWeight",
"([0]*x)/TMath::Power([2],(1+TMath::Power([3],x/[1])))+[4]*TMath::Exp([5]+[6]*x)+[7]*TMath::Exp([8]*x)",0.15,50.);
1537 fFuncWeight->SetParameters(1.92381e+01, 5.05055e+00, 1.05314e+01, 2.5, 1.88214e-03, 3.44871e+00, -9.74325e-02, 1.97671e+00, -3.21278e-01);
1547 fFuncWeight=
new TF1(
"funcWeight",
"([0]*x)/TMath::Power([2],(1+TMath::Power([3],x/[1])))+[4]*TMath::Exp([5]+[6]*x)+[7]*TMath::Exp([8]*x)",0.15,50.);
1548 fFuncWeight->SetParameters(6.10443e+00, 1.53487e+00, 1.99474e+00, 2.5, 5.51172e-03, 5.86590e+00, -5.46963e-01, 9.41201e-02, -1.64323e-01);
1557 fHistoPtWeight =
new TH1F(
"histoWeight",
"histoWeight",400,0.,40.);
1558 Float_t binc[400]={1.118416, 1.003458, 0.935514, 0.907222, 0.904359, 0.913668, 0.933906, 0.963898, 0.996388, 1.031708, 1.066404, 1.099683, 1.125805, 1.145181, 1.165910, 1.181905, 1.193425, 1.203891, 1.204726, 1.209411, 1.209943, 1.204763, 1.205291, 1.198912, 1.197390, 1.182005, 1.184194, 1.175994, 1.167881, 1.158348, 1.147190, 1.139833, 1.126940, 1.123322, 1.108389, 1.102199, 1.089464, 1.075874, 1.061964, 1.051429, 1.038113, 1.026668, 1.011441, 0.998567, 0.987658, 0.972434, 0.950068, 0.940758, 0.916880, 0.911931, 0.894512, 0.878691, 0.860589, 0.848025, 0.830774, 0.819399, 0.801134, 0.775276, 0.766382, 0.750495, 0.736935, 0.717529, 0.702637, 0.689152, 0.671334, 0.652030, 0.635696, 0.621365, 0.608362, 0.599019, 0.576024, 0.562136, 0.550938, 0.533587, 0.516410, 0.509744, 0.501655, 0.487402, 0.476469, 0.463762, 0.445979, 0.438088, 0.422214, 0.417467, 0.404357, 0.391450, 0.379996, 0.371201, 0.361497, 0.352912, 0.343189, 0.329183, 0.327662, 0.310783, 0.304525, 0.301007, 0.293306, 0.278332, 0.274419, 0.267361, 0.261459, 0.255514, 0.249293, 0.241129, 0.237600, 0.231343, 0.221982, 0.216872, 0.211094, 0.206954, 0.202333, 0.196572, 0.193274, 0.188240, 0.181817, 0.178364, 0.173614, 0.167135, 0.166055, 0.163423, 0.156557, 0.155821, 0.151985, 0.144909, 0.145062, 0.139720, 0.138873, 0.131892, 0.129969, 0.126509, 0.126978, 0.120451, 0.117661, 0.116300, 0.115604, 0.112215, 0.109237, 0.107720, 0.106419, 0.102050, 0.102777, 0.097406, 0.098447, 0.095964, 0.093868, 0.092430, 0.089329, 0.088249, 0.085881, 0.084417, 0.085498, 0.082444, 0.079151, 0.079565, 0.077811, 0.077293, 0.075218, 0.072445, 0.073054, 0.071545, 0.070279, 0.068046, 0.067854, 0.068092, 0.065378, 0.064405, 0.062060, 0.063391, 0.061718, 0.059616, 0.058913, 0.058895, 0.058311, 0.056320, 0.056527, 0.055349, 0.053701, 0.054735, 0.052264, 0.051277, 0.051554, 0.050545, 0.048995, 0.049507, 0.048466, 0.048156, 0.046809, 0.047600, 0.046078, 0.044801, 0.044113, 0.043700, 0.043530, 0.043396, 0.042556, 0.041048, 0.041657, 0.040394, 0.041314, 0.040720, 0.039656, 0.038478, 0.039276, 0.038777, 0.037730, 0.036918, 0.036466, 0.035827, 0.035285, 0.035963, 0.034371, 0.034757, 0.033205, 0.033666, 0.033266, 0.032583, 0.033570, 0.032102, 0.032107, 0.031464, 0.032160, 0.030091, 0.030564, 0.029464, 0.029613, 0.029626, 0.029512, 0.029324, 0.028607, 0.027628, 0.027251, 0.027072, 0.027077, 0.026724, 0.026961, 0.026303, 0.026237, 0.025454, 0.025133, 0.025365, 0.026014, 0.024807, 0.023901, 0.023459, 0.023405, 0.023654, 0.023981, 0.023675, 0.022493, 0.022781, 0.021801, 0.021704, 0.022372, 0.021189, 0.020681, 0.020779, 0.021324, 0.020558, 0.020901, 0.020586, 0.020808, 0.019276, 0.019516, 0.019706, 0.018935, 0.018632, 0.018516, 0.019187, 0.018916, 0.018039, 0.018208, 0.018045, 0.017628, 0.017916, 0.017711, 0.017838, 0.017222, 0.016565, 0.015733, 0.016264, 0.015826, 0.016090, 0.016622, 0.015802, 0.016621, 0.015441, 0.015309, 0.014860, 0.014935, 0.014968, 0.014443, 0.014485, 0.015136, 0.014078, 0.014414, 0.013908, 0.014071, 0.014078, 0.013766, 0.013436, 0.013507, 0.013480, 0.013224, 0.013041, 0.013935, 0.012885, 0.012453, 0.012528, 0.012492, 0.012225, 0.012542, 0.012706, 0.012136, 0.011902, 0.011560, 0.011448, 0.011861, 0.011271, 0.011831, 0.011159, 0.011171, 0.010966, 0.011311, 0.011002, 0.011130, 0.010995, 0.010450, 0.010663, 0.010678, 0.010492, 0.009861, 0.010507, 0.009916, 0.010121, 0.010029, 0.010046, 0.009370, 0.009647, 0.010104, 0.009282, 0.009830, 0.009403, 0.009148, 0.009172, 0.008893, 0.009158, 0.009019, 0.008780, 0.008579, 0.009063, 0.008634, 0.008988, 0.008265, 0.008581, 0.008575, 0.008690, 0.008181, 0.008352, 0.008150, 0.008430, 0.008256, 0.008119, 0.008453, 0.008447, 0.008021, 0.007938, 0.008025, 0.007718, 0.008127, 0.007651, 0.007590, 0.007316, 0.007839, 0.007504, 0.007341, 0.007527, 0.007263, 0.007668, 0.007306, 0.007271, 0.006910, 0.007257, 0.007260, 0.006810, 0.006967, 0.006887, 0.006867, 0.007202, 0.006829, 0.006370, 0.006710, 0.006417, 0.006361, 0.006800, 0.006410, 0.006323, 0.006790, 0.006322, 0.006673, 0.006547};
1559 for(
Int_t i=0; i<400; i++){
1572 fHistoPtWeight =
new TH1F(
"histoWeight",
"histoWeight",400,0.,40.);
1573 Float_t binc[400]={2.166180, 1.866117, 1.667595, 1.547176, 1.486661, 1.457891, 1.426949, 1.399055, 1.383278, 1.349383, 1.317009, 1.282321, 1.234257, 1.181136, 1.136655, 1.087523, 1.037912, 0.993256, 0.944746, 0.900948, 0.865869, 0.827193, 0.794424, 0.757723, 0.733020, 0.700164, 0.682189, 0.659872, 0.637918, 0.615749, 0.593020, 0.574402, 0.556158, 0.542663, 0.525494, 0.516038, 0.503629, 0.490980, 0.479143, 0.469005, 0.457749, 0.447668, 0.436803, 0.427073, 0.418282, 0.407867, 0.395093, 0.387861, 0.374742, 0.369462, 0.360146, 0.351991, 0.342990, 0.336259, 0.327730, 0.322382, 0.314602, 0.303874, 0.299820, 0.293049, 0.287539, 0.280329, 0.274866, 0.269939, 0.263299, 0.256057, 0.249215, 0.242170, 0.235704, 0.230709, 0.220529, 0.213921, 0.208394, 0.202424, 0.196700, 0.194943, 0.192620, 0.187894, 0.184411, 0.180204, 0.172915, 0.169077, 0.162201, 0.159636, 0.153904, 0.148296, 0.143282, 0.139306, 0.135561, 0.132342, 0.128696, 0.123444, 0.122873, 0.116544, 0.114197, 0.112878, 0.110018, 0.104547, 0.103222, 0.100707, 0.098622, 0.096513, 0.094295, 0.091334, 0.090122, 0.087870, 0.084894, 0.083729, 0.082265, 0.081404, 0.080323, 0.078750, 0.078132, 0.076781, 0.074823, 0.074050, 0.072614, 0.070093, 0.069828, 0.068907, 0.066189, 0.066054, 0.064600, 0.061757, 0.061986, 0.059862, 0.059656, 0.056807, 0.055956, 0.054386, 0.054507, 0.051629, 0.050358, 0.049702, 0.049331, 0.047814, 0.046476, 0.045762, 0.045142, 0.043224, 0.043484, 0.041282, 0.041794, 0.040809, 0.039985, 0.039439, 0.038181, 0.037782, 0.036831, 0.036264, 0.036790, 0.035535, 0.034173, 0.034409, 0.033659, 0.033308, 0.032290, 0.030981, 0.031121, 0.030361, 0.029708, 0.028653, 0.028461, 0.028449, 0.027208, 0.026697, 0.025623, 0.026069, 0.025279, 0.024332, 0.024341, 0.024629, 0.024677, 0.024117, 0.024490, 0.024257, 0.023804, 0.024537, 0.023692, 0.023502, 0.023888, 0.023673, 0.023193, 0.023684, 0.023429, 0.023521, 0.023014, 0.023346, 0.022544, 0.021866, 0.021477, 0.021224, 0.021089, 0.020972, 0.020515, 0.019739, 0.019982, 0.019328, 0.019719, 0.019387, 0.018833, 0.018227, 0.018558, 0.018276, 0.017738, 0.017460, 0.017365, 0.017178, 0.017033, 0.017478, 0.016817, 0.017119, 0.016463, 0.016802, 0.016711, 0.016475, 0.017083, 0.016441, 0.016548, 0.016320, 0.016786, 0.015804, 0.016153, 0.015668, 0.015843, 0.015810, 0.015651, 0.015454, 0.014981, 0.014376, 0.014089, 0.013906, 0.013818, 0.013549, 0.013580, 0.013160, 0.013040, 0.012566, 0.012324, 0.012353, 0.012582, 0.011915, 0.011401, 0.011112, 0.011008, 0.011046, 0.011119, 0.010954, 0.010439, 0.010604, 0.010179, 0.010163, 0.010507, 0.009981, 0.009771, 0.009846, 0.010134, 0.009798, 0.009991, 0.009869, 0.010005, 0.009295, 0.009438, 0.009557, 0.009210, 0.009088, 0.009057, 0.009412, 0.009306, 0.008899, 0.009009, 0.008952, 0.008764, 0.008926, 0.008842, 0.008924, 0.008634, 0.008322, 0.007920, 0.008205, 0.008000, 0.008151, 0.008438, 0.008037, 0.008472, 0.007886, 0.007835, 0.007621, 0.007675, 0.007707, 0.007452, 0.007489, 0.007841, 0.007308, 0.007497, 0.007248, 0.007348, 0.007367, 0.007227, 0.007097, 0.007179, 0.007209, 0.007115, 0.007059, 0.007588, 0.007058, 0.006862, 0.006945, 0.006965, 0.006856, 0.007075, 0.007209, 0.006925, 0.006830, 0.006672, 0.006645, 0.006923, 0.006615, 0.006982, 0.006622, 0.006666, 0.006579, 0.006823, 0.006673, 0.006786, 0.006740, 0.006440, 0.006606, 0.006650, 0.006568, 0.006206, 0.006646, 0.006305, 0.006468, 0.006442, 0.006486, 0.006080, 0.006291, 0.006622, 0.006113, 0.006506, 0.006254, 0.006114, 0.006161, 0.006002, 0.006211, 0.006146, 0.006012, 0.005902, 0.006264, 0.005996, 0.006271, 0.005793, 0.006043, 0.006067, 0.006177, 0.005842, 0.005991, 0.005872, 0.006102, 0.006003, 0.005930, 0.006201, 0.006224, 0.005937, 0.005901, 0.005992, 0.005788, 0.006121, 0.005787, 0.005766, 0.005582, 0.006006, 0.005774, 0.005672, 0.005841, 0.005660, 0.006000, 0.005741, 0.005737, 0.005475, 0.005773, 0.005799, 0.005462, 0.005610, 0.005569, 0.005574, 0.005871, 0.005589, 0.005234, 0.005535, 0.005314, 0.005288, 0.005676, 0.005371, 0.005319, 0.005734, 0.005360, 0.005679, 0.005593};
1574 for(
Int_t i=0; i<400; i++){
1586 fHistoPtWeight =
new TH1F(
"histoWeight",
"histoWeight",400,0.,40.);
1587 Float_t binc[400]={1.179906, 1.091249, 1.047774, 1.045579, 1.071679, 1.112413, 1.167414, 1.236240, 1.310301, 1.390289, 1.471711, 1.553389, 1.626886, 1.692115, 1.760647, 1.813658, 1.850817, 1.886699, 1.907671, 1.934832, 1.955433, 1.966727, 1.987262, 1.996316, 2.013326, 1.973926, 1.931144, 1.871654, 1.812942, 1.752718, 1.690846, 1.635303, 1.572611, 1.523510, 1.459790, 1.402510, 1.331908, 1.261575, 1.192241, 1.127915, 1.061798, 0.998830, 0.933514, 0.871774, 0.812936, 0.762844, 0.719340, 0.686587, 0.644108, 0.615714, 0.579512, 0.545254, 0.510508, 0.479884, 0.447423, 0.426154, 0.408934, 0.388264, 0.376424, 0.361389, 0.347757, 0.331685, 0.318029, 0.305285, 0.290922, 0.278523, 0.269807, 0.262025, 0.254878, 0.249325, 0.238179, 0.230899, 0.224792, 0.216253, 0.207879, 0.204465, 0.201153, 0.195373, 0.190926, 0.185773, 0.178589, 0.175371, 0.168959, 0.167004, 0.161705, 0.156809, 0.152788, 0.149806, 0.146429, 0.143478, 0.140037, 0.134813, 0.134679, 0.128205, 0.126078, 0.125038, 0.122214, 0.116329, 0.115044, 0.112427, 0.110279, 0.108098, 0.105784, 0.102628, 0.101429, 0.099101, 0.095464, 0.093631, 0.091491, 0.090045, 0.088374, 0.086188, 0.085067, 0.083168, 0.080636, 0.079414, 0.077610, 0.075013, 0.074825, 0.073932, 0.071106, 0.071050, 0.069574, 0.066593, 0.066924, 0.064876, 0.065064, 0.062345, 0.061980, 0.060859, 0.061616, 0.058952, 0.058079, 0.057894, 0.058031, 0.056604, 0.055180, 0.054490, 0.053909, 0.051768, 0.052210, 0.049552, 0.050152, 0.048955, 0.047953, 0.047224, 0.045588, 0.044985, 0.043728, 0.042934, 0.043434, 0.041834, 0.040118, 0.040281, 0.039348, 0.038987, 0.037793, 0.036258, 0.036420, 0.035528, 0.034761, 0.033524, 0.033296, 0.033280, 0.031825, 0.031351, 0.030329, 0.031103, 0.030401, 0.029481, 0.029247, 0.029352, 0.029174, 0.028286, 0.028500, 0.028017, 0.027293, 0.027932, 0.026779, 0.026379, 0.026628, 0.026211, 0.025508, 0.025877, 0.025433, 0.025328, 0.024636, 0.025069, 0.024282, 0.023625, 0.023278, 0.023074, 0.023000, 0.022943, 0.022514, 0.021767, 0.022180, 0.021594, 0.022175, 0.021944, 0.021456, 0.020901, 0.021419, 0.021230, 0.020738, 0.020322, 0.020055, 0.019686, 0.019371, 0.019725, 0.018835, 0.019029, 0.018163, 0.018398, 0.018163, 0.017719, 0.018126, 0.017208, 0.017086, 0.016622, 0.016865, 0.015663, 0.015791, 0.015108, 0.015069, 0.015033, 0.015006, 0.014940, 0.014604, 0.014133, 0.013968, 0.013904, 0.013934, 0.013780, 0.013930, 0.013727, 0.013940, 0.013763, 0.013826, 0.014192, 0.014801, 0.014347, 0.014048, 0.014009, 0.014197, 0.014571, 0.014999, 0.015030, 0.014491, 0.014891, 0.014456, 0.014596, 0.015256, 0.014648, 0.014492, 0.014756, 0.015344, 0.014986, 0.015433, 0.015394, 0.015756, 0.014778, 0.015145, 0.015478, 0.015051, 0.014986, 0.015067, 0.015793, 0.015748, 0.015188, 0.015502, 0.015533, 0.015340, 0.015759, 0.015745, 0.016026, 0.015635, 0.015194, 0.014579, 0.015225, 0.014963, 0.015365, 0.016030, 0.015387, 0.016341, 0.015327, 0.015340, 0.015030, 0.015246, 0.015420, 0.015015, 0.015195, 0.016021, 0.015034, 0.015528, 0.015114, 0.015423, 0.015564, 0.015348, 0.015107, 0.015314, 0.015411, 0.015243, 0.015154, 0.016324, 0.015215, 0.014823, 0.015030, 0.015104, 0.014896, 0.015400, 0.015721, 0.015131, 0.014951, 0.014630, 0.014597, 0.015235, 0.014583, 0.015418, 0.014648, 0.014769, 0.014601, 0.015167, 0.014857, 0.015134, 0.015053, 0.014405, 0.014800, 0.014921, 0.014760, 0.013966, 0.014979, 0.014230, 0.014620, 0.014581, 0.014701, 0.013799, 0.014299, 0.015071, 0.013931, 0.014846, 0.014290, 0.013988, 0.014113, 0.013767, 0.014263, 0.014131, 0.013840, 0.013604, 0.014456, 0.013853, 0.014505, 0.013416, 0.014010, 0.014081, 0.014352, 0.013589, 0.013952, 0.013690, 0.014241, 0.014024, 0.013868, 0.014517, 0.014587, 0.013927, 0.013857, 0.014084, 0.013619, 0.014417, 0.013644, 0.013607, 0.013185, 0.014200, 0.013665, 0.013437, 0.013849, 0.013431, 0.014252, 0.013648, 0.013652, 0.013039, 0.013761, 0.013836, 0.013043, 0.013408, 0.013319, 0.013344, 0.014065, 0.013400, 0.012560, 0.013294, 0.012773, 0.012721, 0.013663, 0.012939, 0.012823, 0.013835, 0.012942, 0.013723, 0.013525};
1588 for(
Int_t i=0; i<400; i++){
1599 fFuncWeight=
new TF1(
"funcWeight",
"([0]*x)/TMath::Power([2],(1+TMath::Power([3],x/[1])))+[4]*TMath::Exp([5]+[6]*x)+[7]*TMath::Exp([8]*x)",0.15,30.);
1600 fFuncWeight->SetParameters(2.94999e+00,3.47032e+00,2.81278e+00,2.5,1.93370e-02,3.86865e+00,-1.54113e-01,8.86944e-02,2.56267e-02);
1609 fFuncWeight=
new TF1(
"funcWeight",
"([0]*x)/TMath::Power([2],(1+TMath::Power([3],x/[1])))+[4]*TMath::Exp([5]+[6]*x)+[7]*TMath::Exp([8]*x)",0.15,40.);
1610 fFuncWeight->SetParameters(2.41522e+01,4.92146e+00,6.72495e+00,2.5,6.15361e-03,4.78995e+00,-4.29135e-01,3.99421e-01,-1.57220e-02);
1619 fFuncWeight=
new TF1(
"funcWeight",
"([0]*x)/TMath::Power([2],(1+TMath::Power([3],x/[1])))+[4]*TMath::Exp([5]+[6]*x)+[7]*TMath::Exp([8]*x+[9])",0.15,50.);
1620 fFuncWeight->SetParameters(1.31497e+01,3.30503e+00,3.45594e+00,2.5,2.28642e-02,1.42372e+00,2.32892e-04,5.21986e-02,-2.14236e-01,3.86200e+00);
1629 fFuncWeight=
new TF1(
"funcWeight",
"([0]*x)/TMath::Power([2],(1+TMath::Power([3],x/[1])))+[4]*TMath::Exp([5]+[6]*x)+[7]*TMath::Exp([8]*x+[9])",0.15,50.);
1630 fFuncWeight->SetParameters(6.54519e+00,2.74007e+00,2.48325e+00,2.5,1.61113e-01,-5.32546e-01,-3.75916e-04,2.38189e-01,-2.17561e-01,2.35975e+00);
1639 fFuncWeight=
new TF1(
"funcWeight",
"([0]*x)/TMath::Power([2],(1+TMath::Power([3],x/[1])))+[4]*TMath::Exp([5]+[6]*x)+[7]*TMath::Exp([8]*x+[9])",0.15,50.);
1640 fFuncWeight->SetParameters(1.85862e+01,2.48171e+00,3.39356e+00,2.5,1.70426e-02,2.28453e+00,-4.57749e-02,5.84585e-02,-3.19719e-01,4.16789e+00);
1649 fFuncWeight=
new TF1(
"funcWeight",
"([0]*x)/TMath::Power([2],(1+TMath::Power([3],x/[1])))+[4]*TMath::Exp([5]+[6]*x)+[7]*TMath::Exp([8]*x)",0.15,40.);
1650 fFuncWeight->SetParameters(2.77730e+01,4.78942e+00,7.45378e+00,2.5,9.86255e-02,2.30120e+00,-4.16435e-01,3.43770e-01,-2.29380e-02);
1659 fFuncWeight=
new TF1(
"funcWeight",
"([0]*x)/TMath::Power([2],(1+TMath::Power([3],x/[1])))+[4]*TMath::Exp([5]+[6]*x)+[7]*TMath::Exp([8]*x+[9])",0.15,40.);
1660 fFuncWeight->SetParameters(1.34412e+01,3.20068e+00,5.14481e+00,2.5,7.59405e-04,7.51821e+00,-3.93811e-01,2.16849e-02,-3.37768e-02,2.40308e+00);
1670 fFuncWeight=
new TF1(
"funcWeight",
"([0]*x)/TMath::Power([2],(1+TMath::Power([3],x/[1])))+[4]*TMath::Exp([5]+[6]*x)+[7]*TMath::Exp([8]*x)",0.15,20.);
1671 fFuncWeight->SetParameters(5.94428e+01,1.63585e+01,9.65555e+00,6.71944e+00,8.88338e-02,2.40477e+00,-4.88649e-02,-6.78599e-01,-2.10951e-01);
1680 fFuncWeight=
new TF1(
"funcWeight",
"([0]*x)/TMath::Power([2],(1+TMath::Power([3],x/[1])))+[4]*TMath::Exp([5]+[6]*x)+[7]*TMath::Exp([8]*x)",0.2,20.);
1681 fFuncWeight->SetParameters(2.70821e+03,2.98122e+00,8.67776e+01,1.16611e+00,1.17276e-02,5.41670e+00,6.01099e-02,-2.04524e+00,6.69208e-02);
1691 fFuncWeight=
new TF1(
"funcWeight",
"([0]*x)/TMath::Power([2],(1+TMath::Power([3],x/[1])))+[4]*TMath::Exp([5]+[6]*x)+[7]*TMath::Exp([8]*x)",1.,20.);
1692 fFuncWeight->SetParameters(2.11879e+02,3.73290e+00,2.01235e+01,1.41508e+00,1.06268e-01,1.86285e+00,-4.52956e-02,-9.90631e-01,-1.31615e+00);
1702 fFuncWeight=
new TF1(
"funcWeight",
"([0]*x)/TMath::Power([2],(1+TMath::Power([3],x/[1])))+[4]*TMath::Exp([5]+[6]*x)+[7]*TMath::Exp([8]*x)",1.,20.);
1703 fFuncWeight->SetParameters(2.84268e+02,2.18850e+01,2.36298e+01,7.46144e+00,1.69747e-01,1.66993e+00,-5.54726e-02,-1.53869e+00,-1.18404e+00);
1714 fFuncWeight=
new TF1(
"funcWeight",
"(x<28.5)*(([0]*x)/TMath::Power([2],(1+TMath::Power([3],x/[1])))+[4]*TMath::Exp([5]+[6]*x)+[7]*TMath::Exp([8]*x))+(x>=28.5)*0.140023",0.15,40);
1715 fFuncWeight->SetParameters(4.66092e+01, 4.27321e+01, 4.46858e+01, 1.67788e+00, -2.88457e-02, 4.40656e+00, -7.31064e-01, 2.96431e+00, -2.79976e-01);
1739 Double_t func1[4] = {0.322643,2.96275,2.30301,2.5};
1740 Double_t func2[4] = {0.36609,1.94635,1.40463,2.5};
1745 AliDebug(2,Form(
"pt = %f, FONLL = %f, Pythia = %f, ratio = %f",pt,dndpt_func1,dndpt_func2,dndpt_func1/dndpt_func2));
1746 return dndpt_func1/dndpt_func2;
1756 Double_t denom = TMath::Power((pt/par[1]), par[3] );
1757 Double_t dNdpt = par[0]*pt/TMath::Power(1.+denom, par[2]);
1772 if( (bin2>0) && (bin2<=histoNbins) ) {
1775 if(bin2==1) bin1=bin2+2;
1776 if(bin2==histoNbins) bin3=bin2-2;
1783 Double_t a=( (y_3-y_2)*(x_1-x_2) - (y_1-y_2)*(x_3-x_2) )/( (x_3*x_3-x_2*x_2)*(x_1-x_2) - (x_1*x_1-x_2*x_2)*(x_3-x_2) );
1784 Double_t b=((y_1-y_2)-a*(x_1*x_1-x_2*x_2))/(x_1-x_2);
1786 weight = a*pt*pt+b*pt+
c;
1797 if(runnumber>146824 || runnumber<146803)
return 1.0;
1799 Double_t func1[3] = {1.0, -0.5, 6.5 };
1800 Double_t func2[3] = {1.0, -0.5, 5.5 };
1805 return dzFunc1/dzFunc2;
1816 Double_t value = par[0]/TMath::Sqrt(2.*TMath::Pi())/par[2]*TMath::Exp(-(z-par[1])*(z-par[1])/2./par[2]/par[2]);
1825 if(nch<=0)
return 0.;
1829 Double_t weight = pMC>0 ? pMeas/pMC : 0.;
1842 Double_t nchbins[82]={0.50,1.50,2.50,3.50,4.50,5.50,6.50,7.50,8.50,9.50,
1843 10.50,11.50,12.50,13.50,14.50,15.50,16.50,17.50,18.50,19.50,
1844 20.50,21.50,22.50,23.50,24.50,25.50,26.50,27.50,28.50,29.50,
1845 30.50,31.50,32.50,33.50,34.50,35.50,36.50,37.50,38.50,39.50,
1846 40.50,41.50,42.50,43.50,44.50,45.50,46.50,47.50,48.50,49.50,
1847 50.50,51.50,52.50,53.50,54.50,55.50,56.50,57.50,58.50,59.50,
1848 60.50,62.50,64.50,66.50,68.50,70.50,72.50,74.50,76.50,78.50,
1849 80.50,82.50,84.50,86.50,88.50,90.50,92.50,94.50,96.50,98.50,
1851 Double_t pch[81]={0.062011,0.072943,0.070771,0.067245,0.062834,0.057383,0.051499,0.04591,0.041109,0.036954,
1852 0.03359,0.030729,0.028539,0.026575,0.024653,0.0229,0.021325,0.019768,0.018561,0.017187,
1853 0.01604,0.014836,0.013726,0.012576,0.011481,0.010393,0.009502,0.008776,0.008024,0.007452,
1854 0.006851,0.006428,0.00594,0.005515,0.005102,0.00469,0.004162,0.003811,0.003389,0.003071,
1855 0.002708,0.002422,0.002184,0.001968,0.00186,0.00165,0.001577,0.001387,0.001254,0.001118,
1856 0.001037,0.000942,0.000823,0.000736,0.000654,0.000579,0.000512,0.00049,0.00045,0.000355,
1857 0.000296,0.000265,0.000193,0.00016,0.000126,0.0000851, 0.0000676,0.0000537,0.0000426, 0.0000338,
1858 0.0000268,0.0000213,0.0000166,0.0000133,0.0000106,0.00000837,0.00000662, 0.00000524,0.00000414, 0.00000327,
1863 for(
Int_t i=0; i<81; i++){
1873 if(recoAnalysisCuts > 0){
1874 Int_t isKKpi=recoAnalysisCuts&1;
1875 Int_t ispiKK=recoAnalysisCuts&2;
1876 Int_t isPhiKKpi=recoAnalysisCuts&4;
1877 Int_t isPhipiKK=recoAnalysisCuts&8;
1878 Int_t isK0starKKpi=recoAnalysisCuts&16;
1879 Int_t isK0starpiKK=recoAnalysisCuts&32;
1881 if(isKKpi && isPhiKKpi) keep=kTRUE;
1882 if(ispiKK && isPhipiKK) keep=kTRUE;
1885 if(isKKpi && isK0starKKpi) keep=kTRUE;
1886 if(ispiKK && isK0starpiKK) keep=kTRUE;
1899 if (recoAnalysisCuts > 0){
1901 Int_t isK0Sp = recoAnalysisCuts&1;
1902 Int_t isLambdaBarpi = recoAnalysisCuts&2;
1903 Int_t isLambdapi = recoAnalysisCuts&4;
1906 if(isK0Sp) keep=kTRUE;
1909 if(isLambdaBarpi) keep=kTRUE;
1912 if(isLambdapi) keep=kTRUE;
1915 if (isK0Sp || isLambdaBarpi || isLambdapi) keep=kTRUE;
1928 Int_t runNo =
event->GetRunNumber();
1933 if (runNo>195343 && runNo<195484) period = 0;
1934 if (runNo>195528 && runNo<195678) period = 1;
1935 if (period<0 || period>1)
return 0;
1937 if(runNo>114930 && runNo<117223) period = 0;
1938 if(runNo>119158 && runNo<120830) period = 1;
1939 if(runNo>122373 && runNo<126438) period = 2;
1940 if(runNo>127711 && runNo<130841) period = 3;
1941 if(period<0 || period>3)
return 0;
void SetCentralityValue(Float_t centValue)
virtual AliESDtrackCuts * GetTrackCutsV0daughters() const
void SetFillFromGenerated(Bool_t flag)
Double_t GetPtWeightFromHistogram(Float_t pt)
void Terminate(Option_t *)
Bool_t fUseAdditionalCuts
flag for pPb data (used for multiplicity corrections)
Bool_t fUseZWeight
flag to decide to use a flat pt shape
AliCFTaskVertexingHF & operator=(const AliCFTaskVertexingHF &c)
slow configuration, all variables
Bool_t fFillFromGenerated
decay channel to configure the task
Double_t GetWeight(Float_t pt)
virtual AliESDtrackCuts * GetTrackCutsSoftPi() const
Int_t fCountAcc
MC particle found in limited acceptance that doesn't satisfy acceptance cuts.
Int_t fCountRefit
Reco particle found that satisfy vertex constrained.
void SetPtWeightsFromFONLL5overLHC16i2abc()
Int_t MCcquarkCounting(AliAODMCParticle *mcPart) const
void SetPtWeightsFromFONLL7overLHC12a12()
Class for HF corrections as a function of many variables and steps For D* and other cascades...
Int_t IsEventSelectedInCentrality(AliVEvent *event)
Int_t fCountReco
Reco particle found that satisfy kTPCrefit and kITSrefit.
Bool_t HasSelectionBit(Int_t i) const
UInt_t fPDGcode
flag to use selection bit
Class for HF corrections as a function of many variables and step.
Bool_t FillRecoContainer(Double_t *containerInput)
void UnsetOwnPrimaryVtx()
Int_t fCountGenLimAcc
MC particle found.
Bool_t fIsPPbData
flag for pp data (not checking centrality)
TH1F * fHistoPtWeight
user-defined function to be used to calculate weights
Bool_t fUseSelectionBit
Lc->V0+bachelor decay option (generation level)
AliCFTaskVertexingHF()
multiplicity estimators
Int_t fCountRecoITSClusters
Reco particle found that satisfy cuts in requested acceptance.
Int_t fNvar
flag to use directly the ratio of the distributions (fHistoMCNch) instead of computing it ...
void SetPtWeightsFromFONLL5overLHC10f6a()
void SetRejectCandidateIfNotFromQuark(Bool_t opt)
virtual Bool_t SetLabelArray()
Int_t fGenLctoV0bachelorOption
Lc->V0+bachelor decay option (selection level)
Double_t GetZWeight(Float_t z, Int_t runnumber)
void SetPtWeightsFromFONLL7overLHC12a12bis()
void SetPtWeightsFromFONLL276andBAMPSoverLHC12a17b()
Bool_t FillRecoCand(AliVEvent *event, AliAODRecoDecayHF3Prong *rd3)
Int_t fCountGenLimAccNoAcc
MC particle found in limited acceptance.
Double_t dNdptFit(Float_t pt, Double_t *par)
TString fPartName
number of variables for the container
Double_t GetMaxVtxZ() const
Bool_t FillRecoCasc(AliVEvent *event, AliAODRecoCascadeHF *rc, Bool_t isDStar, Bool_t recoSecVtx=kFALSE)
Double_t fRefMult
TProfile with mult vas. Z per period.
void SetPtWeightsFromFONLL276overLHC12a17a()
Bool_t ProcessDs(Int_t returnCodeDs) const
Float_t fCutOnMomConservation
flag to define which task to use for Lc –> K0S+p
void CreateMeasuredNchHisto()
Bool_t fZvtxCorrectedNtrkEstimator
refrence multiplcity (period b)
TList * fListProfiles
response matrix for unfolding
void SetPtWeightsFromFONLL5overLHC16i6a()
Class for cuts on AOD reconstructed D+->Kpipi.
void SetPtWeightsFromFONLL8overLHC15l2a2()
Bool_t fAcceptanceUnf
flag to select D0 origins. 0 Only from charm 1 only from beauty 2 both from charm and beauty ...
static Int_t GetNumberOfTrackletsInEtaRange(AliAODEvent *ev, Double_t mineta, Double_t maxeta)
Bool_t fUseTrackletsWeight
flag to decide whether to use Ncharged weights != 1 when filling the container or not ...
Int_t fCountVertex
MC particle found that satisfy acceptance cuts.
void SetMinCentrality(Float_t minCentrality=0.)
Double_t DodzFit(Float_t z, Double_t *par)
Bool_t fUseCascadeTaskForLctoV0bachelor
these are the pre-selection cuts for the TMVA
Double_t GetNchWeight(Int_t nch)
UShort_t fOriginDselection
flag to indicate whether data container should be filled with generated values also for reconstructed...
Bool_t fUseFlatPtWeight
weight used to fill the container
AliAODVertex * GetOwnPrimaryVtx() const
Char_t fSign
daughter in fin state
AliESDtrackCuts * GetTrackCuts() const
Float_t GetCentrality(AliAODEvent *aodEvent)
AliRDHFCuts * fCuts
flag for unfolding before or after cuts.
Int_t fFakeSelection
flag to switch off the centrality selection
void SetFakeSelection(Int_t fakeSel)
TF1 * fFuncWeight
configuration (slow / fast) of the CF –> different variables will be allocated (all / reduced number)...
void SetPtWeightsFromDataPbPb276overLHC12a17a()
UInt_t fResonantDecay
histogram with Nch distribution from MC production
Bool_t fCentralitySelection
flag to decide wheter to keep D0 only (0), D0bar only (1), or both D0 and D0bar (2) ...
Int_t fCountRecoAcc
Reco particle found that satisfy cuts.
Bool_t Data(TH1F *h, Double_t *rangefit, Bool_t writefit, Double_t &sgn, Double_t &errsgn, Double_t &bkg, Double_t &errbkg, Double_t &sgnf, Double_t &errsgnf, Double_t &sigmafit, Int_t &status)
Int_t fGenDsOption
Ds decay option (selection level)
void SetMaxCentrality(Float_t maxCentrality=100.)
void SetOwnPrimaryVtx(const AliAODVertex *vtx)
void SetRecoPrimVertex(Double_t zPrimVertex)
Bool_t fIsPPData
flag to use the z-vtx corrected (if not use uncorrected) multiplicity estimator
AliCFManager * fCFManager
virtual ~AliCFTaskVertexingHF()
void SetMCCandidateParam(Int_t label)
void SetPtWeightsFromFONLL7overLHC11b2Lc()
Bool_t CheckMCPartFamily(AliAODMCParticle *, TClonesArray *) const
virtual Bool_t SetRecoCandidateParam(AliAODRecoDecayHF *)
static Double_t GetCorrectedNtracklets(TProfile *estimatorAvg, Double_t uncorrectedNacc, Double_t vtxZ, Double_t refMult)
Int_t fConfiguration
Ds decay option (generation level)
Int_t CheckReflexion(Char_t isSign)
Bool_t IsEventSelected(AliVEvent *event)
Int_t fLctoV0bachelorOption
resonant deacy channel to be used if the CF should be run on resonant channels only ...
Bool_t fRejectIfNoQuark
selection flag for fakes tracks
void SetUsePID(Bool_t flag=kTRUE)
void SetPtWeightsFromFONLL5andBAMPSoverLHC16i2abc()
void SetPtWeightsFromFONLL276overLHC12a17b()
TH1I * fHistEventsProcessed
pointer to the CF manager
virtual void PrintAll() const
TString fDauNames
D meson name.
void SetPtWeightsFromFONLL7overLHC10f7aLc()
Bool_t RecoAcceptStep(AliESDtrackCuts **trackCuts) const
void SetPtWeightsFromFONLL7overLHC13e2fix()
void SetPtWeightsFromFONLL5andTAMUoverLHC16i2abc()
Int_t fCountRecoPID
Reco particle found that satisfy cuts in PPR.
Bool_t fUseMultRatioAsWeight
flag to decide whether to use Ncharged weights != 1 when filling the container or not ...
static Int_t GetGeneratedPhysicalPrimariesInEtaRange(TClonesArray *arrayMC, Double_t mineta, Double_t maxeta)
void SetPtWeightsFromFONLL5overLHC13d3()
Bool_t IsSelected(TObject *obj)
Int_t fEvents
Reco PID step.
Bool_t MCRefitStep(AliAODEvent *aodEvent, AliESDtrackCuts **trackCuts) const
Bool_t fUseCutsForTMVA
flag to use additional cuts needed for Lc –> K0S + p, TMVA
Int_t fDecayChannel
n. of events
Bool_t GetIsUsePID() const
void SetPtWeightsFromFONLL5overLHC13d3Lc()
void UserExec(Option_t *option)
Int_t fCountRecoPPR
Reco particle found that satisfy cuts in n. of ITS clusters.
Bool_t fUseMCVertex
flag to remove events not geenrated with PYTHIA
void SetTriggerClass(TString trclass0, TString trclass1="")
Int_t fDsOption
flag to use MC vertex (useful when runnign in pp)
Bool_t fUseNchWeight
flag to decide whether to use z-vtx weights != 1 when filling the container or not ...
Class to compute variables for correction framework // for 3-body decays of D mesons (D+...
virtual Bool_t IsInFiducialAcceptance(Double_t, Double_t) const
void SetPtWeightsFromFONLL7overLHC10f6a()
TProfile * GetEstimatorHistogram(const AliVEvent *event)
void SetConfiguration(Int_t configuration)
void SetMultiplicity(Double_t multiplicity)
void SetMCPrimaryVertex(Double_t zMCVertex)
Int_t fMultiplicityEstimator
PDG code.
void UserCreateOutputObjects()
ANALYSIS FRAMEWORK STUFF to loop on data and fill output objects.
TH1F * fHistoMCNch
histogram with measured Nch distribution (pp 7 TeV)
TProfile * fMultEstimatorAvg[4]
Definition of the multiplicity estimator: kNtrk10=0, kNtrk10to16=1, kVZERO=2.
void SetPtWeightsFromFONLL276overLHC10f6a()
Double_t fWeight
flag to decide whether to use pt-weights != 1 when filling the container or not
TH1F * fHistoMeasNch
user-defined histogram to calculate the Pt weights
Bool_t ProcessLctoV0Bachelor(Int_t returnCodeDs) const
Class for HF corrections as a function of many variables and step.
TList * OpenFile(const char *fname)