39 #include <TParticle.h> 40 #include <TParticlePDG.h> 44 #include <THnSparse.h> 47 #include <TDatabasePDG.h> 48 #include <AliAnalysisDataSlot.h> 49 #include <AliAnalysisDataContainer.h> 50 #include "AliMCEvent.h" 51 #include "AliAnalysisManager.h" 52 #include "AliAODMCHeader.h" 53 #include "AliAODHandler.h" 55 #include "AliExternalTrackParam.h" 56 #include "AliAODVertex.h" 57 #include "AliAODRecoDecay.h" 61 #include "AliESDtrack.h" 62 #include "AliAODTrack.h" 64 #include "AliAODMCParticle.h" 65 #include "AliAnalysisTaskSE.h" 69 #include "AliInputEventHandler.h" 70 #include "AliESDtrackCuts.h" 71 #include "AliNeutralTrackParam.h" 91 fUseOnTheFlyV0(kFALSE),
93 fIsEventSelected(kFALSE),
94 fWriteVariableTree(kFALSE),
96 fCandidateVariables(),
99 fAdditionalChecks(kFALSE),
100 fFillSubSampleHist(kFALSE),
101 fTrackRotation(kFALSE),
103 fMinAngleForRot(5*TMath::Pi()/6),
104 fMaxAngleForRot(7*TMath::Pi()/6),
108 fPtMinToFillTheTree(0.),
109 fPtMaxToFillTheTree(999.),
110 fUseTPCPIDtoFillTree(kFALSE),
112 fCheckOrigin(kFALSE),
113 fReconstructSecVtx(kFALSE),
114 fDoSingleAnalysisForSystK0SP(0),
115 fGenerateBGEventFromTracks(0),
116 fNumberOfEventsForMixing (10),
129 Double_t mLcPDG = TDatabasePDG::Instance()->GetParticle(4122)->Mass();
132 for(
Int_t i=0;i<100;i++){
186 Info(
"AliAnalysisTaskSELc2V0bachelor",
"Calling Constructor");
193 for(
Int_t i=0;i<100;i++){
197 Double_t mLcPDG = TDatabasePDG::Instance()->GetParticle(4122)->Mass();
201 DefineOutput(1,TList::Class());
202 DefineOutput(2,AliNormalizationCounter::Class());
203 DefineOutput(3,AliRDHFCutsLctoV0::Class());
204 if (!writeVariableTree) {
205 DefineOutput(4,TList::Class());
206 DefineOutput(5,TList::Class());
208 DefineOutput(6,TList::Class());
212 DefineOutput(4,TTree::Class());
224 Info(
"~AliAnalysisTaskSELc2V0bachelor",
"Calling Destructor");
270 if (fDebug > 1) AliInfo(
"Init");
282 AliError(
"NO EVENT FOUND!");
293 if (matchingAODdeltaAODlevel<0 || (matchingAODdeltaAODlevel==0 &&
fAODProtection==1)) {
300 TClonesArray *arrayLctopKos=0;
302 if (!aodEvent && AODEvent() && IsStandardAOD()) {
305 aodEvent =
dynamic_cast<AliAODEvent*
> (AODEvent());
308 AliAODHandler* aodHandler = (AliAODHandler*)
309 ((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler());
311 if (aodHandler->GetExtensions()) {
312 AliAODExtension *ext = (AliAODExtension*)aodHandler->GetExtensions()->FindObject(
"AliAOD.VertexingHF.root");
314 arrayLctopKos=(TClonesArray*)aodFromExt->GetList()->FindObject(
"CascadesHF");
317 arrayLctopKos=(TClonesArray*)aodEvent->GetList()->FindObject(
"CascadesHF");
326 fVtx1 = (AliAODVertex*)aodEvent->GetPrimaryVertex();
337 if (TMath::Abs(
fBzkG)<0.001)
return;
340 if (!arrayLctopKos) {
341 AliInfo(
"Could not find array of HF cascades, skipping the event");
344 if (arrayLctopKos->GetEntriesFast()) {
345 AliInfo(Form(
"Found %d cascades",arrayLctopKos->GetEntriesFast()));
351 TClonesArray *mcArray = 0;
352 AliAODMCHeader *mcHeader=0;
356 mcArray =
dynamic_cast<TClonesArray*
>(aodEvent->FindListObject(AliAODMCParticle::StdBranchName()));
358 AliError(
"Could not find Monte-Carlo in AOD");
364 mcHeader = (AliAODMCHeader*)aodEvent->GetList()->FindObject(AliAODMCHeader::StdBranchName());
366 AliError(
"AliAnalysisTaskSELc2V0bachelor::UserExec: MC header branch not found!\n");
371 Double_t zMCVertex = mcHeader->GetVtxZ();
373 AliDebug(2,Form(
"Event rejected: abs(zVtxMC)=%f > fAnalCuts->GetMaxVtxZ()=%f",zMCVertex,
fAnalCuts->
GetMaxVtxZ()));
380 Int_t runnumber = aodEvent->GetRunNumber();
381 if (aodEvent->GetTriggerMask() == 0 && (runnumber >= 195344 && runnumber <= 195677)){
382 AliDebug(3,
"Event rejected because of null trigger mask");
388 if (
fVtx1->GetNContributors()>0)
407 Int_t nSelectedAnal = 0;
440 AliAnalysisTaskSE::Terminate();
444 AliError(
"fOutput not available");
452 AliError(
"fOutputAll not available");
458 AliError(
"fOutputPIDBach not available");
465 AliError(
"fOutputPIDBachTR not available");
473 AliError(
"fVariablesTree not available");
483 AliInfo(Form(
"CreateOutputObjects of task %s\n", GetName()));
528 for(
Int_t i=0;i<11;i++){
533 for(
Int_t i=0;i<11;i++){
564 TClonesArray *mcArray,
565 Int_t &nSelectedAnal,
571 Int_t pdgCand = 4122;
572 Int_t pdgDgLctoV0bachelor[2]={2212,310};
573 Int_t pdgDgV0toDaughters[2]={211,211};
576 Int_t nCascades= arrayLctopKos->GetEntriesFast();
578 AliInfo(
"Could not find cascades, skipping the event");
582 for (
Int_t iLctopK0S = 0; iLctopK0S<nCascades; iLctopK0S++) {
584 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(0);
589 AliDebug(2,Form(
"Cascade %d doens't exist, skipping",iLctopK0S));
594 AliDebug(2,Form(
"Cascade %d is not flagged as Lc candidate",iLctopK0S));
613 if (!lcK0Spr->GetSecondaryVtx()) {
614 AliInfo(
"No secondary vertex");
618 if (lcK0Spr->GetNDaughters()!=2) {
619 AliDebug(2,Form(
"Cascade %d has not 2 daughters (nDaughters=%d)",iLctopK0S,lcK0Spr->GetNDaughters()));
623 if ( (
fSign == 0 && lcK0Spr->Charge()<0) ||
624 (
fSign == 1 && lcK0Spr->Charge()>0) ) {
625 AliDebug(2,Form(
"Charge of the cascade %d is different with respect to the required one",iLctopK0S));
629 AliAODv0 * v0part =
dynamic_cast<AliAODv0*
>(lcK0Spr->
Getv0());
630 AliAODTrack * bachPart =
dynamic_cast<AliAODTrack*
>(lcK0Spr->
GetBachelor());
631 if (!v0part || !bachPart) {
632 AliDebug(2,Form(
"Cascade %d has no V0 or no bachelor object",iLctopK0S));
636 if (!v0part->GetSecondaryVtx()) {
637 AliDebug(2,Form(
"No secondary vertex for V0 by cascade %d",iLctopK0S));
641 if (v0part->GetNDaughters()!=2) {
642 AliDebug(2,Form(
"current V0 has not 2 daughters (onTheFly=%d, nDaughters=%d)",v0part->GetOnFlyStatus(),v0part->GetNDaughters()));
648 if (!v0Neg || !v0Pos) {
649 AliDebug(2,Form(
"V0 by cascade %d has no V0positive of V0negative object",iLctopK0S));
653 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(1);
655 if (v0Pos->Charge() == v0Neg->Charge())
continue;
657 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(2);
667 Int_t mcLabel = lcK0Spr->
MatchToMC(pdgCand,pdgDgLctoV0bachelor[1],pdgDgLctoV0bachelor,pdgDgV0toDaughters,mcArray,kTRUE);
669 AliDebug(2,Form(
" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~cascade number %d (total cascade number = %d)", iLctopK0S,nCascades));
671 AliAODMCParticle *partLc =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(mcLabel));
673 pdgCode = partLc->GetPdgCode();
674 if (pdgCode<0) AliDebug(2,Form(
" ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ MClabel=%d ~~~~~~~~~~ pdgCode=%d", mcLabel, pdgCode));
675 pdgCode = TMath::Abs(pdgCode);
681 }
else if (pdgMom == 5) {
685 if (isThereaQuark<=0) originLc=3;
690 AliDebug(2,Form(
"No MC candidate (cascade number %d -total cascade number = %d -)", iLctopK0S,nCascades));
698 nSelectedAnal, cutsAnal,
706 AliDebug(2, Form(
"Found %d Reco particles that are Lc!!", nSelectedAnal));
714 Int_t &nSelectedAnal,
716 TClonesArray *mcArray,
725 AliAODTrack *bachelor = (AliAODTrack*)part->
GetBachelor();
728 AliAODv0 * v0part = (AliAODv0*)part->
Getv0();
729 Bool_t onFlyV0 = v0part->GetOnFlyStatus();
779 Double_t invmassK0S = v0part->MassK0Short();
780 Double_t mk0sPDG = TDatabasePDG::Instance()->GetParticle(310)->Mass();
783 if ( !onFlyV0 && isInCascadeWindow &&
799 Int_t pdgCand1 = 4122;
800 Int_t pdgDgLctoV0bachelor1[2]={2212,310};
801 Int_t pdgDgV0toDaughters1[2]={211,211};
802 Int_t mcLabel1=part->
MatchToMC(pdgCand1,pdgDgLctoV0bachelor1[1],pdgDgLctoV0bachelor1,pdgDgV0toDaughters1,mcArray,kTRUE);
803 AliDebug(2,Form(
" Found true MC candidate: Lc->pK0S(%d) - onTheFly=%1d",mcLabel1,onFlyV0));
824 fillthis=
"histArmPodK0S";
827 fillthis=
"histArmPodLc";
836 fillthis=
"histArmPodK0SOffline";
839 fillthis=
"histArmPodLcOffline";
843 if (isCandidateSelectedCuts) {
844 fillthis=
"histoprotonBachSigmaVspTOF";
845 ((
TH2F*)(
fOutput->FindObject(fillthis)))->Fill(momBach,nSigmaTOFpr);
846 fillthis=
"histoprotonBachSigmaVspTPC";
847 ((
TH2F*)(
fOutput->FindObject(fillthis)))->Fill(momBach,nSigmaTPCpr);
855 fillthis=
"histArmPodK0SSgn";
858 fillthis=
"histArmPodLcSgn";
880 fillthis=
"histArmPodK0SOfflineSgn";
883 fillthis=
"histArmPodLcOfflineSgn";
886 if (isCandidateSelectedCuts) {
887 fillthis=
"histoprotonBachSigmaVspTOFsgn";
888 ((
TH2F*)(
fOutput->FindObject(fillthis)))->Fill(momBach,nSigmaTOFpr);
889 fillthis=
"histoprotonBachSigmaVspTPCsgn";
890 ((
TH2F*)(
fOutput->FindObject(fillthis)))->Fill(momBach,nSigmaTPCpr);
914 fillthis=
"histArmPodK0SBkg";
917 fillthis=
"histArmPodLcBkg";
926 fillthis=
"histArmPodK0SOfflineBkg";
929 fillthis=
"histArmPodLcOfflineBkg";
933 if (isCandidateSelectedCuts) {
934 fillthis=
"histoprotonBachSigmaVspTOFbkg";
935 ((
TH2F*)(
fOutput->FindObject(fillthis)))->Fill(momBach,nSigmaTOFpr);
936 fillthis=
"histoprotonBachSigmaVspTPCbkg";
937 ((
TH2F*)(
fOutput->FindObject(fillthis)))->Fill(momBach,nSigmaTPCpr);
951 Double_t mLcPDG = TDatabasePDG::Instance()->GetParticle(4122)->Mass();
952 Double_t mK0SPDG = TDatabasePDG::Instance()->GetParticle(310)->Mass();
953 Double_t mMinLambdaPDG = TDatabasePDG::Instance()->GetParticle(2212)->Mass()+
954 TDatabasePDG::Instance()->GetParticle(211)->Mass();
955 Double_t mLPDG = TDatabasePDG::Instance()->GetParticle(3122)->Mass();
957 TString nameHisto=
" ", nameHistoSgn=
" ", nameHistoBkg=
" ";
958 TString titleHisto=
" ", titleHistoSgn=
" ", titleHistoBkg=
" ";
977 binLimpTprong[ 0]= 0.0;
978 binLimpTprong[ 1]= 0.1;
979 binLimpTprong[ 2]= 0.2;
980 binLimpTprong[ 3]= 0.3;
981 binLimpTprong[ 4]= 0.4;
982 binLimpTprong[ 5]= 0.5;
983 binLimpTprong[ 6]= 0.6;
984 binLimpTprong[ 7]= 0.7;
985 binLimpTprong[ 8]= 0.8;
986 binLimpTprong[ 9]= 0.9;
987 binLimpTprong[10]= 1.0;
988 binLimpTprong[11]= 1.2;
989 binLimpTprong[12]= 1.4;
990 binLimpTprong[13]= 1.6;
991 binLimpTprong[14]= 1.8;
992 binLimpTprong[15]= 2.0;
993 binLimpTprong[16]= 2.2;
994 binLimpTprong[17]= 2.4;
995 binLimpTprong[18]= 2.6;
996 binLimpTprong[19]= 2.8;
997 binLimpTprong[20]= 3.0;
998 binLimpTprong[21]= 3.5;
999 binLimpTprong[22]= 4.0;
1000 binLimpTprong[23]= 4.5;
1001 binLimpTprong[24]= 5.0;
1002 binLimpTprong[25]= 5.5;
1003 binLimpTprong[26]= 6.0;
1004 binLimpTprong[27]= 6.5;
1005 binLimpTprong[28]= 7.0;
1006 binLimpTprong[29]= 7.5;
1007 binLimpTprong[30]= 8.0;
1008 binLimpTprong[31]= 9.0;
1009 binLimpTprong[32]=10.0;
1010 binLimpTprong[33]=11.0;
1011 binLimpTprong[34]=12.0;
1012 binLimpTprong[35]=13.0;
1013 binLimpTprong[36]=14.0;
1014 binLimpTprong[37]=15.0;
1015 binLimpTprong[38]=20.0;
1016 binLimpTprong[39]=25.0;
1017 binLimpTprong[40]=30.0;
1018 binLimpTprong[41]=35.0;
1023 nameHisto=
"histK0SMass";
1024 titleHisto=
"K^{0}_{S} invariant mass VS p_{T}; p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(#pi^{+},#pi^{-}) [GeV/c^{2}]; Entries";
1025 TH2F* spectrumK0SMass =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,mK0SPDG-0.050,mK0SPDG+0.050);
1028 nameHisto=
"histLcMassByK0S";
1029 titleHisto=
"#Lambda_{c} invariant mass (by K^{0}_{S}) vs p_{T}; m_{inv}(p,K^{0}_{S}) [GeV/c^{2}]; p_{T}(#Lambda_{c}) [GeV/c]";
1030 TH2F* spectrumLcMassByK0S =
new TH2F(nameHisto.Data(),titleHisto.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
1032 nameHisto=
"histpK0Svsp";
1033 titleHisto=
"p(K^{0}_{S}) vs p(p); p(p) [GeV/c]; p(K^{0}_{S}) [GeV/c]";
1034 TH2F* momentumDistributionK0Svsp =
new TH2F(nameHisto.Data(),titleHisto.Data(),41,binLimpTprong,41,binLimpTprong);
1036 nameHisto=
"histArmPodK0S";
1037 titleHisto=
"V0-candidate Armenteros-Podolanski distribution; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1038 TH2F* armenterosPodK0S =
new TH2F(nameHisto.Data(),titleHisto.Data(),200,-1.,1.,300,0.,0.3);
1040 nameHisto=
"histArmPodLc";
1041 titleHisto=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1042 TH2F* armenterosPodLc =
new TH2F(nameHisto.Data(),titleHisto.Data(),200,-4.,4.,800,0.,1.6);
1044 TH2F* allspectrumK0SMass = (
TH2F*)spectrumK0SMass->Clone();
1045 TH2F* allspectrumLcMassByK0S = (
TH2F*)spectrumLcMassByK0S->Clone();
1046 TH2F* allmomentumDistributionK0Svsp = (
TH2F*)momentumDistributionK0Svsp->Clone();
1047 TH2F* allArmenterosPodK0S = (
TH2F*)armenterosPodK0S->Clone();
1048 TH2F* allArmenterosPodLc = (
TH2F*)armenterosPodLc->Clone();
1050 TH2F* pidBachspectrumK0SMass = (
TH2F*)spectrumK0SMass->Clone();
1051 TH2F* pidBachspectrumLcMassByK0S = (
TH2F*)spectrumLcMassByK0S->Clone();
1052 TH2F* pidBachmomentumDistributionK0Svsp = (
TH2F*)momentumDistributionK0Svsp->Clone();
1053 TH2F* pidBachArmenterosPodK0S = (
TH2F*)armenterosPodK0S->Clone();
1054 TH2F* pidBachArmenterosPodLc = (
TH2F*)armenterosPodLc->Clone();
1058 fOutputAll->Add(allmomentumDistributionK0Svsp);
1068 nameHisto=
"histArmPodK0S0";
1069 titleHisto=
"V0-candidate Armenteros-Podolanski distribution; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1070 TH2F* armenterosPodK0S0 =
new TH2F(nameHisto.Data(),titleHisto.Data(),200,-1.,1.,300,0.,0.3);
1071 nameHisto=
"histArmPodLc0";
1072 titleHisto=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1073 TH2F* armenterosPodLc0 =
new TH2F(nameHisto.Data(),titleHisto.Data(),200,-4.,4.,800,0.,1.6);
1079 TH2F* pidBachTRspectrumLcMassByK0S = (
TH2F*)spectrumLcMassByK0S->Clone();
1085 nameHisto=
"histptK0S";
1086 titleHisto=
"p_{T}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(K^{0}_{S}) [GeV/c]; Entries";
1087 TH2F* ptK0S =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,41,binLimpTprong);
1089 nameHisto=
"histptP";
1090 titleHisto=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
1091 TH2F* ptP =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,41,binLimpTprong);
1093 nameHisto=
"histptPip";
1094 titleHisto=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
1095 TH2F* ptPiP =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,41,binLimpTprong);
1097 nameHisto=
"histptPim";
1098 titleHisto=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
1099 TH2F* ptPiM =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,41,binLimpTprong);
1101 nameHisto=
"histLambdaMass";
1102 titleHisto=
"m_{inv}(p,#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(p,#pi^{-}) [GeV/c^{2}]; Entries";
1103 TH2F* massLambda =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1105 nameHisto=
"histLambdaBarMass";
1106 titleHisto=
"m_{inv}(#bar{p},#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(#bar{p},#pi^{+}) [GeV/c^{2}]; Entries";
1107 TH2F* massLambdaBar =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1109 nameHisto=
"histGammaMass";
1110 titleHisto=
"m_{inv}(e^{+},e^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(e^{+},e^{-}) [GeV/c^{2}]; Entries";
1111 TH2F* massGamma =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,100,0.,1.);
1113 nameHisto=
"histD0K0S";
1114 titleHisto=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
1115 TH2F* d0K0S =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,-1.,1.);
1117 nameHisto=
"histD0P";
1118 titleHisto=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
1119 TH2F* d0P =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,-1.,1.);
1121 nameHisto=
"histCosPAK0S";
1122 titleHisto=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
1123 TH2F *cosPAK0S =
new TH2F(nameHisto.Data(),titleHisto.Data(),41,binLimpTprong,100,0.99,1.);
1125 nameHisto=
"histCosThetaProtonCMS";
1126 titleHisto=
"cosien of proton emission angle in Lc rest frame; p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
1127 TH2F *cosThePr =
new TH2F(nameHisto.Data(),titleHisto.Data(),41,binLimpTprong,100,-1.,1.);
1129 nameHisto=
"histResignedD0";
1130 titleHisto=
"Proton d0 with different sign convention; p_{T}(#Lambda_{c}) [GeV/c]; d0 [cm]; Entries";
1131 TH2F *resignedD0 =
new TH2F(nameHisto.Data(),titleHisto.Data(),41,binLimpTprong,100,-0.1,0.1);
1133 TH2F* allptK0S = (
TH2F*)ptK0S->Clone();
1134 TH2F* allptP = (
TH2F*)ptP->Clone();
1135 TH2F* allptPiP = (
TH2F*)ptPiP->Clone();
1136 TH2F* allptPiM = (
TH2F*)ptPiM->Clone();
1137 TH2F* allmassLambda = (
TH2F*)massLambda->Clone();
1138 TH2F* allmassLambdaBar = (
TH2F*)massLambdaBar->Clone();
1139 TH2F* allmassGamma = (
TH2F*)massGamma->Clone();
1140 TH2F* alld0K0S = (
TH2F*)d0K0S->Clone();
1141 TH2F* alld0P = (
TH2F*)d0P->Clone();
1142 TH2F* allcosPAK0S = (
TH2F*)cosPAK0S->Clone();
1143 TH2F* allcosThePr = (
TH2F*)cosThePr->Clone();
1144 TH2F* allresignedD0 = (
TH2F*)resignedD0->Clone();
1146 TH2F* pidptK0S = (
TH2F*)ptK0S->Clone();
1147 TH2F* pidptP = (
TH2F*)ptP->Clone();
1148 TH2F* pidptPiP = (
TH2F*)ptPiP->Clone();
1149 TH2F* pidptPiM = (
TH2F*)ptPiM->Clone();
1150 TH2F* pidmassLambda = (
TH2F*)massLambda->Clone();
1151 TH2F* pidmassLambdaBar = (
TH2F*)massLambdaBar->Clone();
1152 TH2F* pidmassGamma = (
TH2F*)massGamma->Clone();
1153 TH2F* pidd0K0S = (
TH2F*)d0K0S->Clone();
1154 TH2F* pidd0P = (
TH2F*)d0P->Clone();
1155 TH2F* pidcosPAK0S = (
TH2F*)cosPAK0S->Clone();
1156 TH2F* pidcosThePr = (
TH2F*)cosThePr->Clone();
1157 TH2F* pidresignedD0 = (
TH2F*)resignedD0->Clone();
1187 TH2F* pidTRptK0S = (
TH2F*)ptK0S->Clone();
1188 TH2F* pidTRptP = (
TH2F*)ptP->Clone();
1189 TH2F* pidTRptPiP = (
TH2F*)ptPiP->Clone();
1190 TH2F* pidTRptPiM = (
TH2F*)ptPiM->Clone();
1191 TH2F* pidTRmassLambda = (
TH2F*)massLambda->Clone();
1192 TH2F* pidTRmassLambdaBar = (
TH2F*)massLambdaBar->Clone();
1193 TH2F* pidTRmassGamma = (
TH2F*)massGamma->Clone();
1194 TH2F* pidTRcosPAK0S = (
TH2F*)cosPAK0S->Clone();
1195 TH2F* pidTRcosThePr = (
TH2F*)cosThePr->Clone();
1196 TH2F* pidTRresignedD0 = (
TH2F*)resignedD0->Clone();
1213 nameHisto=
"histK0SMassOffline";
1214 titleHisto=
"K^{0}_{S} invariant mass VS p_{T}; p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(#pi^{+},#pi^{-}) [GeV/c^{2}]; Entries";
1215 TH2F* spectrumK0SMassOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,mK0SPDG-0.050,mK0SPDG+0.050);
1218 nameHisto=
"histLcMassByK0SOffline";
1219 titleHisto=
"#Lambda_{c} invariant mass (by K^{0}_{S}) vs p_{T}; m_{inv}(p,K^{0}_{S}) [GeV/c^{2}]; p_{T}(#Lambda_{c}) [GeV/c]";
1220 TH2F* spectrumLcMassOfflineByK0S =
new TH2F(nameHisto.Data(),titleHisto.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
1222 nameHisto=
"histpK0SvspOffline";
1223 titleHisto=
"p(K^{0}_{S}) vs p(p); p(p) [GeV/c]; p(K^{0}_{S}) [GeV/c]";
1224 TH2F* momentumDistributionK0SvspOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),41,binLimpTprong,41,binLimpTprong);
1226 nameHisto=
"histArmPodK0SOffline";
1227 titleHisto=
"V0-candidate Armenteros-Podolanski distribution; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1228 TH2F* armenterosPodK0SOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),200,-1.,1.,300,0.,0.3);
1230 nameHisto=
"histArmPodLcOffline";
1231 titleHisto=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1232 TH2F* armenterosPodLcOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),200,-4.,4.,800,0.,1.6);
1234 TH2F* allspectrumK0SMassOffline = (
TH2F*)spectrumK0SMassOffline->Clone();
1235 TH2F* allspectrumLcMassOfflineByK0S = (
TH2F*)spectrumLcMassOfflineByK0S->Clone();
1236 TH2F* allmomentumDistributionK0SvspOffline = (
TH2F*)momentumDistributionK0SvspOffline->Clone();
1237 TH2F* allArmenterosPodK0SOffline = (
TH2F*)armenterosPodK0SOffline->Clone();
1238 TH2F* allArmenterosPodLcOffline = (
TH2F*)armenterosPodLcOffline->Clone();
1240 TH2F* pidBachspectrumK0SMassOffline = (
TH2F*)spectrumK0SMassOffline->Clone();
1241 TH2F* pidBachspectrumLcMassOfflineByK0S = (
TH2F*)spectrumLcMassOfflineByK0S->Clone();
1242 TH2F* pidBachmomentumDistributionK0SvspOffline = (
TH2F*)momentumDistributionK0SvspOffline->Clone();
1243 TH2F* pidBachArmenterosPodK0SOffline = (
TH2F*)armenterosPodK0SOffline->Clone();
1244 TH2F* pidBachArmenterosPodLcOffline = (
TH2F*)armenterosPodLcOffline->Clone();
1247 fOutputAll->Add(allspectrumLcMassOfflineByK0S);
1248 fOutputAll->Add(allmomentumDistributionK0SvspOffline);
1259 nameHisto=
"histLcMassByK0SSubSampleOffline";
1260 titleHisto=
"#Lambda_{c} invariant mass (by K^{0}_{S}) vs p_{T} vs Sub ID";
1261 Int_t bins_subsample[3]= {1000,24,25};
1262 Double_t xmin_subsample[3]={mLcPDG-0.25,0,-0.5};
1263 Double_t xmax_subsample[3]={mLcPDG+0.25,24.,24.5};
1264 THnSparse *spectrumLcMassOfflineByK0SSubSample =
new THnSparseF(nameHisto.Data(),titleHisto.Data(),3,bins_subsample,xmin_subsample,xmax_subsample);
1269 nameHisto=
"histLcMassBGByK0SOffline";
1270 titleHisto=
"#Lambda_{c} invariant mass (by K^{0}_{S}) vs p_{T}; m_{inv}(p,K^{0}_{S}) [GeV/c^{2}]; p_{T}(#Lambda_{c}) [GeV/c]";
1271 TH2F* spectrumLcMassBGOfflineByK0S =
new TH2F(nameHisto.Data(),titleHisto.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
1275 nameHisto=
"histArmPodK0SOffline0";
1276 titleHisto=
"V0-candidate Armenteros-Podolanski distribution; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1277 TH2F* armenterosPodK0SOffline0 =
new TH2F(nameHisto.Data(),titleHisto.Data(),200,-1.,1.,300,0.,0.3);
1278 nameHisto=
"histArmPodLcOffline0";
1279 titleHisto=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1280 TH2F* armenterosPodLcOffline0 =
new TH2F(nameHisto.Data(),titleHisto.Data(),200,-4.,4.,800,0.,1.6);
1285 TH2F* pidBachTRspectrumLcMassOfflineByK0S = (
TH2F*)spectrumLcMassOfflineByK0S->Clone();
1292 nameHisto=
"histptK0SOffline";
1293 titleHisto=
"p_{T}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(K^{0}_{S}) [GeV/c]; Entries";
1294 TH2F* ptK0SOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,41,binLimpTprong);
1296 nameHisto=
"histptPOffline";
1297 titleHisto=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
1298 TH2F* ptPOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,41,binLimpTprong);
1300 nameHisto=
"histptPipOffline";
1301 titleHisto=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
1302 TH2F* ptPiPOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,41,binLimpTprong);
1304 nameHisto=
"histptPimOffline";
1305 titleHisto=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
1306 TH2F* ptPiMOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,41,binLimpTprong);
1308 nameHisto=
"histLambdaMassOffline";
1309 titleHisto=
"m_{inv}(p,#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(p,#pi^{-}) [GeV/c^{2}]; Entries";
1310 TH2F* massLambdaOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1312 nameHisto=
"histLambdaBarMassOffline";
1313 titleHisto=
"m_{inv}(#bar{p},#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(#bar{p},#pi^{+}) [GeV/c^{2}]; Entries";
1314 TH2F* massLambdaBarOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1316 nameHisto=
"histGammaMassOffline";
1317 titleHisto=
"m_{inv}(e^{+},e^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(e^{+},e^{-}) [GeV/c^{2}]; Entries";
1318 TH2F* massGammaOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,100,0.,1.);
1320 nameHisto=
"histD0K0SOffline";
1321 titleHisto=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
1322 TH2F* d0K0SOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,-1.,1.);
1324 nameHisto=
"histD0POffline";
1325 titleHisto=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
1326 TH2F* d0POffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,-1.,1.);
1328 nameHisto=
"histCosPAK0SOffline";
1329 titleHisto=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
1330 TH2F *cosPAK0SOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),41,binLimpTprong,100,0.99,1.);
1332 nameHisto=
"histCosThetaProtonCMSOffline";
1333 titleHisto=
"cosien of proton emission angle in Lc rest frame; p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
1334 TH2F *cosThePrOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),41,binLimpTprong,100,-1.,1.);
1336 nameHisto=
"histResignedD0Offline";
1337 titleHisto=
"Proton d0 with different sign convention; p_{T}(#Lambda_{c}) [GeV/c]; d0 [cm]; Entries";
1338 TH2F *resignedD0Offline =
new TH2F(nameHisto.Data(),titleHisto.Data(),41,binLimpTprong,100,-0.1,0.1);
1341 TH2F* allptK0SOffline = (
TH2F*)ptK0SOffline->Clone();
1342 TH2F* allptPOffline = (
TH2F*)ptPOffline->Clone();
1343 TH2F* allptPiPOffline = (
TH2F*)ptPiPOffline->Clone();
1344 TH2F* allptPiMOffline = (
TH2F*)ptPiMOffline->Clone();
1345 TH2F* allmassLambdaOffline = (
TH2F*)massLambdaOffline->Clone();
1346 TH2F* allmassLambdaBarOffline = (
TH2F*)massLambdaBarOffline->Clone();
1347 TH2F* allmassGammaOffline = (
TH2F*)massGammaOffline->Clone();
1348 TH2F* alld0K0SOffline = (
TH2F*)d0K0SOffline->Clone();
1349 TH2F* alld0POffline = (
TH2F*)d0POffline->Clone();
1350 TH2F* allcosPAK0SOffline = (
TH2F*)cosPAK0SOffline->Clone();
1351 TH2F* allcosThePrOffline = (
TH2F*)cosThePrOffline->Clone();
1352 TH2F* allresignedD0Offline = (
TH2F*)resignedD0Offline->Clone();
1354 TH2F* pidptK0SOffline = (
TH2F*)ptK0SOffline->Clone();
1355 TH2F* pidptPOffline = (
TH2F*)ptPOffline->Clone();
1356 TH2F* pidptPiPOffline = (
TH2F*)ptPiPOffline->Clone();
1357 TH2F* pidptPiMOffline = (
TH2F*)ptPiMOffline->Clone();
1358 TH2F* pidmassLambdaOffline = (
TH2F*)massLambdaOffline->Clone();
1359 TH2F* pidmassLambdaBarOffline = (
TH2F*)massLambdaBarOffline->Clone();
1360 TH2F* pidmassGammaOffline = (
TH2F*)massGammaOffline->Clone();
1361 TH2F* pidd0K0SOffline = (
TH2F*)d0K0SOffline->Clone();
1362 TH2F* pidd0POffline = (
TH2F*)d0POffline->Clone();
1363 TH2F* pidcosPAK0SOffline = (
TH2F*)cosPAK0SOffline->Clone();
1364 TH2F* pidcosThePrOffline = (
TH2F*)cosThePrOffline->Clone();
1365 TH2F* pidresignedD0Offline = (
TH2F*)resignedD0Offline->Clone();
1395 TH2F* pidTRptK0SOffline = (
TH2F*)ptK0SOffline->Clone();
1396 TH2F* pidTRptPOffline = (
TH2F*)ptPOffline->Clone();
1397 TH2F* pidTRptPiPOffline = (
TH2F*)ptPiPOffline->Clone();
1398 TH2F* pidTRptPiMOffline = (
TH2F*)ptPiMOffline->Clone();
1399 TH2F* pidTRmassLambdaOffline = (
TH2F*)massLambdaOffline->Clone();
1400 TH2F* pidTRmassLambdaBarOffline = (
TH2F*)massLambdaBarOffline->Clone();
1401 TH2F* pidTRmassGammaOffline = (
TH2F*)massGammaOffline->Clone();
1402 TH2F* pidTRcosPAK0SOffline = (
TH2F*)cosPAK0SOffline->Clone();
1403 TH2F* pidTRcosThePrOffline = (
TH2F*)cosThePrOffline->Clone();
1404 TH2F* pidTRresignedD0Offline = (
TH2F*)resignedD0Offline->Clone();
1426 nameHistoSgn=
"histK0SMassSgn";
1427 nameHistoBkg=
"histK0SMassBkg";
1428 titleHistoSgn=
"K^{0}_{S} - sgn: invariant mass VS p_{T} - MC; p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(#pi^{+},#pi^{-}) [GeV/c^{2}]; Entries";
1429 titleHistoBkg=
"K^{0}_{S} - bkg: invariant mass VS p_{T} - MC; p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(#pi^{+},#pi^{-}) [GeV/c^{2}]; Entries";
1430 TH2F* spectrumK0SMassSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,mK0SPDG-0.050,mK0SPDG+0.050);
1431 TH2F* spectrumK0SMassBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,mK0SPDG-0.050,mK0SPDG+0.050);
1433 nameHistoSgn=
"histLcMassByK0SSgn";
1434 nameHistoBkg=
"histLcMassByK0SBkg";
1435 titleHistoSgn=
"#Lambda_{c} - sgn: invariant mass (by K^{0}_{S}) vs p_{T} - MC; m_{inv}(p,K^{0}_{S}) [GeV/c^{2}]; p_{T}(#Lambda_{c}) [GeV/c]";
1436 titleHistoBkg=
"#Lambda_{c} - bkg: invariant mass (by K^{0}_{S}) vs p_{T} - MC; m_{inv}(p,K^{0}_{S}) [GeV/c^{2}]; p_{T}(#Lambda_{c}) [GeV/c]";
1437 TH2F* spectrumLcMassByK0SSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
1438 TH2F* spectrumLcMassByK0SBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
1440 nameHistoSgn=
"histpK0SvspSgn";
1441 nameHistoBkg=
"histpK0SvspBkg";
1442 titleHistoSgn=
"#Lambda_{c} - sgn: K^{0}_{S} vs p Total Momentum Distribution - MC; p(p) [GeV/c]; p(K^{0}_{S}) [GeV/c]";
1443 titleHistoBkg=
"#Lambda_{c} - bkg: K^{0}_{S} vs p Total Momentum Distribution - MC; p(p) [GeV/c]; p(K^{0}_{S}) [GeV/c]";
1444 TH2F* momentumDistributionK0SvspSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),41,binLimpTprong,41,binLimpTprong);
1445 TH2F* momentumDistributionK0SvspBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),41,binLimpTprong,41,binLimpTprong);
1448 nameHistoSgn=
"histArmPodK0SSgn";
1449 nameHistoBkg=
"histArmPodK0SBkg";
1450 titleHistoSgn=
"V0-candidate Armenteros-Podolanski distribution (sgn); #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1451 titleHistoBkg=
"V0-candidate Armenteros-Podolanski distribution (bkg); #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1452 TH2F* armenterosPodK0SSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),200,-1.,1.,300,0.,0.3);
1453 TH2F* armenterosPodK0SBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),200,-1.,1.,300,0.,0.3);
1455 nameHistoSgn=
"histArmPodLcSgn";
1456 nameHistoBkg=
"histArmPodLcBkg";
1457 titleHistoSgn=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution (sgn); #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1458 titleHistoBkg=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution (bkg); #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1459 TH2F* armenterosPodLcSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),200,-4.,4.,800,0.,1.6);
1460 TH2F* armenterosPodLcBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),200,-4.,4.,800,0.,1.6);
1462 TH2F* allspectrumK0SMassSgn = (
TH2F*)spectrumK0SMassSgn->Clone();
1463 TH2F* allspectrumK0SMassBkg = (
TH2F*)spectrumK0SMassBkg->Clone();
1464 TH2F* allspectrumLcMassByK0SSgn = (
TH2F*)spectrumLcMassByK0SSgn->Clone();
1465 TH2F* allspectrumLcMassByK0SBkg = (
TH2F*)spectrumLcMassByK0SBkg->Clone();
1466 TH2F* allmomentumDistributionK0SvspSgn = (
TH2F*)momentumDistributionK0SvspSgn->Clone();
1467 TH2F* allmomentumDistributionK0SvspBkg = (
TH2F*)momentumDistributionK0SvspBkg->Clone();
1468 TH2F* allArmenterosPodK0SSgn = (
TH2F*)armenterosPodK0SSgn->Clone();
1469 TH2F* allArmenterosPodK0SBkg = (
TH2F*)armenterosPodK0SBkg->Clone();
1470 TH2F* allArmenterosPodLcSgn = (
TH2F*)armenterosPodLcSgn->Clone();
1471 TH2F* allArmenterosPodLcBkg = (
TH2F*)armenterosPodLcBkg->Clone();
1473 TH2F* pidBachspectrumK0SMassSgn = (
TH2F*)spectrumK0SMassSgn->Clone();
1474 TH2F* pidBachspectrumK0SMassBkg = (
TH2F*)spectrumK0SMassBkg->Clone();
1475 TH2F* pidBachspectrumLcMassByK0SSgn = (
TH2F*)spectrumLcMassByK0SSgn->Clone();
1476 TH2F* pidBachspectrumLcMassByK0SBkg = (
TH2F*)spectrumLcMassByK0SBkg->Clone();
1477 TH2F* pidBachmomentumDistributionK0SvspSgn = (
TH2F*)momentumDistributionK0SvspSgn->Clone();
1478 TH2F* pidBachmomentumDistributionK0SvspBkg = (
TH2F*)momentumDistributionK0SvspBkg->Clone();
1479 TH2F* pidBachArmenterosPodK0SSgn = (
TH2F*)armenterosPodK0SSgn->Clone();
1480 TH2F* pidBachArmenterosPodK0SBkg = (
TH2F*)armenterosPodK0SBkg->Clone();
1481 TH2F* pidBachArmenterosPodLcSgn = (
TH2F*)armenterosPodLcSgn->Clone();
1482 TH2F* pidBachArmenterosPodLcBkg = (
TH2F*)armenterosPodLcBkg->Clone();
1488 fOutputAll->Add(allmomentumDistributionK0SvspSgn);
1489 fOutputAll->Add(allmomentumDistributionK0SvspBkg);
1506 nameHistoSgn=
"histArmPodK0SSgn0";
1507 nameHistoBkg=
"histArmPodK0SBkg0";
1508 titleHistoSgn=
"V0-candidate Armenteros-Podolanski distribution (sgn); #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1509 titleHistoBkg=
"V0-candidate Armenteros-Podolanski distribution (bkg); #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1510 TH2F* armenterosPodK0SSgn0 =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),200,-1.,1.,300,0.,0.3);
1511 TH2F* armenterosPodK0SBkg0 =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),200,-1.,1.,300,0.,0.3);
1514 nameHistoSgn=
"histArmPodLcSgn0";
1515 nameHistoBkg=
"histArmPodLcBkg0";
1516 titleHistoSgn=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution (sgn); #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1517 titleHistoBkg=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution (bkg); #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1518 TH2F* armenterosPodLcSgn0 =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),200,-4.,4.,800,0.,1.6);
1519 TH2F* armenterosPodLcBkg0 =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),200,-4.,4.,800,0.,1.6);
1524 TH2F* pidBachTRspectrumLcMassByK0SSgn = (
TH2F*)spectrumLcMassByK0SSgn->Clone();
1525 TH2F* pidBachTRspectrumLcMassByK0SBkg = (
TH2F*)spectrumLcMassByK0SBkg->Clone();
1532 nameHistoSgn=
"histptK0SSgn";
1533 nameHistoBkg=
"histptK0SBkg";
1534 titleHistoSgn=
"p_{T}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(K^{0}_{S}) [GeV/c]; Entries";
1535 titleHistoBkg=
"p_{T}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(K^{0}_{S}) [GeV/c]; Entries";
1536 TH2F* ptK0SSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,41,binLimpTprong);
1537 TH2F* ptK0SBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,41,binLimpTprong);
1539 nameHistoSgn=
"histptPSgn";
1540 nameHistoBkg=
"histptPBkg";
1541 titleHistoSgn=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
1542 titleHistoBkg=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
1543 TH2F* ptPSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,41,binLimpTprong);
1544 TH2F* ptPBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,41,binLimpTprong);
1546 nameHistoSgn=
"histptPipSgn";
1547 nameHistoBkg=
"histptPipBkg";
1548 titleHistoSgn=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
1549 titleHistoBkg=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
1550 TH2F* ptPiPSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,41,binLimpTprong);
1551 TH2F* ptPiPBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,41,binLimpTprong);
1553 nameHistoSgn=
"histptPimSgn";
1554 nameHistoBkg=
"histptPimBkg";
1555 titleHistoSgn=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
1556 titleHistoBkg=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
1557 TH2F* ptPiMSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,41,binLimpTprong);
1558 TH2F* ptPiMBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,41,binLimpTprong);
1560 nameHistoSgn=
"histLambdaMassSgn";
1561 nameHistoBkg=
"histLambdaMassBkg";
1562 titleHistoSgn=
"m_{inv}(p,#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(p,#pi^{-}) [GeV/c^{2}]; Entries";
1563 titleHistoBkg=
"m_{inv}(p,#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(p,#pi^{-}) [GeV/c^{2}]; Entries";
1564 TH2F* massLambdaSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1565 TH2F* massLambdaBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1567 nameHistoSgn=
"histLambdaBarMassSgn";
1568 nameHistoBkg=
"histLambdaBarMassBkg";
1569 titleHistoSgn=
"m_{inv}(#bar{p},#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(#bar{p},#pi^{+}) [GeV/c^{2}]; Entries";
1570 titleHistoBkg=
"m_{inv}(#bar{p},#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(#bar{p},#pi^{+}) [GeV/c^{2}]; Entries";
1571 TH2F* massLambdaBarSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1572 TH2F* massLambdaBarBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1574 nameHistoSgn=
"histGammaMassSgn";
1575 nameHistoBkg=
"histGammaMassBkg";
1576 titleHistoSgn=
"m_{inv}(e^{+},e^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(e^{+},e^{-}) [GeV/c^{2}]; Entries";
1577 titleHistoBkg=
"m_{inv}(e^{+},e^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(e^{+},e^{-}) [GeV/c^{2}]; Entries";
1578 TH2F* massGammaSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,100,0.,1.);
1579 TH2F* massGammaBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,100,0.,1.);
1581 nameHistoSgn=
"histD0K0SSgn";
1582 nameHistoBkg=
"histD0K0SBkg";
1583 titleHistoSgn=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
1584 titleHistoBkg=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
1585 TH2F* d0K0SSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,-1.,1.);
1586 TH2F* d0K0SBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,-1.,1.);
1588 nameHistoSgn=
"histD0PSgn";
1589 nameHistoBkg=
"histD0PBkg";
1590 titleHistoSgn=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
1591 titleHistoBkg=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
1592 TH2F* d0PSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,-1.,1.);
1593 TH2F* d0PBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,-1.,1.);
1595 nameHistoSgn=
"histCosPAK0SSgn";
1596 nameHistoBkg=
"histCosPAK0SBkg";
1597 titleHistoSgn=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
1598 titleHistoBkg=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
1599 TH2F *cosPAK0SSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),41,binLimpTprong,100,0.99,1.);
1600 TH2F *cosPAK0SBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),41,binLimpTprong,100,0.99,1.);
1602 nameHistoSgn=
"histCosThetaProtonCMSSgn";
1603 nameHistoBkg=
"histCosThetaProtonCMSBkg";
1604 titleHistoSgn=
"cosien of proton emission angle in Lc rest frame; p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
1605 titleHistoBkg=
"cosien of proton emission angle in Lc rest frame; p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
1606 TH2F *cosThePrSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),41,binLimpTprong,100,-1.,1.);
1607 TH2F *cosThePrBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),41,binLimpTprong,100,-1.,1.);
1610 nameHistoSgn=
"histResignedD0Sgn";
1611 nameHistoBkg=
"histResignedD0Bkg";
1612 titleHistoSgn=
"Proton d0 with different sign convention; p_{T}(#Lambda_{c}) [GeV/c]; d0 [cm]; Entries";
1613 titleHistoBkg=
"Proton d0 with different sign convention; p_{T}(#Lambda_{c}) [GeV/c]; d0 [cm]; Entries";
1614 TH2F *resignedD0Sgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),41,binLimpTprong,100,-0.1,0.1);
1615 TH2F *resignedD0Bkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),41,binLimpTprong,100,-0.1,0.1);
1617 TH2F* allptK0SSgn = (
TH2F*)ptK0SSgn->Clone();
1618 TH2F* allptK0SBkg = (
TH2F*)ptK0SBkg->Clone();
1619 TH2F* allptPSgn = (
TH2F*)ptPSgn->Clone();
1620 TH2F* allptPBkg = (
TH2F*)ptPBkg->Clone();
1621 TH2F* allptPiPSgn = (
TH2F*)ptPiPSgn->Clone();
1622 TH2F* allptPiPBkg = (
TH2F*)ptPiPBkg->Clone();
1623 TH2F* allptPiMSgn = (
TH2F*)ptPiMSgn->Clone();
1624 TH2F* allptPiMBkg = (
TH2F*)ptPiMBkg->Clone();
1625 TH2F* allmassLambdaSgn = (
TH2F*)massLambdaSgn->Clone();
1626 TH2F* allmassLambdaBkg = (
TH2F*)massLambdaBkg->Clone();
1627 TH2F* allmassLambdaBarSgn = (
TH2F*)massLambdaBarSgn->Clone();
1628 TH2F* allmassLambdaBarBkg = (
TH2F*)massLambdaBarBkg->Clone();
1629 TH2F* allmassGammaSgn = (
TH2F*)massGammaSgn->Clone();
1630 TH2F* allmassGammaBkg = (
TH2F*)massGammaBkg->Clone();
1631 TH2F* alld0K0SSgn = (
TH2F*)d0K0SSgn->Clone();
1632 TH2F* alld0K0SBkg = (
TH2F*)d0K0SBkg->Clone();
1633 TH2F* alld0PSgn = (
TH2F*)d0PSgn->Clone();
1634 TH2F* alld0PBkg = (
TH2F*)d0PBkg->Clone();
1635 TH2F* allcosPAK0SSgn = (
TH2F*)cosPAK0SSgn->Clone();
1636 TH2F* allcosPAK0SBkg = (
TH2F*)cosPAK0SBkg->Clone();
1637 TH2F* allcosThePrSgn = (
TH2F*)cosThePrSgn->Clone();
1638 TH2F* allcosThePrBkg = (
TH2F*)cosThePrBkg->Clone();
1639 TH2F* allresignedD0Sgn = (
TH2F*)resignedD0Sgn->Clone();
1640 TH2F* allresignedD0Bkg = (
TH2F*)resignedD0Bkg->Clone();
1642 TH2F* pidptK0SSgn = (
TH2F*)ptK0SSgn->Clone();
1643 TH2F* pidptK0SBkg = (
TH2F*)ptK0SBkg->Clone();
1644 TH2F* pidptPSgn = (
TH2F*)ptPSgn->Clone();
1645 TH2F* pidptPBkg = (
TH2F*)ptPBkg->Clone();
1646 TH2F* pidptPiPSgn = (
TH2F*)ptPiPSgn->Clone();
1647 TH2F* pidptPiPBkg = (
TH2F*)ptPiPBkg->Clone();
1648 TH2F* pidptPiMSgn = (
TH2F*)ptPiMSgn->Clone();
1649 TH2F* pidptPiMBkg = (
TH2F*)ptPiMBkg->Clone();
1650 TH2F* pidmassLambdaSgn = (
TH2F*)massLambdaSgn->Clone();
1651 TH2F* pidmassLambdaBkg = (
TH2F*)massLambdaBkg->Clone();
1652 TH2F* pidmassLambdaBarSgn = (
TH2F*)massLambdaBarSgn->Clone();
1653 TH2F* pidmassLambdaBarBkg = (
TH2F*)massLambdaBarBkg->Clone();
1654 TH2F* pidmassGammaSgn = (
TH2F*)massGammaSgn->Clone();
1655 TH2F* pidmassGammaBkg = (
TH2F*)massGammaBkg->Clone();
1656 TH2F* pidd0K0SSgn = (
TH2F*)d0K0SSgn->Clone();
1657 TH2F* pidd0K0SBkg = (
TH2F*)d0K0SBkg->Clone();
1658 TH2F* pidd0PSgn = (
TH2F*)d0PSgn->Clone();
1659 TH2F* pidd0PBkg = (
TH2F*)d0PBkg->Clone();
1660 TH2F* pidcosPAK0SSgn = (
TH2F*)cosPAK0SSgn->Clone();
1661 TH2F* pidcosPAK0SBkg = (
TH2F*)cosPAK0SBkg->Clone();
1662 TH2F* pidcosThePrSgn = (
TH2F*)cosThePrSgn->Clone();
1663 TH2F* pidcosThePrBkg = (
TH2F*)cosThePrBkg->Clone();
1664 TH2F* pidresignedD0Sgn = (
TH2F*)resignedD0Sgn->Clone();
1665 TH2F* pidresignedD0Bkg = (
TH2F*)resignedD0Bkg->Clone();
1719 TH2F* pidTRptK0SSgn = (
TH2F*)ptK0SSgn->Clone();
1720 TH2F* pidTRptK0SBkg = (
TH2F*)ptK0SBkg->Clone();
1721 TH2F* pidTRptPSgn = (
TH2F*)ptPSgn->Clone();
1722 TH2F* pidTRptPBkg = (
TH2F*)ptPBkg->Clone();
1723 TH2F* pidTRptPiPSgn = (
TH2F*)ptPiPSgn->Clone();
1724 TH2F* pidTRptPiPBkg = (
TH2F*)ptPiPBkg->Clone();
1725 TH2F* pidTRptPiMSgn = (
TH2F*)ptPiMSgn->Clone();
1726 TH2F* pidTRptPiMBkg = (
TH2F*)ptPiMBkg->Clone();
1727 TH2F* pidTRmassLambdaSgn = (
TH2F*)massLambdaSgn->Clone();
1728 TH2F* pidTRmassLambdaBkg = (
TH2F*)massLambdaBkg->Clone();
1729 TH2F* pidTRmassLambdaBarSgn = (
TH2F*)massLambdaBarSgn->Clone();
1730 TH2F* pidTRmassLambdaBarBkg = (
TH2F*)massLambdaBarBkg->Clone();
1731 TH2F* pidTRmassGammaSgn = (
TH2F*)massGammaSgn->Clone();
1732 TH2F* pidTRmassGammaBkg = (
TH2F*)massGammaBkg->Clone();
1733 TH2F* pidTRcosPAK0SSgn = (
TH2F*)cosPAK0SSgn->Clone();
1734 TH2F* pidTRcosPAK0SBkg = (
TH2F*)cosPAK0SBkg->Clone();
1735 TH2F* pidTRcosThePrSgn = (
TH2F*)cosThePrSgn->Clone();
1736 TH2F* pidTRcosThePrBkg = (
TH2F*)cosThePrBkg->Clone();
1737 TH2F* pidTRresignedD0Sgn = (
TH2F*)resignedD0Sgn->Clone();
1738 TH2F* pidTRresignedD0Bkg = (
TH2F*)resignedD0Bkg->Clone();
1766 nameHistoSgn=
"histK0SMassOfflineSgn";
1767 nameHistoBkg=
"histK0SMassOfflineBkg";
1768 titleHistoSgn=
"K^{0}_{S} - sgn: invariant mass VS p_{T} - MC; p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(#pi^{+},#pi^{-}) [GeV/c^{2}]; Entries";
1769 titleHistoBkg=
"K^{0}_{S} - bkg: invariant mass VS p_{T} - MC; p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(#pi^{+},#pi^{-}) [GeV/c^{2}]; Entries";
1770 TH2F* spectrumK0SMassOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,mK0SPDG-0.050,mK0SPDG+0.050);
1771 TH2F* spectrumK0SMassOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,mK0SPDG-0.050,mK0SPDG+0.050);
1773 nameHistoSgn=
"histLcMassByK0SOfflineSgn";
1774 nameHistoBkg=
"histLcMassByK0SOfflineBkg";
1775 titleHistoSgn=
"#Lambda_{c} - sgn: invariant mass (by K^{0}_{S}) vs p_{T} - MC; m_{inv}(p,K^{0}_{S}) [GeV/c^{2}]; p_{T}(#Lambda_{c}) [GeV/c]";
1776 titleHistoBkg=
"#Lambda_{c} - bkg: invariant mass (by K^{0}_{S}) vs p_{T} - MC; m_{inv}(p,K^{0}_{S}) [GeV/c^{2}]; p_{T}(#Lambda_{c}) [GeV/c]";
1777 TH2F* spectrumLcMassOfflineByK0SSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
1778 TH2F* spectrumLcMassOfflineByK0SBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
1780 nameHistoSgn=
"histpK0SvspOfflineSgn";
1781 nameHistoBkg=
"histpK0SvspOfflineBkg";
1782 titleHistoSgn=
"#Lambda_{c} - sgn: K^{0}_{S} vs p Total Momentum Distribution - Offline - MC; p(p) [GeV/c]; p(K^{0}_{S}) [GeV/c]";
1783 titleHistoBkg=
"#Lambda_{c} - bkg: K^{0}_{S} vs p Total Momentum Distribution - Offline - MC; p(p) [GeV/c]; p(K^{0}_{S}) [GeV/c]";
1784 TH2F* momentumDistributionK0SvspOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),41,binLimpTprong,41,binLimpTprong);
1785 TH2F* momentumDistributionK0SvspOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),41,binLimpTprong,41,binLimpTprong);
1788 nameHistoSgn=
"histArmPodK0SOfflineSgn";
1789 nameHistoBkg=
"histArmPodK0SOfflineBkg";
1790 titleHistoSgn=
"V0-candidate Armenteros-Podolanski distribution (sgn) -offline-; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1791 titleHistoBkg=
"V0-candidate Armenteros-Podolanski distribution (bkg) -offline-; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1792 TH2F* armenterosPodK0SOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),200,-1.,1.,300,0.,0.3);
1793 TH2F* armenterosPodK0SOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),200,-1.,1.,300,0.,0.3);
1795 nameHistoSgn=
"histArmPodLcOfflineSgn";
1796 nameHistoBkg=
"histArmPodLcOfflineBkg";
1797 titleHistoSgn=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution (sgn) -offline-; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1798 titleHistoBkg=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution (bkg) -offline-; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1799 TH2F* armenterosPodLcOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),200,-4.,4.,800,0.,1.6);
1800 TH2F* armenterosPodLcOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),200,-4.,4.,800,0.,1.6);
1803 TH2F* allspectrumK0SMassOfflineSgn = (
TH2F*)spectrumK0SMassOfflineSgn->Clone();
1804 TH2F* allspectrumK0SMassOfflineBkg = (
TH2F*) spectrumK0SMassOfflineBkg->Clone();
1805 TH2F* allspectrumLcMassOfflineByK0SSgn = (
TH2F*)spectrumLcMassOfflineByK0SSgn->Clone();
1806 TH2F* allspectrumLcMassOfflineByK0SBkg = (
TH2F*) spectrumLcMassOfflineByK0SBkg->Clone();
1807 TH2F* allmomentumDistributionK0SvspOfflineSgn = (
TH2F*)momentumDistributionK0SvspOfflineSgn->Clone();
1808 TH2F* allmomentumDistributionK0SvspOfflineBkg = (
TH2F*)momentumDistributionK0SvspOfflineBkg->Clone();
1809 TH2F* allArmenterosPodK0SOfflineSgn = (
TH2F*)armenterosPodK0SOfflineSgn->Clone();
1810 TH2F* allArmenterosPodK0SOfflineBkg = (
TH2F*)armenterosPodK0SOfflineBkg->Clone();
1811 TH2F* allArmenterosPodLcOfflineSgn = (
TH2F*)armenterosPodLcOfflineSgn->Clone();
1812 TH2F* allArmenterosPodLcOfflineBkg = (
TH2F*)armenterosPodLcOfflineBkg->Clone();
1814 TH2F* pidBachspectrumLcMassOfflineByK0SSgn = (
TH2F*)spectrumLcMassOfflineByK0SSgn->Clone();
1815 TH2F* pidBachspectrumLcMassOfflineByK0SBkg = (
TH2F*) spectrumLcMassOfflineByK0SBkg->Clone();
1816 TH2F* pidBachspectrumK0SMassOfflineSgn = (
TH2F*)spectrumK0SMassOfflineSgn->Clone();
1817 TH2F* pidBachspectrumK0SMassOfflineBkg = (
TH2F*) spectrumK0SMassOfflineBkg->Clone();
1818 TH2F* pidBachmomentumDistributionK0SvspOfflineSgn = (
TH2F*)momentumDistributionK0SvspOfflineSgn->Clone();
1819 TH2F* pidBachmomentumDistributionK0SvspOfflineBkg = (
TH2F*)momentumDistributionK0SvspOfflineBkg->Clone();
1820 TH2F* pidBachArmenterosPodK0SOfflineSgn = (
TH2F*)armenterosPodK0SOfflineSgn->Clone();
1821 TH2F* pidBachArmenterosPodK0SOfflineBkg = (
TH2F*)armenterosPodK0SOfflineBkg->Clone();
1822 TH2F* pidBachArmenterosPodLcOfflineSgn = (
TH2F*)armenterosPodLcOfflineSgn->Clone();
1823 TH2F* pidBachArmenterosPodLcOfflineBkg = (
TH2F*)armenterosPodLcOfflineBkg->Clone();
1825 fOutputAll->Add(allspectrumK0SMassOfflineSgn);
1826 fOutputAll->Add(allspectrumK0SMassOfflineBkg);
1827 fOutputAll->Add(allspectrumLcMassOfflineByK0SSgn);
1828 fOutputAll->Add(allspectrumLcMassOfflineByK0SBkg);
1829 fOutputAll->Add(allmomentumDistributionK0SvspOfflineSgn);
1830 fOutputAll->Add(allmomentumDistributionK0SvspOfflineBkg);
1831 fOutputAll->Add(allArmenterosPodK0SOfflineSgn);
1832 fOutputAll->Add(allArmenterosPodK0SOfflineBkg);
1833 fOutputAll->Add(allArmenterosPodLcOfflineSgn);
1834 fOutputAll->Add(allArmenterosPodLcOfflineBkg);
1840 fOutputPIDBach->Add(pidBachmomentumDistributionK0SvspOfflineSgn);
1841 fOutputPIDBach->Add(pidBachmomentumDistributionK0SvspOfflineBkg);
1847 nameHistoSgn=
"histArmPodK0SOfflineSgn0";
1848 nameHistoBkg=
"histArmPodK0SOfflineBkg0";
1849 titleHistoSgn=
"V0-candidate Armenteros-Podolanski distribution (sgn) -offline-; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1850 titleHistoBkg=
"V0-candidate Armenteros-Podolanski distribution (bkg) -offline-; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1851 TH2F* armenterosPodK0SOfflineSgn0 =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),200,-1.,1.,300,0.,0.3);
1852 TH2F* armenterosPodK0SOfflineBkg0 =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),200,-1.,1.,300,0.,0.3);
1853 nameHistoSgn=
"histArmPodLcOfflineSgn0";
1854 nameHistoBkg=
"histArmPodLcOfflineBkg0";
1855 titleHistoSgn=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution (sgn) -offline-; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1856 titleHistoBkg=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution (bkg) -offline-; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1857 TH2F* armenterosPodLcOfflineSgn0 =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),200,-4.,4.,800,0.,1.6);
1858 TH2F* armenterosPodLcOfflineBkg0 =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),200,-4.,4.,800,0.,1.6);
1859 fOutputAll->Add(armenterosPodK0SOfflineSgn0);
1860 fOutputAll->Add(armenterosPodK0SOfflineBkg0);
1865 TH2F* pidBachTRspectrumLcMassOfflineByK0SSgn = (
TH2F*)spectrumLcMassOfflineByK0SSgn->Clone();
1866 TH2F* pidBachTRspectrumLcMassOfflineByK0SBkg = (
TH2F*) spectrumLcMassOfflineByK0SBkg->Clone();
1874 nameHistoSgn=
"histptK0SOfflineSgn";
1875 nameHistoBkg=
"histptK0SOfflineBkg";
1876 titleHistoSgn=
"p_{T}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(K^{0}_{S}) [GeV/c]; Entries";
1877 titleHistoBkg=
"p_{T}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(K^{0}_{S}) [GeV/c]; Entries";
1878 TH2F* ptK0SOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,41,binLimpTprong);
1879 TH2F* ptK0SOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,41,binLimpTprong);
1881 nameHistoSgn=
"histptPOfflineSgn";
1882 nameHistoBkg=
"histptPOfflineBkg";
1883 titleHistoSgn=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
1884 titleHistoBkg=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
1885 TH2F* ptPOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,41,binLimpTprong);
1886 TH2F* ptPOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,41,binLimpTprong);
1888 nameHistoSgn=
"histptPipOfflineSgn";
1889 nameHistoBkg=
"histptPipOfflineBkg";
1890 titleHistoSgn=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
1891 titleHistoBkg=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
1892 TH2F* ptPiPOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,41,binLimpTprong);
1893 TH2F* ptPiPOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,41,binLimpTprong);
1895 nameHistoSgn=
"histptPimOfflineSgn";
1896 nameHistoBkg=
"histptPimOfflineBkg";
1897 titleHistoSgn=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
1898 titleHistoBkg=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
1899 TH2F* ptPiMOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,41,binLimpTprong);
1900 TH2F* ptPiMOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,41,binLimpTprong);
1902 nameHistoSgn=
"histLambdaMassOfflineSgn";
1903 nameHistoBkg=
"histLambdaMassOfflineBkg";
1904 titleHistoSgn=
"m_{inv}(p,#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(p,#pi^{-}) [GeV/c^{2}]; Entries";
1905 titleHistoBkg=
"m_{inv}(p,#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(p,#pi^{-}) [GeV/c^{2}]; Entries";
1906 TH2F* massLambdaOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1907 TH2F* massLambdaOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1909 nameHistoSgn=
"histLambdaBarMassOfflineSgn";
1910 nameHistoBkg=
"histLambdaBarMassOfflineBkg";
1911 titleHistoSgn=
"m_{inv}(#bar{p},#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(#bar{p},#pi^{+}) [GeV/c^{2}]; Entries";
1912 titleHistoBkg=
"m_{inv}(#bar{p},#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(#bar{p},#pi^{+}) [GeV/c^{2}]; Entries";
1913 TH2F* massLambdaBarOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1914 TH2F* massLambdaBarOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1916 nameHistoSgn=
"histGammaMassOfflineSgn";
1917 nameHistoBkg=
"histGammaMassOfflineBkg";
1918 titleHistoSgn=
"m_{inv}(e^{+},e^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(e^{+},e^{-}) [GeV/c^{2}]; Entries";
1919 titleHistoBkg=
"m_{inv}(e^{+},e^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(e^{+},e^{-}) [GeV/c^{2}]; Entries";
1920 TH2F* massGammaOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,100,0.,1.);
1921 TH2F* massGammaOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,100,0.,1.);
1923 nameHistoSgn=
"histD0K0SOfflineSgn";
1924 nameHistoBkg=
"histD0K0SOfflineBkg";
1925 titleHistoSgn=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
1926 titleHistoBkg=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
1927 TH2F* d0K0SOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,-1.,1.);
1928 TH2F* d0K0SOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,-1.,1.);
1930 nameHistoSgn=
"histD0POfflineSgn";
1931 nameHistoBkg=
"histD0POfflineBkg";
1932 titleHistoSgn=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
1933 titleHistoBkg=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
1934 TH2F* d0POfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,-1.,1.);
1935 TH2F* d0POfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,-1.,1.);
1937 nameHistoSgn=
"histCosPAK0SOfflineSgn";
1938 nameHistoBkg=
"histCosPAK0SOfflineBkg";
1939 titleHistoSgn=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
1940 titleHistoBkg=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
1941 TH2F *cosPAK0SOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),41,binLimpTprong,100,0.99,1.);
1942 TH2F *cosPAK0SOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),41,binLimpTprong,100,0.99,1.);
1944 nameHistoSgn=
"histCosThetaProtonCMSOfflineSgn";
1945 nameHistoBkg=
"histCosThetaProtonCMSOfflineBkg";
1946 titleHistoSgn=
"cosien of proton emission angle in Lc rest frame; p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
1947 titleHistoBkg=
"cosien of proton emission angle in Lc rest frame; p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
1948 TH2F *cosThePrOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),41,binLimpTprong,100,-1.,1.);
1949 TH2F *cosThePrOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),41,binLimpTprong,100,-1.,1.);
1952 nameHistoSgn=
"histResignedD0OfflineSgn";
1953 nameHistoBkg=
"histResignedD0OfflineBkg";
1954 titleHistoSgn=
"Proton d0 with different sign convention; p_{T}(#Lambda_{c}) [GeV/c]; d0 [cm]; Entries";
1955 titleHistoBkg=
"Proton d0 with different sign convention; p_{T}(#Lambda_{c}) [GeV/c]; d0 [cm]; Entries";
1956 TH2F *resignedD0OfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),41,binLimpTprong,100,-0.1,0.1);
1957 TH2F *resignedD0OfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),41,binLimpTprong,100,-0.1,0.1);
1959 TH2F* allptK0SOfflineSgn = (
TH2F*)ptK0SOfflineSgn->Clone();
1960 TH2F* allptK0SOfflineBkg = (
TH2F*)ptK0SOfflineBkg->Clone();
1961 TH2F* allptPOfflineSgn = (
TH2F*)ptPOfflineSgn->Clone();
1962 TH2F* allptPOfflineBkg = (
TH2F*)ptPOfflineBkg->Clone();
1963 TH2F* allptPiPOfflineSgn = (
TH2F*)ptPiPOfflineSgn->Clone();
1964 TH2F* allptPiPOfflineBkg = (
TH2F*)ptPiPOfflineBkg->Clone();
1965 TH2F* allptPiMOfflineSgn = (
TH2F*)ptPiMOfflineSgn->Clone();
1966 TH2F* allptPiMOfflineBkg = (
TH2F*)ptPiMOfflineBkg->Clone();
1967 TH2F* allmassLambdaOfflineSgn = (
TH2F*)massLambdaOfflineSgn->Clone();
1968 TH2F* allmassLambdaOfflineBkg = (
TH2F*)massLambdaOfflineBkg->Clone();
1969 TH2F* allmassLambdaBarOfflineSgn = (
TH2F*)massLambdaBarOfflineSgn->Clone();
1970 TH2F* allmassLambdaBarOfflineBkg = (
TH2F*)massLambdaBarOfflineBkg->Clone();
1971 TH2F* allmassGammaOfflineSgn = (
TH2F*)massGammaOfflineSgn->Clone();
1972 TH2F* allmassGammaOfflineBkg = (
TH2F*)massGammaOfflineBkg->Clone();
1973 TH2F* alld0K0SOfflineSgn = (
TH2F*)d0K0SOfflineSgn->Clone();
1974 TH2F* alld0K0SOfflineBkg = (
TH2F*)d0K0SOfflineBkg->Clone();
1975 TH2F* alld0POfflineSgn = (
TH2F*)d0POfflineSgn->Clone();
1976 TH2F* alld0POfflineBkg = (
TH2F*)d0POfflineBkg->Clone();
1977 TH2F* allcosPAK0SOfflineSgn = (
TH2F*)cosPAK0SOfflineSgn->Clone();
1978 TH2F* allcosPAK0SOfflineBkg = (
TH2F*)cosPAK0SOfflineBkg->Clone();
1979 TH2F* allcosThePrOfflineSgn = (
TH2F*)cosThePrOfflineSgn->Clone();
1980 TH2F* allcosThePrOfflineBkg = (
TH2F*)cosThePrOfflineBkg->Clone();
1981 TH2F* allresignedD0OfflineSgn = (
TH2F*)resignedD0OfflineSgn->Clone();
1982 TH2F* allresignedD0OfflineBkg = (
TH2F*)resignedD0OfflineBkg->Clone();
1984 TH2F* pidptK0SOfflineSgn = (
TH2F*)ptK0SOfflineSgn->Clone();
1985 TH2F* pidptK0SOfflineBkg = (
TH2F*)ptK0SOfflineBkg->Clone();
1986 TH2F* pidptPOfflineSgn = (
TH2F*)ptPOfflineSgn->Clone();
1987 TH2F* pidptPOfflineBkg = (
TH2F*)ptPOfflineBkg->Clone();
1988 TH2F* pidptPiPOfflineSgn = (
TH2F*)ptPiPOfflineSgn->Clone();
1989 TH2F* pidptPiPOfflineBkg = (
TH2F*)ptPiPOfflineBkg->Clone();
1990 TH2F* pidptPiMOfflineSgn = (
TH2F*)ptPiMOfflineSgn->Clone();
1991 TH2F* pidptPiMOfflineBkg = (
TH2F*)ptPiMOfflineBkg->Clone();
1992 TH2F* pidmassLambdaOfflineSgn = (
TH2F*)massLambdaOfflineSgn->Clone();
1993 TH2F* pidmassLambdaOfflineBkg = (
TH2F*)massLambdaOfflineBkg->Clone();
1994 TH2F* pidmassLambdaBarOfflineSgn = (
TH2F*)massLambdaBarOfflineSgn->Clone();
1995 TH2F* pidmassLambdaBarOfflineBkg = (
TH2F*)massLambdaBarOfflineBkg->Clone();
1996 TH2F* pidmassGammaOfflineSgn = (
TH2F*)massGammaOfflineSgn->Clone();
1997 TH2F* pidmassGammaOfflineBkg = (
TH2F*)massGammaOfflineBkg->Clone();
1998 TH2F* pidd0K0SOfflineSgn = (
TH2F*)d0K0SOfflineSgn->Clone();
1999 TH2F* pidd0K0SOfflineBkg = (
TH2F*)d0K0SOfflineBkg->Clone();
2000 TH2F* pidd0POfflineSgn = (
TH2F*)d0POfflineSgn->Clone();
2001 TH2F* pidd0POfflineBkg = (
TH2F*)d0POfflineBkg->Clone();
2002 TH2F* pidcosPAK0SOfflineSgn = (
TH2F*)cosPAK0SOfflineSgn->Clone();
2003 TH2F* pidcosPAK0SOfflineBkg = (
TH2F*)cosPAK0SOfflineBkg->Clone();
2004 TH2F* pidcosThePrOfflineSgn = (
TH2F*)cosThePrOfflineSgn->Clone();
2005 TH2F* pidcosThePrOfflineBkg = (
TH2F*)cosThePrOfflineBkg->Clone();
2006 TH2F* pidresignedD0OfflineSgn = (
TH2F*)resignedD0OfflineSgn->Clone();
2007 TH2F* pidresignedD0OfflineBkg = (
TH2F*)resignedD0OfflineBkg->Clone();
2061 TH2F* pidTRptK0SOfflineSgn = (
TH2F*)ptK0SOfflineSgn->Clone();
2062 TH2F* pidTRptK0SOfflineBkg = (
TH2F*)ptK0SOfflineBkg->Clone();
2063 TH2F* pidTRptPOfflineSgn = (
TH2F*)ptPOfflineSgn->Clone();
2064 TH2F* pidTRptPOfflineBkg = (
TH2F*)ptPOfflineBkg->Clone();
2065 TH2F* pidTRptPiPOfflineSgn = (
TH2F*)ptPiPOfflineSgn->Clone();
2066 TH2F* pidTRptPiPOfflineBkg = (
TH2F*)ptPiPOfflineBkg->Clone();
2067 TH2F* pidTRptPiMOfflineSgn = (
TH2F*)ptPiMOfflineSgn->Clone();
2068 TH2F* pidTRptPiMOfflineBkg = (
TH2F*)ptPiMOfflineBkg->Clone();
2069 TH2F* pidTRmassLambdaOfflineSgn = (
TH2F*)massLambdaOfflineSgn->Clone();
2070 TH2F* pidTRmassLambdaOfflineBkg = (
TH2F*)massLambdaOfflineBkg->Clone();
2071 TH2F* pidTRmassLambdaBarOfflineSgn = (
TH2F*)massLambdaBarOfflineSgn->Clone();
2072 TH2F* pidTRmassLambdaBarOfflineBkg = (
TH2F*)massLambdaBarOfflineBkg->Clone();
2073 TH2F* pidTRmassGammaOfflineSgn = (
TH2F*)massGammaOfflineSgn->Clone();
2074 TH2F* pidTRmassGammaOfflineBkg = (
TH2F*)massGammaOfflineBkg->Clone();
2075 TH2F* pidTRcosPAK0SOfflineSgn = (
TH2F*)cosPAK0SOfflineSgn->Clone();
2076 TH2F* pidTRcosPAK0SOfflineBkg = (
TH2F*)cosPAK0SOfflineBkg->Clone();
2077 TH2F* pidTRcosThePrOfflineSgn = (
TH2F*)cosThePrOfflineSgn->Clone();
2078 TH2F* pidTRcosThePrOfflineBkg = (
TH2F*)cosThePrOfflineBkg->Clone();
2079 TH2F* pidTRresignedD0OfflineSgn = (
TH2F*)resignedD0OfflineSgn->Clone();
2080 TH2F* pidTRresignedD0OfflineBkg = (
TH2F*)resignedD0OfflineBkg->Clone();
2109 TH3F *phiVSthetaVSpt =
new TH3F(
"phiVSthetaVSpt",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
2110 TH3F *phiVSthetaVSptRot =
new TH3F(
"phiVSthetaVSptRot",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
2111 TH3F *phiVSthetaVSptOffline =
new TH3F(
"phiVSthetaVSptOffline",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
2112 TH3F *phiVSthetaVSptRotOffline =
new TH3F(
"phiVSthetaVSptRotOffline",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
2133 TH3F *phiVSthetaVSptSgn =
new TH3F(
"phiVSthetaVSptSgn",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
2134 TH3F *phiVSthetaVSptRotSgn =
new TH3F(
"phiVSthetaVSptRotSgn",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
2135 TH3F *phiVSthetaVSptOfflineSgn =
new TH3F(
"phiVSthetaVSptOfflineSgn",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
2136 TH3F *phiVSthetaVSptRotOfflineSgn =
new TH3F(
"phiVSthetaVSptRotOfflineSgn",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
2142 TH3F *phiVSthetaVSptBkg =
new TH3F(
"phiVSthetaVSptBkg",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
2143 TH3F *phiVSthetaVSptRotBkg =
new TH3F(
"phiVSthetaVSptRotBkg",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
2144 TH3F *phiVSthetaVSptOfflineBkg =
new TH3F(
"phiVSthetaVSptOfflineBkg",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
2145 TH3F *phiVSthetaVSptRotOfflineBkg =
new TH3F(
"phiVSthetaVSptRotOfflineBkg",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
2176 TH3F *hMassVsPtVsY=
new TH3F(
"hMassVsPtVsY",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
2177 TH3F *hMassVsPtVsYOffline=
new TH3F(
"hMassVsPtVsYOffline",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
2191 TH3F *hMassVsPtVsYSgn=
new TH3F(
"hMassVsPtVsYSgn",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
2192 TH3F *hMassVsPtVsYOfflineSgn=
new TH3F(
"hMassVsPtVsYOfflineSgn",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
2193 TH3F *hMassVsPtVsYBkg=
new TH3F(
"hMassVsPtVsYBkg",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
2194 TH3F *hMassVsPtVsYOfflineBkg=
new TH3F(
"hMassVsPtVsYOfflineBkg",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
2215 TH3F *hMassVsPtVsYRot=
new TH3F(
"hMassVsPtVsYRot",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
2216 TH3F *hMassVsPtVsYRotOffline=
new TH3F(
"hMassVsPtVsYRotOffline",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
2230 TH3F *hMassVsPtVsYRotSgn=
new TH3F(
"hMassVsPtVsYRotSgn",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
2231 TH3F *hMassVsPtVsYRotOfflineSgn=
new TH3F(
"hMassVsPtVsYRotOfflineSgn",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
2232 TH3F *hMassVsPtVsYRotBkg=
new TH3F(
"hMassVsPtVsYRotBkg",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
2233 TH3F *hMassVsPtVsYRotOfflineBkg=
new TH3F(
"hMassVsPtVsYRotOfflineBkg",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
2253 TH1F *hDeltaMass=
new TH1F(
"hDeltaMass",
"",100,-0.4,0.4);
2254 TH1F *hDeltaMassOffline=
new TH1F(
"hDeltaMassOffline",
"",100,-0.4,0.4);
2268 TH1F *hDeltaMassSgn=
new TH1F(
"hDeltaMassSgn",
"",100,-0.4,0.4);
2269 TH1F *hDeltaMassOfflineSgn=
new TH1F(
"hDeltaMassOfflineSgn",
"",100,-0.4,0.4);
2270 TH1F *hDeltaMassBkg=
new TH1F(
"hDeltaMassBkg",
"",100,-0.4,0.4);
2271 TH1F *hDeltaMassOfflineBkg=
new TH1F(
"hDeltaMassOfflineBkg",
"",100,-0.4,0.4);
2320 TH2D *hMassvsPtInclusiveK0S =
new TH2D(
"hMassvsPtInclusiveK0S",
"",100,mK0SPDG-0.05,mK0SPDG+0.05,20,0.,10.);
2321 TH2D *hMassvsPtInclusiveK0SSgn =
new TH2D(
"hMassvsPtInclusiveK0SSgn",
"",100,mK0SPDG-0.05,mK0SPDG+0.05,20,0.,10.);
2322 TH3D *hMassvsPtInclusiveLambda =
new TH3D(
"hMassvsPtInclusiveLambda",
"",100,mLPDG-0.025,mLPDG+0.025,20,0.,10.,62,0.,62);
2323 TH3D *hMassvsPtInclusiveLambdaLoosePID =
new TH3D(
"hMassvsPtInclusiveLambdaLoosePID",
"",100,mLPDG-0.025,mLPDG+0.025,20,0.,10.,62,0.,62);
2324 TH3D *hMassvsPtInclusiveLambdaSgn =
new TH3D(
"hMassvsPtInclusiveLambdaSgn",
"",100,mLPDG-0.025,mLPDG+0.025,20,0.,10.,62,0.,62);
2325 TH3D *hMassvsPtInclusiveLambdaLoosePIDSgn =
new TH3D(
"hMassvsPtInclusiveLambdaLoosePIDSgn",
"",100,mLPDG-0.025,mLPDG+0.025,20,0.,10.,62,0.,62);
2326 TH3D *hMassvsPtInclusiveLambdaPID = (
TH3D*)hMassvsPtInclusiveLambda->Clone();
2327 TH3D *hMassvsPtInclusiveLambdaPIDSgn = (
TH3D*)hMassvsPtInclusiveLambdaSgn->Clone();
2328 TH3D *hMassvsPtInclusiveLambdaCosThetaStarPID =
new TH3D(
"hMassvsPtInclusiveLambdaCosThetaStarPID",
"",100,mLPDG-0.025,mLPDG+0.025,20,0.,10.,40,-1.,1.);
2329 TH3D *hMassvsPtInclusiveLambdaCosThetaStarPIDSgn =
new TH3D(
"hMassvsPtInclusiveLambdaCosThetaStarPIDSgn",
"",100,mLPDG-0.025,mLPDG+0.025,20,0.,10.,40,-1.,1.);
2333 fOutputAll->Add(hMassvsPtInclusiveLambdaLoosePID);
2335 fOutputAll->Add(hMassvsPtInclusiveLambdaSgn);
2336 fOutputAll->Add(hMassvsPtInclusiveLambdaLoosePIDSgn);
2352 TClonesArray *mcArray,
2362 Double_t mLPDG = TDatabasePDG::Instance()->GetParticle(3122)->Mass();
2365 Int_t nV0s = aodEvent->GetNumberOfV0s();
2369 const AliESDVertex vESD(pos,cov,100.,100);
2376 for (
Int_t iv0 = 0; iv0<nV0s; iv0++) {
2377 AliAODv0 *v0 = aodEvent->GetV0(iv0);
2379 AliAODTrack *ptrk =
dynamic_cast<AliAODTrack*
>(v0->GetDaughter(0));
2380 if (!ptrk)
continue;
2381 AliAODTrack *ntrk =
dynamic_cast<AliAODTrack*
>(v0->GetDaughter(1));
2382 if (!ntrk)
continue;
2384 Float_t etaMin=0, etaMax=0; v0trkCuts->GetEtaRange(etaMin,etaMax);
2385 if ( (ptrk->Eta()<=etaMin || ptrk->Eta()>=etaMax) ||
2386 (ntrk->Eta()<=etaMin || ntrk->Eta()>=etaMax) )
continue;
2388 if ( (ptrk->Pt()<=ptMin || ptrk->Pt()>=
ptMax) ||
2389 (ntrk->Pt()<=ptMin || ntrk->Pt()>=
ptMax) )
continue;
2392 if (v0trkCuts->GetMinNClusterTPC()>0) {
2393 if ( ( ( ptrk->GetTPCClusterInfo(2,1) ) < v0trkCuts->GetMinNClusterTPC() ) ||
2394 ( ( ntrk->GetTPCClusterInfo(2,1) ) < v0trkCuts->GetMinNClusterTPC() ) )
continue;
2397 if (v0trkCuts->GetMinRatioCrossedRowsOverFindableClustersTPC()>0.5) {
2398 Float_t ratioCrossedRowsOverFindableClustersTPCPos = 1.0;
2399 Float_t ratioCrossedRowsOverFindableClustersTPCNeg = 1.0;
2400 if (ptrk->GetTPCNclsF()>0) {
2401 ratioCrossedRowsOverFindableClustersTPCPos = ptrk->GetTPCClusterInfo(2,1) / ptrk->GetTPCNclsF();
2403 if (ntrk->GetTPCNclsF()>0) {
2404 ratioCrossedRowsOverFindableClustersTPCNeg = ntrk->GetTPCClusterInfo(2,1) / ntrk->GetTPCNclsF();
2406 if ( ( ( ratioCrossedRowsOverFindableClustersTPCPos ) < v0trkCuts->GetMinRatioCrossedRowsOverFindableClustersTPC() ) ||
2407 ( ( ratioCrossedRowsOverFindableClustersTPCNeg ) < v0trkCuts->GetMinRatioCrossedRowsOverFindableClustersTPC() ) )
continue;
2411 if (v0->GetOnFlyStatus()==kFALSE) {
2412 if (v0trkCuts->GetRequireTPCRefit()) {
2413 if( !(ptrk->GetStatus() & AliESDtrack::kTPCrefit))
continue;
2414 if( !(ntrk->GetStatus() & AliESDtrack::kTPCrefit))
continue;
2418 AliESDtrack esdTrackP(ptrk);
2419 esdTrackP.SetTPCClusterMap(ptrk->GetTPCClusterMap());
2420 esdTrackP.SetTPCSharedMap(ptrk->GetTPCSharedMap());
2421 esdTrackP.SetTPCPointsF(ptrk->GetTPCNclsF());
2422 esdTrackP.RelateToVertex(&vESD,0.,3.);
2424 AliESDtrack esdTrackN(ntrk);
2425 esdTrackN.SetTPCClusterMap(ntrk->GetTPCClusterMap());
2426 esdTrackN.SetTPCSharedMap(ntrk->GetTPCSharedMap());
2427 esdTrackN.SetTPCPointsF(ntrk->GetTPCNclsF());
2428 esdTrackN.RelateToVertex(&vESD,0.,3.);
2432 if(tmptxt.Contains(
"pt")){
2433 tmptxt.ReplaceAll(
"pt",
"x");
2434 TF1 funcCutMin(
"funcCutMin",tmptxt);
2435 Float_t nCrossedRowsTPCP = esdTrackP.GetTPCCrossedRows();
2436 Float_t nCrossedRowsTPCN = esdTrackN.GetTPCCrossedRows();
2437 if(nCrossedRowsTPCP<funcCutMin.Eval(esdTrackP.Pt()))
continue;
2438 if(nCrossedRowsTPCN<funcCutMin.Eval(esdTrackN.Pt()))
continue;
2443 Float_t nCrossedRowsTPCP = esdTrackP.GetTPCCrossedRows();
2444 Float_t nCrossedRowsTPCN = esdTrackN.GetTPCCrossedRows();
2445 Float_t nClustersTPCP = esdTrackP.GetTPCNcls();
2446 Float_t nClustersTPCN = esdTrackN.GetTPCNcls();
2447 if(nCrossedRowsTPCP!=0){
2448 Float_t ratioP = nClustersTPCP/nCrossedRowsTPCP;
2449 if(ratioP<fAnalCuts->GetMinRatioClsOverCrossRowsTPC())
continue;
2452 if(nCrossedRowsTPCN!=0){
2453 Float_t ratioN = nClustersTPCN/nCrossedRowsTPCN;
2454 if(ratioN<fAnalCuts->GetMinRatioClsOverCrossRowsTPC())
continue;
2461 Float_t nCrossedRowsTPCP = esdTrackP.GetTPCCrossedRows();
2462 Float_t nCrossedRowsTPCN = esdTrackN.GetTPCCrossedRows();
2463 Float_t nTPCsignalP = esdTrackP.GetTPCsignalN();
2464 Float_t nTPCsignalN = esdTrackN.GetTPCsignalN();
2465 if(nCrossedRowsTPCP!=0){
2466 Float_t ratioP = nTPCsignalP/nCrossedRowsTPCP;
2467 if(ratioP<fAnalCuts->GetMinRatioSignalNOverCrossRowsTPC())
continue;
2470 if(nCrossedRowsTPCN!=0){
2471 Float_t ratioN = nTPCsignalN/nCrossedRowsTPCN;
2472 if(ratioN<fAnalCuts->GetMinRatioSignalNOverCrossRowsTPC())
continue;
2478 if (!v0trkCuts->GetAcceptKinkDaughters()) {
2479 AliAODVertex *maybeKinkPos = (AliAODVertex*)ptrk->GetProdVertex();
2480 AliAODVertex *maybeKinkNeg = (AliAODVertex*)ntrk->GetProdVertex();
2481 if (maybeKinkPos->GetType()==AliAODVertex::kKink ||
2482 maybeKinkNeg->GetType()==AliAODVertex::kKink)
continue;
2496 ((
TH2D*)(
fOutputAll->FindObject(
"hMassvsPtInclusiveK0S")))->Fill(v0->MassK0Short(),v0->Pt());
2499 Int_t pdgdgv0[2]={211,211};
2500 Int_t labV0 = v0->MatchToMC(310,mcArray,2,pdgdgv0);
2502 AliAODMCParticle *mcv0 = (AliAODMCParticle*) mcArray->At(labV0);
2504 ((
TH2D*)(
fOutputAll->FindObject(
"hMassvsPtInclusiveK0SSgn")))->Fill(v0->MassK0Short(),v0->Pt());
2511 for (
Int_t iv0 = 0; iv0<nV0s; iv0++) {
2512 AliAODv0 *v0 = aodEvent->GetV0(iv0);
2514 AliAODTrack *ptrk =
dynamic_cast<AliAODTrack*
>(v0->GetDaughter(0));
2515 if (!ptrk)
continue;
2516 AliAODTrack *ntrk =
dynamic_cast<AliAODTrack*
>(v0->GetDaughter(1));
2517 if (!ntrk)
continue;
2519 Float_t etaMin=0, etaMax=0; trkCuts->GetEtaRange(etaMin,etaMax);
2520 if ( (ptrk->Eta()<=etaMin || ptrk->Eta()>=etaMax) ||
2521 (ntrk->Eta()<=etaMin || ntrk->Eta()>=etaMax) )
continue;
2523 if ( (ptrk->Pt()<=ptMin || ptrk->Pt()>=
ptMax) ||
2524 (ntrk->Pt()<=ptMin || ntrk->Pt()>=
ptMax) )
continue;
2528 if (v0->GetOnFlyStatus()==kFALSE) {
2529 if (trkCuts->GetRequireTPCRefit()) {
2530 if( !(ptrk->GetStatus() & AliESDtrack::kTPCrefit))
continue;
2531 if( !(ntrk->GetStatus() & AliESDtrack::kTPCrefit))
continue;
2536 if (!trkCuts->GetAcceptKinkDaughters()) {
2537 AliAODVertex *maybeKinkPos = (AliAODVertex*)ptrk->GetProdVertex();
2538 AliAODVertex *maybeKinkNeg = (AliAODVertex*)ntrk->GetProdVertex();
2539 if (maybeKinkPos->GetType()==AliAODVertex::kKink ||
2540 maybeKinkNeg->GetType()==AliAODVertex::kKink)
continue;
2544 Double_t dR = TMath::Sqrt(v0->DecayVertexV0X()*v0->DecayVertexV0X()+v0->DecayVertexV0Y()*v0->DecayVertexV0Y());
2545 if(dR>40.)
continue;
2554 if(TMath::Abs(v0->MassLambda()-mLPDG)<0.02) LType += 1;
2555 if(TMath::Abs(v0->MassAntiLambda()-mLPDG)<0.02) LType += 2;
2556 if(LType==3)
continue;
2558 AliAODMCParticle *mcv0 = 0x0;
2560 Int_t pdgdgv0[2]={2212,211};
2561 Int_t labV0 = v0->MatchToMC(3122,mcArray,2,pdgdgv0);
2563 mcv0 = (AliAODMCParticle*) mcArray->At(labV0);
2567 AliESDtrack esdTrackP(ptrk);
2568 esdTrackP.SetTPCClusterMap(ptrk->GetTPCClusterMap());
2569 esdTrackP.SetTPCSharedMap(ptrk->GetTPCSharedMap());
2570 esdTrackP.SetTPCPointsF(ptrk->GetTPCNclsF());
2571 esdTrackP.RelateToVertex(&vESD,0.,3.);
2573 AliESDtrack esdTrackN(ntrk);
2574 esdTrackN.SetTPCClusterMap(ntrk->GetTPCClusterMap());
2575 esdTrackN.SetTPCSharedMap(ntrk->GetTPCSharedMap());
2576 esdTrackN.SetTPCPointsF(ntrk->GetTPCNclsF());
2577 esdTrackN.RelateToVertex(&vESD,0.,3.);
2580 if (trkCuts->GetMinNClusterTPC()>0) {
2582 if ( ( ( ptrk->GetTPCClusterInfo(2,1) ) < trkCuts->GetMinNClusterTPC() ) ||
2583 ( ( ntrk->GetTPCClusterInfo(2,1) ) < 70 ) )
continue;
2586 if ( ( ( ntrk->GetTPCClusterInfo(2,1) ) < trkCuts->GetMinNClusterTPC() ) ||
2587 ( ( ptrk->GetTPCClusterInfo(2,1) ) < 70 ) )
continue;
2591 if (trkCuts->GetMinRatioCrossedRowsOverFindableClustersTPC()>0.5) {
2592 Float_t ratioCrossedRowsOverFindableClustersTPCPos = 1.0;
2593 Float_t ratioCrossedRowsOverFindableClustersTPCNeg = 1.0;
2594 if (ptrk->GetTPCNclsF()>0) {
2595 ratioCrossedRowsOverFindableClustersTPCPos = ptrk->GetTPCClusterInfo(2,1) / ptrk->GetTPCNclsF();
2597 if (ntrk->GetTPCNclsF()>0) {
2598 ratioCrossedRowsOverFindableClustersTPCNeg = ntrk->GetTPCClusterInfo(2,1) / ntrk->GetTPCNclsF();
2601 if ( ( ( ratioCrossedRowsOverFindableClustersTPCPos ) < trkCuts->GetMinRatioCrossedRowsOverFindableClustersTPC() ) ||
2602 ( ( ratioCrossedRowsOverFindableClustersTPCNeg ) < 0.8 ) )
continue;
2605 if ( ( ( ratioCrossedRowsOverFindableClustersTPCNeg ) < trkCuts->GetMinRatioCrossedRowsOverFindableClustersTPC() ) ||
2606 ( ( ratioCrossedRowsOverFindableClustersTPCPos ) < 0.8 ) )
continue;
2612 if(tmptxt.Contains(
"pt")){
2613 tmptxt.ReplaceAll(
"pt",
"x");
2614 TF1 funcCutMin(
"funcCutMin",tmptxt);
2615 Float_t nCrossedRowsTPCP = esdTrackP.GetTPCCrossedRows();
2616 Float_t nCrossedRowsTPCN = esdTrackN.GetTPCCrossedRows();
2617 if(LType==1 && nCrossedRowsTPCP<funcCutMin.Eval(esdTrackP.Pt()))
continue;
2618 if(LType==2 && nCrossedRowsTPCN<funcCutMin.Eval(esdTrackN.Pt()))
continue;
2623 Float_t nCrossedRowsTPCP = esdTrackP.GetTPCCrossedRows();
2624 Float_t nCrossedRowsTPCN = esdTrackN.GetTPCCrossedRows();
2625 Float_t nClustersTPCP = esdTrackP.GetTPCNcls();
2626 Float_t nClustersTPCN = esdTrackN.GetTPCNcls();
2628 if(nCrossedRowsTPCP!=0){
2629 Float_t ratioP = nClustersTPCP/nCrossedRowsTPCP;
2630 if(ratioP<fAnalCuts->GetMinRatioClsOverCrossRowsTPC())
continue;
2636 if(nCrossedRowsTPCN!=0){
2637 Float_t ratioN = nClustersTPCN/nCrossedRowsTPCN;
2638 if(ratioN<fAnalCuts->GetMinRatioClsOverCrossRowsTPC())
continue;
2646 Float_t nCrossedRowsTPCP = esdTrackP.GetTPCCrossedRows();
2647 Float_t nCrossedRowsTPCN = esdTrackN.GetTPCCrossedRows();
2648 Float_t nTPCsignalP = esdTrackP.GetTPCsignalN();
2649 Float_t nTPCsignalN = esdTrackN.GetTPCsignalN();
2651 if(nCrossedRowsTPCP!=0){
2652 Float_t ratioP = nTPCsignalP/nCrossedRowsTPCP;
2653 if(ratioP<fAnalCuts->GetMinRatioSignalNOverCrossRowsTPC())
continue;
2658 if(nCrossedRowsTPCN!=0){
2659 Float_t ratioN = nTPCsignalN/nCrossedRowsTPCN;
2660 if(ratioN<fAnalCuts->GetMinRatioSignalNOverCrossRowsTPC())
continue;
2667 Double_t nTPCsigmas=-9999, nTOFsigmas=-9999;
2673 if(TMath::Abs(nTPCsigmas)<3. && TMath::Abs(nTOFsigmas)<3.){
2678 ((
TH3D*)(
fOutputAll->FindObject(
"hMassvsPtInclusiveLambda")))->Fill(v0->MassLambda(),ptrk->Pt(),dR);
2679 if(TMath::Abs(nTPCsigmas)<5&&TMath::Abs(nTOFsigmas)<5){
2680 ((
TH3D*)(
fOutputAll->FindObject(
"hMassvsPtInclusiveLambdaLoosePID")))->Fill(v0->MassLambda(),ptrk->Pt(),dR);
2685 ((
TH3D*)(
fOutputPIDBach->FindObject(
"hMassvsPtInclusiveLambda")))->Fill(v0->MassLambda(),ptrk->Pt(),dR);
2686 TLorentzVector vpr, vpi,vlam;
2687 vpr.SetXYZM(ptrk->Px(),ptrk->Py(),ptrk->Pz(),0.938272081);
2688 vpi.SetXYZM(ntrk->Px(),ntrk->Py(),ntrk->Pz(),0.13957061);
2690 TVector3 vboost = vlam.BoostVector();
2692 bachcosthe = cos(vpr.Angle(vlam.Vect()));
2693 ((
TH3D*)(
fOutputPIDBach->FindObject(
"hMassvsPtInclusiveLambdaCosThetaStarPID")))->Fill(v0->MassLambda(),ptrk->Pt(),bachcosthe);
2697 ((
TH3D*)(
fOutputAll->FindObject(
"hMassvsPtInclusiveLambdaSgn")))->Fill(v0->MassLambda(),ptrk->Pt(),dR);
2698 if(TMath::Abs(nTPCsigmas)<5&&TMath::Abs(nTOFsigmas)<5){
2699 ((
TH3D*)(
fOutputAll->FindObject(
"hMassvsPtInclusiveLambdaLoosePIDSgn")))->Fill(v0->MassLambda(),ptrk->Pt(),dR);
2702 ((
TH3D*)(
fOutputPIDBach->FindObject(
"hMassvsPtInclusiveLambdaSgn")))->Fill(v0->MassLambda(),ptrk->Pt(),dR);
2703 ((
TH3D*)(
fOutputPIDBach->FindObject(
"hMassvsPtInclusiveLambdaCosThetaStarPIDSgn")))->Fill(v0->MassLambda(),ptrk->Pt(),bachcosthe);
2709 Double_t nTPCsigmas=-9999, nTOFsigmas=-9999;
2715 if(TMath::Abs(nTPCsigmas)<3. && TMath::Abs(nTOFsigmas)<3.){
2720 ((
TH3D*)(
fOutputAll->FindObject(
"hMassvsPtInclusiveLambda")))->Fill(v0->MassAntiLambda(),ntrk->Pt(),dR);
2721 if(TMath::Abs(nTPCsigmas)<5&&TMath::Abs(nTOFsigmas)<5){
2722 ((
TH3D*)(
fOutputAll->FindObject(
"hMassvsPtInclusiveLambdaLoosePID")))->Fill(v0->MassAntiLambda(),ntrk->Pt(),dR);
2727 ((
TH3D*)(
fOutputPIDBach->FindObject(
"hMassvsPtInclusiveLambda")))->Fill(v0->MassAntiLambda(),ntrk->Pt(),dR);
2728 TLorentzVector vpr, vpi,vlam;
2729 vpr.SetXYZM(ntrk->Px(),ntrk->Py(),ntrk->Pz(),0.938272081);
2730 vpi.SetXYZM(ptrk->Px(),ptrk->Py(),ptrk->Pz(),0.13957061);
2732 TVector3 vboost = vlam.BoostVector();
2734 bachcosthe = cos(vpr.Angle(vlam.Vect()));
2735 ((
TH3D*)(
fOutputPIDBach->FindObject(
"hMassvsPtInclusiveLambdaCosThetaStarPID")))->Fill(v0->MassLambda(),ntrk->Pt(),bachcosthe);
2738 ((
TH3D*)(
fOutputAll->FindObject(
"hMassvsPtInclusiveLambdaSgn")))->Fill(v0->MassAntiLambda(),ntrk->Pt(),dR);
2739 if(TMath::Abs(nTPCsigmas)<5&&TMath::Abs(nTOFsigmas)<5){
2740 ((
TH3D*)(
fOutputAll->FindObject(
"hMassvsPtInclusiveLambdaLoosePIDSgn")))->Fill(v0->MassAntiLambda(),ntrk->Pt(),dR);
2743 ((
TH3D*)(
fOutputPIDBach->FindObject(
"hMassvsPtInclusiveLambdaSgn")))->Fill(v0->MassAntiLambda(),ntrk->Pt(),dR);
2744 ((
TH3D*)(
fOutputPIDBach->FindObject(
"hMassvsPtInclusiveLambdaCosThetaStarPIDSgn")))->Fill(v0->MassLambda(),ntrk->Pt(),bachcosthe);
2767 Int_t nTracks = aodEvent->GetNumberOfTracks();
2768 for (
Int_t itrk = 0; itrk<nTracks; itrk++) {
2769 AliAODTrack *trk = (AliAODTrack*)aodEvent->GetTrack(itrk);
2775 trk->PxPyPz(pxpypz);
2777 trk->GetCovarianceXYZPxPyPz(cv);
2780 TVector *varvec =
new TVector(34);
2781 for(
Int_t ic=0;ic<3;ic++){
2782 (*varvec)[ic] = pxpypz[ic];
2784 for(
Int_t ic=0;ic<3;ic++){
2785 (*varvec)[ic+3] = xyz[ic];
2787 for(
Int_t ic=0;ic<21;ic++){
2788 (*varvec)[ic+6] = cv[ic];
2790 (*varvec)[27] = sign;
2791 (*varvec)[28] =
fVtx1->GetX();
2792 (*varvec)[29] =
fVtx1->GetY();
2793 (*varvec)[30] =
fVtx1->GetZ();
2795 Double_t d0z0bach[2],covd0z0bach[3];
2796 trk->PropagateToDCA(
fVtx1,
fBzkG,kVeryBig,d0z0bach,covd0z0bach);
2797 (*varvec)[31] = d0z0bach[0];
2798 (*varvec)[32] = TMath::Sqrt(covd0z0bach[0]);
2799 (*varvec)[33] = (
Float_t)trk->HasPointOnITSLayer(0);
2810 for(
Int_t j=0;j<KiddiePool;j++){
2837 Int_t nTracks = aodEvent->GetNumberOfTracks();
2839 for (
Int_t itrk = 0; itrk<nTracks; itrk++) {
2840 AliAODTrack *trk = (AliAODTrack*)aodEvent->GetTrack(itrk);
2846 trk->PxPyPz(pxpypz);
2848 trk->GetCovarianceXYZPxPyPz(cv);
2851 Double_t d0z0bach[2],covd0z0bach[3];
2852 trk->PropagateToDCA(
fVtx1,
fBzkG,kVeryBig,d0z0bach,covd0z0bach);
2858 pxpypznew[0] = tmpx*TMath::Cos(phirot)-tmpy*TMath::Sin(phirot);
2859 pxpypznew[1] = tmpx*TMath::Sin(phirot)+tmpy*TMath::Cos(phirot);
2860 pxpypznew[2] = pxpypz[2];
2862 TVector *varvec =
new TVector(34);
2863 for(
Int_t ic=0;ic<3;ic++){
2864 (*varvec)[ic] = pxpypznew[ic];
2866 for(
Int_t ic=0;ic<3;ic++){
2867 (*varvec)[ic+3] = xyz[ic];
2869 for(
Int_t ic=0;ic<21;ic++){
2870 (*varvec)[ic+6] = cv[ic];
2872 (*varvec)[27] = sign;
2873 (*varvec)[28] =
fVtx1->GetX();
2874 (*varvec)[29] =
fVtx1->GetY();
2875 (*varvec)[30] =
fVtx1->GetZ();
2877 (*varvec)[31] = d0z0bach[0];
2878 (*varvec)[32] = TMath::Sqrt(covd0z0bach[0]);
2879 (*varvec)[33] = (
Float_t)trk->HasPointOnITSLayer(0);
2894 Double_t mLcPDG = TDatabasePDG::Instance()->GetParticle(4122)->Mass();
2895 Double_t mPrPDG = TDatabasePDG::Instance()->GetParticle(2212)->Mass();
2896 Double_t mK0SPDG = TDatabasePDG::Instance()->GetParticle(310)->Mass();
2897 Int_t nPr = mixTypeP.size();
2898 Int_t nV0s = aodEvent->GetNumberOfV0s();
2900 for(
Int_t iv0=0;iv0<nV0s;iv0++){
2901 AliAODv0 *v0 = aodEvent->GetV0(iv0);
2905 AliNeutralTrackParam *trackV0=NULL;
2906 const AliVTrack *trackVV0 =
dynamic_cast<const AliVTrack*
>(v0);
2907 if(trackVV0) trackV0 =
new AliNeutralTrackParam(trackVV0);
2910 trackV0->PropagateToDCA(
fVtx1,
fBzkG,kVeryBig,d0z0v0,covd0z0v0);
2912 for(
Int_t ip=0;ip<nPr;ip++){
2913 TVector *pvars = mixTypeP[ip];
2914 if(!pvars)
continue;
2920 vtxP[0] = (*pvars)[28]; vtxP[1] = (*pvars)[29]; vtxP[2] = (*pvars)[30];
2922 fVtx1->GetXYZ(vtxthis);
2924 d0Pr = (*pvars)[31]; d0errPr = (*pvars)[32];
2926 for(
Int_t ic=0;ic<3;ic++){
2927 pxpypzP[ic] = (*pvars)[ic];
2929 for(
Int_t ic=0;ic<3;ic++){
2930 xyzP[ic] = (*pvars)[ic+3] +(vtxthis[ic]-vtxP[ic]);
2932 for(
Int_t ic=0;ic<21;ic++){
2933 cvP[ic] = (*pvars)[ic+6];
2935 signP = (*pvars)[27];
2937 Bool_t spdfirst = (*pvars)[33];
2942 Double_t Ep = TMath::Sqrt(pow(pxp,2)+pow(pyp,2)+pow(pzp,2)+pow(mPrPDG,2));
2946 Double_t Ev0 = TMath::Sqrt(pow(pxv0,2)+pow(pyv0,2)+pow(pzv0,2)+pow(mK0SPDG,2));
2952 Double_t pttot = sqrt(pxtot*pxtot+pytot*pytot);
2953 Double_t tmass = sqrt(pow(Etot,2)-pow(pxtot,2)-pow(pytot,2)-pow(pztot,2));
2955 if(TMath::Abs(tmass-mLcPDG)>0.20)
continue;
2956 if(pttot<4.)
continue;
2958 AliExternalTrackParam *trkp =
new AliExternalTrackParam(xyzP,pxpypzP,cvP,signP);
2969 d0err[1] = TMath::Sqrt(covd0z0v0[0]);
2972 px[0] = trkp->Px(); py[0] = trkp->Py(); pz[0] = trkp->Pz();
2973 px[1] = v0->Px(); py[1] = v0->Py(); pz[1] = v0->Pz();
2981 fVtx1->GetCovarianceMatrix(cov);
2982 chi2perNDF =
fVtx1->GetChi2perNDF();
2983 AliAODVertex *secVert =
new AliAODVertex(pos,cov,chi2perNDF,0x0,-1,AliAODVertex::kUndef,2);
2990 theCascade->GetSecondaryVtx()->AddDaughter(trkp);
2991 theCascade->GetSecondaryVtx()->AddDaughter(v0);
3015 Int_t theBinZ=-9999;
3022 if(theBinZ<0)
return -1;
3024 Int_t theBinM=-9999;
3031 if(theBinM<0)
return -2;
3033 return fNCentBins*theBinZ+theBinM;
3042 TClonesArray *arrayLctopKos=0;
3044 if(AODEvent() && IsStandardAOD()) {
3047 aodEvent =
dynamic_cast<AliAODEvent*
> (AODEvent());
3050 AliAODHandler* aodHandler = (AliAODHandler*)
3051 ((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler());
3053 if (aodHandler->GetExtensions()) {
3054 AliAODExtension *ext = (AliAODExtension*)aodHandler->GetExtensions()->FindObject(
"AliAOD.VertexingHF.root");
3056 arrayLctopKos=(TClonesArray*)aodFromExt->GetList()->FindObject(
"CascadesHF");
3060 arrayLctopKos=(TClonesArray*)aodEvent->GetList()->FindObject(
"CascadesHF");
3066 if (TMath::Abs(
fBzkG)>=0.001) {
3070 if (arrayLctopKos) {
3075 TClonesArray *mcArray = 0;
3076 AliAODMCHeader *mcHeader=0;
3080 mcArray =
dynamic_cast<TClonesArray*
>(aodEvent->FindListObject(AliAODMCParticle::StdBranchName()));
3085 mcHeader = (AliAODMCHeader*)aodEvent->GetList()->FindObject(AliAODMCHeader::StdBranchName());
3091 for (
Int_t iii=0; iii<mcArray->GetEntries(); iii++)
3099 if (
fVtx1->GetNContributors()>0) {
3102 TString firedTriggerClasses = aodEvent->GetFiredTriggerClasses();
3103 ULong64_t fTriggerMask=AliVEvent::kAnyINT;
3106 (aodEvent->GetRunNumber()<136851 || aodEvent->GetRunNumber()>139517) ) {
3107 if ( !(firedTriggerClasses.Contains(
"CINT1")) ) {
3108 AliInfo(Form(
" ======================== firedTriggerClasses.Data() = %s",firedTriggerClasses.Data()));
3115 Bool_t isSelectedAAA = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & fTriggerMask);
3116 if (!isSelectedAAA) {
3121 if (!isSelectedAAA || check1) {
3126 fTriggerMask=AliVEvent::kAny;
3127 Bool_t isSelectedBBB = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & fTriggerMask);
3128 if (!isSelectedBBB) {
3133 if (titleVtx.Contains(
"Z")) {
3137 else if (titleVtx.Contains(
"3D")) {
3172 TString firedTriggerClasses = aodEvent->GetFiredTriggerClasses();
3173 ULong64_t fTriggerMask=AliVEvent::kAnyINT;
3175 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(6);
3180 (aodEvent->GetRunNumber()<136851 || aodEvent->GetRunNumber()>139517) ) {
3181 if ( !(firedTriggerClasses.Contains(
"CINT1")) ) {
3182 AliInfo(Form(
" ======================== firedTriggerClasses.Data() = %s",firedTriggerClasses.Data()));
3183 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(8);
3189 Bool_t isSelectedAAAa = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & fTriggerMask);
3190 if (!isSelectedAAAa) {
3191 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(9);
3195 if (!isSelectedAAAa || check1a) {
3196 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(16);
3200 fTriggerMask=AliVEvent::kAny;
3201 Bool_t isSelectedBBBa = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & fTriggerMask);
3202 if (!isSelectedBBBa) {
3203 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(10);
3207 if (titleVtx.Contains(
"Z")) {
3208 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(11);
3211 else if (titleVtx.Contains(
"3D")) {
3212 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(12);
3215 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(13);
3220 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(14);
3225 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(7);
3228 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(15);
3238 TClonesArray *mcArray) {
3244 AliAODTrack *bachelor = (AliAODTrack*)lc2bacV0->
GetBachelor();
3245 if (!bachelor)
return -1;
3246 Int_t labBachelor = TMath::Abs(bachelor->GetLabel());
3247 if (labBachelor<0)
return -1;
3248 AliAODMCParticle *partBachelor = (AliAODMCParticle*)mcArray->At(labBachelor);
3249 if (!partBachelor)
return -1;
3250 if (TMath::Abs(partBachelor->GetPdgCode())!=pdgDgLc2bacV0[0])
return -1;
3252 Int_t labBacMother = partBachelor->GetMother();
3253 if (labBacMother<0)
return -1;
3254 AliAODMCParticle *partBacMother = (AliAODMCParticle*)mcArray->At(labBacMother);
3255 if (!partBacMother)
return -1;
3256 if (TMath::Abs(partBacMother->GetPdgCode())!=4122)
return -1;
3261 if (!posV0Daugh || !negV0Daugh)
return -1;
3263 Int_t labV0pos = TMath::Abs(posV0Daugh->GetLabel());
3264 Int_t labV0neg = TMath::Abs(negV0Daugh->GetLabel());
3265 if (labV0pos<0 || labV0neg<0)
return -1;
3267 AliAODMCParticle *partV0pos = (AliAODMCParticle*)mcArray->At(labV0neg);
3268 AliAODMCParticle *partV0neg = (AliAODMCParticle*)mcArray->At(labV0pos);
3269 if (!partV0pos || !partV0neg)
return -1;
3271 if ( ! ( (TMath::Abs(partV0pos->GetPdgCode())==pdgDgV0[0] &&
3272 TMath::Abs(partV0neg->GetPdgCode())==pdgDgV0[1]) ||
3273 (TMath::Abs(partV0pos->GetPdgCode())==pdgDgV0[1] &&
3274 TMath::Abs(partV0neg->GetPdgCode())==pdgDgV0[0]) ) )
return -1;
3275 Int_t labV0posMother = partV0pos->GetMother();
3276 Int_t labV0negMother = partV0neg->GetMother();
3278 if (labV0posMother<0 || labV0negMother<0)
return -1;
3279 if (labV0posMother!=labV0negMother)
return -1;
3281 AliAODMCParticle *motherV0 = (AliAODMCParticle*)mcArray->At(labV0posMother);
3282 if (!motherV0)
return-1;
3284 if (TMath::Abs(motherV0->GetPdgCode())!=pdgDgLc2bacV0[1])
return -1;
3285 Int_t labV0mother = motherV0->GetMother();
3286 if (labV0mother<0)
return -1;
3287 AliAODMCParticle *gMotherV0 = (AliAODMCParticle*)mcArray->At(labV0mother);
3288 if (!gMotherV0)
return-1;
3290 if ( !(pdgDgLc2bacV0[1]==310 && TMath::Abs(gMotherV0->GetPdgCode())==311) &&
3291 !(pdgDgLc2bacV0[1]==3122 && TMath::Abs(motherV0->GetPdgCode())==3122) )
return -1;
3293 if ( (pdgDgLc2bacV0[1]==310 && TMath::Abs(gMotherV0->GetPdgCode())==311) ) {
3294 Int_t labV0GMother = gMotherV0->GetMother();
3295 if (labV0GMother<0)
return -1;
3296 AliAODMCParticle *ggMotherV0 = (AliAODMCParticle*)mcArray->At(labV0GMother);
3297 if (!ggMotherV0)
return-1;
3299 if (TMath::Abs(ggMotherV0->GetPdgCode())!=4122)
return -1;
3300 gMotherV0 = (AliAODMCParticle*)ggMotherV0;
3301 labV0mother=labV0GMother;
3303 else if (pdgDgLc2bacV0[1]==3122 && TMath::Abs(motherV0->GetPdgCode())==3122) {
3304 if (TMath::Abs(gMotherV0->GetPdgCode())!=4122)
return -1;
3307 if (labBacMother!=labV0mother) {
3311 return labBacMother;
3321 Int_t indexToBeReturned=-999;
3324 Int_t pdgLambda=3122;
3327 Int_t pdgBachelor=2212;
3328 Int_t pdgBachelorPi=211;
3331 fillthis=
"histMcStatLc";
3333 AliAODMCParticle *searchLc =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(iii));
3334 if(!searchLc)
return -999;
3335 if (TMath::Abs(searchLc->GetPdgCode()) != pdgLc)
return -999;
3337 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(0);
3338 indexToBeReturned = 0;
3340 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*1);
3341 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*1;
3343 Int_t nDaughLc = searchLc->GetNDaughters();
3345 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*10);
3346 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*10;
3347 return indexToBeReturned;
3350 Int_t index1=searchLc->GetDaughter(0);
3351 Int_t index2=searchLc->GetDaughter(1);
3352 if (index1<=0 || index2<=0) {
3356 AliAODMCParticle *daugh1 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(index1));
3357 AliAODMCParticle *daugh2 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(index2));
3358 if (!daugh1 || !daugh2)
return -999;
3360 Int_t daughPdg1 = TMath::Abs(daugh1->GetPdgCode());
3361 Int_t daughPdg2 = TMath::Abs(daugh2->GetPdgCode());
3362 if ( !( (daughPdg1==pdgBachelor && daughPdg2==pdgK0) ||
3363 (daughPdg2==pdgBachelor && daughPdg1==pdgK0) ||
3364 (daughPdg1==pdgLambda && daughPdg2==pdgBachelorPi) ||
3365 (daughPdg2==pdgLambda && daughPdg1==pdgBachelorPi) ) ) {
3366 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*10);
3367 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*10;
3368 return indexToBeReturned;
3371 if (daughPdg1==pdgK0 || daughPdg1==pdgLambda) {
3372 index1=searchLc->GetDaughter(1);
3373 index2=searchLc->GetDaughter(0);
3375 daugh1 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(index1));
3376 daugh2 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(index2));
3377 if (!daugh1 || !daugh2)
return -999;
3379 daughPdg1=TMath::Abs(daugh1->GetPdgCode());
3380 daughPdg2=TMath::Abs(daugh2->GetPdgCode());
3382 if ( daughPdg1==pdgBachelor && daughPdg2==pdgK0 ) {
3384 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*2);
3385 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*2;
3387 Int_t nDaughK0 = daugh2->GetNDaughters();
3388 if (nDaughK0!=1)
return -999;
3390 Int_t indexK0daugh=daugh2->GetDaughter(0);
3391 if (indexK0daugh<=0)
return -999;
3393 AliAODMCParticle *daughK0 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(indexK0daugh));
3394 if (!daughK0)
return -999;
3396 Int_t daughK0Pdg=TMath::Abs(daughK0->GetPdgCode());
3397 if (daughK0Pdg!=pdgV0) {
3398 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*4);
3399 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*4;
3400 return indexToBeReturned;
3402 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*3);
3403 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*3;
3405 Int_t nDaughK0S = daughK0->GetNDaughters();
3407 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*5);
3408 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*5;
3409 return indexToBeReturned;
3412 index1=daughK0->GetDaughter(0);
3413 index2=daughK0->GetDaughter(1);
3414 if(index1<=0 || index2<=0) {
3418 AliAODMCParticle *daughK0S1 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(index1));
3419 AliAODMCParticle *daughK0S2 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(index2));
3420 if (!daughK0S1 || !daughK0S2)
return -999;
3422 Int_t daughK0S1pdg=TMath::Abs(daughK0S1->GetPdgCode());
3423 Int_t daughK0S2pdg=TMath::Abs(daughK0S2->GetPdgCode());
3425 if ( daughK0S1pdg==211 && daughK0S2pdg==211 ) {
3426 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*6);
3427 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*6;
3429 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*5);
3430 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*5;
3434 else if ( daughPdg1==pdgBachelorPi && daughPdg2==pdgLambda ) {
3436 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*7);
3437 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*7;
3439 Int_t nDaughL = daugh2->GetNDaughters();
3441 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*8);
3442 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*8;
3443 return indexToBeReturned;
3446 index1=daugh2->GetDaughter(0);
3447 index2=daugh2->GetDaughter(1);
3448 if(index1<=0 || index2<=0) {
3452 AliAODMCParticle *daughL1 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(index1));
3453 AliAODMCParticle *daughL2 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(index2));
3454 if (!daughL1 || !daughL2)
return -999;
3456 Int_t daughL1pdg=TMath::Abs(daughL1->GetPdgCode());
3457 Int_t daughL2pdg=TMath::Abs(daughL2->GetPdgCode());
3458 if ( (daughL1pdg==211 && daughL2pdg==2212) ||
3459 (daughL2pdg==211 && daughL1pdg==2212) ) {
3460 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*9);
3461 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*9;
3463 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*8);
3464 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*8;
3469 return indexToBeReturned;
3475 Bool_t isCandidateSelectedCuts,
3484 ((
TH2F*)(
fOutputAll->FindObject(histoTitle+
"0")))->Fill(alpha,qT);
3485 if (isCandidateSelectedCuts) {
3501 AliAODv0 * v0part = (AliAODv0*)part->
Getv0();
3502 Bool_t onFlyV0 = v0part->GetOnFlyStatus();
3504 AliAODTrack *bachelor = (AliAODTrack*)part->
GetBachelor();
3507 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(3);
3510 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(4);
3512 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(5);
3515 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(6);
3518 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(7);
3520 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(8);
3522 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(9);
3532 ((TH1F*)(
fOutput->FindObject(
"hSwitchOnCandidates1")))->Fill( -aaa );
3534 ((TH1F*)(
fOutput->FindObject(
"hSwitchOnCandidates1")))->Fill( aaa );
3539 if ((aaa&AliRDHFCutsLctoV0::kLcToK0Spr)==AliRDHFCutsLctoV0::kLcToK0Spr) {
3542 ((TH1F*)(
fOutput->FindObject(
"hSwitchOnCandidates2")))->Fill( -aaa );
3544 ((TH1F*)(
fOutput->FindObject(
"hSwitchOnCandidates2")))->Fill( aaa );
3549 if ((aaa&AliRDHFCutsLctoV0::kLcToK0Spr)==AliRDHFCutsLctoV0::kLcToK0Spr) {
3552 ((TH1F*)(
fOutput->FindObject(
"hSwitchOnCandidates3")))->Fill( -aaa );
3554 ((TH1F*)(
fOutput->FindObject(
"hSwitchOnCandidates3")))->Fill( aaa );
3558 if ((aaa&AliRDHFCutsLctoV0::kLcToK0Spr)==AliRDHFCutsLctoV0::kLcToK0Spr) {
3561 ((TH1F*)(
fOutput->FindObject(
"hSwitchOnCandidates4")))->Fill( -aaa );
3563 ((TH1F*)(
fOutput->FindObject(
"hSwitchOnCandidates4")))->Fill( aaa );
3578 Double_t mk0sPDG = TDatabasePDG::Instance()->GetParticle(310)->Mass();
3579 Double_t mLPDG = TDatabasePDG::Instance()->GetParticle(3122)->Mass();
3584 AliAODTrack *bachelor = (AliAODTrack*)part->
GetBachelor();
3586 AliAODv0 * v0part = (AliAODv0*)part->
Getv0();
3587 Double_t dcaV0ptp = v0part->GetDCA();
3588 Double_t invmassK0S = v0part->MassK0Short();
3589 Double_t invmassLambda = v0part->MassLambda();
3590 Double_t invmassLambdaBar = v0part->MassAntiLambda();
3592 Int_t isLc2LBarpi=0, isLc2Lpi=0;
3594 Int_t isDp2K0Spi=0, isDs2K0SK=0;
3595 Int_t mcLabel2 = -1;
3596 Int_t mcLabel3 = -1;
3597 Int_t isKstar12K0Spi=0, isKstar22K0Spi=0;
3598 Int_t mcLabel4 = -1;
3599 Int_t mcLabel5 = -1;
3604 Int_t pdgCand0 = 4122;
3605 Int_t pdgDgLctoV0bachelor0[2]={2212,310};
3606 Int_t pdgDgV0toDaughters0[2]={211,211};
3607 Int_t mcLabelLc2pK0S = part->
MatchToMC(pdgCand0,pdgDgLctoV0bachelor0[1],pdgDgLctoV0bachelor0,pdgDgV0toDaughters0,mcArray,kTRUE);
3608 AliAODMCParticle *lambdaCpartMC = (AliAODMCParticle*)mcArray->At(mcLabelLc2pK0S);
3609 if (lambdaCpartMC) {
3610 ptCandByMC = lambdaCpartMC->Pt();
3611 yCandByMC = lambdaCpartMC->Y();
3615 Int_t pdgCand = 4122;
3616 Int_t pdgDgLctoV0bachelor[2]={211,3122};
3617 Int_t pdgDgV0toDaughters[2]={2212,211};
3618 mcLabel = part->
MatchToMC(pdgCand,pdgDgLctoV0bachelor[1],pdgDgLctoV0bachelor,pdgDgV0toDaughters,mcArray,kTRUE);
3620 if (bachelor->Charge()<0) isLc2LBarpi=1;
3621 if (bachelor->Charge()>0) isLc2Lpi=1;
3622 AliAODMCParticle *lambdaCpartMC = (AliAODMCParticle*)mcArray->At(mcLabel);
3623 if (lambdaCpartMC) {
3624 ptCandByMC = lambdaCpartMC->Pt();
3625 yCandByMC = lambdaCpartMC->Y();
3629 Int_t pdgCand2 = 411;
3630 Int_t pdgCand3 = 431;
3631 Int_t pdgDgCand2[2]={211,310};
3632 Int_t pdgDgCand3[2]={321,310};
3633 pdgDgV0toDaughters[0]=211;
3634 pdgDgV0toDaughters[1]=211;
3635 mcLabel2 = part->
MatchToMC(pdgCand2,pdgDgCand2[1],pdgDgCand2,pdgDgV0toDaughters,mcArray,kTRUE);
3636 mcLabel3 = part->
MatchToMC(pdgCand3,pdgDgCand3[1],pdgDgCand3,pdgDgV0toDaughters,mcArray,kTRUE);
3639 AliAODMCParticle *lambdaCpartMC = (AliAODMCParticle*)mcArray->At(mcLabel2);
3640 if (lambdaCpartMC) {
3641 ptCandByMC = lambdaCpartMC->Pt();
3642 yCandByMC = lambdaCpartMC->Y();
3647 AliAODMCParticle *lambdaCpartMC = (AliAODMCParticle*)mcArray->At(mcLabel3);
3648 if (lambdaCpartMC) {
3649 ptCandByMC = lambdaCpartMC->Pt();
3650 yCandByMC = lambdaCpartMC->Y();
3654 Int_t pdgCand4 = 313;
3655 Int_t pdgCand5 = 325;
3656 Int_t pdgDgCand4[2]={211,310};
3657 Int_t pdgDgCand5[2]={211,310};
3658 pdgDgV0toDaughters[0]=211;
3659 pdgDgV0toDaughters[1]=211;
3660 mcLabel4 = part->
MatchToMC(pdgCand4,pdgDgCand4[1],pdgDgCand4,pdgDgV0toDaughters,mcArray,kTRUE);
3661 mcLabel5 = part->
MatchToMC(pdgCand5,pdgDgCand5[1],pdgDgCand5,pdgDgV0toDaughters,mcArray,kTRUE);
3664 AliAODMCParticle *lambdaCpartMC = (AliAODMCParticle*)mcArray->At(mcLabel4);
3665 if (lambdaCpartMC) {
3666 ptCandByMC = lambdaCpartMC->Pt();
3667 yCandByMC = lambdaCpartMC->Y();
3672 AliAODMCParticle *lambdaCpartMC = (AliAODMCParticle*)mcArray->At(mcLabel5);
3673 if (lambdaCpartMC) {
3674 ptCandByMC = lambdaCpartMC->Pt();
3675 yCandByMC = lambdaCpartMC->Y();
3680 Int_t isLcByMC = isLc+isLc2LBarpi*2+isLc2Lpi*4+isDp2K0Spi*8+isDs2K0SK*16+isKstar12K0Spi*32+isKstar22K0Spi*64;
3682 Bool_t isMCparticleInFiducialAcceptance = kTRUE;
3683 if (isLc || isLc2LBarpi || isLc2Lpi || isDp2K0Spi || isDs2K0SK || isKstar12K0Spi || isKstar22K0Spi) {
3689 Int_t isLambdaBar = 0;
3692 Int_t pdgDg2prong[2] = {211, 211};
3693 Int_t labelK0S = v0part->MatchToMC(310,mcArray,2,pdgDg2prong);
3694 if (labelK0S>=0) isK0S = 1;
3696 pdgDg2prong[0] = 211;
3697 pdgDg2prong[1] = 2212;
3698 Int_t lambdaLabel = v0part->MatchToMC(3122,mcArray,2,pdgDg2prong);
3699 if (lambdaLabel>=0) {
3700 AliAODMCParticle *lambdaTrack = (AliAODMCParticle*)mcArray->At(lambdaLabel);
3701 if (lambdaTrack->GetPdgCode()==3122) isLambda = 1;
3702 else if (lambdaTrack->GetPdgCode()==-3122) isLambdaBar = 1;
3705 pdgDg2prong[0] = 11;
3706 pdgDg2prong[1] = 11;
3707 Int_t gammaLabel = v0part->MatchToMC(22,mcArray,2,pdgDg2prong);
3708 if (gammaLabel>=0) {
3709 AliAODMCParticle *gammaTrack = (AliAODMCParticle*)mcArray->At(gammaLabel);
3710 if (gammaTrack->GetPdgCode()==22) isGamma = 1;
3714 Int_t isV0ByMC = isK0S+isLambdaBar*2+isLambda*4+isGamma*8;
3716 Int_t isBachelorSelected = (bachelor->TestFilterMask(BIT(4)))*1 + (!(bachelor->TestFilterMask(BIT(4))))*2;
3717 isBachelorSelected += (bachelor->GetLabel()<0)*4 + (bachelor->GetLabel()>=0)*8;
3718 if ( ( !(bachelor->HasPointOnITSLayer(0)) && !(bachelor->HasPointOnITSLayer(1)) ) )
3719 isBachelorSelected += 16;
3721 if ( bachelor->HasPointOnITSLayer(0) && !(bachelor->HasPointOnITSLayer(1)) )
3722 isBachelorSelected += 32;
3723 else if ( !(bachelor->HasPointOnITSLayer(0)) && bachelor->HasPointOnITSLayer(1) )
3724 isBachelorSelected += 64;
3726 isBachelorSelected += 128;
3732 Int_t areV0daughtersSelected = (v0pos->TestFilterMask(BIT(4)))*1 + (!(v0pos->TestFilterMask(BIT(4))))*2;
3733 areV0daughtersSelected += (v0pos->GetLabel()<0)*4 + (v0pos->GetLabel()>=0)*8;
3734 areV0daughtersSelected += (v0pos->HasPointOnITSLayer(0))*16;
3735 areV0daughtersSelected += (v0pos->HasPointOnITSLayer(1))*32;
3736 areV0daughtersSelected += (v0pos->HasPointOnITSLayer(2))*64;
3737 areV0daughtersSelected += (v0pos->HasPointOnITSLayer(3))*128;
3738 areV0daughtersSelected += (v0pos->HasPointOnITSLayer(4))*256;
3739 areV0daughtersSelected += (v0pos->HasPointOnITSLayer(5))*512;
3741 areV0daughtersSelected += (v0neg->TestFilterMask(BIT(4)))*1024 + (!(v0neg->TestFilterMask(BIT(4))))*2048;
3742 areV0daughtersSelected += (v0neg->GetLabel()<0)*4096 + (v0neg->GetLabel()>=0)*8192;
3743 areV0daughtersSelected += (v0neg->HasPointOnITSLayer(0))*16384;
3744 areV0daughtersSelected += (v0neg->HasPointOnITSLayer(1))*32768;
3745 areV0daughtersSelected += (v0neg->HasPointOnITSLayer(2))*65536;
3746 areV0daughtersSelected += (v0neg->HasPointOnITSLayer(3))*131072;
3747 areV0daughtersSelected += (v0neg->HasPointOnITSLayer(4))*262144;
3748 areV0daughtersSelected += (v0neg->HasPointOnITSLayer(5))*524288;
3772 Int_t flagToCheckCandidate = 1*(TMath::Abs(invmassK0S-mk0sPDG)<=0.050);
3773 flagToCheckCandidate+=2*((TMath::Abs(invmassLambdaBar-mLPDG)<=0.050) && (bachelor->Charge()<0));
3774 flagToCheckCandidate+=4*((TMath::Abs(invmassLambda-mLPDG)<=0.050) && (bachelor->Charge()>0));
3775 flagToCheckCandidate+=8*((TMath::Abs(invmassLambdaBar-mLPDG)<=0.050) && (bachelor->Charge()>0));
3776 flagToCheckCandidate+=16*((TMath::Abs(invmassLambda-mLPDG)<=0.050) && (bachelor->Charge()<0));
3836 Double_t xVtxLc=0, yVtxLc=0, zVtxLc=0;
3838 Double_t pxVtxBachelor=0, pyVtxBachelor=0, pzVtxBachelor=0;
3839 dcaForLc =
PropagateToDCA(v0part,bachelor,
fBzkG, xVtxLc, yVtxLc, zVtxLc, pxVtxBachelor, pyVtxBachelor, pzVtxBachelor);
3841 Int_t pdgCand0 = 4122;
3842 Int_t pdgDgLctoV0bachelor0[2]={2212,310};
3843 Int_t pdgDgV0toDaughters0[2]={211,211};
3844 Int_t mcLabel0 = part->
MatchToMC(pdgCand0,pdgDgLctoV0bachelor0[1],pdgDgLctoV0bachelor0,pdgDgV0toDaughters0,mcArray,kTRUE);
3845 AliAODMCParticle *partLc =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(mcLabel0));
3847 AliAODMCParticle *partLcDaug0 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(partLc->GetDaughter(0)));
3849 xLcMC=partLcDaug0->Xv(), yLcMC=partLcDaug0->Yv(), zLcMC=partLcDaug0->Zv();
3852 }
else if (isLc2LBarpi || isLc2Lpi) {
3853 AliAODMCParticle *partLc =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(mcLabel));
3854 AliAODMCParticle *partLcDaug0 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(partLc->GetDaughter(0)));
3855 xLcMC=partLcDaug0->Xv(), yLcMC=partLcDaug0->Yv(), zLcMC=partLcDaug0->Zv();
3856 }
else if (isDp2K0Spi) {
3857 AliAODMCParticle *partLc =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(mcLabel2));
3858 AliAODMCParticle *partLcDaug0 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(partLc->GetDaughter(0)));
3859 xLcMC=partLcDaug0->Xv(), yLcMC=partLcDaug0->Yv(), zLcMC=partLcDaug0->Zv();
3860 }
else if (isDs2K0SK) {
3861 AliAODMCParticle *partLc =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(mcLabel3));
3862 AliAODMCParticle *partLcDaug0 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(partLc->GetDaughter(0)));
3863 xLcMC=partLcDaug0->Xv(), yLcMC=partLcDaug0->Yv(), zLcMC=partLcDaug0->Zv();
3864 }
else if (isKstar12K0Spi) {
3865 AliAODMCParticle *partLc =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(mcLabel4));
3866 AliAODMCParticle *partLcDaug0 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(partLc->GetDaughter(0)));
3867 xLcMC=partLcDaug0->Xv(), yLcMC=partLcDaug0->Yv(), zLcMC=partLcDaug0->Zv();
3868 }
else if (isKstar22K0Spi) {
3869 AliAODMCParticle *partLc =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(mcLabel5));
3870 AliAODMCParticle *partLcDaug0 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(partLc->GetDaughter(0)));
3871 xLcMC=partLcDaug0->Xv(), yLcMC=partLcDaug0->Yv(), zLcMC=partLcDaug0->Zv();
3914 if (bachelor->GetLabel()!=-1) {
3915 AliAODMCParticle *partBachelor =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(TMath::Abs(bachelor->GetLabel())));
3918 if (bachelor->GetLabel()!=-1 &&
3919 v0pos->GetLabel()!=-1 &&
3920 v0neg->GetLabel()!=-1) {
3922 Int_t dgLabels[ndg]={TMath::Abs(bachelor->GetLabel()),
3923 TMath::Abs(v0pos->GetLabel()),
3924 TMath::Abs(v0neg->GetLabel())};
3927 Int_t absLabelMother=-1;
3930 dgLabels,ndg,ndgCk,pdgDg,absLabelMother,nDauCand);
3932 if (v0pos->GetLabel()!=-1) {
3933 AliAODMCParticle *part1 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(TMath::Abs(v0pos->GetLabel())));
3936 if (v0neg->GetLabel()!=-1) {
3937 AliAODMCParticle *part2 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(TMath::Abs(v0neg->GetLabel())));
3940 if (v0pos->GetLabel()!=-1 &&
3941 v0neg->GetLabel()!=-1) {
3943 Int_t dgLabels[ndg]={TMath::Abs(v0pos->GetLabel()),
3944 TMath::Abs(v0neg->GetLabel())};
3947 Int_t absLabelMother=-1;
3950 dgLabels,ndg,ndgCk,pdgDg,absLabelMother,nDauCand);
3955 AliInputEventHandler *inputHandler=(AliInputEventHandler*)mgr->GetInputEventHandler();
3956 AliPIDResponse *pidResponse=inputHandler->GetPIDResponse();
3959 AliPIDCombined *objectPIDCombined=
new AliPIDCombined;
3960 objectPIDCombined->SetDefaultTPCPriors();
3961 objectPIDCombined->SetDetectorMask(AliPIDResponse::kDetTPC+AliPIDResponse::kDetTOF);
3963 Double_t probTPCTOF[AliPID::kSPECIES]={-1.};
3964 UInt_t detUsed = objectPIDCombined->ComputeProbabilities(bachelor, pidResponse, probTPCTOF);
3969 if (detUsed == (
UInt_t)objectPIDCombined->GetDetectorMask() ) {
3970 AliDebug(2, Form(
"We have found the detector mask for TOF + TPC: probProton will be set to %f", probTPCTOF[
AliPID::kProton]));
3976 objectPIDCombined->SetDetectorMask(AliPIDResponse::kDetTPC);
3977 AliDebug(2,
"We did not find the detector mask for TOF + TPC, let's see only TPC");
3978 detUsed = objectPIDCombined->ComputeProbabilities(bachelor, pidResponse, probTPCTOF);
3979 AliDebug(2,Form(
" detUsed (TPC case) = %d", detUsed));
3980 if (detUsed == (
UInt_t)objectPIDCombined->GetDetectorMask()) {
3984 AliDebug(2, Form(
"TPC only worked: probProton will be set to %f", probTPCTOF[
AliPID::kProton]));
3987 AliDebug(2,
"Only TPC did not work...");
3990 objectPIDCombined->SetDetectorMask(AliPIDResponse::kDetTPC+AliPIDResponse::kDetTOF);
3992 AliDebug(2, Form(
"probProton = %f", probProton));
3997 Double_t pidTPC[AliPID::kSPECIES]={-1.};
3998 Double_t pidTOF[AliPID::kSPECIES]={-1.};
3999 Int_t respTPC = pidResponse->ComputePIDProbability(AliPIDResponse::kDetTPC, bachelor, AliPID::kSPECIES, pidTPC);
4000 Int_t respTOF = pidResponse->ComputePIDProbability(AliPIDResponse::kDetTOF, bachelor, AliPID::kSPECIES, pidTOF);
4001 if (respTPC == AliPIDResponse::kDetPidOk) probProtonTPC = pidTPC[
AliPID::kProton];
4002 if (respTOF == AliPIDResponse::kDetPidOk) probProtonTOF = pidTOF[
AliPID::kProton];
4012 delete objectPIDCombined;
4025 const char* nameoutput = GetOutputSlot(4)->GetContainer()->GetName();
4031 fCandidateVariableNames[ 0]=
"isLcByMC";
4032 fCandidateVariableNames[ 1]=
"isV0ByMC";
4033 fCandidateVariableNames[ 2]=
"flagToCheckBachelor";
4034 fCandidateVariableNames[ 3]=
"flagToCheckV0daughters";
4035 fCandidateVariableNames[ 4]=
"flagToCheckCandidate";
4036 fCandidateVariableNames[ 5]=
"massLc2K0Sp";
4037 fCandidateVariableNames[ 6]=
"massLc2Lambdapi";
4038 fCandidateVariableNames[ 7]=
"massD2K0Spi";
4039 fCandidateVariableNames[ 8]=
"massDS2K0SK";
4040 fCandidateVariableNames[ 9]=
"massK0S";
4041 fCandidateVariableNames[10]=
"massLambda";
4042 fCandidateVariableNames[11]=
"massLambdaBar";
4043 fCandidateVariableNames[12]=
"massGamma";
4044 fCandidateVariableNames[13]=
"dcaLcptp";
4045 fCandidateVariableNames[14]=
"dcaV0ptp";
4046 fCandidateVariableNames[15]=
"tImpParBach";
4047 fCandidateVariableNames[16]=
"tImpParV0";
4048 fCandidateVariableNames[17]=
"dcaV0postoPV";
4049 fCandidateVariableNames[18]=
"dcaV0negtoPV";
4050 fCandidateVariableNames[19]=
"cosPALc";
4051 fCandidateVariableNames[20]=
"cosPAK0S";
4052 fCandidateVariableNames[21]=
"rhoV0";
4053 fCandidateVariableNames[22]=
"nSigmaITSpr";
4054 fCandidateVariableNames[23]=
"nSigmaITSpi";
4055 fCandidateVariableNames[24]=
"nSigmaITSka";
4056 fCandidateVariableNames[25]=
"nSigmaTPCpr";
4057 fCandidateVariableNames[26]=
"nSigmaTPCpi";
4058 fCandidateVariableNames[27]=
"nSigmaTPCka";
4059 fCandidateVariableNames[28]=
"nSigmaTOFpr";
4060 fCandidateVariableNames[29]=
"nSigmaTOFpi";
4061 fCandidateVariableNames[30]=
"nSigmaTOFka";
4062 fCandidateVariableNames[31]=
"yLc";
4063 fCandidateVariableNames[32]=
"etaBach";
4064 fCandidateVariableNames[33]=
"etaV0pos";
4065 fCandidateVariableNames[34]=
"etaV0neg";
4066 fCandidateVariableNames[35]=
"LcP";
4067 fCandidateVariableNames[36]=
"LcPt";
4068 fCandidateVariableNames[37]=
"v0P";
4069 fCandidateVariableNames[38]=
"v0Pt";
4070 fCandidateVariableNames[39]=
"bachelorP";
4071 fCandidateVariableNames[40]=
"bachelorPt";
4072 fCandidateVariableNames[41]=
"V0positiveP";
4073 fCandidateVariableNames[42]=
"V0positivePt";
4074 fCandidateVariableNames[43]=
"V0negativeP";
4075 fCandidateVariableNames[44]=
"V0negativePt";
4076 fCandidateVariableNames[45]=
"decayLengthLc";
4077 fCandidateVariableNames[46]=
"decayLengthV0";
4078 fCandidateVariableNames[47]=
"cosPALcXY";
4079 fCandidateVariableNames[48]=
"cosPAV0XY";
4080 fCandidateVariableNames[49]=
"decayLengthLcXY";
4081 fCandidateVariableNames[50]=
"decayLengthV0XY";
4082 fCandidateVariableNames[51]=
"normalizedDecayLengthLc";
4083 fCandidateVariableNames[52]=
"normalizedDecayLengthV0";
4084 fCandidateVariableNames[53]=
"normalizedDecayLengthXYLc";
4085 fCandidateVariableNames[54]=
"normalizedDecayLengthXYV0";
4086 fCandidateVariableNames[55]=
"newLcDCA";
4088 fCandidateVariableNames[56]=
"cosThetaStarBachelor";
4089 fCandidateVariableNames[57]=
"cosThetaStarV0";
4090 fCandidateVariableNames[58]=
"etaV0";
4091 fCandidateVariableNames[59]=
"yV0";
4092 fCandidateVariableNames[60]=
"bachelorCharge";
4093 fCandidateVariableNames[61]=
"isMCparticleInFiducialAcceptance";
4095 fCandidateVariableNames[62]=
"massKstar12K0Spi";
4096 fCandidateVariableNames[63]=
"massKstar22K0Spi";
4097 fCandidateVariableNames[64]=
"pdgBachelor";
4098 fCandidateVariableNames[65]=
"pdgCandidate";
4099 fCandidateVariableNames[66]=
"pdgV0pos";
4100 fCandidateVariableNames[67]=
"pdgV0neg";
4101 fCandidateVariableNames[68]=
"pdgV0Candidate";
4102 fCandidateVariableNames[69]=
"startTimeMask";
4104 fCandidateVariableNames[70]=
"combinedProtonProb";
4105 fCandidateVariableNames[71]=
"TPCProtonProb";
4106 fCandidateVariableNames[72]=
"TOFProtonProb";
4107 fCandidateVariableNames[73]=
"checkLcOrigin";
4109 fCandidateVariableNames[74]=
"qtProng0V0";
4112 fCandidateVariableNames[75]=
"xVtxLcBad";
4113 fCandidateVariableNames[76]=
"yVtxLcBad";
4114 fCandidateVariableNames[77]=
"zVtxLcBad";
4115 fCandidateVariableNames[78]=
"xVtxLcGood";
4116 fCandidateVariableNames[79]=
"yVtxLcGood";
4117 fCandidateVariableNames[80]=
"zVtxLcGood";
4118 fCandidateVariableNames[81]=
"xVtxLcMC";
4119 fCandidateVariableNames[82]=
"yVtxLcMC";
4120 fCandidateVariableNames[83]=
"zVtxLcMC";
4121 fCandidateVariableNames[84]=
"pxVtxBachelorBad";
4122 fCandidateVariableNames[85]=
"pyVtxBachelorBad";
4123 fCandidateVariableNames[86]=
"pxVtxBachelorGood";
4124 fCandidateVariableNames[87]=
"pyVtxBachelorGood";
4125 fCandidateVariableNames[88]=
"pzVtxBachelorGood";
4126 fCandidateVariableNames[89]=
"pxVtxV0";
4127 fCandidateVariableNames[90]=
"pyVtxV0";
4128 fCandidateVariableNames[91]=
"pzVtxV0";
4129 fCandidateVariableNames[92]=
"xPvtx";
4130 fCandidateVariableNames[93]=
"yPvtx";
4131 fCandidateVariableNames[94]=
"zPvtx";
4147 fCEvents =
new TH1F(
"fCEvents",
"conter",20,0,20);
4149 fCEvents->GetXaxis()->SetBinLabel(1,
"X1");
4150 fCEvents->GetXaxis()->SetBinLabel(2,
"Analyzed events");
4151 fCEvents->GetXaxis()->SetBinLabel(3,
"AliAODVertex exists");
4152 fCEvents->GetXaxis()->SetBinLabel(4,
"CascadesHF exists");
4153 fCEvents->GetXaxis()->SetBinLabel(5,
"MCarray exists");
4154 fCEvents->GetXaxis()->SetBinLabel(6,
"MCheader exists");
4155 fCEvents->GetXaxis()->SetBinLabel(7,
"GetNContributors()>0");
4156 fCEvents->GetXaxis()->SetBinLabel(8,
"IsEventSelected");
4157 fCEvents->GetXaxis()->SetBinLabel(9,
"triggerClass!=CINT1");
4158 fCEvents->GetXaxis()->SetBinLabel(10,
"triggerMask!=kAnyINT");
4159 fCEvents->GetXaxis()->SetBinLabel(11,
"triggerMask!=kAny");
4160 fCEvents->GetXaxis()->SetBinLabel(12,
"vtxTitle.Contains(Z)");
4161 fCEvents->GetXaxis()->SetBinLabel(13,
"vtxTitle.Contains(3D)");
4162 fCEvents->GetXaxis()->SetBinLabel(14,
"vtxTitle.Doesn'tContain(Z-3D)");
4164 fCEvents->GetXaxis()->SetBinLabel(16,
"!IsEventSelected");
4165 fCEvents->GetXaxis()->SetBinLabel(17,
"triggerMask!=kAnyINT || triggerClass!=CINT1");
4167 fCEvents->GetXaxis()->SetBinLabel(19,
"Re-Fill Fail");
4168 fCEvents->GetXaxis()->SetBinLabel(20,
"AOD Mismatch");
4170 fCEvents->GetYaxis()->SetTitle(
"counts");
4176 fillthis=
"histMcStatLc";
4177 TH1F* mcStatisticLc =
new TH1F(fillthis.Data(),
"#Lambda_{c} generated and their decays",21,-10.5,10.5);
4183 fillthis=
"histoprotonBachSigmaVspTOF";
4184 TH2F *hprotonBachSigmaVspTOF=
new TH2F(fillthis.Data(),fillthis.Data(),300,0.,30.,100,-5.,5.);
4187 fOutput->Add(hprotonBachSigmaVspTOF);
4191 fillthis=
"histoprotonBachSigmaVspTPC";
4192 TH2F *hprotonBachSigmaVspTPC=
new TH2F(fillthis.Data(),fillthis.Data(),300,0.,30.,100,-5.,5.);
4195 fOutput->Add(hprotonBachSigmaVspTPC);
4201 fillthis=
"histoprotonBachSigmaVspTOFsgn";
4202 TH2F *hprotonBachSigmaVspTOFsgn=
new TH2F(fillthis.Data(),fillthis.Data(),300,0.,30.,100,-5.,5.);
4205 fOutput->Add(hprotonBachSigmaVspTOFsgn);
4209 fillthis=
"histoprotonBachSigmaVspTPCsgn";
4210 TH2F *hprotonBachSigmaVspTPCsgn=
new TH2F(fillthis.Data(),fillthis.Data(),300,0.,30.,100,-5.,5.);
4213 fOutput->Add(hprotonBachSigmaVspTPCsgn);
4218 fillthis=
"histoprotonBachSigmaVspTOFbkg";
4219 TH2F *hprotonBachSigmaVspTOFbkg=
new TH2F(fillthis.Data(),fillthis.Data(),300,0.,30.,100,-5.,5.);
4222 fOutput->Add(hprotonBachSigmaVspTOFbkg);
4226 fillthis=
"histoprotonBachSigmaVspTPCbkg";
4227 TH2F *hprotonBachSigmaVspTPCbkg=
new TH2F(fillthis.Data(),fillthis.Data(),300,0.,30.,100,-5.,5.);
4230 fOutput->Add(hprotonBachSigmaVspTPCbkg);
4236 TH1F *hZ2 =
new TH1F(
"hZ2",
"",100,-50.,50.);
4238 TH1F *hZ3 =
new TH1F(
"hZ3",
"",100,-50.,50.);
4240 TH1F *hZ4 =
new TH1F(
"hZ4",
"",100,-50.,50.);
4242 TH1F *hZ5 =
new TH1F(
"hZ5",
"",100,-50.,50.);
4244 TH1F *hZ6 =
new TH1F(
"hZ6",
"",100,-50.,50.);
4246 TH1F *hZ7 =
new TH1F(
"hZ7",
"",100,-50.,50.);
4248 TH1F *hZ8 =
new TH1F(
"hZ8",
"",100,-50.,50.);
4250 TH1F *hZ9 =
new TH1F(
"hZ9",
"",100,-50.,50.);
4252 TH1F *hZ10 =
new TH1F(
"hZ10",
"",100,-50.,50.);
4254 TH1F *hZ11 =
new TH1F(
"hZ11",
"",100,-50.,50.);
4256 TH1F *hZ12 =
new TH1F(
"hZ12",
"",100,-50.,50.);
4258 TH1F *hZ13 =
new TH1F(
"hZ13",
"",100,-50.,50.);
4260 TH1F *hZ14 =
new TH1F(
"hZ14",
"",100,-50.,50.);
4262 TH1F *hZ15 =
new TH1F(
"hZ15",
"",100,-50.,50.);
4264 TH1F *hZ16 =
new TH1F(
"hZ16",
"",100,-50.,50.);
4268 TH1F *hCandidateSelection =
new TH1F(
"hCandidateSelection",
"",10,-0.5,9.5);
4269 hCandidateSelection->GetXaxis()->SetBinLabel(1,
"IsEventSelected");
4270 hCandidateSelection->GetXaxis()->SetBinLabel(2,
"IsSecondaryVtx");
4271 hCandidateSelection->GetXaxis()->SetBinLabel(3,
"V0toPosNeg");
4272 hCandidateSelection->GetXaxis()->SetBinLabel(4,
"offlineV0");
4273 hCandidateSelection->GetXaxis()->SetBinLabel(5,
"isInFiducialAcceptance");
4274 hCandidateSelection->GetXaxis()->SetBinLabel(6,
"analCuts::kTracks");
4275 hCandidateSelection->GetXaxis()->SetBinLabel(7,
"analCuts::kCandidateNoPID");
4276 hCandidateSelection->GetXaxis()->SetBinLabel(8,
"analCuts::kPID");
4277 hCandidateSelection->GetXaxis()->SetBinLabel(9,
"analCuts::kCandidateWithPID");
4278 hCandidateSelection->GetXaxis()->SetBinLabel(10,
"analCuts::kAll");
4279 fOutput->Add(hCandidateSelection);
4281 TH1F *hEventsWithCandidates =
new TH1F(
"hEventsWithCandidates",
"conter",11,5.5,16.5);
4282 hEventsWithCandidates->GetXaxis()->SetBinLabel(1,
"GetNContributors()>0");
4283 hEventsWithCandidates->GetXaxis()->SetBinLabel(2,
"IsEventSelected");
4284 hEventsWithCandidates->GetXaxis()->SetBinLabel(3,
"triggerClass!=CINT1");
4285 hEventsWithCandidates->GetXaxis()->SetBinLabel(4,
"triggerMask!=kAnyINT");
4286 hEventsWithCandidates->GetXaxis()->SetBinLabel(5,
"triggerMask!=kAny");
4287 hEventsWithCandidates->GetXaxis()->SetBinLabel(6,
"vtxTitle.Contains(Z)");
4288 hEventsWithCandidates->GetXaxis()->SetBinLabel(7,
"vtxTitle.Contains(3D)");
4289 hEventsWithCandidates->GetXaxis()->SetBinLabel(8,
"vtxTitle.Doesn'tContain(Z-3D)");
4290 hEventsWithCandidates->GetXaxis()->SetBinLabel(9,Form(
"zVtx<=%2.0fcm",
fAnalCuts->
GetMaxVtxZ()));
4291 hEventsWithCandidates->GetXaxis()->SetBinLabel(10,
"!IsEventSelected");
4292 hEventsWithCandidates->GetXaxis()->SetBinLabel(11,
"triggerMask!=kAnyINT || triggerClass!=CINT1");
4293 fOutput->Add(hEventsWithCandidates);
4297 TH1F *hZ6a =
new TH1F(
"hZ6a",
"",100,-50.,50.);
4299 TH1F *hZ7a =
new TH1F(
"hZ7a",
"",100,-50.,50.);
4301 TH1F *hZ8a =
new TH1F(
"hZ8a",
"",100,-50.,50.);
4303 TH1F *hZ9a =
new TH1F(
"hZ9a",
"",100,-50.,50.);
4305 TH1F *hZ10a =
new TH1F(
"hZ10a",
"",100,-50.,50.);
4307 TH1F *hZ11a =
new TH1F(
"hZ11a",
"",100,-50.,50.);
4309 TH1F *hZ12a =
new TH1F(
"hZ12a",
"",100,-50.,50.);
4311 TH1F *hZ13a =
new TH1F(
"hZ13a",
"",100,-50.,50.);
4313 TH1F *hZ14a =
new TH1F(
"hZ14a",
"",100,-50.,50.);
4315 TH1F *hZ15a =
new TH1F(
"hZ15a",
"",100,-50.,50.);
4317 TH1F *hZ16a =
new TH1F(
"hZ16a",
"",100,-50.,50.);
4321 TH1F *hSwitchOnCandidates1 =
new TH1F(
"hSwitchOnCandidates1",
"",15,-7.5,7.5);
4322 fOutput->Add(hSwitchOnCandidates1);
4323 TH1F *hSwitchOnCandidates2 =
new TH1F(
"hSwitchOnCandidates2",
"",15,-7.5,7.5);
4324 fOutput->Add(hSwitchOnCandidates2);
4325 TH1F *hSwitchOnCandidates3 =
new TH1F(
"hSwitchOnCandidates3",
"",15,-7.5,7.5);
4326 fOutput->Add(hSwitchOnCandidates3);
4327 TH1F *hSwitchOnCandidates4 =
new TH1F(
"hSwitchOnCandidates4",
"",15,-7.5,7.5);
4328 fOutput->Add(hSwitchOnCandidates4);
4349 AliAODTrack *bachelor = (AliAODTrack*)part->
GetBachelor();
4353 AliAODv0 *v0part = (AliAODv0*)part->
Getv0();
4357 Double_t invmassK0S = v0part->MassK0Short();
4364 if (!appendthis.Contains(
"SgnC") && !appendthis.Contains(
"SgnB") && !appendthis.Contains(
"SgnNoQ")) {
4365 fillthis=
"histpK0Svsp"+appendthis;
4368 ((
TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(momBach,momK0S);
4369 if (isBachelorID) ((
TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(momBach,momK0S);
4373 fillthis=
"histLcMassByK0S"+appendthis;
4376 ((
TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(invmassLc,lambdacpt);
4377 if (isBachelorID)((
TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(invmassLc,lambdacpt);
4381 fillthis=
"histLcMassByK0SSubSample"+appendthis;
4384 if (isBachelorID)((THnSparse*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(contsp);
4388 if (!appendthis.Contains(
"SgnC") && !appendthis.Contains(
"SgnB") && !appendthis.Contains(
"SgnNoQ")) {
4389 fillthis=
"histK0SMass"+appendthis;
4393 ((
TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,invmassK0S);
4394 if (isBachelorID) ((
TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,invmassK0S);
4399 fillthis=
"histptK0S"+appendthis;
4403 ((
TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,ptK0S);
4404 if (isBachelorID)((
TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,ptK0S);
4407 fillthis=
"histptP"+appendthis;
4411 ((
TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,ptBach);
4412 if (isBachelorID)((
TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,ptBach);
4415 fillthis=
"histptPip"+appendthis;
4419 ((
TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,ptV0pos);
4420 if (isBachelorID)((
TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,ptV0pos);
4423 fillthis=
"histptPim"+appendthis;
4427 ((
TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,ptV0neg);
4428 if (isBachelorID)((
TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,ptV0neg);
4431 if (!appendthis.Contains(
"SgnC") && !appendthis.Contains(
"SgnB") && !appendthis.Contains(
"SgnNoQ")) {
4432 fillthis=
"histLambdaMass"+appendthis;
4436 ((
TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,v0part->MassLambda());
4437 if (isBachelorID)((
TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,v0part->MassLambda());
4440 fillthis=
"histLambdaBarMass"+appendthis;
4444 ((
TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,v0part->MassAntiLambda());
4445 if (isBachelorID)((
TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,v0part->MassAntiLambda());
4448 fillthis=
"histGammaMass"+appendthis;
4452 ((
TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,v0part->InvMass2Prongs(0,1,11,11));
4453 if (isBachelorID)((
TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,v0part->InvMass2Prongs(0,1,11,11));
4457 fillthis=
"histD0K0S"+appendthis;
4461 ((
TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,part->Getd0Prong(1));
4462 if (isBachelorID)((
TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,part->Getd0Prong(1));
4465 fillthis=
"histD0P"+appendthis;
4469 ((
TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,part->Getd0Prong(0));
4470 if (isBachelorID)((
TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,part->Getd0Prong(0));
4473 fillthis=
"histCosPAK0S"+appendthis;
4481 fillthis=
"histCosThetaProtonCMS"+appendthis;
4489 fillthis=
"histResignedD0"+appendthis;
4514 bachelor->PxPyPz(pxpypz);
4515 bachelor->XvYvZv(xyz);
4516 bachelor->GetCovarianceXYZPxPyPz(cv);
4517 sign=bachelor->Charge();
4518 AliExternalTrackParam *t =
new AliExternalTrackParam(xyz,pxpypz,cv,sign);
4520 Double_t alpha=t->GetAlpha(), cs1=TMath::Cos(alpha), sn1=TMath::Sin(alpha);
4524 Double_t x1=xyz[0], y1=xyz[1], z1=xyz[2];
4525 Double_t px1=pxpypz[0], py1=pxpypz[1], pz1=pxpypz[2];
4529 y2=v->DecayVertexV0Y(),
4530 z2=v->DecayVertexV0Z();
4558 Double_t dd=
Det(x2-x1,y2-y1,z2-z1,px1,py1,pz1,px2,py2,pz2);
4563 Double_t dca=TMath::Abs(dd)/TMath::Sqrt(ax*ax + ay*ay + az*az);
4566 Double_t t1 =
Det(x2-x1,y2-y1,z2-z1,px2,py2,pz2,ax,ay,az)/
4567 Det(px1,py1,pz1,px2,py2,pz2,ax,ay,az);
4568 x1 += px1*t1; y1 += py1*t1; z1 += pz1*t1;
4572 if (!t->PropagateTo(rho1,b)) {
4573 Error(
"PropagateToDCA",
"Propagation failed !");
4578 Double_t pBachelorDCA[3]; t->GetPxPyPz(pBachelorDCA);
4579 pxVtxBachelor=pBachelorDCA[0], pyVtxBachelor=pBachelorDCA[1], pzVtxBachelor=pBachelorDCA[2];
4584 Double_t t2 =
Det(x1-x2,y1-y2,z1-z2,px1,py1,pz1,ax,ay,az)/
4585 Det(px2,py2,pz2,px1,py1,pz1,ax,ay,az);
4586 x2 += px2*t2; y2 += py2*t2; z2 += pz2*t2;
4590 xVtxLc = 0.5*(x1+x2);
4591 yVtxLc = 0.5*(y1+y2);
4592 zVtxLc = 0.5*(z1+z2);
4607 const double kSafe = 1e-5;
4608 Double_t radPos2 = xyz[0]*xyz[0]+xyz[1]*xyz[1];
4610 if (radPos2 < radMax*radMax) {
4611 alpha = TMath::ATan2(pxpypz[1],pxpypz[0]);
4613 Float_t phiPos = TMath::Pi()+TMath::ATan2(-xyz[1], -xyz[0]);
4615 TMath::DegToRad()*(20*((((
Int_t)(phiPos*TMath::RadToDeg()))/20))+10);
4618 Double_t cs=TMath::Cos(alpha), sn=TMath::Sin(alpha);
4620 if (TMath::Abs(sn)<2*kSafe) {
4621 if (alpha>0) alpha += alpha< TMath::Pi()/2. ? 2*kSafe : -2*kSafe;
4622 else alpha += alpha>-TMath::Pi()/2. ? -2*kSafe : 2*kSafe;
4623 cs=TMath::Cos(alpha);
4624 sn=TMath::Sin(alpha);
4626 else if (TMath::Abs(cs)<2*kSafe) {
4627 if (alpha>0) alpha += alpha> TMath::Pi()/2. ? 2*kSafe : -2*kSafe;
4628 else alpha += alpha>-TMath::Pi()/2. ? 2*kSafe : -2*kSafe;
4629 cs=TMath::Cos(alpha);
4630 sn=TMath::Sin(alpha);
4644 return a00*a11 - a01*a10;
4655 return a00*
Det(a11,a12,a21,a22)-a01*
Det(a10,a12,a20,a22)+a02*
Det(a10,a11,a20,a21);
4660 TClonesArray *mcArray)
4668 AliAODv0 *theV0 =
dynamic_cast<AliAODv0*
>(candidate->
Getv0());
4669 AliVTrack *trk =
dynamic_cast<AliVTrack*
>(candidate->
GetBachelor());
4670 if (!trk || !theV0)
return -1;
4672 if (trk->GetLabel()==-1)
return -1;
4673 Int_t bachLabels = TMath::Abs(trk->GetLabel());
4674 AliAODMCParticle*bachelorMC =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(bachLabels));
4675 if (!bachelorMC)
return -1;
4676 if (TMath::Abs(bachelorMC->GetPdgCode())!=2212)
return -1;
4677 Int_t indexMotherBach = bachelorMC->GetMother();
4678 if (indexMotherBach==-1)
return -1;
4680 Int_t pdgDg2prong[2] = {211,211};
4681 Int_t lab2Prong = theV0->MatchToMC(310,mcArray,2,pdgDg2prong);
4682 if(lab2Prong<0)
return -1;
4683 AliAODMCParticle*partK0S =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(lab2Prong));
4684 if (!partK0S)
return -1;
4685 Int_t indexMotherK0S = partK0S->GetMother();
4686 if (indexMotherK0S==-1)
return -1;
4687 AliAODMCParticle*partK0 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(indexMotherK0S));
4688 if (!partK0)
return -1;
4689 Int_t indexMotherK0 = partK0->GetMother();
4690 if (indexMotherK0==-1)
return -1;
4692 if (indexMotherBach!=indexMotherK0)
return -1;
4694 AliAODMCParticle*partLc =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(indexMotherK0));
4695 if (!partLc)
return -1;
4696 Int_t ndg2 = partLc->GetDaughter(1)-partLc->GetDaughter(0)+1;
4697 if (ndg2==2)
return -1;
4699 TString stringaCheck = Form(
">>>>>>>> %d -> ",partLc->GetPdgCode());
4700 for(
Int_t ii=0; ii<ndg2; ii++) {
4701 AliAODMCParticle* partDau=(AliAODMCParticle*)(mcArray->At(partLc->GetDaughter(0)+ii));
4702 stringaCheck.Append(Form(
" %d",partDau->GetPdgCode()));
4706 return indexMotherBach;
4720 Int_t lab=-1,labMother=-1,pdgMother=0;
4721 AliAODMCParticle *
part=0;
4722 AliAODMCParticle *mother=0;
4726 for(
Int_t i=0; i<ndg; i++) labelMother[i] =
new TArrayI(0);
4727 for(
Int_t i=0; i<ndg; i++) {
4728 lab = TMath::Abs(dgLabels[i]);
4730 AliDebug(2,Form(
"daughter with negative label %d",lab));
4731 delete [] labelMother;
4734 part = (AliAODMCParticle*)mcArray->At(lab);
4736 AliDebug(2,
"no MC particle");
4737 delete [] labelMother;
4742 while(mother->GetMother()>=0) {
4743 labMother=mother->GetMother();
4744 mother = (AliAODMCParticle*)mcArray->At(labMother);
4746 AliDebug(2,
"no MC mother particle");
4749 pdgMother = TMath::Abs(mother->GetPdgCode());
4750 if (pdgMother<10 || (pdgMother>18 && pdgMother<111)) {
4753 labelMother[i]->Set(labelMother[i]->GetSize()+1);
4754 labelMother[i]->AddAt(labMother,labelMother[i]->GetSize()-1);
4761 for(
Int_t i=0; i<ndg; i++) {
4762 AliAODMCParticle*part0 = (AliAODMCParticle*)mcArray->At(TMath::Abs(dgLabels[i]));
4763 stringaCheck.Append(Form(
"part[%d]->GetLabel()=%d(%d) | ",i,dgLabels[i],part0->GetPdgCode()));
4764 stringaCheck.Append(Form(
"labelMother[%d] = ",i));
4765 for (
Int_t jj=0;jj<labelMother[i]->GetSize(); jj++)
4766 stringaCheck.Append(Form(
"%d, ",labelMother[i]->At(jj)));
4768 AliDebug(2,Form(
"%s \n",stringaCheck.Data()));
4769 Int_t pdgToBeReturned=0;
4773 pdgDg =
new Int_t[ndgCk];
4774 for (
Int_t index=1; index<ndg; index++) {
4776 for (
Int_t jj=0;jj<labelMother[index]->GetSize(); jj++) {
4777 for (
Int_t ii=0;ii<labelMother[0]->GetSize(); ii++) {
4778 if (labelMother[0]->At(ii)==labelMother[index]->At(jj) &&
4779 labelMother[0]->At(ii)!=0 && labelMother[0]->At(ii)!=1 && !found) {
4780 mother = (AliAODMCParticle*)mcArray->At(labelMother[0]->At(ii));
4781 pdgToBeReturned=mother->GetPdgCode();
4782 absLabelMother=labelMother[0]->At(ii);
4783 AliDebug(2,Form(
"FOUND label for the mother of this candidate: %d (PDG=%d)\n",labelMother[0]->At(ii),pdgToBeReturned));
4785 nDauCand=mother->GetNDaughters();
4787 AliAODMCParticle *partMC = (AliAODMCParticle*)mcArray->At(dgLabels[0]);
4788 pdgDg[0]=partMC->GetPdgCode();
4789 partMC = (AliAODMCParticle*)mcArray->At(dgLabels[index]);
4790 pdgDg[index]=partMC->GetPdgCode();
4791 if (index==1) stringaCheck2.Append(Form(
"found daughters -> %d(%d)",dgLabels[0],pdgDg[0]));
4792 stringaCheck2.Append(Form(
" %d(%d)",dgLabels[index],pdgDg[index]));
4799 stringaCheck2.Prepend(Form(
"Ecco quanto trovato: %d(%d) with %d daughters; ",absLabelMother,pdgToBeReturned,nDauCand));
4800 AliDebug(2,Form(
"%s \n",stringaCheck2.Data()));
4802 delete [] labelMother;
4805 return pdgToBeReturned;
4814 Double_t px[2]={partCopy->PxProng(0),partCopy->PxProng(1)};
4815 Double_t py[2]={partCopy->PyProng(0),partCopy->PyProng(1)};
4816 Double_t pz[2]={partCopy->PzProng(0),partCopy->PzProng(1)};
4820 UInt_t pdgLc2pK0S[2]={2212,310};
4821 Double_t minv2 = partCopy->InvMass2(2,pdgLc2pK0S);
4823 Double_t rapid = partCopy->Y(pdgD);
4828 fillthis=
"hMassVsPtVsY"+appendthis;
4832 fillthis=
"phiVSthetaVSpt"+appendthis;
4847 px[0]=tmpx*TMath::Cos(phirot)-tmpy*TMath::Sin(phirot);
4848 py[0]=tmpx*TMath::Sin(phirot)+tmpy*TMath::Cos(phirot);
4849 partCopy->SetPxPyPzProngs(2,px,py,pz);
4850 pt = partCopy->Pt();
4851 minv2 = partCopy->InvMass2(2,pdgLc2pK0S);
4852 massRot=TMath::Sqrt(minv2);
4853 rapid = partCopy->Y(pdgD);
4858 fillthis=
"histLcMassByK0S"+appendthis;
4862 fillthis=
"hMassVsPtVsYRot"+appendthis;
4866 fillthis=
"phiVSthetaVSptRot"+appendthis;
4870 fillthis=
"hDeltaMass"+appendthis;
4884 fillthis=
"histptK0S"+appendthis;
4888 ((
TH2F*)(
fOutputPIDBachTR->FindObject(fillthis)))->Fill(pt,TMath::Sqrt(px[1]*px[1]+py[1]*py[1]));
4891 fillthis=
"histptP"+appendthis;
4895 ((
TH2F*)(
fOutputPIDBachTR->FindObject(fillthis)))->Fill(pt,TMath::Sqrt(px[0]*px[0]+py[0]*py[0]));
4898 fillthis=
"histptPip"+appendthis;
4905 fillthis=
"histptPim"+appendthis;
4912 fillthis=
"histLambdaMass"+appendthis;
4919 fillthis=
"histLambdaBarMass"+appendthis;
4926 fillthis=
"histGammaMass"+appendthis;
4933 fillthis=
"histCosPAK0S"+appendthis;
4940 fillthis=
"histCosThetaProtonCMS"+appendthis;
4947 fillthis=
"histResignedD0"+appendthis;
4960 fillthis=
"hNormRotated"+appendthis;
4980 Double_t mLcPDG = TDatabasePDG::Instance()->GetParticle(4122)->Mass();
4981 Double_t mK0SPDG = TDatabasePDG::Instance()->GetParticle(310)->Mass();
4982 Double_t mMinLambdaPDG = TDatabasePDG::Instance()->GetParticle(2212)->Mass()+
4983 TDatabasePDG::Instance()->GetParticle(211)->Mass();
4985 TString nameHistoSgnC=
" ", nameHistoSgnB=
" ", nameHistoSgnNoQ=
" ";
4986 TString titleHistoSgnC=
" ", titleHistoSgnB=
" ", titleHistoSgnNoQ=
" ";
5005 binLimpTprong[ 0]= 0.0;
5006 binLimpTprong[ 1]= 0.1;
5007 binLimpTprong[ 2]= 0.2;
5008 binLimpTprong[ 3]= 0.3;
5009 binLimpTprong[ 4]= 0.4;
5010 binLimpTprong[ 5]= 0.5;
5011 binLimpTprong[ 6]= 0.6;
5012 binLimpTprong[ 7]= 0.7;
5013 binLimpTprong[ 8]= 0.8;
5014 binLimpTprong[ 9]= 0.9;
5015 binLimpTprong[10]= 1.0;
5016 binLimpTprong[11]= 1.2;
5017 binLimpTprong[12]= 1.4;
5018 binLimpTprong[13]= 1.6;
5019 binLimpTprong[14]= 1.8;
5020 binLimpTprong[15]= 2.0;
5021 binLimpTprong[16]= 2.2;
5022 binLimpTprong[17]= 2.4;
5023 binLimpTprong[18]= 2.6;
5024 binLimpTprong[19]= 2.8;
5025 binLimpTprong[20]= 3.0;
5026 binLimpTprong[21]= 3.5;
5027 binLimpTprong[22]= 4.0;
5028 binLimpTprong[23]= 4.5;
5029 binLimpTprong[24]= 5.0;
5030 binLimpTprong[25]= 5.5;
5031 binLimpTprong[26]= 6.0;
5032 binLimpTprong[27]= 6.5;
5033 binLimpTprong[28]= 7.0;
5034 binLimpTprong[29]= 7.5;
5035 binLimpTprong[30]= 8.0;
5036 binLimpTprong[31]= 9.0;
5037 binLimpTprong[32]=10.0;
5038 binLimpTprong[33]=11.0;
5039 binLimpTprong[34]=12.0;
5040 binLimpTprong[35]=13.0;
5041 binLimpTprong[36]=14.0;
5042 binLimpTprong[37]=15.0;
5043 binLimpTprong[38]=20.0;
5044 binLimpTprong[39]=25.0;
5045 binLimpTprong[40]=30.0;
5046 binLimpTprong[41]=35.0;
5050 nameHistoSgnC=
"histLcMassByK0SSgnC";
5051 nameHistoSgnB=
"histLcMassByK0SSgnB";
5052 nameHistoSgnNoQ=
"histLcMassByK0SSgnNoQ";
5053 titleHistoSgnC=
"#Lambda_{c} #leftarrow c - sgn: invariant mass (by K^{0}_{S}) vs p_{T} - MC; m_{inv}(p,K^{0}_{S}) [GeV/c^{2}]; p_{T}(#Lambda_{c}) [GeV/c]";
5054 titleHistoSgnB=
"#Lambda_{c} #leftarrow b - sgn: invariant mass (by K^{0}_{S}) vs p_{T} - MC; m_{inv}(p,K^{0}_{S}) [GeV/c^{2}]; p_{T}(#Lambda_{c}) [GeV/c]";
5055 titleHistoSgnNoQ=
"#Lambda_{c} #leftarrow no quark - sgn: invariant mass (by K^{0}_{S}) vs p_{T} - MC; m_{inv}(p,K^{0}_{S}) [GeV/c^{2}]; p_{T}(#Lambda_{c}) [GeV/c]";
5056 TH2F* spectrumLcMassByK0SSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
5057 TH2F* spectrumLcMassByK0SSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
5058 TH2F* spectrumLcMassByK0SSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
5060 TH2F* allspectrumLcMassByK0SSgnC = (
TH2F*)spectrumLcMassByK0SSgnC->Clone();
5061 TH2F* allspectrumLcMassByK0SSgnB = (
TH2F*) spectrumLcMassByK0SSgnB->Clone();
5062 TH2F* allspectrumLcMassByK0SSgnNoQ = (
TH2F*) spectrumLcMassByK0SSgnNoQ->Clone();
5063 TH2F* pidBachspectrumLcMassByK0SSgnC = (
TH2F*)spectrumLcMassByK0SSgnC->Clone();
5064 TH2F* pidBachspectrumLcMassByK0SSgnB = (
TH2F*) spectrumLcMassByK0SSgnB->Clone();
5065 TH2F* pidBachspectrumLcMassByK0SSgnNoQ = (
TH2F*) spectrumLcMassByK0SSgnNoQ->Clone();
5069 fOutputAll->Add(allspectrumLcMassByK0SSgnNoQ);
5074 nameHistoSgnC=
"histptK0SSgnC";
5075 nameHistoSgnB=
"histptK0SSgnB";
5076 nameHistoSgnNoQ=
"histptK0SSgnNoQ";
5077 titleHistoSgnC=
"p_{T}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(K^{0}_{S}) [GeV/c]; Entries";
5078 titleHistoSgnB=
"p_{T}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(K^{0}_{S}) [GeV/c]; Entries";
5079 titleHistoSgnNoQ=
"p_{T}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(K^{0}_{S}) [GeV/c]; Entries";
5080 TH2F* ptK0SSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,41,binLimpTprong);
5081 TH2F* ptK0SSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
5082 TH2F* ptK0SSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),11,binLimpTLc,41,binLimpTprong);
5084 nameHistoSgnC=
"histptPSgnC";
5085 nameHistoSgnB=
"histptPSgnB";
5086 nameHistoSgnNoQ=
"histptPSgnNoQ";
5087 titleHistoSgnC=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
5088 titleHistoSgnB=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
5089 titleHistoSgnNoQ=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
5090 TH2F* ptPSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,41,binLimpTprong);
5091 TH2F* ptPSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
5092 TH2F* ptPSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),11,binLimpTLc,41,binLimpTprong);
5094 nameHistoSgnC=
"histptPipSgnC";
5095 nameHistoSgnB=
"histptPipSgnB";
5096 nameHistoSgnNoQ=
"histptPipSgnNoQ";
5097 titleHistoSgnC=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
5098 titleHistoSgnB=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
5099 titleHistoSgnNoQ=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
5100 TH2F* ptPiPSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,41,binLimpTprong);
5101 TH2F* ptPiPSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
5102 TH2F* ptPiPSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
5104 nameHistoSgnC=
"histptPimSgnC";
5105 nameHistoSgnB=
"histptPimSgnB";
5106 nameHistoSgnNoQ=
"histptPimSgnNoQ";
5107 titleHistoSgnC=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
5108 titleHistoSgnB=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
5109 titleHistoSgnNoQ=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
5110 TH2F* ptPiMSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,41,binLimpTprong);
5111 TH2F* ptPiMSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
5112 TH2F* ptPiMSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
5114 nameHistoSgnC=
"histD0K0SSgnC";
5115 nameHistoSgnB=
"histD0K0SSgnB";
5116 nameHistoSgnNoQ=
"histD0K0SSgnNoQ";
5117 titleHistoSgnC=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
5118 titleHistoSgnB=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
5119 titleHistoSgnNoQ=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
5120 TH2F* d0K0SSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,1000,-1.,1.);
5121 TH2F* d0K0SSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,1000,-1.,1.);
5122 TH2F* d0K0SSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),11,binLimpTLc,1000,-1.,1.);
5124 nameHistoSgnC=
"histD0PSgnC";
5125 nameHistoSgnB=
"histD0PSgnB";
5126 nameHistoSgnNoQ=
"histD0PSgnNoQ";
5127 titleHistoSgnC=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
5128 titleHistoSgnB=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
5129 titleHistoSgnNoQ=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
5130 TH2F* d0PSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,1000,-1.,1.);
5131 TH2F* d0PSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,1000,-1.,1.);
5132 TH2F* d0PSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),11,binLimpTLc,1000,-1.,1.);
5134 nameHistoSgnC=
"histCosPAK0SSgnC";
5135 nameHistoSgnB=
"histCosPAK0SSgnB";
5136 nameHistoSgnNoQ=
"histCosPAK0SSgnNoQ";
5137 titleHistoSgnC=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
5138 titleHistoSgnB=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
5139 titleHistoSgnNoQ=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
5140 TH2F *cosPAK0SSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),41,binLimpTprong,100,0.99,1.);
5141 TH2F *cosPAK0SSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),41,binLimpTprong,100,0.99,1.);
5142 TH2F *cosPAK0SSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),41,binLimpTprong,100,0.99,1.);
5144 nameHistoSgnC=
"histCosThetaProtonCMSSgnC";
5145 nameHistoSgnB=
"histCosThetaProtonCMSSgnB";
5146 nameHistoSgnNoQ=
"histCosThetaProtonCMSSgnNoQ";
5147 titleHistoSgnC=
"cosien of proton emission angle in Lc rest frame; p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
5148 titleHistoSgnB=
"cosien of proton emission angle in Lc rest frame; p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
5149 titleHistoSgnNoQ=
"cosien of proton emission angle in Lc rest frame; p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
5150 TH2F *cosThePrSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),41,binLimpTprong,100,-1.,1.);
5151 TH2F *cosThePrSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),41,binLimpTprong,100,-1.,1.);
5152 TH2F *cosThePrSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),41,binLimpTprong,100,-1.,1.);
5154 nameHistoSgnC=
"histResignedD0SgnC";
5155 nameHistoSgnB=
"histResignedD0SgnB";
5156 nameHistoSgnNoQ=
"histResignedD0SgnNoQ";
5157 titleHistoSgnC=
"Proton d0 with different sign convention; p_{T}(#Lambda_{c}) [GeV/c]; d0 [cm]; Entries";
5158 titleHistoSgnB=
"Proton d0 with different sign convention; p_{T}(#Lambda_{c}) [GeV/c]; d0 [cm]; Entries";
5159 titleHistoSgnNoQ=
"Proton d0 with different sign convention; p_{T}(#Lambda_{c}) [GeV/c]; d0 [cm]; Entries";
5160 TH2F *resignedD0SgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),41,binLimpTprong,100,-0.1,0.1);
5161 TH2F *resignedD0SgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),41,binLimpTprong,100,-0.1,0.1);
5162 TH2F *resignedD0SgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),41,binLimpTprong,100,-0.1,0.1);
5164 TH2F* allptK0SSgnC = (
TH2F*)ptK0SSgnC->Clone();
5165 TH2F* allptK0SSgnB = (
TH2F*)ptK0SSgnB->Clone();
5166 TH2F* allptK0SSgnNoQ = (
TH2F*)ptK0SSgnNoQ->Clone();
5167 TH2F* allptPSgnC = (
TH2F*)ptPSgnC->Clone();
5168 TH2F* allptPSgnB = (
TH2F*)ptPSgnB->Clone();
5169 TH2F* allptPSgnNoQ = (
TH2F*)ptPSgnNoQ->Clone();
5170 TH2F* allptPiPSgnC = (
TH2F*)ptPiPSgnC->Clone();
5171 TH2F* allptPiPSgnB = (
TH2F*)ptPiPSgnB->Clone();
5172 TH2F* allptPiPSgnNoQ = (
TH2F*)ptPiPSgnNoQ->Clone();
5173 TH2F* allptPiMSgnC = (
TH2F*)ptPiMSgnC->Clone();
5174 TH2F* allptPiMSgnB = (
TH2F*)ptPiMSgnB->Clone();
5175 TH2F* allptPiMSgnNoQ = (
TH2F*)ptPiMSgnNoQ->Clone();
5176 TH2F* alld0K0SSgnC = (
TH2F*)d0K0SSgnC->Clone();
5177 TH2F* alld0K0SSgnB = (
TH2F*)d0K0SSgnB->Clone();
5178 TH2F* alld0K0SSgnNoQ = (
TH2F*)d0K0SSgnNoQ->Clone();
5179 TH2F* alld0PSgnC = (
TH2F*)d0PSgnC->Clone();
5180 TH2F* alld0PSgnB = (
TH2F*)d0PSgnB->Clone();
5181 TH2F* alld0PSgnNoQ = (
TH2F*)d0PSgnNoQ->Clone();
5182 TH2F* allcosPAK0SSgnC = (
TH2F*)cosPAK0SSgnC->Clone();
5183 TH2F* allcosPAK0SSgnB = (
TH2F*)cosPAK0SSgnB->Clone();
5184 TH2F* allcosPAK0SSgnNoQ = (
TH2F*)cosPAK0SSgnNoQ->Clone();
5185 TH2F* allcosThePrSgnC = (
TH2F*)cosThePrSgnC->Clone();
5186 TH2F* allcosThePrSgnB = (
TH2F*)cosThePrSgnB->Clone();
5187 TH2F* allcosThePrSgnNoQ = (
TH2F*)cosThePrSgnNoQ->Clone();
5188 TH2F* allresignedD0SgnC = (
TH2F*)resignedD0SgnC->Clone();
5189 TH2F* allresignedD0SgnB = (
TH2F*)resignedD0SgnB->Clone();
5190 TH2F* allresignedD0SgnNoQ = (
TH2F*)resignedD0SgnNoQ->Clone();
5192 TH2F* pidptK0SSgnC = (
TH2F*)ptK0SSgnC->Clone();
5193 TH2F* pidptK0SSgnB = (
TH2F*)ptK0SSgnB->Clone();
5194 TH2F* pidptK0SSgnNoQ = (
TH2F*)ptK0SSgnNoQ->Clone();
5195 TH2F* pidptPSgnC = (
TH2F*)ptPSgnC->Clone();
5196 TH2F* pidptPSgnB = (
TH2F*)ptPSgnB->Clone();
5197 TH2F* pidptPSgnNoQ = (
TH2F*)ptPSgnNoQ->Clone();
5198 TH2F* pidptPiPSgnC = (
TH2F*)ptPiPSgnC->Clone();
5199 TH2F* pidptPiPSgnB = (
TH2F*)ptPiPSgnB->Clone();
5200 TH2F* pidptPiPSgnNoQ = (
TH2F*)ptPiPSgnNoQ->Clone();
5201 TH2F* pidptPiMSgnC = (
TH2F*)ptPiMSgnC->Clone();
5202 TH2F* pidptPiMSgnB = (
TH2F*)ptPiMSgnB->Clone();
5203 TH2F* pidptPiMSgnNoQ = (
TH2F*)ptPiMSgnNoQ->Clone();
5204 TH2F* pidd0K0SSgnC = (
TH2F*)d0K0SSgnC->Clone();
5205 TH2F* pidd0K0SSgnB = (
TH2F*)d0K0SSgnB->Clone();
5206 TH2F* pidd0K0SSgnNoQ = (
TH2F*)d0K0SSgnNoQ->Clone();
5207 TH2F* pidd0PSgnC = (
TH2F*)d0PSgnC->Clone();
5208 TH2F* pidd0PSgnB = (
TH2F*)d0PSgnB->Clone();
5209 TH2F* pidd0PSgnNoQ = (
TH2F*)d0PSgnNoQ->Clone();
5210 TH2F* pidcosPAK0SSgnC = (
TH2F*)cosPAK0SSgnC->Clone();
5211 TH2F* pidcosPAK0SSgnB = (
TH2F*)cosPAK0SSgnB->Clone();
5212 TH2F* pidcosPAK0SSgnNoQ = (
TH2F*)cosPAK0SSgnNoQ->Clone();
5213 TH2F* pidcosThePrSgnC = (
TH2F*)cosThePrSgnC->Clone();
5214 TH2F* pidcosThePrSgnB = (
TH2F*)cosThePrSgnB->Clone();
5215 TH2F* pidcosThePrSgnNoQ = (
TH2F*)cosThePrSgnNoQ->Clone();
5216 TH2F* pidresignedD0SgnC = (
TH2F*)resignedD0SgnC->Clone();
5217 TH2F* pidresignedD0SgnB = (
TH2F*)resignedD0SgnB->Clone();
5218 TH2F* pidresignedD0SgnNoQ = (
TH2F*)resignedD0SgnNoQ->Clone();