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"
90 fUseOnTheFlyV0(kFALSE),
92 fIsEventSelected(kFALSE),
93 fWriteVariableTree(kFALSE),
95 fCandidateVariables(),
98 fAdditionalChecks(kFALSE),
99 fTrackRotation(kFALSE),
101 fMinAngleForRot(5*TMath::Pi()/6),
102 fMaxAngleForRot(7*TMath::Pi()/6),
106 fPtMinToFillTheTree(0.),
107 fPtMaxToFillTheTree(999.),
108 fUseTPCPIDtoFillTree(kFALSE),
110 fCheckOrigin(kFALSE),
111 fReconstructSecVtx(kFALSE),
112 fDoSingleAnalysisForSystK0SP(0)
118 Double_t mLcPDG = TDatabasePDG::Instance()->GetParticle(4122)->Mass();
135 fUseOnTheFlyV0(useOnTheFly),
137 fIsEventSelected(kFALSE),
138 fWriteVariableTree(writeVariableTree),
140 fCandidateVariables(),
143 fAdditionalChecks(additionalChecks),
144 fTrackRotation(trackRotation),
146 fMinAngleForRot(5*TMath::Pi()/6),
147 fMaxAngleForRot(7*TMath::Pi()/6),
151 fPtMinToFillTheTree(0.),
152 fPtMaxToFillTheTree(999.),
153 fUseTPCPIDtoFillTree(useTPCpid),
155 fCheckOrigin(origin),
156 fReconstructSecVtx(kFALSE),
157 fDoSingleAnalysisForSystK0SP(0)
162 Info(
"AliAnalysisTaskSELc2V0bachelor",
"Calling Constructor");
169 Double_t mLcPDG = TDatabasePDG::Instance()->GetParticle(4122)->Mass();
173 DefineOutput(1,TList::Class());
174 DefineOutput(2,AliNormalizationCounter::Class());
175 DefineOutput(3,AliRDHFCutsLctoV0::Class());
176 if (!writeVariableTree) {
177 DefineOutput(4,TList::Class());
178 DefineOutput(5,TList::Class());
180 DefineOutput(6,TList::Class());
184 DefineOutput(4,TTree::Class());
196 Info(
"~AliAnalysisTaskSELc2V0bachelor",
"Calling Destructor");
242 if (fDebug > 1) AliInfo(
"Init");
254 AliError(
"NO EVENT FOUND!");
265 if (matchingAODdeltaAODlevel<0 || (matchingAODdeltaAODlevel==0 &&
fAODProtection==1)) {
272 TClonesArray *arrayLctopKos=0;
274 if (!aodEvent && AODEvent() && IsStandardAOD()) {
277 aodEvent =
dynamic_cast<AliAODEvent*
> (AODEvent());
280 AliAODHandler* aodHandler = (AliAODHandler*)
281 ((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler());
283 if (aodHandler->GetExtensions()) {
284 AliAODExtension *ext = (AliAODExtension*)aodHandler->GetExtensions()->FindObject(
"AliAOD.VertexingHF.root");
286 arrayLctopKos=(TClonesArray*)aodFromExt->GetList()->FindObject(
"CascadesHF");
289 arrayLctopKos=(TClonesArray*)aodEvent->GetList()->FindObject(
"CascadesHF");
298 fVtx1 = (AliAODVertex*)aodEvent->GetPrimaryVertex();
309 if (TMath::Abs(
fBzkG)<0.001)
return;
312 if (!arrayLctopKos) {
313 AliInfo(
"Could not find array of HF cascades, skipping the event");
316 if (arrayLctopKos->GetEntriesFast()) {
317 AliInfo(Form(
"Found %d cascades",arrayLctopKos->GetEntriesFast()));
323 TClonesArray *mcArray = 0;
324 AliAODMCHeader *mcHeader=0;
328 mcArray =
dynamic_cast<TClonesArray*
>(aodEvent->FindListObject(AliAODMCParticle::StdBranchName()));
330 AliError(
"Could not find Monte-Carlo in AOD");
336 mcHeader = (AliAODMCHeader*)aodEvent->GetList()->FindObject(AliAODMCHeader::StdBranchName());
338 AliError(
"AliAnalysisTaskSELc2V0bachelor::UserExec: MC header branch not found!\n");
343 Double_t zMCVertex = mcHeader->GetVtxZ();
345 AliDebug(2,Form(
"Event rejected: abs(zVtxMC)=%f > fAnalCuts->GetMaxVtxZ()=%f",zMCVertex,
fAnalCuts->
GetMaxVtxZ()));
352 Int_t runnumber = aodEvent->GetRunNumber();
353 if (aodEvent->GetTriggerMask() == 0 && (runnumber >= 195344 && runnumber <= 195677)){
354 AliDebug(3,
"Event rejected because of null trigger mask");
360 if (
fVtx1->GetNContributors()>0)
371 Int_t nSelectedAnal = 0;
404 AliAnalysisTaskSE::Terminate();
408 AliError(
"fOutput not available");
416 AliError(
"fOutputAll not available");
422 AliError(
"fOutputPIDBach not available");
429 AliError(
"fOutputPIDBachTR not available");
437 AliError(
"fVariablesTree not available");
447 AliInfo(Form(
"CreateOutputObjects of task %s\n", GetName()));
495 TClonesArray *mcArray,
496 Int_t &nSelectedAnal,
502 Int_t pdgCand = 4122;
503 Int_t pdgDgLctoV0bachelor[2]={2212,310};
504 Int_t pdgDgV0toDaughters[2]={211,211};
507 Int_t nCascades= arrayLctopKos->GetEntriesFast();
509 AliInfo(
"Could not find cascades, skipping the event");
513 for (
Int_t iLctopK0S = 0; iLctopK0S<nCascades; iLctopK0S++) {
515 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(0);
520 AliDebug(2,Form(
"Cascade %d doens't exist, skipping",iLctopK0S));
525 AliDebug(2,Form(
"Cascade %d is not flagged as Lc candidate",iLctopK0S));
544 if (!lcK0Spr->GetSecondaryVtx()) {
545 AliInfo(
"No secondary vertex");
549 if (lcK0Spr->GetNDaughters()!=2) {
550 AliDebug(2,Form(
"Cascade %d has not 2 daughters (nDaughters=%d)",iLctopK0S,lcK0Spr->GetNDaughters()));
554 if ( (
fSign == 0 && lcK0Spr->Charge()<0) ||
555 (
fSign == 1 && lcK0Spr->Charge()>0) ) {
556 AliDebug(2,Form(
"Charge of the cascade %d is different with respect to the required one",iLctopK0S));
560 AliAODv0 * v0part =
dynamic_cast<AliAODv0*
>(lcK0Spr->
Getv0());
561 AliAODTrack * bachPart =
dynamic_cast<AliAODTrack*
>(lcK0Spr->
GetBachelor());
562 if (!v0part || !bachPart) {
563 AliDebug(2,Form(
"Cascade %d has no V0 or no bachelor object",iLctopK0S));
567 if (!v0part->GetSecondaryVtx()) {
568 AliDebug(2,Form(
"No secondary vertex for V0 by cascade %d",iLctopK0S));
572 if (v0part->GetNDaughters()!=2) {
573 AliDebug(2,Form(
"current V0 has not 2 daughters (onTheFly=%d, nDaughters=%d)",v0part->GetOnFlyStatus(),v0part->GetNDaughters()));
579 if (!v0Neg || !v0Pos) {
580 AliDebug(2,Form(
"V0 by cascade %d has no V0positive of V0negative object",iLctopK0S));
584 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(1);
586 if (v0Pos->Charge() == v0Neg->Charge())
continue;
588 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(2);
598 Int_t mcLabel = lcK0Spr->
MatchToMC(pdgCand,pdgDgLctoV0bachelor[1],pdgDgLctoV0bachelor,pdgDgV0toDaughters,mcArray,kTRUE);
600 AliDebug(2,Form(
" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~cascade number %d (total cascade number = %d)", iLctopK0S,nCascades));
602 AliAODMCParticle *partLc =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(mcLabel));
604 pdgCode = partLc->GetPdgCode();
605 if (pdgCode<0) AliDebug(2,Form(
" ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ MClabel=%d ~~~~~~~~~~ pdgCode=%d", mcLabel, pdgCode));
606 pdgCode = TMath::Abs(pdgCode);
612 }
else if (pdgMom == 5) {
616 if (isThereaQuark<=0) originLc=3;
621 AliDebug(2,Form(
"No MC candidate (cascade number %d -total cascade number = %d -)", iLctopK0S,nCascades));
629 nSelectedAnal, cutsAnal,
637 AliDebug(2, Form(
"Found %d Reco particles that are Lc!!", nSelectedAnal));
645 Int_t &nSelectedAnal,
647 TClonesArray *mcArray,
656 AliAODTrack *bachelor = (AliAODTrack*)part->
GetBachelor();
659 AliAODv0 * v0part = (AliAODv0*)part->
Getv0();
660 Bool_t onFlyV0 = v0part->GetOnFlyStatus();
710 Double_t invmassK0S = v0part->MassK0Short();
711 Double_t mk0sPDG = TDatabasePDG::Instance()->GetParticle(310)->Mass();
714 if ( !onFlyV0 && isInCascadeWindow &&
730 Int_t pdgCand1 = 4122;
731 Int_t pdgDgLctoV0bachelor1[2]={2212,310};
732 Int_t pdgDgV0toDaughters1[2]={211,211};
733 Int_t mcLabel1=part->
MatchToMC(pdgCand1,pdgDgLctoV0bachelor1[1],pdgDgLctoV0bachelor1,pdgDgV0toDaughters1,mcArray,kTRUE);
734 AliDebug(2,Form(
" Found true MC candidate: Lc->pK0S(%d) - onTheFly=%1d",mcLabel1,onFlyV0));
755 fillthis=
"histArmPodK0S";
758 fillthis=
"histArmPodLc";
767 fillthis=
"histArmPodK0SOffline";
770 fillthis=
"histArmPodLcOffline";
774 if (isCandidateSelectedCuts) {
775 fillthis=
"histoprotonBachSigmaVspTOF";
776 ((
TH2F*)(
fOutput->FindObject(fillthis)))->Fill(momBach,nSigmaTOFpr);
777 fillthis=
"histoprotonBachSigmaVspTPC";
778 ((
TH2F*)(
fOutput->FindObject(fillthis)))->Fill(momBach,nSigmaTPCpr);
786 fillthis=
"histArmPodK0SSgn";
789 fillthis=
"histArmPodLcSgn";
811 fillthis=
"histArmPodK0SOfflineSgn";
814 fillthis=
"histArmPodLcOfflineSgn";
817 if (isCandidateSelectedCuts) {
818 fillthis=
"histoprotonBachSigmaVspTOFsgn";
819 ((
TH2F*)(
fOutput->FindObject(fillthis)))->Fill(momBach,nSigmaTOFpr);
820 fillthis=
"histoprotonBachSigmaVspTPCsgn";
821 ((
TH2F*)(
fOutput->FindObject(fillthis)))->Fill(momBach,nSigmaTPCpr);
845 fillthis=
"histArmPodK0SBkg";
848 fillthis=
"histArmPodLcBkg";
857 fillthis=
"histArmPodK0SOfflineBkg";
860 fillthis=
"histArmPodLcOfflineBkg";
864 if (isCandidateSelectedCuts) {
865 fillthis=
"histoprotonBachSigmaVspTOFbkg";
866 ((
TH2F*)(
fOutput->FindObject(fillthis)))->Fill(momBach,nSigmaTOFpr);
867 fillthis=
"histoprotonBachSigmaVspTPCbkg";
868 ((
TH2F*)(
fOutput->FindObject(fillthis)))->Fill(momBach,nSigmaTPCpr);
882 Double_t mLcPDG = TDatabasePDG::Instance()->GetParticle(4122)->Mass();
883 Double_t mK0SPDG = TDatabasePDG::Instance()->GetParticle(310)->Mass();
884 Double_t mMinLambdaPDG = TDatabasePDG::Instance()->GetParticle(2212)->Mass()+
885 TDatabasePDG::Instance()->GetParticle(211)->Mass();
886 Double_t mLPDG = TDatabasePDG::Instance()->GetParticle(3122)->Mass();
888 TString nameHisto=
" ", nameHistoSgn=
" ", nameHistoBkg=
" ";
889 TString titleHisto=
" ", titleHistoSgn=
" ", titleHistoBkg=
" ";
908 binLimpTprong[ 0]= 0.0;
909 binLimpTprong[ 1]= 0.1;
910 binLimpTprong[ 2]= 0.2;
911 binLimpTprong[ 3]= 0.3;
912 binLimpTprong[ 4]= 0.4;
913 binLimpTprong[ 5]= 0.5;
914 binLimpTprong[ 6]= 0.6;
915 binLimpTprong[ 7]= 0.7;
916 binLimpTprong[ 8]= 0.8;
917 binLimpTprong[ 9]= 0.9;
918 binLimpTprong[10]= 1.0;
919 binLimpTprong[11]= 1.2;
920 binLimpTprong[12]= 1.4;
921 binLimpTprong[13]= 1.6;
922 binLimpTprong[14]= 1.8;
923 binLimpTprong[15]= 2.0;
924 binLimpTprong[16]= 2.2;
925 binLimpTprong[17]= 2.4;
926 binLimpTprong[18]= 2.6;
927 binLimpTprong[19]= 2.8;
928 binLimpTprong[20]= 3.0;
929 binLimpTprong[21]= 3.5;
930 binLimpTprong[22]= 4.0;
931 binLimpTprong[23]= 4.5;
932 binLimpTprong[24]= 5.0;
933 binLimpTprong[25]= 5.5;
934 binLimpTprong[26]= 6.0;
935 binLimpTprong[27]= 6.5;
936 binLimpTprong[28]= 7.0;
937 binLimpTprong[29]= 7.5;
938 binLimpTprong[30]= 8.0;
939 binLimpTprong[31]= 9.0;
940 binLimpTprong[32]=10.0;
941 binLimpTprong[33]=11.0;
942 binLimpTprong[34]=12.0;
943 binLimpTprong[35]=13.0;
944 binLimpTprong[36]=14.0;
945 binLimpTprong[37]=15.0;
946 binLimpTprong[38]=20.0;
947 binLimpTprong[39]=25.0;
948 binLimpTprong[40]=30.0;
949 binLimpTprong[41]=35.0;
954 nameHisto=
"histK0SMass";
955 titleHisto=
"K^{0}_{S} invariant mass VS p_{T}; p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(#pi^{+},#pi^{-}) [GeV/c^{2}]; Entries";
956 TH2F* spectrumK0SMass =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,mK0SPDG-0.050,mK0SPDG+0.050);
959 nameHisto=
"histLcMassByK0S";
960 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]";
961 TH2F* spectrumLcMassByK0S =
new TH2F(nameHisto.Data(),titleHisto.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
963 nameHisto=
"histpK0Svsp";
964 titleHisto=
"p(K^{0}_{S}) vs p(p); p(p) [GeV/c]; p(K^{0}_{S}) [GeV/c]";
965 TH2F* momentumDistributionK0Svsp =
new TH2F(nameHisto.Data(),titleHisto.Data(),41,binLimpTprong,41,binLimpTprong);
967 nameHisto=
"histArmPodK0S";
968 titleHisto=
"V0-candidate Armenteros-Podolanski distribution; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
969 TH2F* armenterosPodK0S =
new TH2F(nameHisto.Data(),titleHisto.Data(),200,-1.,1.,300,0.,0.3);
971 nameHisto=
"histArmPodLc";
972 titleHisto=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
973 TH2F* armenterosPodLc =
new TH2F(nameHisto.Data(),titleHisto.Data(),200,-4.,4.,800,0.,1.6);
975 TH2F* allspectrumK0SMass = (
TH2F*)spectrumK0SMass->Clone();
976 TH2F* allspectrumLcMassByK0S = (
TH2F*)spectrumLcMassByK0S->Clone();
977 TH2F* allmomentumDistributionK0Svsp = (
TH2F*)momentumDistributionK0Svsp->Clone();
978 TH2F* allArmenterosPodK0S = (
TH2F*)armenterosPodK0S->Clone();
979 TH2F* allArmenterosPodLc = (
TH2F*)armenterosPodLc->Clone();
981 TH2F* pidBachspectrumK0SMass = (
TH2F*)spectrumK0SMass->Clone();
982 TH2F* pidBachspectrumLcMassByK0S = (
TH2F*)spectrumLcMassByK0S->Clone();
983 TH2F* pidBachmomentumDistributionK0Svsp = (
TH2F*)momentumDistributionK0Svsp->Clone();
984 TH2F* pidBachArmenterosPodK0S = (
TH2F*)armenterosPodK0S->Clone();
985 TH2F* pidBachArmenterosPodLc = (
TH2F*)armenterosPodLc->Clone();
989 fOutputAll->Add(allmomentumDistributionK0Svsp);
999 nameHisto=
"histArmPodK0S0";
1000 titleHisto=
"V0-candidate Armenteros-Podolanski distribution; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1001 TH2F* armenterosPodK0S0 =
new TH2F(nameHisto.Data(),titleHisto.Data(),200,-1.,1.,300,0.,0.3);
1002 nameHisto=
"histArmPodLc0";
1003 titleHisto=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1004 TH2F* armenterosPodLc0 =
new TH2F(nameHisto.Data(),titleHisto.Data(),200,-4.,4.,800,0.,1.6);
1010 TH2F* pidBachTRspectrumLcMassByK0S = (
TH2F*)spectrumLcMassByK0S->Clone();
1016 nameHisto=
"histptK0S";
1017 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";
1018 TH2F* ptK0S =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,41,binLimpTprong);
1020 nameHisto=
"histptP";
1021 titleHisto=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
1022 TH2F* ptP =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,41,binLimpTprong);
1024 nameHisto=
"histptPip";
1025 titleHisto=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
1026 TH2F* ptPiP =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,41,binLimpTprong);
1028 nameHisto=
"histptPim";
1029 titleHisto=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
1030 TH2F* ptPiM =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,41,binLimpTprong);
1032 nameHisto=
"histLambdaMass";
1033 titleHisto=
"m_{inv}(p,#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(p,#pi^{-}) [GeV/c^{2}]; Entries";
1034 TH2F* massLambda =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1036 nameHisto=
"histLambdaBarMass";
1037 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";
1038 TH2F* massLambdaBar =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1040 nameHisto=
"histGammaMass";
1041 titleHisto=
"m_{inv}(e^{+},e^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(e^{+},e^{-}) [GeV/c^{2}]; Entries";
1042 TH2F* massGamma =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,100,0.,1.);
1044 nameHisto=
"histD0K0S";
1045 titleHisto=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
1046 TH2F* d0K0S =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,-1.,1.);
1048 nameHisto=
"histD0P";
1049 titleHisto=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
1050 TH2F* d0P =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,-1.,1.);
1052 nameHisto=
"histCosPAK0S";
1053 titleHisto=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
1054 TH2F *cosPAK0S =
new TH2F(nameHisto.Data(),titleHisto.Data(),41,binLimpTprong,100,0.99,1.);
1056 nameHisto=
"histCosThetaProtonCMS";
1057 titleHisto=
"cosien of proton emission angle in Lc rest frame; p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
1058 TH2F *cosThePr =
new TH2F(nameHisto.Data(),titleHisto.Data(),41,binLimpTprong,100,-1.,1.);
1060 nameHisto=
"histResignedD0";
1061 titleHisto=
"Proton d0 with different sign convention; p_{T}(#Lambda_{c}) [GeV/c]; d0 [cm]; Entries";
1062 TH2F *resignedD0 =
new TH2F(nameHisto.Data(),titleHisto.Data(),41,binLimpTprong,100,-0.1,0.1);
1064 TH2F* allptK0S = (
TH2F*)ptK0S->Clone();
1065 TH2F* allptP = (
TH2F*)ptP->Clone();
1066 TH2F* allptPiP = (
TH2F*)ptPiP->Clone();
1067 TH2F* allptPiM = (
TH2F*)ptPiM->Clone();
1068 TH2F* allmassLambda = (
TH2F*)massLambda->Clone();
1069 TH2F* allmassLambdaBar = (
TH2F*)massLambdaBar->Clone();
1070 TH2F* allmassGamma = (
TH2F*)massGamma->Clone();
1071 TH2F* alld0K0S = (
TH2F*)d0K0S->Clone();
1072 TH2F* alld0P = (
TH2F*)d0P->Clone();
1073 TH2F* allcosPAK0S = (
TH2F*)cosPAK0S->Clone();
1074 TH2F* allcosThePr = (
TH2F*)cosThePr->Clone();
1075 TH2F* allresignedD0 = (
TH2F*)resignedD0->Clone();
1077 TH2F* pidptK0S = (
TH2F*)ptK0S->Clone();
1078 TH2F* pidptP = (
TH2F*)ptP->Clone();
1079 TH2F* pidptPiP = (
TH2F*)ptPiP->Clone();
1080 TH2F* pidptPiM = (
TH2F*)ptPiM->Clone();
1081 TH2F* pidmassLambda = (
TH2F*)massLambda->Clone();
1082 TH2F* pidmassLambdaBar = (
TH2F*)massLambdaBar->Clone();
1083 TH2F* pidmassGamma = (
TH2F*)massGamma->Clone();
1084 TH2F* pidd0K0S = (
TH2F*)d0K0S->Clone();
1085 TH2F* pidd0P = (
TH2F*)d0P->Clone();
1086 TH2F* pidcosPAK0S = (
TH2F*)cosPAK0S->Clone();
1087 TH2F* pidcosThePr = (
TH2F*)cosThePr->Clone();
1088 TH2F* pidresignedD0 = (
TH2F*)resignedD0->Clone();
1118 TH2F* pidTRptK0S = (
TH2F*)ptK0S->Clone();
1119 TH2F* pidTRptP = (
TH2F*)ptP->Clone();
1120 TH2F* pidTRptPiP = (
TH2F*)ptPiP->Clone();
1121 TH2F* pidTRptPiM = (
TH2F*)ptPiM->Clone();
1122 TH2F* pidTRmassLambda = (
TH2F*)massLambda->Clone();
1123 TH2F* pidTRmassLambdaBar = (
TH2F*)massLambdaBar->Clone();
1124 TH2F* pidTRmassGamma = (
TH2F*)massGamma->Clone();
1125 TH2F* pidTRcosPAK0S = (
TH2F*)cosPAK0S->Clone();
1126 TH2F* pidTRcosThePr = (
TH2F*)cosThePr->Clone();
1127 TH2F* pidTRresignedD0 = (
TH2F*)resignedD0->Clone();
1144 nameHisto=
"histK0SMassOffline";
1145 titleHisto=
"K^{0}_{S} invariant mass VS p_{T}; p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(#pi^{+},#pi^{-}) [GeV/c^{2}]; Entries";
1146 TH2F* spectrumK0SMassOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,mK0SPDG-0.050,mK0SPDG+0.050);
1149 nameHisto=
"histLcMassByK0SOffline";
1150 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]";
1151 TH2F* spectrumLcMassOfflineByK0S =
new TH2F(nameHisto.Data(),titleHisto.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
1153 nameHisto=
"histpK0SvspOffline";
1154 titleHisto=
"p(K^{0}_{S}) vs p(p); p(p) [GeV/c]; p(K^{0}_{S}) [GeV/c]";
1155 TH2F* momentumDistributionK0SvspOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),41,binLimpTprong,41,binLimpTprong);
1157 nameHisto=
"histArmPodK0SOffline";
1158 titleHisto=
"V0-candidate Armenteros-Podolanski distribution; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1159 TH2F* armenterosPodK0SOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),200,-1.,1.,300,0.,0.3);
1161 nameHisto=
"histArmPodLcOffline";
1162 titleHisto=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1163 TH2F* armenterosPodLcOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),200,-4.,4.,800,0.,1.6);
1165 TH2F* allspectrumK0SMassOffline = (
TH2F*)spectrumK0SMassOffline->Clone();
1166 TH2F* allspectrumLcMassOfflineByK0S = (
TH2F*)spectrumLcMassOfflineByK0S->Clone();
1167 TH2F* allmomentumDistributionK0SvspOffline = (
TH2F*)momentumDistributionK0SvspOffline->Clone();
1168 TH2F* allArmenterosPodK0SOffline = (
TH2F*)armenterosPodK0SOffline->Clone();
1169 TH2F* allArmenterosPodLcOffline = (
TH2F*)armenterosPodLcOffline->Clone();
1171 TH2F* pidBachspectrumK0SMassOffline = (
TH2F*)spectrumK0SMassOffline->Clone();
1172 TH2F* pidBachspectrumLcMassOfflineByK0S = (
TH2F*)spectrumLcMassOfflineByK0S->Clone();
1173 TH2F* pidBachmomentumDistributionK0SvspOffline = (
TH2F*)momentumDistributionK0SvspOffline->Clone();
1174 TH2F* pidBachArmenterosPodK0SOffline = (
TH2F*)armenterosPodK0SOffline->Clone();
1175 TH2F* pidBachArmenterosPodLcOffline = (
TH2F*)armenterosPodLcOffline->Clone();
1178 fOutputAll->Add(allspectrumLcMassOfflineByK0S);
1179 fOutputAll->Add(allmomentumDistributionK0SvspOffline);
1189 nameHisto=
"histArmPodK0SOffline0";
1190 titleHisto=
"V0-candidate Armenteros-Podolanski distribution; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1191 TH2F* armenterosPodK0SOffline0 =
new TH2F(nameHisto.Data(),titleHisto.Data(),200,-1.,1.,300,0.,0.3);
1192 nameHisto=
"histArmPodLcOffline0";
1193 titleHisto=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1194 TH2F* armenterosPodLcOffline0 =
new TH2F(nameHisto.Data(),titleHisto.Data(),200,-4.,4.,800,0.,1.6);
1199 TH2F* pidBachTRspectrumLcMassOfflineByK0S = (
TH2F*)spectrumLcMassOfflineByK0S->Clone();
1206 nameHisto=
"histptK0SOffline";
1207 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";
1208 TH2F* ptK0SOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,41,binLimpTprong);
1210 nameHisto=
"histptPOffline";
1211 titleHisto=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
1212 TH2F* ptPOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,41,binLimpTprong);
1214 nameHisto=
"histptPipOffline";
1215 titleHisto=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
1216 TH2F* ptPiPOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,41,binLimpTprong);
1218 nameHisto=
"histptPimOffline";
1219 titleHisto=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
1220 TH2F* ptPiMOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,41,binLimpTprong);
1222 nameHisto=
"histLambdaMassOffline";
1223 titleHisto=
"m_{inv}(p,#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(p,#pi^{-}) [GeV/c^{2}]; Entries";
1224 TH2F* massLambdaOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1226 nameHisto=
"histLambdaBarMassOffline";
1227 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";
1228 TH2F* massLambdaBarOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1230 nameHisto=
"histGammaMassOffline";
1231 titleHisto=
"m_{inv}(e^{+},e^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(e^{+},e^{-}) [GeV/c^{2}]; Entries";
1232 TH2F* massGammaOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,100,0.,1.);
1234 nameHisto=
"histD0K0SOffline";
1235 titleHisto=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
1236 TH2F* d0K0SOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,-1.,1.);
1238 nameHisto=
"histD0POffline";
1239 titleHisto=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
1240 TH2F* d0POffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,-1.,1.);
1242 nameHisto=
"histCosPAK0SOffline";
1243 titleHisto=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
1244 TH2F *cosPAK0SOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),41,binLimpTprong,100,0.99,1.);
1246 nameHisto=
"histCosThetaProtonCMSOffline";
1247 titleHisto=
"cosien of proton emission angle in Lc rest frame; p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
1248 TH2F *cosThePrOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),41,binLimpTprong,100,-1.,1.);
1250 nameHisto=
"histResignedD0Offline";
1251 titleHisto=
"Proton d0 with different sign convention; p_{T}(#Lambda_{c}) [GeV/c]; d0 [cm]; Entries";
1252 TH2F *resignedD0Offline =
new TH2F(nameHisto.Data(),titleHisto.Data(),41,binLimpTprong,100,-0.1,0.1);
1255 TH2F* allptK0SOffline = (
TH2F*)ptK0SOffline->Clone();
1256 TH2F* allptPOffline = (
TH2F*)ptPOffline->Clone();
1257 TH2F* allptPiPOffline = (
TH2F*)ptPiPOffline->Clone();
1258 TH2F* allptPiMOffline = (
TH2F*)ptPiMOffline->Clone();
1259 TH2F* allmassLambdaOffline = (
TH2F*)massLambdaOffline->Clone();
1260 TH2F* allmassLambdaBarOffline = (
TH2F*)massLambdaBarOffline->Clone();
1261 TH2F* allmassGammaOffline = (
TH2F*)massGammaOffline->Clone();
1262 TH2F* alld0K0SOffline = (
TH2F*)d0K0SOffline->Clone();
1263 TH2F* alld0POffline = (
TH2F*)d0POffline->Clone();
1264 TH2F* allcosPAK0SOffline = (
TH2F*)cosPAK0SOffline->Clone();
1265 TH2F* allcosThePrOffline = (
TH2F*)cosThePrOffline->Clone();
1266 TH2F* allresignedD0Offline = (
TH2F*)resignedD0Offline->Clone();
1268 TH2F* pidptK0SOffline = (
TH2F*)ptK0SOffline->Clone();
1269 TH2F* pidptPOffline = (
TH2F*)ptPOffline->Clone();
1270 TH2F* pidptPiPOffline = (
TH2F*)ptPiPOffline->Clone();
1271 TH2F* pidptPiMOffline = (
TH2F*)ptPiMOffline->Clone();
1272 TH2F* pidmassLambdaOffline = (
TH2F*)massLambdaOffline->Clone();
1273 TH2F* pidmassLambdaBarOffline = (
TH2F*)massLambdaBarOffline->Clone();
1274 TH2F* pidmassGammaOffline = (
TH2F*)massGammaOffline->Clone();
1275 TH2F* pidd0K0SOffline = (
TH2F*)d0K0SOffline->Clone();
1276 TH2F* pidd0POffline = (
TH2F*)d0POffline->Clone();
1277 TH2F* pidcosPAK0SOffline = (
TH2F*)cosPAK0SOffline->Clone();
1278 TH2F* pidcosThePrOffline = (
TH2F*)cosThePrOffline->Clone();
1279 TH2F* pidresignedD0Offline = (
TH2F*)resignedD0Offline->Clone();
1309 TH2F* pidTRptK0SOffline = (
TH2F*)ptK0SOffline->Clone();
1310 TH2F* pidTRptPOffline = (
TH2F*)ptPOffline->Clone();
1311 TH2F* pidTRptPiPOffline = (
TH2F*)ptPiPOffline->Clone();
1312 TH2F* pidTRptPiMOffline = (
TH2F*)ptPiMOffline->Clone();
1313 TH2F* pidTRmassLambdaOffline = (
TH2F*)massLambdaOffline->Clone();
1314 TH2F* pidTRmassLambdaBarOffline = (
TH2F*)massLambdaBarOffline->Clone();
1315 TH2F* pidTRmassGammaOffline = (
TH2F*)massGammaOffline->Clone();
1316 TH2F* pidTRcosPAK0SOffline = (
TH2F*)cosPAK0SOffline->Clone();
1317 TH2F* pidTRcosThePrOffline = (
TH2F*)cosThePrOffline->Clone();
1318 TH2F* pidTRresignedD0Offline = (
TH2F*)resignedD0Offline->Clone();
1340 nameHistoSgn=
"histK0SMassSgn";
1341 nameHistoBkg=
"histK0SMassBkg";
1342 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";
1343 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";
1344 TH2F* spectrumK0SMassSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,mK0SPDG-0.050,mK0SPDG+0.050);
1345 TH2F* spectrumK0SMassBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,mK0SPDG-0.050,mK0SPDG+0.050);
1347 nameHistoSgn=
"histLcMassByK0SSgn";
1348 nameHistoBkg=
"histLcMassByK0SBkg";
1349 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]";
1350 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]";
1351 TH2F* spectrumLcMassByK0SSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
1352 TH2F* spectrumLcMassByK0SBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
1354 nameHistoSgn=
"histpK0SvspSgn";
1355 nameHistoBkg=
"histpK0SvspBkg";
1356 titleHistoSgn=
"#Lambda_{c} - sgn: K^{0}_{S} vs p Total Momentum Distribution - MC; p(p) [GeV/c]; p(K^{0}_{S}) [GeV/c]";
1357 titleHistoBkg=
"#Lambda_{c} - bkg: K^{0}_{S} vs p Total Momentum Distribution - MC; p(p) [GeV/c]; p(K^{0}_{S}) [GeV/c]";
1358 TH2F* momentumDistributionK0SvspSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),41,binLimpTprong,41,binLimpTprong);
1359 TH2F* momentumDistributionK0SvspBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),41,binLimpTprong,41,binLimpTprong);
1362 nameHistoSgn=
"histArmPodK0SSgn";
1363 nameHistoBkg=
"histArmPodK0SBkg";
1364 titleHistoSgn=
"V0-candidate Armenteros-Podolanski distribution (sgn); #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1365 titleHistoBkg=
"V0-candidate Armenteros-Podolanski distribution (bkg); #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1366 TH2F* armenterosPodK0SSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),200,-1.,1.,300,0.,0.3);
1367 TH2F* armenterosPodK0SBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),200,-1.,1.,300,0.,0.3);
1369 nameHistoSgn=
"histArmPodLcSgn";
1370 nameHistoBkg=
"histArmPodLcBkg";
1371 titleHistoSgn=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution (sgn); #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1372 titleHistoBkg=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution (bkg); #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1373 TH2F* armenterosPodLcSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),200,-4.,4.,800,0.,1.6);
1374 TH2F* armenterosPodLcBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),200,-4.,4.,800,0.,1.6);
1376 TH2F* allspectrumK0SMassSgn = (
TH2F*)spectrumK0SMassSgn->Clone();
1377 TH2F* allspectrumK0SMassBkg = (
TH2F*)spectrumK0SMassBkg->Clone();
1378 TH2F* allspectrumLcMassByK0SSgn = (
TH2F*)spectrumLcMassByK0SSgn->Clone();
1379 TH2F* allspectrumLcMassByK0SBkg = (
TH2F*)spectrumLcMassByK0SBkg->Clone();
1380 TH2F* allmomentumDistributionK0SvspSgn = (
TH2F*)momentumDistributionK0SvspSgn->Clone();
1381 TH2F* allmomentumDistributionK0SvspBkg = (
TH2F*)momentumDistributionK0SvspBkg->Clone();
1382 TH2F* allArmenterosPodK0SSgn = (
TH2F*)armenterosPodK0SSgn->Clone();
1383 TH2F* allArmenterosPodK0SBkg = (
TH2F*)armenterosPodK0SBkg->Clone();
1384 TH2F* allArmenterosPodLcSgn = (
TH2F*)armenterosPodLcSgn->Clone();
1385 TH2F* allArmenterosPodLcBkg = (
TH2F*)armenterosPodLcBkg->Clone();
1387 TH2F* pidBachspectrumK0SMassSgn = (
TH2F*)spectrumK0SMassSgn->Clone();
1388 TH2F* pidBachspectrumK0SMassBkg = (
TH2F*)spectrumK0SMassBkg->Clone();
1389 TH2F* pidBachspectrumLcMassByK0SSgn = (
TH2F*)spectrumLcMassByK0SSgn->Clone();
1390 TH2F* pidBachspectrumLcMassByK0SBkg = (
TH2F*)spectrumLcMassByK0SBkg->Clone();
1391 TH2F* pidBachmomentumDistributionK0SvspSgn = (
TH2F*)momentumDistributionK0SvspSgn->Clone();
1392 TH2F* pidBachmomentumDistributionK0SvspBkg = (
TH2F*)momentumDistributionK0SvspBkg->Clone();
1393 TH2F* pidBachArmenterosPodK0SSgn = (
TH2F*)armenterosPodK0SSgn->Clone();
1394 TH2F* pidBachArmenterosPodK0SBkg = (
TH2F*)armenterosPodK0SBkg->Clone();
1395 TH2F* pidBachArmenterosPodLcSgn = (
TH2F*)armenterosPodLcSgn->Clone();
1396 TH2F* pidBachArmenterosPodLcBkg = (
TH2F*)armenterosPodLcBkg->Clone();
1402 fOutputAll->Add(allmomentumDistributionK0SvspSgn);
1403 fOutputAll->Add(allmomentumDistributionK0SvspBkg);
1420 nameHistoSgn=
"histArmPodK0SSgn0";
1421 nameHistoBkg=
"histArmPodK0SBkg0";
1422 titleHistoSgn=
"V0-candidate Armenteros-Podolanski distribution (sgn); #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1423 titleHistoBkg=
"V0-candidate Armenteros-Podolanski distribution (bkg); #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1424 TH2F* armenterosPodK0SSgn0 =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),200,-1.,1.,300,0.,0.3);
1425 TH2F* armenterosPodK0SBkg0 =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),200,-1.,1.,300,0.,0.3);
1428 nameHistoSgn=
"histArmPodLcSgn0";
1429 nameHistoBkg=
"histArmPodLcBkg0";
1430 titleHistoSgn=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution (sgn); #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1431 titleHistoBkg=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution (bkg); #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1432 TH2F* armenterosPodLcSgn0 =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),200,-4.,4.,800,0.,1.6);
1433 TH2F* armenterosPodLcBkg0 =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),200,-4.,4.,800,0.,1.6);
1438 TH2F* pidBachTRspectrumLcMassByK0SSgn = (
TH2F*)spectrumLcMassByK0SSgn->Clone();
1439 TH2F* pidBachTRspectrumLcMassByK0SBkg = (
TH2F*)spectrumLcMassByK0SBkg->Clone();
1446 nameHistoSgn=
"histptK0SSgn";
1447 nameHistoBkg=
"histptK0SBkg";
1448 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";
1449 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";
1450 TH2F* ptK0SSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,41,binLimpTprong);
1451 TH2F* ptK0SBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,41,binLimpTprong);
1453 nameHistoSgn=
"histptPSgn";
1454 nameHistoBkg=
"histptPBkg";
1455 titleHistoSgn=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
1456 titleHistoBkg=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
1457 TH2F* ptPSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,41,binLimpTprong);
1458 TH2F* ptPBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,41,binLimpTprong);
1460 nameHistoSgn=
"histptPipSgn";
1461 nameHistoBkg=
"histptPipBkg";
1462 titleHistoSgn=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
1463 titleHistoBkg=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
1464 TH2F* ptPiPSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,41,binLimpTprong);
1465 TH2F* ptPiPBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,41,binLimpTprong);
1467 nameHistoSgn=
"histptPimSgn";
1468 nameHistoBkg=
"histptPimBkg";
1469 titleHistoSgn=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
1470 titleHistoBkg=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
1471 TH2F* ptPiMSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,41,binLimpTprong);
1472 TH2F* ptPiMBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,41,binLimpTprong);
1474 nameHistoSgn=
"histLambdaMassSgn";
1475 nameHistoBkg=
"histLambdaMassBkg";
1476 titleHistoSgn=
"m_{inv}(p,#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(p,#pi^{-}) [GeV/c^{2}]; Entries";
1477 titleHistoBkg=
"m_{inv}(p,#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(p,#pi^{-}) [GeV/c^{2}]; Entries";
1478 TH2F* massLambdaSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1479 TH2F* massLambdaBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1481 nameHistoSgn=
"histLambdaBarMassSgn";
1482 nameHistoBkg=
"histLambdaBarMassBkg";
1483 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";
1484 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";
1485 TH2F* massLambdaBarSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1486 TH2F* massLambdaBarBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1488 nameHistoSgn=
"histGammaMassSgn";
1489 nameHistoBkg=
"histGammaMassBkg";
1490 titleHistoSgn=
"m_{inv}(e^{+},e^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(e^{+},e^{-}) [GeV/c^{2}]; Entries";
1491 titleHistoBkg=
"m_{inv}(e^{+},e^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(e^{+},e^{-}) [GeV/c^{2}]; Entries";
1492 TH2F* massGammaSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,100,0.,1.);
1493 TH2F* massGammaBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,100,0.,1.);
1495 nameHistoSgn=
"histD0K0SSgn";
1496 nameHistoBkg=
"histD0K0SBkg";
1497 titleHistoSgn=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
1498 titleHistoBkg=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
1499 TH2F* d0K0SSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,-1.,1.);
1500 TH2F* d0K0SBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,-1.,1.);
1502 nameHistoSgn=
"histD0PSgn";
1503 nameHistoBkg=
"histD0PBkg";
1504 titleHistoSgn=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
1505 titleHistoBkg=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
1506 TH2F* d0PSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,-1.,1.);
1507 TH2F* d0PBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,-1.,1.);
1509 nameHistoSgn=
"histCosPAK0SSgn";
1510 nameHistoBkg=
"histCosPAK0SBkg";
1511 titleHistoSgn=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
1512 titleHistoBkg=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
1513 TH2F *cosPAK0SSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),41,binLimpTprong,100,0.99,1.);
1514 TH2F *cosPAK0SBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),41,binLimpTprong,100,0.99,1.);
1516 nameHistoSgn=
"histCosThetaProtonCMSSgn";
1517 nameHistoBkg=
"histCosThetaProtonCMSBkg";
1518 titleHistoSgn=
"cosien of proton emission angle in Lc rest frame; p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
1519 titleHistoBkg=
"cosien of proton emission angle in Lc rest frame; p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
1520 TH2F *cosThePrSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),41,binLimpTprong,100,-1.,1.);
1521 TH2F *cosThePrBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),41,binLimpTprong,100,-1.,1.);
1524 nameHistoSgn=
"histResignedD0Sgn";
1525 nameHistoBkg=
"histResignedD0Bkg";
1526 titleHistoSgn=
"Proton d0 with different sign convention; p_{T}(#Lambda_{c}) [GeV/c]; d0 [cm]; Entries";
1527 titleHistoBkg=
"Proton d0 with different sign convention; p_{T}(#Lambda_{c}) [GeV/c]; d0 [cm]; Entries";
1528 TH2F *resignedD0Sgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),41,binLimpTprong,100,-0.1,0.1);
1529 TH2F *resignedD0Bkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),41,binLimpTprong,100,-0.1,0.1);
1531 TH2F* allptK0SSgn = (
TH2F*)ptK0SSgn->Clone();
1532 TH2F* allptK0SBkg = (
TH2F*)ptK0SBkg->Clone();
1533 TH2F* allptPSgn = (
TH2F*)ptPSgn->Clone();
1534 TH2F* allptPBkg = (
TH2F*)ptPBkg->Clone();
1535 TH2F* allptPiPSgn = (
TH2F*)ptPiPSgn->Clone();
1536 TH2F* allptPiPBkg = (
TH2F*)ptPiPBkg->Clone();
1537 TH2F* allptPiMSgn = (
TH2F*)ptPiMSgn->Clone();
1538 TH2F* allptPiMBkg = (
TH2F*)ptPiMBkg->Clone();
1539 TH2F* allmassLambdaSgn = (
TH2F*)massLambdaSgn->Clone();
1540 TH2F* allmassLambdaBkg = (
TH2F*)massLambdaBkg->Clone();
1541 TH2F* allmassLambdaBarSgn = (
TH2F*)massLambdaBarSgn->Clone();
1542 TH2F* allmassLambdaBarBkg = (
TH2F*)massLambdaBarBkg->Clone();
1543 TH2F* allmassGammaSgn = (
TH2F*)massGammaSgn->Clone();
1544 TH2F* allmassGammaBkg = (
TH2F*)massGammaBkg->Clone();
1545 TH2F* alld0K0SSgn = (
TH2F*)d0K0SSgn->Clone();
1546 TH2F* alld0K0SBkg = (
TH2F*)d0K0SBkg->Clone();
1547 TH2F* alld0PSgn = (
TH2F*)d0PSgn->Clone();
1548 TH2F* alld0PBkg = (
TH2F*)d0PBkg->Clone();
1549 TH2F* allcosPAK0SSgn = (
TH2F*)cosPAK0SSgn->Clone();
1550 TH2F* allcosPAK0SBkg = (
TH2F*)cosPAK0SBkg->Clone();
1551 TH2F* allcosThePrSgn = (
TH2F*)cosThePrSgn->Clone();
1552 TH2F* allcosThePrBkg = (
TH2F*)cosThePrBkg->Clone();
1553 TH2F* allresignedD0Sgn = (
TH2F*)resignedD0Sgn->Clone();
1554 TH2F* allresignedD0Bkg = (
TH2F*)resignedD0Bkg->Clone();
1556 TH2F* pidptK0SSgn = (
TH2F*)ptK0SSgn->Clone();
1557 TH2F* pidptK0SBkg = (
TH2F*)ptK0SBkg->Clone();
1558 TH2F* pidptPSgn = (
TH2F*)ptPSgn->Clone();
1559 TH2F* pidptPBkg = (
TH2F*)ptPBkg->Clone();
1560 TH2F* pidptPiPSgn = (
TH2F*)ptPiPSgn->Clone();
1561 TH2F* pidptPiPBkg = (
TH2F*)ptPiPBkg->Clone();
1562 TH2F* pidptPiMSgn = (
TH2F*)ptPiMSgn->Clone();
1563 TH2F* pidptPiMBkg = (
TH2F*)ptPiMBkg->Clone();
1564 TH2F* pidmassLambdaSgn = (
TH2F*)massLambdaSgn->Clone();
1565 TH2F* pidmassLambdaBkg = (
TH2F*)massLambdaBkg->Clone();
1566 TH2F* pidmassLambdaBarSgn = (
TH2F*)massLambdaBarSgn->Clone();
1567 TH2F* pidmassLambdaBarBkg = (
TH2F*)massLambdaBarBkg->Clone();
1568 TH2F* pidmassGammaSgn = (
TH2F*)massGammaSgn->Clone();
1569 TH2F* pidmassGammaBkg = (
TH2F*)massGammaBkg->Clone();
1570 TH2F* pidd0K0SSgn = (
TH2F*)d0K0SSgn->Clone();
1571 TH2F* pidd0K0SBkg = (
TH2F*)d0K0SBkg->Clone();
1572 TH2F* pidd0PSgn = (
TH2F*)d0PSgn->Clone();
1573 TH2F* pidd0PBkg = (
TH2F*)d0PBkg->Clone();
1574 TH2F* pidcosPAK0SSgn = (
TH2F*)cosPAK0SSgn->Clone();
1575 TH2F* pidcosPAK0SBkg = (
TH2F*)cosPAK0SBkg->Clone();
1576 TH2F* pidcosThePrSgn = (
TH2F*)cosThePrSgn->Clone();
1577 TH2F* pidcosThePrBkg = (
TH2F*)cosThePrBkg->Clone();
1578 TH2F* pidresignedD0Sgn = (
TH2F*)resignedD0Sgn->Clone();
1579 TH2F* pidresignedD0Bkg = (
TH2F*)resignedD0Bkg->Clone();
1633 TH2F* pidTRptK0SSgn = (
TH2F*)ptK0SSgn->Clone();
1634 TH2F* pidTRptK0SBkg = (
TH2F*)ptK0SBkg->Clone();
1635 TH2F* pidTRptPSgn = (
TH2F*)ptPSgn->Clone();
1636 TH2F* pidTRptPBkg = (
TH2F*)ptPBkg->Clone();
1637 TH2F* pidTRptPiPSgn = (
TH2F*)ptPiPSgn->Clone();
1638 TH2F* pidTRptPiPBkg = (
TH2F*)ptPiPBkg->Clone();
1639 TH2F* pidTRptPiMSgn = (
TH2F*)ptPiMSgn->Clone();
1640 TH2F* pidTRptPiMBkg = (
TH2F*)ptPiMBkg->Clone();
1641 TH2F* pidTRmassLambdaSgn = (
TH2F*)massLambdaSgn->Clone();
1642 TH2F* pidTRmassLambdaBkg = (
TH2F*)massLambdaBkg->Clone();
1643 TH2F* pidTRmassLambdaBarSgn = (
TH2F*)massLambdaBarSgn->Clone();
1644 TH2F* pidTRmassLambdaBarBkg = (
TH2F*)massLambdaBarBkg->Clone();
1645 TH2F* pidTRmassGammaSgn = (
TH2F*)massGammaSgn->Clone();
1646 TH2F* pidTRmassGammaBkg = (
TH2F*)massGammaBkg->Clone();
1647 TH2F* pidTRcosPAK0SSgn = (
TH2F*)cosPAK0SSgn->Clone();
1648 TH2F* pidTRcosPAK0SBkg = (
TH2F*)cosPAK0SBkg->Clone();
1649 TH2F* pidTRcosThePrSgn = (
TH2F*)cosThePrSgn->Clone();
1650 TH2F* pidTRcosThePrBkg = (
TH2F*)cosThePrBkg->Clone();
1651 TH2F* pidTRresignedD0Sgn = (
TH2F*)resignedD0Sgn->Clone();
1652 TH2F* pidTRresignedD0Bkg = (
TH2F*)resignedD0Bkg->Clone();
1680 nameHistoSgn=
"histK0SMassOfflineSgn";
1681 nameHistoBkg=
"histK0SMassOfflineBkg";
1682 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";
1683 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";
1684 TH2F* spectrumK0SMassOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,mK0SPDG-0.050,mK0SPDG+0.050);
1685 TH2F* spectrumK0SMassOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,mK0SPDG-0.050,mK0SPDG+0.050);
1687 nameHistoSgn=
"histLcMassByK0SOfflineSgn";
1688 nameHistoBkg=
"histLcMassByK0SOfflineBkg";
1689 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]";
1690 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]";
1691 TH2F* spectrumLcMassOfflineByK0SSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
1692 TH2F* spectrumLcMassOfflineByK0SBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
1694 nameHistoSgn=
"histpK0SvspOfflineSgn";
1695 nameHistoBkg=
"histpK0SvspOfflineBkg";
1696 titleHistoSgn=
"#Lambda_{c} - sgn: K^{0}_{S} vs p Total Momentum Distribution - Offline - MC; p(p) [GeV/c]; p(K^{0}_{S}) [GeV/c]";
1697 titleHistoBkg=
"#Lambda_{c} - bkg: K^{0}_{S} vs p Total Momentum Distribution - Offline - MC; p(p) [GeV/c]; p(K^{0}_{S}) [GeV/c]";
1698 TH2F* momentumDistributionK0SvspOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),41,binLimpTprong,41,binLimpTprong);
1699 TH2F* momentumDistributionK0SvspOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),41,binLimpTprong,41,binLimpTprong);
1702 nameHistoSgn=
"histArmPodK0SOfflineSgn";
1703 nameHistoBkg=
"histArmPodK0SOfflineBkg";
1704 titleHistoSgn=
"V0-candidate Armenteros-Podolanski distribution (sgn) -offline-; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1705 titleHistoBkg=
"V0-candidate Armenteros-Podolanski distribution (bkg) -offline-; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1706 TH2F* armenterosPodK0SOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),200,-1.,1.,300,0.,0.3);
1707 TH2F* armenterosPodK0SOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),200,-1.,1.,300,0.,0.3);
1709 nameHistoSgn=
"histArmPodLcOfflineSgn";
1710 nameHistoBkg=
"histArmPodLcOfflineBkg";
1711 titleHistoSgn=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution (sgn) -offline-; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1712 titleHistoBkg=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution (bkg) -offline-; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1713 TH2F* armenterosPodLcOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),200,-4.,4.,800,0.,1.6);
1714 TH2F* armenterosPodLcOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),200,-4.,4.,800,0.,1.6);
1717 TH2F* allspectrumK0SMassOfflineSgn = (
TH2F*)spectrumK0SMassOfflineSgn->Clone();
1718 TH2F* allspectrumK0SMassOfflineBkg = (
TH2F*) spectrumK0SMassOfflineBkg->Clone();
1719 TH2F* allspectrumLcMassOfflineByK0SSgn = (
TH2F*)spectrumLcMassOfflineByK0SSgn->Clone();
1720 TH2F* allspectrumLcMassOfflineByK0SBkg = (
TH2F*) spectrumLcMassOfflineByK0SBkg->Clone();
1721 TH2F* allmomentumDistributionK0SvspOfflineSgn = (
TH2F*)momentumDistributionK0SvspOfflineSgn->Clone();
1722 TH2F* allmomentumDistributionK0SvspOfflineBkg = (
TH2F*)momentumDistributionK0SvspOfflineBkg->Clone();
1723 TH2F* allArmenterosPodK0SOfflineSgn = (
TH2F*)armenterosPodK0SOfflineSgn->Clone();
1724 TH2F* allArmenterosPodK0SOfflineBkg = (
TH2F*)armenterosPodK0SOfflineBkg->Clone();
1725 TH2F* allArmenterosPodLcOfflineSgn = (
TH2F*)armenterosPodLcOfflineSgn->Clone();
1726 TH2F* allArmenterosPodLcOfflineBkg = (
TH2F*)armenterosPodLcOfflineBkg->Clone();
1728 TH2F* pidBachspectrumLcMassOfflineByK0SSgn = (
TH2F*)spectrumLcMassOfflineByK0SSgn->Clone();
1729 TH2F* pidBachspectrumLcMassOfflineByK0SBkg = (
TH2F*) spectrumLcMassOfflineByK0SBkg->Clone();
1730 TH2F* pidBachspectrumK0SMassOfflineSgn = (
TH2F*)spectrumK0SMassOfflineSgn->Clone();
1731 TH2F* pidBachspectrumK0SMassOfflineBkg = (
TH2F*) spectrumK0SMassOfflineBkg->Clone();
1732 TH2F* pidBachmomentumDistributionK0SvspOfflineSgn = (
TH2F*)momentumDistributionK0SvspOfflineSgn->Clone();
1733 TH2F* pidBachmomentumDistributionK0SvspOfflineBkg = (
TH2F*)momentumDistributionK0SvspOfflineBkg->Clone();
1734 TH2F* pidBachArmenterosPodK0SOfflineSgn = (
TH2F*)armenterosPodK0SOfflineSgn->Clone();
1735 TH2F* pidBachArmenterosPodK0SOfflineBkg = (
TH2F*)armenterosPodK0SOfflineBkg->Clone();
1736 TH2F* pidBachArmenterosPodLcOfflineSgn = (
TH2F*)armenterosPodLcOfflineSgn->Clone();
1737 TH2F* pidBachArmenterosPodLcOfflineBkg = (
TH2F*)armenterosPodLcOfflineBkg->Clone();
1739 fOutputAll->Add(allspectrumK0SMassOfflineSgn);
1740 fOutputAll->Add(allspectrumK0SMassOfflineBkg);
1741 fOutputAll->Add(allspectrumLcMassOfflineByK0SSgn);
1742 fOutputAll->Add(allspectrumLcMassOfflineByK0SBkg);
1743 fOutputAll->Add(allmomentumDistributionK0SvspOfflineSgn);
1744 fOutputAll->Add(allmomentumDistributionK0SvspOfflineBkg);
1745 fOutputAll->Add(allArmenterosPodK0SOfflineSgn);
1746 fOutputAll->Add(allArmenterosPodK0SOfflineBkg);
1747 fOutputAll->Add(allArmenterosPodLcOfflineSgn);
1748 fOutputAll->Add(allArmenterosPodLcOfflineBkg);
1754 fOutputPIDBach->Add(pidBachmomentumDistributionK0SvspOfflineSgn);
1755 fOutputPIDBach->Add(pidBachmomentumDistributionK0SvspOfflineBkg);
1761 nameHistoSgn=
"histArmPodK0SOfflineSgn0";
1762 nameHistoBkg=
"histArmPodK0SOfflineBkg0";
1763 titleHistoSgn=
"V0-candidate Armenteros-Podolanski distribution (sgn) -offline-; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1764 titleHistoBkg=
"V0-candidate Armenteros-Podolanski distribution (bkg) -offline-; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1765 TH2F* armenterosPodK0SOfflineSgn0 =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),200,-1.,1.,300,0.,0.3);
1766 TH2F* armenterosPodK0SOfflineBkg0 =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),200,-1.,1.,300,0.,0.3);
1767 nameHistoSgn=
"histArmPodLcOfflineSgn0";
1768 nameHistoBkg=
"histArmPodLcOfflineBkg0";
1769 titleHistoSgn=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution (sgn) -offline-; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1770 titleHistoBkg=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution (bkg) -offline-; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1771 TH2F* armenterosPodLcOfflineSgn0 =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),200,-4.,4.,800,0.,1.6);
1772 TH2F* armenterosPodLcOfflineBkg0 =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),200,-4.,4.,800,0.,1.6);
1773 fOutputAll->Add(armenterosPodK0SOfflineSgn0);
1774 fOutputAll->Add(armenterosPodK0SOfflineBkg0);
1779 TH2F* pidBachTRspectrumLcMassOfflineByK0SSgn = (
TH2F*)spectrumLcMassOfflineByK0SSgn->Clone();
1780 TH2F* pidBachTRspectrumLcMassOfflineByK0SBkg = (
TH2F*) spectrumLcMassOfflineByK0SBkg->Clone();
1788 nameHistoSgn=
"histptK0SOfflineSgn";
1789 nameHistoBkg=
"histptK0SOfflineBkg";
1790 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";
1791 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";
1792 TH2F* ptK0SOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,41,binLimpTprong);
1793 TH2F* ptK0SOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,41,binLimpTprong);
1795 nameHistoSgn=
"histptPOfflineSgn";
1796 nameHistoBkg=
"histptPOfflineBkg";
1797 titleHistoSgn=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
1798 titleHistoBkg=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
1799 TH2F* ptPOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,41,binLimpTprong);
1800 TH2F* ptPOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,41,binLimpTprong);
1802 nameHistoSgn=
"histptPipOfflineSgn";
1803 nameHistoBkg=
"histptPipOfflineBkg";
1804 titleHistoSgn=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
1805 titleHistoBkg=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
1806 TH2F* ptPiPOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,41,binLimpTprong);
1807 TH2F* ptPiPOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,41,binLimpTprong);
1809 nameHistoSgn=
"histptPimOfflineSgn";
1810 nameHistoBkg=
"histptPimOfflineBkg";
1811 titleHistoSgn=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
1812 titleHistoBkg=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
1813 TH2F* ptPiMOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,41,binLimpTprong);
1814 TH2F* ptPiMOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,41,binLimpTprong);
1816 nameHistoSgn=
"histLambdaMassOfflineSgn";
1817 nameHistoBkg=
"histLambdaMassOfflineBkg";
1818 titleHistoSgn=
"m_{inv}(p,#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(p,#pi^{-}) [GeV/c^{2}]; Entries";
1819 titleHistoBkg=
"m_{inv}(p,#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(p,#pi^{-}) [GeV/c^{2}]; Entries";
1820 TH2F* massLambdaOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1821 TH2F* massLambdaOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1823 nameHistoSgn=
"histLambdaBarMassOfflineSgn";
1824 nameHistoBkg=
"histLambdaBarMassOfflineBkg";
1825 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";
1826 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";
1827 TH2F* massLambdaBarOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1828 TH2F* massLambdaBarOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1830 nameHistoSgn=
"histGammaMassOfflineSgn";
1831 nameHistoBkg=
"histGammaMassOfflineBkg";
1832 titleHistoSgn=
"m_{inv}(e^{+},e^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(e^{+},e^{-}) [GeV/c^{2}]; Entries";
1833 titleHistoBkg=
"m_{inv}(e^{+},e^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(e^{+},e^{-}) [GeV/c^{2}]; Entries";
1834 TH2F* massGammaOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,100,0.,1.);
1835 TH2F* massGammaOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,100,0.,1.);
1837 nameHistoSgn=
"histD0K0SOfflineSgn";
1838 nameHistoBkg=
"histD0K0SOfflineBkg";
1839 titleHistoSgn=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
1840 titleHistoBkg=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
1841 TH2F* d0K0SOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,-1.,1.);
1842 TH2F* d0K0SOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,-1.,1.);
1844 nameHistoSgn=
"histD0POfflineSgn";
1845 nameHistoBkg=
"histD0POfflineBkg";
1846 titleHistoSgn=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
1847 titleHistoBkg=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
1848 TH2F* d0POfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,-1.,1.);
1849 TH2F* d0POfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,-1.,1.);
1851 nameHistoSgn=
"histCosPAK0SOfflineSgn";
1852 nameHistoBkg=
"histCosPAK0SOfflineBkg";
1853 titleHistoSgn=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
1854 titleHistoBkg=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
1855 TH2F *cosPAK0SOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),41,binLimpTprong,100,0.99,1.);
1856 TH2F *cosPAK0SOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),41,binLimpTprong,100,0.99,1.);
1858 nameHistoSgn=
"histCosThetaProtonCMSOfflineSgn";
1859 nameHistoBkg=
"histCosThetaProtonCMSOfflineBkg";
1860 titleHistoSgn=
"cosien of proton emission angle in Lc rest frame; p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
1861 titleHistoBkg=
"cosien of proton emission angle in Lc rest frame; p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
1862 TH2F *cosThePrOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),41,binLimpTprong,100,-1.,1.);
1863 TH2F *cosThePrOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),41,binLimpTprong,100,-1.,1.);
1866 nameHistoSgn=
"histResignedD0OfflineSgn";
1867 nameHistoBkg=
"histResignedD0OfflineBkg";
1868 titleHistoSgn=
"Proton d0 with different sign convention; p_{T}(#Lambda_{c}) [GeV/c]; d0 [cm]; Entries";
1869 titleHistoBkg=
"Proton d0 with different sign convention; p_{T}(#Lambda_{c}) [GeV/c]; d0 [cm]; Entries";
1870 TH2F *resignedD0OfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),41,binLimpTprong,100,-0.1,0.1);
1871 TH2F *resignedD0OfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),41,binLimpTprong,100,-0.1,0.1);
1873 TH2F* allptK0SOfflineSgn = (
TH2F*)ptK0SOfflineSgn->Clone();
1874 TH2F* allptK0SOfflineBkg = (
TH2F*)ptK0SOfflineBkg->Clone();
1875 TH2F* allptPOfflineSgn = (
TH2F*)ptPOfflineSgn->Clone();
1876 TH2F* allptPOfflineBkg = (
TH2F*)ptPOfflineBkg->Clone();
1877 TH2F* allptPiPOfflineSgn = (
TH2F*)ptPiPOfflineSgn->Clone();
1878 TH2F* allptPiPOfflineBkg = (
TH2F*)ptPiPOfflineBkg->Clone();
1879 TH2F* allptPiMOfflineSgn = (
TH2F*)ptPiMOfflineSgn->Clone();
1880 TH2F* allptPiMOfflineBkg = (
TH2F*)ptPiMOfflineBkg->Clone();
1881 TH2F* allmassLambdaOfflineSgn = (
TH2F*)massLambdaOfflineSgn->Clone();
1882 TH2F* allmassLambdaOfflineBkg = (
TH2F*)massLambdaOfflineBkg->Clone();
1883 TH2F* allmassLambdaBarOfflineSgn = (
TH2F*)massLambdaBarOfflineSgn->Clone();
1884 TH2F* allmassLambdaBarOfflineBkg = (
TH2F*)massLambdaBarOfflineBkg->Clone();
1885 TH2F* allmassGammaOfflineSgn = (
TH2F*)massGammaOfflineSgn->Clone();
1886 TH2F* allmassGammaOfflineBkg = (
TH2F*)massGammaOfflineBkg->Clone();
1887 TH2F* alld0K0SOfflineSgn = (
TH2F*)d0K0SOfflineSgn->Clone();
1888 TH2F* alld0K0SOfflineBkg = (
TH2F*)d0K0SOfflineBkg->Clone();
1889 TH2F* alld0POfflineSgn = (
TH2F*)d0POfflineSgn->Clone();
1890 TH2F* alld0POfflineBkg = (
TH2F*)d0POfflineBkg->Clone();
1891 TH2F* allcosPAK0SOfflineSgn = (
TH2F*)cosPAK0SOfflineSgn->Clone();
1892 TH2F* allcosPAK0SOfflineBkg = (
TH2F*)cosPAK0SOfflineBkg->Clone();
1893 TH2F* allcosThePrOfflineSgn = (
TH2F*)cosThePrOfflineSgn->Clone();
1894 TH2F* allcosThePrOfflineBkg = (
TH2F*)cosThePrOfflineBkg->Clone();
1895 TH2F* allresignedD0OfflineSgn = (
TH2F*)resignedD0OfflineSgn->Clone();
1896 TH2F* allresignedD0OfflineBkg = (
TH2F*)resignedD0OfflineBkg->Clone();
1898 TH2F* pidptK0SOfflineSgn = (
TH2F*)ptK0SOfflineSgn->Clone();
1899 TH2F* pidptK0SOfflineBkg = (
TH2F*)ptK0SOfflineBkg->Clone();
1900 TH2F* pidptPOfflineSgn = (
TH2F*)ptPOfflineSgn->Clone();
1901 TH2F* pidptPOfflineBkg = (
TH2F*)ptPOfflineBkg->Clone();
1902 TH2F* pidptPiPOfflineSgn = (
TH2F*)ptPiPOfflineSgn->Clone();
1903 TH2F* pidptPiPOfflineBkg = (
TH2F*)ptPiPOfflineBkg->Clone();
1904 TH2F* pidptPiMOfflineSgn = (
TH2F*)ptPiMOfflineSgn->Clone();
1905 TH2F* pidptPiMOfflineBkg = (
TH2F*)ptPiMOfflineBkg->Clone();
1906 TH2F* pidmassLambdaOfflineSgn = (
TH2F*)massLambdaOfflineSgn->Clone();
1907 TH2F* pidmassLambdaOfflineBkg = (
TH2F*)massLambdaOfflineBkg->Clone();
1908 TH2F* pidmassLambdaBarOfflineSgn = (
TH2F*)massLambdaBarOfflineSgn->Clone();
1909 TH2F* pidmassLambdaBarOfflineBkg = (
TH2F*)massLambdaBarOfflineBkg->Clone();
1910 TH2F* pidmassGammaOfflineSgn = (
TH2F*)massGammaOfflineSgn->Clone();
1911 TH2F* pidmassGammaOfflineBkg = (
TH2F*)massGammaOfflineBkg->Clone();
1912 TH2F* pidd0K0SOfflineSgn = (
TH2F*)d0K0SOfflineSgn->Clone();
1913 TH2F* pidd0K0SOfflineBkg = (
TH2F*)d0K0SOfflineBkg->Clone();
1914 TH2F* pidd0POfflineSgn = (
TH2F*)d0POfflineSgn->Clone();
1915 TH2F* pidd0POfflineBkg = (
TH2F*)d0POfflineBkg->Clone();
1916 TH2F* pidcosPAK0SOfflineSgn = (
TH2F*)cosPAK0SOfflineSgn->Clone();
1917 TH2F* pidcosPAK0SOfflineBkg = (
TH2F*)cosPAK0SOfflineBkg->Clone();
1918 TH2F* pidcosThePrOfflineSgn = (
TH2F*)cosThePrOfflineSgn->Clone();
1919 TH2F* pidcosThePrOfflineBkg = (
TH2F*)cosThePrOfflineBkg->Clone();
1920 TH2F* pidresignedD0OfflineSgn = (
TH2F*)resignedD0OfflineSgn->Clone();
1921 TH2F* pidresignedD0OfflineBkg = (
TH2F*)resignedD0OfflineBkg->Clone();
1975 TH2F* pidTRptK0SOfflineSgn = (
TH2F*)ptK0SOfflineSgn->Clone();
1976 TH2F* pidTRptK0SOfflineBkg = (
TH2F*)ptK0SOfflineBkg->Clone();
1977 TH2F* pidTRptPOfflineSgn = (
TH2F*)ptPOfflineSgn->Clone();
1978 TH2F* pidTRptPOfflineBkg = (
TH2F*)ptPOfflineBkg->Clone();
1979 TH2F* pidTRptPiPOfflineSgn = (
TH2F*)ptPiPOfflineSgn->Clone();
1980 TH2F* pidTRptPiPOfflineBkg = (
TH2F*)ptPiPOfflineBkg->Clone();
1981 TH2F* pidTRptPiMOfflineSgn = (
TH2F*)ptPiMOfflineSgn->Clone();
1982 TH2F* pidTRptPiMOfflineBkg = (
TH2F*)ptPiMOfflineBkg->Clone();
1983 TH2F* pidTRmassLambdaOfflineSgn = (
TH2F*)massLambdaOfflineSgn->Clone();
1984 TH2F* pidTRmassLambdaOfflineBkg = (
TH2F*)massLambdaOfflineBkg->Clone();
1985 TH2F* pidTRmassLambdaBarOfflineSgn = (
TH2F*)massLambdaBarOfflineSgn->Clone();
1986 TH2F* pidTRmassLambdaBarOfflineBkg = (
TH2F*)massLambdaBarOfflineBkg->Clone();
1987 TH2F* pidTRmassGammaOfflineSgn = (
TH2F*)massGammaOfflineSgn->Clone();
1988 TH2F* pidTRmassGammaOfflineBkg = (
TH2F*)massGammaOfflineBkg->Clone();
1989 TH2F* pidTRcosPAK0SOfflineSgn = (
TH2F*)cosPAK0SOfflineSgn->Clone();
1990 TH2F* pidTRcosPAK0SOfflineBkg = (
TH2F*)cosPAK0SOfflineBkg->Clone();
1991 TH2F* pidTRcosThePrOfflineSgn = (
TH2F*)cosThePrOfflineSgn->Clone();
1992 TH2F* pidTRcosThePrOfflineBkg = (
TH2F*)cosThePrOfflineBkg->Clone();
1993 TH2F* pidTRresignedD0OfflineSgn = (
TH2F*)resignedD0OfflineSgn->Clone();
1994 TH2F* pidTRresignedD0OfflineBkg = (
TH2F*)resignedD0OfflineBkg->Clone();
2023 TH3F *phiVSthetaVSpt =
new TH3F(
"phiVSthetaVSpt",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
2024 TH3F *phiVSthetaVSptRot =
new TH3F(
"phiVSthetaVSptRot",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
2025 TH3F *phiVSthetaVSptOffline =
new TH3F(
"phiVSthetaVSptOffline",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
2026 TH3F *phiVSthetaVSptRotOffline =
new TH3F(
"phiVSthetaVSptRotOffline",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
2047 TH3F *phiVSthetaVSptSgn =
new TH3F(
"phiVSthetaVSptSgn",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
2048 TH3F *phiVSthetaVSptRotSgn =
new TH3F(
"phiVSthetaVSptRotSgn",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
2049 TH3F *phiVSthetaVSptOfflineSgn =
new TH3F(
"phiVSthetaVSptOfflineSgn",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
2050 TH3F *phiVSthetaVSptRotOfflineSgn =
new TH3F(
"phiVSthetaVSptRotOfflineSgn",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
2056 TH3F *phiVSthetaVSptBkg =
new TH3F(
"phiVSthetaVSptBkg",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
2057 TH3F *phiVSthetaVSptRotBkg =
new TH3F(
"phiVSthetaVSptRotBkg",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
2058 TH3F *phiVSthetaVSptOfflineBkg =
new TH3F(
"phiVSthetaVSptOfflineBkg",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
2059 TH3F *phiVSthetaVSptRotOfflineBkg =
new TH3F(
"phiVSthetaVSptRotOfflineBkg",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
2090 TH3F *hMassVsPtVsY=
new TH3F(
"hMassVsPtVsY",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
2091 TH3F *hMassVsPtVsYOffline=
new TH3F(
"hMassVsPtVsYOffline",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
2105 TH3F *hMassVsPtVsYSgn=
new TH3F(
"hMassVsPtVsYSgn",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
2106 TH3F *hMassVsPtVsYOfflineSgn=
new TH3F(
"hMassVsPtVsYOfflineSgn",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
2107 TH3F *hMassVsPtVsYBkg=
new TH3F(
"hMassVsPtVsYBkg",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
2108 TH3F *hMassVsPtVsYOfflineBkg=
new TH3F(
"hMassVsPtVsYOfflineBkg",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
2129 TH3F *hMassVsPtVsYRot=
new TH3F(
"hMassVsPtVsYRot",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
2130 TH3F *hMassVsPtVsYRotOffline=
new TH3F(
"hMassVsPtVsYRotOffline",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
2144 TH3F *hMassVsPtVsYRotSgn=
new TH3F(
"hMassVsPtVsYRotSgn",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
2145 TH3F *hMassVsPtVsYRotOfflineSgn=
new TH3F(
"hMassVsPtVsYRotOfflineSgn",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
2146 TH3F *hMassVsPtVsYRotBkg=
new TH3F(
"hMassVsPtVsYRotBkg",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
2147 TH3F *hMassVsPtVsYRotOfflineBkg=
new TH3F(
"hMassVsPtVsYRotOfflineBkg",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
2167 TH1F *hDeltaMass=
new TH1F(
"hDeltaMass",
"",100,-0.4,0.4);
2168 TH1F *hDeltaMassOffline=
new TH1F(
"hDeltaMassOffline",
"",100,-0.4,0.4);
2182 TH1F *hDeltaMassSgn=
new TH1F(
"hDeltaMassSgn",
"",100,-0.4,0.4);
2183 TH1F *hDeltaMassOfflineSgn=
new TH1F(
"hDeltaMassOfflineSgn",
"",100,-0.4,0.4);
2184 TH1F *hDeltaMassBkg=
new TH1F(
"hDeltaMassBkg",
"",100,-0.4,0.4);
2185 TH1F *hDeltaMassOfflineBkg=
new TH1F(
"hDeltaMassOfflineBkg",
"",100,-0.4,0.4);
2234 TH2D *hMassvsPtInclusiveK0S =
new TH2D(
"hMassvsPtInclusiveK0S",
"",100,mK0SPDG-0.05,mK0SPDG+0.05,20,0.,10.);
2235 TH2D *hMassvsPtInclusiveK0SSgn =
new TH2D(
"hMassvsPtInclusiveK0SSgn",
"",100,mK0SPDG-0.05,mK0SPDG+0.05,20,0.,10.);
2236 TH3D *hMassvsPtInclusiveLambda =
new TH3D(
"hMassvsPtInclusiveLambda",
"",100,mLPDG-0.025,mLPDG+0.025,20,0.,10.,62,0.,62);
2237 TH3D *hMassvsPtInclusiveLambdaSgn =
new TH3D(
"hMassvsPtInclusiveLambdaSgn",
"",100,mLPDG-0.025,mLPDG+0.025,20,0.,10.,62,0.,62);
2238 TH3D *hMassvsPtInclusiveLambdaPID = (
TH3D*)hMassvsPtInclusiveLambda->Clone();
2239 TH3D *hMassvsPtInclusiveLambdaPIDSgn = (
TH3D*)hMassvsPtInclusiveLambdaSgn->Clone();
2244 fOutputAll->Add(hMassvsPtInclusiveLambdaSgn);
2258 TClonesArray *mcArray,
2268 Double_t mLPDG = TDatabasePDG::Instance()->GetParticle(3122)->Mass();
2270 Int_t nTracks = aodEvent->GetNumberOfTracks();
2271 Int_t nV0s = aodEvent->GetNumberOfV0s();
2275 const AliESDVertex vESD(pos,cov,100.,100);
2282 for (
Int_t iv0 = 0; iv0<nV0s; iv0++) {
2283 AliAODv0 *v0 = aodEvent->GetV0(iv0);
2285 AliAODTrack *ptrk =
dynamic_cast<AliAODTrack*
>(v0->GetDaughter(0));
2286 if (!ptrk)
continue;
2287 AliAODTrack *ntrk =
dynamic_cast<AliAODTrack*
>(v0->GetDaughter(1));
2288 if (!ntrk)
continue;
2290 Float_t etaMin=0, etaMax=0; v0trkCuts->GetEtaRange(etaMin,etaMax);
2291 if ( (ptrk->Eta()<=etaMin || ptrk->Eta()>=etaMax) ||
2292 (ntrk->Eta()<=etaMin || ntrk->Eta()>=etaMax) )
continue;
2294 if ( (ptrk->Pt()<=ptMin || ptrk->Pt()>=
ptMax) ||
2295 (ntrk->Pt()<=ptMin || ntrk->Pt()>=
ptMax) )
continue;
2298 if (v0trkCuts->GetMinNClusterTPC()>0) {
2299 if ( ( ( ptrk->GetTPCClusterInfo(2,1) ) < v0trkCuts->GetMinNClusterTPC() ) ||
2300 ( ( ntrk->GetTPCClusterInfo(2,1) ) < v0trkCuts->GetMinNClusterTPC() ) )
continue;
2303 if (v0trkCuts->GetMinRatioCrossedRowsOverFindableClustersTPC()>0.5) {
2304 Float_t ratioCrossedRowsOverFindableClustersTPCPos = 1.0;
2305 Float_t ratioCrossedRowsOverFindableClustersTPCNeg = 1.0;
2306 if (ptrk->GetTPCNclsF()>0) {
2307 ratioCrossedRowsOverFindableClustersTPCPos = ptrk->GetTPCClusterInfo(2,1) / ptrk->GetTPCNclsF();
2309 if (ntrk->GetTPCNclsF()>0) {
2310 ratioCrossedRowsOverFindableClustersTPCNeg = ntrk->GetTPCClusterInfo(2,1) / ntrk->GetTPCNclsF();
2312 if ( ( ( ratioCrossedRowsOverFindableClustersTPCPos ) < v0trkCuts->GetMinRatioCrossedRowsOverFindableClustersTPC() ) ||
2313 ( ( ratioCrossedRowsOverFindableClustersTPCNeg ) < v0trkCuts->GetMinRatioCrossedRowsOverFindableClustersTPC() ) )
continue;
2317 if (v0->GetOnFlyStatus()==kFALSE) {
2318 if (v0trkCuts->GetRequireTPCRefit()) {
2319 if( !(ptrk->GetStatus() & AliESDtrack::kTPCrefit))
continue;
2320 if( !(ntrk->GetStatus() & AliESDtrack::kTPCrefit))
continue;
2324 AliESDtrack esdTrackP(ptrk);
2325 esdTrackP.SetTPCClusterMap(ptrk->GetTPCClusterMap());
2326 esdTrackP.SetTPCSharedMap(ptrk->GetTPCSharedMap());
2327 esdTrackP.SetTPCPointsF(ptrk->GetTPCNclsF());
2328 esdTrackP.RelateToVertex(&vESD,0.,3.);
2330 AliESDtrack esdTrackN(ntrk);
2331 esdTrackN.SetTPCClusterMap(ntrk->GetTPCClusterMap());
2332 esdTrackN.SetTPCSharedMap(ntrk->GetTPCSharedMap());
2333 esdTrackN.SetTPCPointsF(ntrk->GetTPCNclsF());
2334 esdTrackN.RelateToVertex(&vESD,0.,3.);
2338 if(tmptxt.Contains(
"pt")){
2339 tmptxt.ReplaceAll(
"pt",
"x");
2340 TF1 funcCutMin(
"funcCutMin",tmptxt);
2341 Float_t nCrossedRowsTPCP = esdTrackP.GetTPCCrossedRows();
2342 Float_t nCrossedRowsTPCN = esdTrackN.GetTPCCrossedRows();
2343 if(nCrossedRowsTPCP<funcCutMin.Eval(esdTrackP.Pt()))
continue;
2344 if(nCrossedRowsTPCN<funcCutMin.Eval(esdTrackN.Pt()))
continue;
2349 Float_t nCrossedRowsTPCP = esdTrackP.GetTPCCrossedRows();
2350 Float_t nCrossedRowsTPCN = esdTrackN.GetTPCCrossedRows();
2351 Float_t nClustersTPCP = esdTrackP.GetTPCNcls();
2352 Float_t nClustersTPCN = esdTrackN.GetTPCNcls();
2353 if(nCrossedRowsTPCP!=0){
2354 Float_t ratioP = nClustersTPCP/nCrossedRowsTPCP;
2355 if(ratioP<fAnalCuts->GetMinRatioClsOverCrossRowsTPC())
continue;
2358 if(nCrossedRowsTPCN!=0){
2359 Float_t ratioN = nClustersTPCN/nCrossedRowsTPCN;
2360 if(ratioN<fAnalCuts->GetMinRatioClsOverCrossRowsTPC())
continue;
2367 Float_t nCrossedRowsTPCP = esdTrackP.GetTPCCrossedRows();
2368 Float_t nCrossedRowsTPCN = esdTrackN.GetTPCCrossedRows();
2369 Float_t nTPCsignalP = esdTrackP.GetTPCsignalN();
2370 Float_t nTPCsignalN = esdTrackN.GetTPCsignalN();
2371 if(nCrossedRowsTPCP!=0){
2372 Float_t ratioP = nTPCsignalP/nCrossedRowsTPCP;
2373 if(ratioP<fAnalCuts->GetMinRatioSignalNOverCrossRowsTPC())
continue;
2376 if(nCrossedRowsTPCN!=0){
2377 Float_t ratioN = nTPCsignalN/nCrossedRowsTPCN;
2378 if(ratioN<fAnalCuts->GetMinRatioSignalNOverCrossRowsTPC())
continue;
2384 if (!v0trkCuts->GetAcceptKinkDaughters()) {
2385 AliAODVertex *maybeKinkPos = (AliAODVertex*)ptrk->GetProdVertex();
2386 AliAODVertex *maybeKinkNeg = (AliAODVertex*)ntrk->GetProdVertex();
2387 if (maybeKinkPos->GetType()==AliAODVertex::kKink ||
2388 maybeKinkNeg->GetType()==AliAODVertex::kKink)
continue;
2402 ((
TH2D*)(
fOutputAll->FindObject(
"hMassvsPtInclusiveK0S")))->Fill(v0->MassK0Short(),v0->Pt());
2405 Int_t pdgdgv0[2]={211,211};
2406 Int_t labV0 = v0->MatchToMC(310,mcArray,2,pdgdgv0);
2408 AliAODMCParticle *mcv0 = (AliAODMCParticle*) mcArray->At(labV0);
2410 ((
TH2D*)(
fOutputAll->FindObject(
"hMassvsPtInclusiveK0SSgn")))->Fill(v0->MassK0Short(),v0->Pt());
2417 for (
Int_t iv0 = 0; iv0<nV0s; iv0++) {
2418 AliAODv0 *v0 = aodEvent->GetV0(iv0);
2420 AliAODTrack *ptrk =
dynamic_cast<AliAODTrack*
>(v0->GetDaughter(0));
2421 if (!ptrk)
continue;
2422 AliAODTrack *ntrk =
dynamic_cast<AliAODTrack*
>(v0->GetDaughter(1));
2423 if (!ntrk)
continue;
2425 Float_t etaMin=0, etaMax=0; trkCuts->GetEtaRange(etaMin,etaMax);
2426 if ( (ptrk->Eta()<=etaMin || ptrk->Eta()>=etaMax) ||
2427 (ntrk->Eta()<=etaMin || ntrk->Eta()>=etaMax) )
continue;
2429 if ( (ptrk->Pt()<=ptMin || ptrk->Pt()>=
ptMax) ||
2430 (ntrk->Pt()<=ptMin || ntrk->Pt()>=
ptMax) )
continue;
2434 if (v0->GetOnFlyStatus()==kFALSE) {
2435 if (trkCuts->GetRequireTPCRefit()) {
2436 if( !(ptrk->GetStatus() & AliESDtrack::kTPCrefit))
continue;
2437 if( !(ntrk->GetStatus() & AliESDtrack::kTPCrefit))
continue;
2442 if (!trkCuts->GetAcceptKinkDaughters()) {
2443 AliAODVertex *maybeKinkPos = (AliAODVertex*)ptrk->GetProdVertex();
2444 AliAODVertex *maybeKinkNeg = (AliAODVertex*)ntrk->GetProdVertex();
2445 if (maybeKinkPos->GetType()==AliAODVertex::kKink ||
2446 maybeKinkNeg->GetType()==AliAODVertex::kKink)
continue;
2450 Double_t dR = TMath::Sqrt(v0->DecayVertexV0X()*v0->DecayVertexV0X()+v0->DecayVertexV0Y()*v0->DecayVertexV0Y());
2451 if(dR>40.)
continue;
2454 if(TMath::Abs(v0->MassLambda()-mLPDG)<0.02) LType += 1;
2455 if(TMath::Abs(v0->MassAntiLambda()-mLPDG)<0.02) LType += 2;
2456 if(LType==3)
continue;
2459 Bool_t okLcLambdaBarPi = kTRUE;
2460 Bool_t okLcLambdaPi = kTRUE;
2462 AliAODMCParticle *mcv0 = 0x0;
2464 Int_t pdgdgv0[2]={2212,211};
2465 Int_t labV0 = v0->MatchToMC(3122,mcArray,2,pdgdgv0);
2467 mcv0 = (AliAODMCParticle*) mcArray->At(labV0);
2471 AliESDtrack esdTrackP(ptrk);
2472 esdTrackP.SetTPCClusterMap(ptrk->GetTPCClusterMap());
2473 esdTrackP.SetTPCSharedMap(ptrk->GetTPCSharedMap());
2474 esdTrackP.SetTPCPointsF(ptrk->GetTPCNclsF());
2475 esdTrackP.RelateToVertex(&vESD,0.,3.);
2477 AliESDtrack esdTrackN(ntrk);
2478 esdTrackN.SetTPCClusterMap(ntrk->GetTPCClusterMap());
2479 esdTrackN.SetTPCSharedMap(ntrk->GetTPCSharedMap());
2480 esdTrackN.SetTPCPointsF(ntrk->GetTPCNclsF());
2481 esdTrackN.RelateToVertex(&vESD,0.,3.);
2484 if (trkCuts->GetMinNClusterTPC()>0) {
2486 if ( ( ( ptrk->GetTPCClusterInfo(2,1) ) < trkCuts->GetMinNClusterTPC() ) ||
2487 ( ( ntrk->GetTPCClusterInfo(2,1) ) < 70 ) )
continue;
2490 if ( ( ( ntrk->GetTPCClusterInfo(2,1) ) < trkCuts->GetMinNClusterTPC() ) ||
2491 ( ( ptrk->GetTPCClusterInfo(2,1) ) < 70 ) )
continue;
2495 if (trkCuts->GetMinRatioCrossedRowsOverFindableClustersTPC()>0.5) {
2496 Float_t ratioCrossedRowsOverFindableClustersTPCPos = 1.0;
2497 Float_t ratioCrossedRowsOverFindableClustersTPCNeg = 1.0;
2498 if (ptrk->GetTPCNclsF()>0) {
2499 ratioCrossedRowsOverFindableClustersTPCPos = ptrk->GetTPCClusterInfo(2,1) / ptrk->GetTPCNclsF();
2501 if (ntrk->GetTPCNclsF()>0) {
2502 ratioCrossedRowsOverFindableClustersTPCNeg = ntrk->GetTPCClusterInfo(2,1) / ntrk->GetTPCNclsF();
2505 if ( ( ( ratioCrossedRowsOverFindableClustersTPCPos ) < trkCuts->GetMinRatioCrossedRowsOverFindableClustersTPC() ) ||
2506 ( ( ratioCrossedRowsOverFindableClustersTPCNeg ) < 0.8 ) )
continue;
2509 if ( ( ( ratioCrossedRowsOverFindableClustersTPCNeg ) < trkCuts->GetMinRatioCrossedRowsOverFindableClustersTPC() ) ||
2510 ( ( ratioCrossedRowsOverFindableClustersTPCPos ) < 0.8 ) )
continue;
2516 if(tmptxt.Contains(
"pt")){
2517 tmptxt.ReplaceAll(
"pt",
"x");
2518 TF1 funcCutMin(
"funcCutMin",tmptxt);
2519 Float_t nCrossedRowsTPCP = esdTrackP.GetTPCCrossedRows();
2520 Float_t nCrossedRowsTPCN = esdTrackN.GetTPCCrossedRows();
2521 if(LType==1 && nCrossedRowsTPCP<funcCutMin.Eval(esdTrackP.Pt()))
continue;
2522 if(LType==2 && nCrossedRowsTPCN<funcCutMin.Eval(esdTrackN.Pt()))
continue;
2527 Float_t nCrossedRowsTPCP = esdTrackP.GetTPCCrossedRows();
2528 Float_t nCrossedRowsTPCN = esdTrackN.GetTPCCrossedRows();
2529 Float_t nClustersTPCP = esdTrackP.GetTPCNcls();
2530 Float_t nClustersTPCN = esdTrackN.GetTPCNcls();
2532 if(nCrossedRowsTPCP!=0){
2533 Float_t ratioP = nClustersTPCP/nCrossedRowsTPCP;
2534 if(ratioP<fAnalCuts->GetMinRatioClsOverCrossRowsTPC())
continue;
2540 if(nCrossedRowsTPCN!=0){
2541 Float_t ratioN = nClustersTPCN/nCrossedRowsTPCN;
2542 if(ratioN<fAnalCuts->GetMinRatioClsOverCrossRowsTPC())
continue;
2550 Float_t nCrossedRowsTPCP = esdTrackP.GetTPCCrossedRows();
2551 Float_t nCrossedRowsTPCN = esdTrackN.GetTPCCrossedRows();
2552 Float_t nTPCsignalP = esdTrackP.GetTPCsignalN();
2553 Float_t nTPCsignalN = esdTrackN.GetTPCsignalN();
2555 if(nCrossedRowsTPCP!=0){
2556 Float_t ratioP = nTPCsignalP/nCrossedRowsTPCP;
2557 if(ratioP<fAnalCuts->GetMinRatioSignalNOverCrossRowsTPC())
continue;
2562 if(nCrossedRowsTPCN!=0){
2563 Float_t ratioN = nTPCsignalN/nCrossedRowsTPCN;
2564 if(ratioN<fAnalCuts->GetMinRatioSignalNOverCrossRowsTPC())
continue;
2571 Double_t nTPCsigmas=-9999, nTOFsigmas=-9999;
2577 if(TMath::Abs(nTPCsigmas)<3. && TMath::Abs(nTOFsigmas)<3.){
2582 ((
TH3D*)(
fOutputAll->FindObject(
"hMassvsPtInclusiveLambda")))->Fill(v0->MassLambda(),ptrk->Pt(),dR);
2583 if(PIDOK) ((
TH3D*)(
fOutputPIDBach->FindObject(
"hMassvsPtInclusiveLambda")))->Fill(v0->MassLambda(),ptrk->Pt(),dR);
2586 ((
TH3D*)(
fOutputAll->FindObject(
"hMassvsPtInclusiveLambdaSgn")))->Fill(v0->MassLambda(),ptrk->Pt(),dR);
2587 if(PIDOK) ((
TH3D*)(
fOutputPIDBach->FindObject(
"hMassvsPtInclusiveLambdaSgn")))->Fill(v0->MassLambda(),ptrk->Pt(),dR);
2592 Double_t nTPCsigmas=-9999, nTOFsigmas=-9999;
2598 if(TMath::Abs(nTPCsigmas)<3. && TMath::Abs(nTOFsigmas)<3.){
2603 ((
TH3D*)(
fOutputAll->FindObject(
"hMassvsPtInclusiveLambda")))->Fill(v0->MassAntiLambda(),ntrk->Pt(),dR);
2604 if(PIDOK) ((
TH3D*)(
fOutputPIDBach->FindObject(
"hMassvsPtInclusiveLambda")))->Fill(v0->MassAntiLambda(),ntrk->Pt(),dR);
2606 ((
TH3D*)(
fOutputAll->FindObject(
"hMassvsPtInclusiveLambdaSgn")))->Fill(v0->MassAntiLambda(),ntrk->Pt(),dR);
2607 if(PIDOK) ((
TH3D*)(
fOutputPIDBach->FindObject(
"hMassvsPtInclusiveLambdaSgn")))->Fill(v0->MassAntiLambda(),ntrk->Pt(),dR);
2620 TClonesArray *arrayLctopKos=0;
2622 if(AODEvent() && IsStandardAOD()) {
2625 aodEvent =
dynamic_cast<AliAODEvent*
> (AODEvent());
2628 AliAODHandler* aodHandler = (AliAODHandler*)
2629 ((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler());
2631 if (aodHandler->GetExtensions()) {
2632 AliAODExtension *ext = (AliAODExtension*)aodHandler->GetExtensions()->FindObject(
"AliAOD.VertexingHF.root");
2634 arrayLctopKos=(TClonesArray*)aodFromExt->GetList()->FindObject(
"CascadesHF");
2638 arrayLctopKos=(TClonesArray*)aodEvent->GetList()->FindObject(
"CascadesHF");
2644 if (TMath::Abs(
fBzkG)>=0.001) {
2648 if (arrayLctopKos) {
2653 TClonesArray *mcArray = 0;
2654 AliAODMCHeader *mcHeader=0;
2658 mcArray =
dynamic_cast<TClonesArray*
>(aodEvent->FindListObject(AliAODMCParticle::StdBranchName()));
2663 mcHeader = (AliAODMCHeader*)aodEvent->GetList()->FindObject(AliAODMCHeader::StdBranchName());
2669 for (
Int_t iii=0; iii<mcArray->GetEntries(); iii++)
2677 if (
fVtx1->GetNContributors()>0) {
2680 TString firedTriggerClasses = aodEvent->GetFiredTriggerClasses();
2681 ULong64_t fTriggerMask=AliVEvent::kAnyINT;
2684 (aodEvent->GetRunNumber()<136851 || aodEvent->GetRunNumber()>139517) ) {
2685 if ( !(firedTriggerClasses.Contains(
"CINT1")) ) {
2686 AliInfo(Form(
" ======================== firedTriggerClasses.Data() = %s",firedTriggerClasses.Data()));
2693 Bool_t isSelectedAAA = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & fTriggerMask);
2694 if (!isSelectedAAA) {
2699 if (!isSelectedAAA || check1) {
2704 fTriggerMask=AliVEvent::kAny;
2705 Bool_t isSelectedBBB = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & fTriggerMask);
2706 if (!isSelectedBBB) {
2711 if (titleVtx.Contains(
"Z")) {
2715 else if (titleVtx.Contains(
"3D")) {
2750 TString firedTriggerClasses = aodEvent->GetFiredTriggerClasses();
2751 ULong64_t fTriggerMask=AliVEvent::kAnyINT;
2753 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(6);
2758 (aodEvent->GetRunNumber()<136851 || aodEvent->GetRunNumber()>139517) ) {
2759 if ( !(firedTriggerClasses.Contains(
"CINT1")) ) {
2760 AliInfo(Form(
" ======================== firedTriggerClasses.Data() = %s",firedTriggerClasses.Data()));
2761 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(8);
2767 Bool_t isSelectedAAAa = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & fTriggerMask);
2768 if (!isSelectedAAAa) {
2769 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(9);
2773 if (!isSelectedAAAa || check1a) {
2774 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(16);
2778 fTriggerMask=AliVEvent::kAny;
2779 Bool_t isSelectedBBBa = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & fTriggerMask);
2780 if (!isSelectedBBBa) {
2781 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(10);
2785 if (titleVtx.Contains(
"Z")) {
2786 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(11);
2789 else if (titleVtx.Contains(
"3D")) {
2790 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(12);
2793 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(13);
2798 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(14);
2803 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(7);
2806 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(15);
2816 TClonesArray *mcArray) {
2822 AliAODTrack *bachelor = (AliAODTrack*)lc2bacV0->
GetBachelor();
2823 if (!bachelor)
return -1;
2824 Int_t labBachelor = TMath::Abs(bachelor->GetLabel());
2825 if (labBachelor<0)
return -1;
2826 AliAODMCParticle *partBachelor = (AliAODMCParticle*)mcArray->At(labBachelor);
2827 if (!partBachelor)
return -1;
2828 if (TMath::Abs(partBachelor->GetPdgCode())!=pdgDgLc2bacV0[0])
return -1;
2830 Int_t labBacMother = partBachelor->GetMother();
2831 if (labBacMother<0)
return -1;
2832 AliAODMCParticle *partBacMother = (AliAODMCParticle*)mcArray->At(labBacMother);
2833 if (!partBacMother)
return -1;
2834 if (TMath::Abs(partBacMother->GetPdgCode())!=4122)
return -1;
2839 if (!posV0Daugh || !negV0Daugh)
return -1;
2841 Int_t labV0pos = TMath::Abs(posV0Daugh->GetLabel());
2842 Int_t labV0neg = TMath::Abs(negV0Daugh->GetLabel());
2843 if (labV0pos<0 || labV0neg<0)
return -1;
2845 AliAODMCParticle *partV0pos = (AliAODMCParticle*)mcArray->At(labV0neg);
2846 AliAODMCParticle *partV0neg = (AliAODMCParticle*)mcArray->At(labV0pos);
2847 if (!partV0pos || !partV0neg)
return -1;
2849 if ( ! ( (TMath::Abs(partV0pos->GetPdgCode())==pdgDgV0[0] &&
2850 TMath::Abs(partV0neg->GetPdgCode())==pdgDgV0[1]) ||
2851 (TMath::Abs(partV0pos->GetPdgCode())==pdgDgV0[1] &&
2852 TMath::Abs(partV0neg->GetPdgCode())==pdgDgV0[0]) ) )
return -1;
2853 Int_t labV0posMother = partV0pos->GetMother();
2854 Int_t labV0negMother = partV0neg->GetMother();
2856 if (labV0posMother<0 || labV0negMother<0)
return -1;
2857 if (labV0posMother!=labV0negMother)
return -1;
2859 AliAODMCParticle *motherV0 = (AliAODMCParticle*)mcArray->At(labV0posMother);
2860 if (!motherV0)
return-1;
2862 if (TMath::Abs(motherV0->GetPdgCode())!=pdgDgLc2bacV0[1])
return -1;
2863 Int_t labV0mother = motherV0->GetMother();
2864 if (labV0mother<0)
return -1;
2865 AliAODMCParticle *gMotherV0 = (AliAODMCParticle*)mcArray->At(labV0mother);
2866 if (!gMotherV0)
return-1;
2868 if ( !(pdgDgLc2bacV0[1]==310 && TMath::Abs(gMotherV0->GetPdgCode())==311) &&
2869 !(pdgDgLc2bacV0[1]==3122 && TMath::Abs(motherV0->GetPdgCode())==3122) )
return -1;
2871 if ( (pdgDgLc2bacV0[1]==310 && TMath::Abs(gMotherV0->GetPdgCode())==311) ) {
2872 Int_t labV0GMother = gMotherV0->GetMother();
2873 if (labV0GMother<0)
return -1;
2874 AliAODMCParticle *ggMotherV0 = (AliAODMCParticle*)mcArray->At(labV0GMother);
2875 if (!ggMotherV0)
return-1;
2877 if (TMath::Abs(ggMotherV0->GetPdgCode())!=4122)
return -1;
2878 gMotherV0 = (AliAODMCParticle*)ggMotherV0;
2879 labV0mother=labV0GMother;
2881 else if (pdgDgLc2bacV0[1]==3122 && TMath::Abs(motherV0->GetPdgCode())==3122) {
2882 if (TMath::Abs(gMotherV0->GetPdgCode())!=4122)
return -1;
2885 if (labBacMother!=labV0mother) {
2889 return labBacMother;
2899 Int_t indexToBeReturned=-999;
2902 Int_t pdgLambda=3122;
2905 Int_t pdgBachelor=2212;
2906 Int_t pdgBachelorPi=211;
2909 fillthis=
"histMcStatLc";
2911 AliAODMCParticle *searchLc =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(iii));
2912 if(!searchLc)
return -999;
2913 if (TMath::Abs(searchLc->GetPdgCode()) != pdgLc)
return -999;
2915 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(0);
2916 indexToBeReturned = 0;
2918 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*1);
2919 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*1;
2921 Int_t nDaughLc = searchLc->GetNDaughters();
2923 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*10);
2924 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*10;
2925 return indexToBeReturned;
2928 Int_t index1=searchLc->GetDaughter(0);
2929 Int_t index2=searchLc->GetDaughter(1);
2930 if (index1<=0 || index2<=0) {
2934 AliAODMCParticle *daugh1 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(index1));
2935 AliAODMCParticle *daugh2 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(index2));
2936 if (!daugh1 || !daugh2)
return -999;
2938 Int_t daughPdg1 = TMath::Abs(daugh1->GetPdgCode());
2939 Int_t daughPdg2 = TMath::Abs(daugh2->GetPdgCode());
2940 if ( !( (daughPdg1==pdgBachelor && daughPdg2==pdgK0) ||
2941 (daughPdg2==pdgBachelor && daughPdg1==pdgK0) ||
2942 (daughPdg1==pdgLambda && daughPdg2==pdgBachelorPi) ||
2943 (daughPdg2==pdgLambda && daughPdg1==pdgBachelorPi) ) ) {
2944 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*10);
2945 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*10;
2946 return indexToBeReturned;
2949 if (daughPdg1==pdgK0 || daughPdg1==pdgLambda) {
2950 index1=searchLc->GetDaughter(1);
2951 index2=searchLc->GetDaughter(0);
2953 daugh1 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(index1));
2954 daugh2 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(index2));
2955 if (!daugh1 || !daugh2)
return -999;
2957 daughPdg1=TMath::Abs(daugh1->GetPdgCode());
2958 daughPdg2=TMath::Abs(daugh2->GetPdgCode());
2960 if ( daughPdg1==pdgBachelor && daughPdg2==pdgK0 ) {
2962 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*2);
2963 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*2;
2965 Int_t nDaughK0 = daugh2->GetNDaughters();
2966 if (nDaughK0!=1)
return -999;
2968 Int_t indexK0daugh=daugh2->GetDaughter(0);
2969 if (indexK0daugh<=0)
return -999;
2971 AliAODMCParticle *daughK0 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(indexK0daugh));
2972 if (!daughK0)
return -999;
2974 Int_t daughK0Pdg=TMath::Abs(daughK0->GetPdgCode());
2975 if (daughK0Pdg!=pdgV0) {
2976 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*4);
2977 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*4;
2978 return indexToBeReturned;
2980 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*3);
2981 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*3;
2983 Int_t nDaughK0S = daughK0->GetNDaughters();
2985 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*5);
2986 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*5;
2987 return indexToBeReturned;
2990 index1=daughK0->GetDaughter(0);
2991 index2=daughK0->GetDaughter(1);
2992 if(index1<=0 || index2<=0) {
2996 AliAODMCParticle *daughK0S1 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(index1));
2997 AliAODMCParticle *daughK0S2 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(index2));
2998 if (!daughK0S1 || !daughK0S2)
return -999;
3000 Int_t daughK0S1pdg=TMath::Abs(daughK0S1->GetPdgCode());
3001 Int_t daughK0S2pdg=TMath::Abs(daughK0S2->GetPdgCode());
3003 if ( daughK0S1pdg==211 && daughK0S2pdg==211 ) {
3004 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*6);
3005 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*6;
3007 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*5);
3008 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*5;
3012 else if ( daughPdg1==pdgBachelorPi && daughPdg2==pdgLambda ) {
3014 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*7);
3015 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*7;
3017 Int_t nDaughL = daugh2->GetNDaughters();
3019 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*8);
3020 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*8;
3021 return indexToBeReturned;
3024 index1=daugh2->GetDaughter(0);
3025 index2=daugh2->GetDaughter(1);
3026 if(index1<=0 || index2<=0) {
3030 AliAODMCParticle *daughL1 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(index1));
3031 AliAODMCParticle *daughL2 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(index2));
3032 if (!daughL1 || !daughL2)
return -999;
3034 Int_t daughL1pdg=TMath::Abs(daughL1->GetPdgCode());
3035 Int_t daughL2pdg=TMath::Abs(daughL2->GetPdgCode());
3036 if ( (daughL1pdg==211 && daughL2pdg==2212) ||
3037 (daughL2pdg==211 && daughL1pdg==2212) ) {
3038 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*9);
3039 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*9;
3041 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*8);
3042 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*8;
3047 return indexToBeReturned;
3053 Bool_t isCandidateSelectedCuts,
3062 ((
TH2F*)(
fOutputAll->FindObject(histoTitle+
"0")))->Fill(alpha,qT);
3063 if (isCandidateSelectedCuts) {
3079 AliAODv0 * v0part = (AliAODv0*)part->
Getv0();
3080 Bool_t onFlyV0 = v0part->GetOnFlyStatus();
3082 AliAODTrack *bachelor = (AliAODTrack*)part->
GetBachelor();
3085 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(3);
3088 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(4);
3090 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(5);
3093 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(6);
3096 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(7);
3098 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(8);
3100 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(9);
3110 ((TH1F*)(
fOutput->FindObject(
"hSwitchOnCandidates1")))->Fill( -aaa );
3112 ((TH1F*)(
fOutput->FindObject(
"hSwitchOnCandidates1")))->Fill( aaa );
3117 if ((aaa&AliRDHFCutsLctoV0::kLcToK0Spr)==AliRDHFCutsLctoV0::kLcToK0Spr) {
3120 ((TH1F*)(
fOutput->FindObject(
"hSwitchOnCandidates2")))->Fill( -aaa );
3122 ((TH1F*)(
fOutput->FindObject(
"hSwitchOnCandidates2")))->Fill( aaa );
3127 if ((aaa&AliRDHFCutsLctoV0::kLcToK0Spr)==AliRDHFCutsLctoV0::kLcToK0Spr) {
3130 ((TH1F*)(
fOutput->FindObject(
"hSwitchOnCandidates3")))->Fill( -aaa );
3132 ((TH1F*)(
fOutput->FindObject(
"hSwitchOnCandidates3")))->Fill( aaa );
3136 if ((aaa&AliRDHFCutsLctoV0::kLcToK0Spr)==AliRDHFCutsLctoV0::kLcToK0Spr) {
3139 ((TH1F*)(
fOutput->FindObject(
"hSwitchOnCandidates4")))->Fill( -aaa );
3141 ((TH1F*)(
fOutput->FindObject(
"hSwitchOnCandidates4")))->Fill( aaa );
3156 Double_t mk0sPDG = TDatabasePDG::Instance()->GetParticle(310)->Mass();
3157 Double_t mLPDG = TDatabasePDG::Instance()->GetParticle(3122)->Mass();
3162 AliAODTrack *bachelor = (AliAODTrack*)part->
GetBachelor();
3164 AliAODv0 * v0part = (AliAODv0*)part->
Getv0();
3165 Double_t dcaV0ptp = v0part->GetDCA();
3166 Double_t invmassK0S = v0part->MassK0Short();
3167 Double_t invmassLambda = v0part->MassLambda();
3168 Double_t invmassLambdaBar = v0part->MassAntiLambda();
3170 Int_t isLc2LBarpi=0, isLc2Lpi=0;
3172 Int_t isDp2K0Spi=0, isDs2K0SK=0;
3173 Int_t mcLabel2 = -1;
3174 Int_t mcLabel3 = -1;
3175 Int_t isKstar12K0Spi=0, isKstar22K0Spi=0;
3176 Int_t mcLabel4 = -1;
3177 Int_t mcLabel5 = -1;
3182 Int_t pdgCand0 = 4122;
3183 Int_t pdgDgLctoV0bachelor0[2]={2212,310};
3184 Int_t pdgDgV0toDaughters0[2]={211,211};
3185 Int_t mcLabelLc2pK0S = part->
MatchToMC(pdgCand0,pdgDgLctoV0bachelor0[1],pdgDgLctoV0bachelor0,pdgDgV0toDaughters0,mcArray,kTRUE);
3186 AliAODMCParticle *lambdaCpartMC = (AliAODMCParticle*)mcArray->At(mcLabelLc2pK0S);
3187 if (lambdaCpartMC) {
3188 ptCandByMC = lambdaCpartMC->Pt();
3189 yCandByMC = lambdaCpartMC->Y();
3193 Int_t pdgCand = 4122;
3194 Int_t pdgDgLctoV0bachelor[2]={211,3122};
3195 Int_t pdgDgV0toDaughters[2]={2212,211};
3196 mcLabel = part->
MatchToMC(pdgCand,pdgDgLctoV0bachelor[1],pdgDgLctoV0bachelor,pdgDgV0toDaughters,mcArray,kTRUE);
3198 if (bachelor->Charge()<0) isLc2LBarpi=1;
3199 if (bachelor->Charge()>0) isLc2Lpi=1;
3200 AliAODMCParticle *lambdaCpartMC = (AliAODMCParticle*)mcArray->At(mcLabel);
3201 if (lambdaCpartMC) {
3202 ptCandByMC = lambdaCpartMC->Pt();
3203 yCandByMC = lambdaCpartMC->Y();
3207 Int_t pdgCand2 = 411;
3208 Int_t pdgCand3 = 431;
3209 Int_t pdgDgCand2[2]={211,310};
3210 Int_t pdgDgCand3[2]={321,310};
3211 pdgDgV0toDaughters[0]=211;
3212 pdgDgV0toDaughters[1]=211;
3213 mcLabel2 = part->
MatchToMC(pdgCand2,pdgDgCand2[1],pdgDgCand2,pdgDgV0toDaughters,mcArray,kTRUE);
3214 mcLabel3 = part->
MatchToMC(pdgCand3,pdgDgCand3[1],pdgDgCand3,pdgDgV0toDaughters,mcArray,kTRUE);
3217 AliAODMCParticle *lambdaCpartMC = (AliAODMCParticle*)mcArray->At(mcLabel2);
3218 if (lambdaCpartMC) {
3219 ptCandByMC = lambdaCpartMC->Pt();
3220 yCandByMC = lambdaCpartMC->Y();
3225 AliAODMCParticle *lambdaCpartMC = (AliAODMCParticle*)mcArray->At(mcLabel3);
3226 if (lambdaCpartMC) {
3227 ptCandByMC = lambdaCpartMC->Pt();
3228 yCandByMC = lambdaCpartMC->Y();
3232 Int_t pdgCand4 = 313;
3233 Int_t pdgCand5 = 325;
3234 Int_t pdgDgCand4[2]={211,310};
3235 Int_t pdgDgCand5[2]={211,310};
3236 pdgDgV0toDaughters[0]=211;
3237 pdgDgV0toDaughters[1]=211;
3238 mcLabel4 = part->
MatchToMC(pdgCand4,pdgDgCand4[1],pdgDgCand4,pdgDgV0toDaughters,mcArray,kTRUE);
3239 mcLabel5 = part->
MatchToMC(pdgCand5,pdgDgCand5[1],pdgDgCand5,pdgDgV0toDaughters,mcArray,kTRUE);
3242 AliAODMCParticle *lambdaCpartMC = (AliAODMCParticle*)mcArray->At(mcLabel4);
3243 if (lambdaCpartMC) {
3244 ptCandByMC = lambdaCpartMC->Pt();
3245 yCandByMC = lambdaCpartMC->Y();
3250 AliAODMCParticle *lambdaCpartMC = (AliAODMCParticle*)mcArray->At(mcLabel5);
3251 if (lambdaCpartMC) {
3252 ptCandByMC = lambdaCpartMC->Pt();
3253 yCandByMC = lambdaCpartMC->Y();
3258 Int_t isLcByMC = isLc+isLc2LBarpi*2+isLc2Lpi*4+isDp2K0Spi*8+isDs2K0SK*16+isKstar12K0Spi*32+isKstar22K0Spi*64;
3260 Bool_t isMCparticleInFiducialAcceptance = kTRUE;
3261 if (isLc || isLc2LBarpi || isLc2Lpi || isDp2K0Spi || isDs2K0SK || isKstar12K0Spi || isKstar22K0Spi) {
3267 Int_t isLambdaBar = 0;
3270 Int_t pdgDg2prong[2] = {211, 211};
3271 Int_t labelK0S = v0part->MatchToMC(310,mcArray,2,pdgDg2prong);
3272 if (labelK0S>=0) isK0S = 1;
3274 pdgDg2prong[0] = 211;
3275 pdgDg2prong[1] = 2212;
3276 Int_t lambdaLabel = v0part->MatchToMC(3122,mcArray,2,pdgDg2prong);
3277 if (lambdaLabel>=0) {
3278 AliAODMCParticle *lambdaTrack = (AliAODMCParticle*)mcArray->At(lambdaLabel);
3279 if (lambdaTrack->GetPdgCode()==3122) isLambda = 1;
3280 else if (lambdaTrack->GetPdgCode()==-3122) isLambdaBar = 1;
3283 pdgDg2prong[0] = 11;
3284 pdgDg2prong[1] = 11;
3285 Int_t gammaLabel = v0part->MatchToMC(22,mcArray,2,pdgDg2prong);
3286 if (gammaLabel>=0) {
3287 AliAODMCParticle *gammaTrack = (AliAODMCParticle*)mcArray->At(gammaLabel);
3288 if (gammaTrack->GetPdgCode()==22) isGamma = 1;
3292 Int_t isV0ByMC = isK0S+isLambdaBar*2+isLambda*4+isGamma*8;
3294 Int_t isBachelorSelected = (bachelor->TestFilterMask(BIT(4)))*1 + (!(bachelor->TestFilterMask(BIT(4))))*2;
3295 isBachelorSelected += (bachelor->GetLabel()<0)*4 + (bachelor->GetLabel()>=0)*8;
3296 if ( ( !(bachelor->HasPointOnITSLayer(0)) && !(bachelor->HasPointOnITSLayer(1)) ) )
3297 isBachelorSelected += 16;
3299 if ( bachelor->HasPointOnITSLayer(0) && !(bachelor->HasPointOnITSLayer(1)) )
3300 isBachelorSelected += 32;
3301 else if ( !(bachelor->HasPointOnITSLayer(0)) && bachelor->HasPointOnITSLayer(1) )
3302 isBachelorSelected += 64;
3304 isBachelorSelected += 128;
3310 Int_t areV0daughtersSelected = (v0pos->TestFilterMask(BIT(4)))*1 + (!(v0pos->TestFilterMask(BIT(4))))*2;
3311 areV0daughtersSelected += (v0pos->GetLabel()<0)*4 + (v0pos->GetLabel()>=0)*8;
3312 areV0daughtersSelected += (v0pos->HasPointOnITSLayer(0))*16;
3313 areV0daughtersSelected += (v0pos->HasPointOnITSLayer(1))*32;
3314 areV0daughtersSelected += (v0pos->HasPointOnITSLayer(2))*64;
3315 areV0daughtersSelected += (v0pos->HasPointOnITSLayer(3))*128;
3316 areV0daughtersSelected += (v0pos->HasPointOnITSLayer(4))*256;
3317 areV0daughtersSelected += (v0pos->HasPointOnITSLayer(5))*512;
3319 areV0daughtersSelected += (v0neg->TestFilterMask(BIT(4)))*1024 + (!(v0neg->TestFilterMask(BIT(4))))*2048;
3320 areV0daughtersSelected += (v0neg->GetLabel()<0)*4096 + (v0neg->GetLabel()>=0)*8192;
3321 areV0daughtersSelected += (v0neg->HasPointOnITSLayer(0))*16384;
3322 areV0daughtersSelected += (v0neg->HasPointOnITSLayer(1))*32768;
3323 areV0daughtersSelected += (v0neg->HasPointOnITSLayer(2))*65536;
3324 areV0daughtersSelected += (v0neg->HasPointOnITSLayer(3))*131072;
3325 areV0daughtersSelected += (v0neg->HasPointOnITSLayer(4))*262144;
3326 areV0daughtersSelected += (v0neg->HasPointOnITSLayer(5))*524288;
3350 Int_t flagToCheckCandidate = 1*(TMath::Abs(invmassK0S-mk0sPDG)<=0.050);
3351 flagToCheckCandidate+=2*((TMath::Abs(invmassLambdaBar-mLPDG)<=0.050) && (bachelor->Charge()<0));
3352 flagToCheckCandidate+=4*((TMath::Abs(invmassLambda-mLPDG)<=0.050) && (bachelor->Charge()>0));
3353 flagToCheckCandidate+=8*((TMath::Abs(invmassLambdaBar-mLPDG)<=0.050) && (bachelor->Charge()>0));
3354 flagToCheckCandidate+=16*((TMath::Abs(invmassLambda-mLPDG)<=0.050) && (bachelor->Charge()<0));
3414 Double_t xVtxLc=0, yVtxLc=0, zVtxLc=0;
3416 Double_t pxVtxBachelor=0, pyVtxBachelor=0, pzVtxBachelor=0;
3417 dcaForLc =
PropagateToDCA(v0part,bachelor,
fBzkG, xVtxLc, yVtxLc, zVtxLc, pxVtxBachelor, pyVtxBachelor, pzVtxBachelor);
3419 Int_t pdgCand0 = 4122;
3420 Int_t pdgDgLctoV0bachelor0[2]={2212,310};
3421 Int_t pdgDgV0toDaughters0[2]={211,211};
3422 Int_t mcLabel0 = part->
MatchToMC(pdgCand0,pdgDgLctoV0bachelor0[1],pdgDgLctoV0bachelor0,pdgDgV0toDaughters0,mcArray,kTRUE);
3423 AliAODMCParticle *partLc =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(mcLabel0));
3425 AliAODMCParticle *partLcDaug0 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(partLc->GetDaughter(0)));
3427 xLcMC=partLcDaug0->Xv(), yLcMC=partLcDaug0->Yv(), zLcMC=partLcDaug0->Zv();
3430 }
else if (isLc2LBarpi || isLc2Lpi) {
3431 AliAODMCParticle *partLc =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(mcLabel));
3432 AliAODMCParticle *partLcDaug0 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(partLc->GetDaughter(0)));
3433 xLcMC=partLcDaug0->Xv(), yLcMC=partLcDaug0->Yv(), zLcMC=partLcDaug0->Zv();
3434 }
else if (isDp2K0Spi) {
3435 AliAODMCParticle *partLc =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(mcLabel2));
3436 AliAODMCParticle *partLcDaug0 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(partLc->GetDaughter(0)));
3437 xLcMC=partLcDaug0->Xv(), yLcMC=partLcDaug0->Yv(), zLcMC=partLcDaug0->Zv();
3438 }
else if (isDs2K0SK) {
3439 AliAODMCParticle *partLc =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(mcLabel3));
3440 AliAODMCParticle *partLcDaug0 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(partLc->GetDaughter(0)));
3441 xLcMC=partLcDaug0->Xv(), yLcMC=partLcDaug0->Yv(), zLcMC=partLcDaug0->Zv();
3442 }
else if (isKstar12K0Spi) {
3443 AliAODMCParticle *partLc =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(mcLabel4));
3444 AliAODMCParticle *partLcDaug0 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(partLc->GetDaughter(0)));
3445 xLcMC=partLcDaug0->Xv(), yLcMC=partLcDaug0->Yv(), zLcMC=partLcDaug0->Zv();
3446 }
else if (isKstar22K0Spi) {
3447 AliAODMCParticle *partLc =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(mcLabel5));
3448 AliAODMCParticle *partLcDaug0 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(partLc->GetDaughter(0)));
3449 xLcMC=partLcDaug0->Xv(), yLcMC=partLcDaug0->Yv(), zLcMC=partLcDaug0->Zv();
3492 if (bachelor->GetLabel()!=-1) {
3493 AliAODMCParticle *partBachelor =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(TMath::Abs(bachelor->GetLabel())));
3496 if (bachelor->GetLabel()!=-1 &&
3497 v0pos->GetLabel()!=-1 &&
3498 v0neg->GetLabel()!=-1) {
3500 Int_t dgLabels[ndg]={TMath::Abs(bachelor->GetLabel()),
3501 TMath::Abs(v0pos->GetLabel()),
3502 TMath::Abs(v0neg->GetLabel())};
3505 Int_t absLabelMother=-1;
3508 dgLabels,ndg,ndgCk,pdgDg,absLabelMother,nDauCand);
3510 if (v0pos->GetLabel()!=-1) {
3511 AliAODMCParticle *part1 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(TMath::Abs(v0pos->GetLabel())));
3514 if (v0neg->GetLabel()!=-1) {
3515 AliAODMCParticle *part2 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(TMath::Abs(v0neg->GetLabel())));
3518 if (v0pos->GetLabel()!=-1 &&
3519 v0neg->GetLabel()!=-1) {
3521 Int_t dgLabels[ndg]={TMath::Abs(v0pos->GetLabel()),
3522 TMath::Abs(v0neg->GetLabel())};
3525 Int_t absLabelMother=-1;
3528 dgLabels,ndg,ndgCk,pdgDg,absLabelMother,nDauCand);
3533 AliInputEventHandler *inputHandler=(AliInputEventHandler*)mgr->GetInputEventHandler();
3534 AliPIDResponse *pidResponse=inputHandler->GetPIDResponse();
3537 AliPIDCombined *objectPIDCombined=
new AliPIDCombined;
3538 objectPIDCombined->SetDefaultTPCPriors();
3539 objectPIDCombined->SetDetectorMask(AliPIDResponse::kDetTPC+AliPIDResponse::kDetTOF);
3541 Double_t probTPCTOF[AliPID::kSPECIES]={-1.};
3542 UInt_t detUsed = objectPIDCombined->ComputeProbabilities(bachelor, pidResponse, probTPCTOF);
3547 if (detUsed == (
UInt_t)objectPIDCombined->GetDetectorMask() ) {
3548 AliDebug(2, Form(
"We have found the detector mask for TOF + TPC: probProton will be set to %f", probTPCTOF[
AliPID::kProton]));
3554 objectPIDCombined->SetDetectorMask(AliPIDResponse::kDetTPC);
3555 AliDebug(2,
"We did not find the detector mask for TOF + TPC, let's see only TPC");
3556 detUsed = objectPIDCombined->ComputeProbabilities(bachelor, pidResponse, probTPCTOF);
3557 AliDebug(2,Form(
" detUsed (TPC case) = %d", detUsed));
3558 if (detUsed == (
UInt_t)objectPIDCombined->GetDetectorMask()) {
3562 AliDebug(2, Form(
"TPC only worked: probProton will be set to %f", probTPCTOF[
AliPID::kProton]));
3565 AliDebug(2,
"Only TPC did not work...");
3568 objectPIDCombined->SetDetectorMask(AliPIDResponse::kDetTPC+AliPIDResponse::kDetTOF);
3570 AliDebug(2, Form(
"probProton = %f", probProton));
3575 Double_t pidTPC[AliPID::kSPECIES]={-1.};
3576 Double_t pidTOF[AliPID::kSPECIES]={-1.};
3577 Int_t respTPC = pidResponse->ComputePIDProbability(AliPIDResponse::kDetTPC, bachelor, AliPID::kSPECIES, pidTPC);
3578 Int_t respTOF = pidResponse->ComputePIDProbability(AliPIDResponse::kDetTOF, bachelor, AliPID::kSPECIES, pidTOF);
3579 if (respTPC == AliPIDResponse::kDetPidOk) probProtonTPC = pidTPC[
AliPID::kProton];
3580 if (respTOF == AliPIDResponse::kDetPidOk) probProtonTOF = pidTOF[
AliPID::kProton];
3590 delete objectPIDCombined;
3603 const char* nameoutput = GetOutputSlot(4)->GetContainer()->GetName();
3609 fCandidateVariableNames[ 0]=
"isLcByMC";
3610 fCandidateVariableNames[ 1]=
"isV0ByMC";
3611 fCandidateVariableNames[ 2]=
"flagToCheckBachelor";
3612 fCandidateVariableNames[ 3]=
"flagToCheckV0daughters";
3613 fCandidateVariableNames[ 4]=
"flagToCheckCandidate";
3614 fCandidateVariableNames[ 5]=
"massLc2K0Sp";
3615 fCandidateVariableNames[ 6]=
"massLc2Lambdapi";
3616 fCandidateVariableNames[ 7]=
"massD2K0Spi";
3617 fCandidateVariableNames[ 8]=
"massDS2K0SK";
3618 fCandidateVariableNames[ 9]=
"massK0S";
3619 fCandidateVariableNames[10]=
"massLambda";
3620 fCandidateVariableNames[11]=
"massLambdaBar";
3621 fCandidateVariableNames[12]=
"massGamma";
3622 fCandidateVariableNames[13]=
"dcaLcptp";
3623 fCandidateVariableNames[14]=
"dcaV0ptp";
3624 fCandidateVariableNames[15]=
"tImpParBach";
3625 fCandidateVariableNames[16]=
"tImpParV0";
3626 fCandidateVariableNames[17]=
"dcaV0postoPV";
3627 fCandidateVariableNames[18]=
"dcaV0negtoPV";
3628 fCandidateVariableNames[19]=
"cosPALc";
3629 fCandidateVariableNames[20]=
"cosPAK0S";
3630 fCandidateVariableNames[21]=
"rhoV0";
3631 fCandidateVariableNames[22]=
"nSigmaITSpr";
3632 fCandidateVariableNames[23]=
"nSigmaITSpi";
3633 fCandidateVariableNames[24]=
"nSigmaITSka";
3634 fCandidateVariableNames[25]=
"nSigmaTPCpr";
3635 fCandidateVariableNames[26]=
"nSigmaTPCpi";
3636 fCandidateVariableNames[27]=
"nSigmaTPCka";
3637 fCandidateVariableNames[28]=
"nSigmaTOFpr";
3638 fCandidateVariableNames[29]=
"nSigmaTOFpi";
3639 fCandidateVariableNames[30]=
"nSigmaTOFka";
3640 fCandidateVariableNames[31]=
"yLc";
3641 fCandidateVariableNames[32]=
"etaBach";
3642 fCandidateVariableNames[33]=
"etaV0pos";
3643 fCandidateVariableNames[34]=
"etaV0neg";
3644 fCandidateVariableNames[35]=
"LcP";
3645 fCandidateVariableNames[36]=
"LcPt";
3646 fCandidateVariableNames[37]=
"v0P";
3647 fCandidateVariableNames[38]=
"v0Pt";
3648 fCandidateVariableNames[39]=
"bachelorP";
3649 fCandidateVariableNames[40]=
"bachelorPt";
3650 fCandidateVariableNames[41]=
"V0positiveP";
3651 fCandidateVariableNames[42]=
"V0positivePt";
3652 fCandidateVariableNames[43]=
"V0negativeP";
3653 fCandidateVariableNames[44]=
"V0negativePt";
3654 fCandidateVariableNames[45]=
"decayLengthLc";
3655 fCandidateVariableNames[46]=
"decayLengthV0";
3656 fCandidateVariableNames[47]=
"cosPALcXY";
3657 fCandidateVariableNames[48]=
"cosPAV0XY";
3658 fCandidateVariableNames[49]=
"decayLengthLcXY";
3659 fCandidateVariableNames[50]=
"decayLengthV0XY";
3660 fCandidateVariableNames[51]=
"normalizedDecayLengthLc";
3661 fCandidateVariableNames[52]=
"normalizedDecayLengthV0";
3662 fCandidateVariableNames[53]=
"normalizedDecayLengthXYLc";
3663 fCandidateVariableNames[54]=
"normalizedDecayLengthXYV0";
3664 fCandidateVariableNames[55]=
"newLcDCA";
3666 fCandidateVariableNames[56]=
"cosThetaStarBachelor";
3667 fCandidateVariableNames[57]=
"cosThetaStarV0";
3668 fCandidateVariableNames[58]=
"etaV0";
3669 fCandidateVariableNames[59]=
"yV0";
3670 fCandidateVariableNames[60]=
"bachelorCharge";
3671 fCandidateVariableNames[61]=
"isMCparticleInFiducialAcceptance";
3673 fCandidateVariableNames[62]=
"massKstar12K0Spi";
3674 fCandidateVariableNames[63]=
"massKstar22K0Spi";
3675 fCandidateVariableNames[64]=
"pdgBachelor";
3676 fCandidateVariableNames[65]=
"pdgCandidate";
3677 fCandidateVariableNames[66]=
"pdgV0pos";
3678 fCandidateVariableNames[67]=
"pdgV0neg";
3679 fCandidateVariableNames[68]=
"pdgV0Candidate";
3680 fCandidateVariableNames[69]=
"startTimeMask";
3682 fCandidateVariableNames[70]=
"combinedProtonProb";
3683 fCandidateVariableNames[71]=
"TPCProtonProb";
3684 fCandidateVariableNames[72]=
"TOFProtonProb";
3685 fCandidateVariableNames[73]=
"checkLcOrigin";
3687 fCandidateVariableNames[74]=
"qtProng0V0";
3690 fCandidateVariableNames[75]=
"xVtxLcBad";
3691 fCandidateVariableNames[76]=
"yVtxLcBad";
3692 fCandidateVariableNames[77]=
"zVtxLcBad";
3693 fCandidateVariableNames[78]=
"xVtxLcGood";
3694 fCandidateVariableNames[79]=
"yVtxLcGood";
3695 fCandidateVariableNames[80]=
"zVtxLcGood";
3696 fCandidateVariableNames[81]=
"xVtxLcMC";
3697 fCandidateVariableNames[82]=
"yVtxLcMC";
3698 fCandidateVariableNames[83]=
"zVtxLcMC";
3699 fCandidateVariableNames[84]=
"pxVtxBachelorBad";
3700 fCandidateVariableNames[85]=
"pyVtxBachelorBad";
3701 fCandidateVariableNames[86]=
"pxVtxBachelorGood";
3702 fCandidateVariableNames[87]=
"pyVtxBachelorGood";
3703 fCandidateVariableNames[88]=
"pzVtxBachelorGood";
3704 fCandidateVariableNames[89]=
"pxVtxV0";
3705 fCandidateVariableNames[90]=
"pyVtxV0";
3706 fCandidateVariableNames[91]=
"pzVtxV0";
3707 fCandidateVariableNames[92]=
"xPvtx";
3708 fCandidateVariableNames[93]=
"yPvtx";
3709 fCandidateVariableNames[94]=
"zPvtx";
3725 fCEvents =
new TH1F(
"fCEvents",
"conter",20,0,20);
3727 fCEvents->GetXaxis()->SetBinLabel(1,
"X1");
3728 fCEvents->GetXaxis()->SetBinLabel(2,
"Analyzed events");
3729 fCEvents->GetXaxis()->SetBinLabel(3,
"AliAODVertex exists");
3730 fCEvents->GetXaxis()->SetBinLabel(4,
"CascadesHF exists");
3731 fCEvents->GetXaxis()->SetBinLabel(5,
"MCarray exists");
3732 fCEvents->GetXaxis()->SetBinLabel(6,
"MCheader exists");
3733 fCEvents->GetXaxis()->SetBinLabel(7,
"GetNContributors()>0");
3734 fCEvents->GetXaxis()->SetBinLabel(8,
"IsEventSelected");
3735 fCEvents->GetXaxis()->SetBinLabel(9,
"triggerClass!=CINT1");
3736 fCEvents->GetXaxis()->SetBinLabel(10,
"triggerMask!=kAnyINT");
3737 fCEvents->GetXaxis()->SetBinLabel(11,
"triggerMask!=kAny");
3738 fCEvents->GetXaxis()->SetBinLabel(12,
"vtxTitle.Contains(Z)");
3739 fCEvents->GetXaxis()->SetBinLabel(13,
"vtxTitle.Contains(3D)");
3740 fCEvents->GetXaxis()->SetBinLabel(14,
"vtxTitle.Doesn'tContain(Z-3D)");
3742 fCEvents->GetXaxis()->SetBinLabel(16,
"!IsEventSelected");
3743 fCEvents->GetXaxis()->SetBinLabel(17,
"triggerMask!=kAnyINT || triggerClass!=CINT1");
3745 fCEvents->GetXaxis()->SetBinLabel(19,
"Re-Fill Fail");
3746 fCEvents->GetXaxis()->SetBinLabel(20,
"AOD Mismatch");
3748 fCEvents->GetYaxis()->SetTitle(
"counts");
3754 fillthis=
"histMcStatLc";
3755 TH1F* mcStatisticLc =
new TH1F(fillthis.Data(),
"#Lambda_{c} generated and their decays",21,-10.5,10.5);
3761 fillthis=
"histoprotonBachSigmaVspTOF";
3762 TH2F *hprotonBachSigmaVspTOF=
new TH2F(fillthis.Data(),fillthis.Data(),300,0.,30.,100,-5.,5.);
3765 fOutput->Add(hprotonBachSigmaVspTOF);
3769 fillthis=
"histoprotonBachSigmaVspTPC";
3770 TH2F *hprotonBachSigmaVspTPC=
new TH2F(fillthis.Data(),fillthis.Data(),300,0.,30.,100,-5.,5.);
3773 fOutput->Add(hprotonBachSigmaVspTPC);
3779 fillthis=
"histoprotonBachSigmaVspTOFsgn";
3780 TH2F *hprotonBachSigmaVspTOFsgn=
new TH2F(fillthis.Data(),fillthis.Data(),300,0.,30.,100,-5.,5.);
3783 fOutput->Add(hprotonBachSigmaVspTOFsgn);
3787 fillthis=
"histoprotonBachSigmaVspTPCsgn";
3788 TH2F *hprotonBachSigmaVspTPCsgn=
new TH2F(fillthis.Data(),fillthis.Data(),300,0.,30.,100,-5.,5.);
3791 fOutput->Add(hprotonBachSigmaVspTPCsgn);
3796 fillthis=
"histoprotonBachSigmaVspTOFbkg";
3797 TH2F *hprotonBachSigmaVspTOFbkg=
new TH2F(fillthis.Data(),fillthis.Data(),300,0.,30.,100,-5.,5.);
3800 fOutput->Add(hprotonBachSigmaVspTOFbkg);
3804 fillthis=
"histoprotonBachSigmaVspTPCbkg";
3805 TH2F *hprotonBachSigmaVspTPCbkg=
new TH2F(fillthis.Data(),fillthis.Data(),300,0.,30.,100,-5.,5.);
3808 fOutput->Add(hprotonBachSigmaVspTPCbkg);
3814 TH1F *hZ2 =
new TH1F(
"hZ2",
"",100,-50.,50.);
3816 TH1F *hZ3 =
new TH1F(
"hZ3",
"",100,-50.,50.);
3818 TH1F *hZ4 =
new TH1F(
"hZ4",
"",100,-50.,50.);
3820 TH1F *hZ5 =
new TH1F(
"hZ5",
"",100,-50.,50.);
3822 TH1F *hZ6 =
new TH1F(
"hZ6",
"",100,-50.,50.);
3824 TH1F *hZ7 =
new TH1F(
"hZ7",
"",100,-50.,50.);
3826 TH1F *hZ8 =
new TH1F(
"hZ8",
"",100,-50.,50.);
3828 TH1F *hZ9 =
new TH1F(
"hZ9",
"",100,-50.,50.);
3830 TH1F *hZ10 =
new TH1F(
"hZ10",
"",100,-50.,50.);
3832 TH1F *hZ11 =
new TH1F(
"hZ11",
"",100,-50.,50.);
3834 TH1F *hZ12 =
new TH1F(
"hZ12",
"",100,-50.,50.);
3836 TH1F *hZ13 =
new TH1F(
"hZ13",
"",100,-50.,50.);
3838 TH1F *hZ14 =
new TH1F(
"hZ14",
"",100,-50.,50.);
3840 TH1F *hZ15 =
new TH1F(
"hZ15",
"",100,-50.,50.);
3842 TH1F *hZ16 =
new TH1F(
"hZ16",
"",100,-50.,50.);
3846 TH1F *hCandidateSelection =
new TH1F(
"hCandidateSelection",
"",10,-0.5,9.5);
3847 hCandidateSelection->GetXaxis()->SetBinLabel(1,
"IsEventSelected");
3848 hCandidateSelection->GetXaxis()->SetBinLabel(2,
"IsSecondaryVtx");
3849 hCandidateSelection->GetXaxis()->SetBinLabel(3,
"V0toPosNeg");
3850 hCandidateSelection->GetXaxis()->SetBinLabel(4,
"offlineV0");
3851 hCandidateSelection->GetXaxis()->SetBinLabel(5,
"isInFiducialAcceptance");
3852 hCandidateSelection->GetXaxis()->SetBinLabel(6,
"analCuts::kTracks");
3853 hCandidateSelection->GetXaxis()->SetBinLabel(7,
"analCuts::kCandidateNoPID");
3854 hCandidateSelection->GetXaxis()->SetBinLabel(8,
"analCuts::kPID");
3855 hCandidateSelection->GetXaxis()->SetBinLabel(9,
"analCuts::kCandidateWithPID");
3856 hCandidateSelection->GetXaxis()->SetBinLabel(10,
"analCuts::kAll");
3857 fOutput->Add(hCandidateSelection);
3859 TH1F *hEventsWithCandidates =
new TH1F(
"hEventsWithCandidates",
"conter",11,5.5,16.5);
3860 hEventsWithCandidates->GetXaxis()->SetBinLabel(1,
"GetNContributors()>0");
3861 hEventsWithCandidates->GetXaxis()->SetBinLabel(2,
"IsEventSelected");
3862 hEventsWithCandidates->GetXaxis()->SetBinLabel(3,
"triggerClass!=CINT1");
3863 hEventsWithCandidates->GetXaxis()->SetBinLabel(4,
"triggerMask!=kAnyINT");
3864 hEventsWithCandidates->GetXaxis()->SetBinLabel(5,
"triggerMask!=kAny");
3865 hEventsWithCandidates->GetXaxis()->SetBinLabel(6,
"vtxTitle.Contains(Z)");
3866 hEventsWithCandidates->GetXaxis()->SetBinLabel(7,
"vtxTitle.Contains(3D)");
3867 hEventsWithCandidates->GetXaxis()->SetBinLabel(8,
"vtxTitle.Doesn'tContain(Z-3D)");
3868 hEventsWithCandidates->GetXaxis()->SetBinLabel(9,Form(
"zVtx<=%2.0fcm",
fAnalCuts->
GetMaxVtxZ()));
3869 hEventsWithCandidates->GetXaxis()->SetBinLabel(10,
"!IsEventSelected");
3870 hEventsWithCandidates->GetXaxis()->SetBinLabel(11,
"triggerMask!=kAnyINT || triggerClass!=CINT1");
3871 fOutput->Add(hEventsWithCandidates);
3875 TH1F *hZ6a =
new TH1F(
"hZ6a",
"",100,-50.,50.);
3877 TH1F *hZ7a =
new TH1F(
"hZ7a",
"",100,-50.,50.);
3879 TH1F *hZ8a =
new TH1F(
"hZ8a",
"",100,-50.,50.);
3881 TH1F *hZ9a =
new TH1F(
"hZ9a",
"",100,-50.,50.);
3883 TH1F *hZ10a =
new TH1F(
"hZ10a",
"",100,-50.,50.);
3885 TH1F *hZ11a =
new TH1F(
"hZ11a",
"",100,-50.,50.);
3887 TH1F *hZ12a =
new TH1F(
"hZ12a",
"",100,-50.,50.);
3889 TH1F *hZ13a =
new TH1F(
"hZ13a",
"",100,-50.,50.);
3891 TH1F *hZ14a =
new TH1F(
"hZ14a",
"",100,-50.,50.);
3893 TH1F *hZ15a =
new TH1F(
"hZ15a",
"",100,-50.,50.);
3895 TH1F *hZ16a =
new TH1F(
"hZ16a",
"",100,-50.,50.);
3899 TH1F *hSwitchOnCandidates1 =
new TH1F(
"hSwitchOnCandidates1",
"",15,-7.5,7.5);
3900 fOutput->Add(hSwitchOnCandidates1);
3901 TH1F *hSwitchOnCandidates2 =
new TH1F(
"hSwitchOnCandidates2",
"",15,-7.5,7.5);
3902 fOutput->Add(hSwitchOnCandidates2);
3903 TH1F *hSwitchOnCandidates3 =
new TH1F(
"hSwitchOnCandidates3",
"",15,-7.5,7.5);
3904 fOutput->Add(hSwitchOnCandidates3);
3905 TH1F *hSwitchOnCandidates4 =
new TH1F(
"hSwitchOnCandidates4",
"",15,-7.5,7.5);
3906 fOutput->Add(hSwitchOnCandidates4);
3927 AliAODTrack *bachelor = (AliAODTrack*)part->
GetBachelor();
3931 AliAODv0 *v0part = (AliAODv0*)part->
Getv0();
3935 Double_t invmassK0S = v0part->MassK0Short();
3942 if (!appendthis.Contains(
"SgnC") && !appendthis.Contains(
"SgnB") && !appendthis.Contains(
"SgnNoQ")) {
3943 fillthis=
"histpK0Svsp"+appendthis;
3946 ((
TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(momBach,momK0S);
3947 if (isBachelorID) ((
TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(momBach,momK0S);
3951 fillthis=
"histLcMassByK0S"+appendthis;
3954 ((
TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(invmassLc,lambdacpt);
3955 if (isBachelorID)((
TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(invmassLc,lambdacpt);
3958 if (!appendthis.Contains(
"SgnC") && !appendthis.Contains(
"SgnB") && !appendthis.Contains(
"SgnNoQ")) {
3959 fillthis=
"histK0SMass"+appendthis;
3963 ((
TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,invmassK0S);
3964 if (isBachelorID) ((
TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,invmassK0S);
3969 fillthis=
"histptK0S"+appendthis;
3973 ((
TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,ptK0S);
3974 if (isBachelorID)((
TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,ptK0S);
3977 fillthis=
"histptP"+appendthis;
3981 ((
TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,ptBach);
3982 if (isBachelorID)((
TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,ptBach);
3985 fillthis=
"histptPip"+appendthis;
3989 ((
TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,ptV0pos);
3990 if (isBachelorID)((
TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,ptV0pos);
3993 fillthis=
"histptPim"+appendthis;
3997 ((
TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,ptV0neg);
3998 if (isBachelorID)((
TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,ptV0neg);
4001 if (!appendthis.Contains(
"SgnC") && !appendthis.Contains(
"SgnB") && !appendthis.Contains(
"SgnNoQ")) {
4002 fillthis=
"histLambdaMass"+appendthis;
4006 ((
TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,v0part->MassLambda());
4007 if (isBachelorID)((
TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,v0part->MassLambda());
4010 fillthis=
"histLambdaBarMass"+appendthis;
4014 ((
TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,v0part->MassAntiLambda());
4015 if (isBachelorID)((
TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,v0part->MassAntiLambda());
4018 fillthis=
"histGammaMass"+appendthis;
4022 ((
TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,v0part->InvMass2Prongs(0,1,11,11));
4023 if (isBachelorID)((
TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,v0part->InvMass2Prongs(0,1,11,11));
4027 fillthis=
"histD0K0S"+appendthis;
4031 ((
TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,part->Getd0Prong(1));
4032 if (isBachelorID)((
TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,part->Getd0Prong(1));
4035 fillthis=
"histD0P"+appendthis;
4039 ((
TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,part->Getd0Prong(0));
4040 if (isBachelorID)((
TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,part->Getd0Prong(0));
4043 fillthis=
"histCosPAK0S"+appendthis;
4051 fillthis=
"histCosThetaProtonCMS"+appendthis;
4059 fillthis=
"histResignedD0"+appendthis;
4084 bachelor->PxPyPz(pxpypz);
4085 bachelor->XvYvZv(xyz);
4086 bachelor->GetCovarianceXYZPxPyPz(cv);
4087 sign=bachelor->Charge();
4088 AliExternalTrackParam *t =
new AliExternalTrackParam(xyz,pxpypz,cv,sign);
4090 Double_t alpha=t->GetAlpha(), cs1=TMath::Cos(alpha), sn1=TMath::Sin(alpha);
4094 Double_t x1=xyz[0], y1=xyz[1], z1=xyz[2];
4095 Double_t px1=pxpypz[0], py1=pxpypz[1], pz1=pxpypz[2];
4099 y2=v->DecayVertexV0Y(),
4100 z2=v->DecayVertexV0Z();
4128 Double_t dd=
Det(x2-x1,y2-y1,z2-z1,px1,py1,pz1,px2,py2,pz2);
4133 Double_t dca=TMath::Abs(dd)/TMath::Sqrt(ax*ax + ay*ay + az*az);
4136 Double_t t1 =
Det(x2-x1,y2-y1,z2-z1,px2,py2,pz2,ax,ay,az)/
4137 Det(px1,py1,pz1,px2,py2,pz2,ax,ay,az);
4138 x1 += px1*t1; y1 += py1*t1; z1 += pz1*t1;
4142 if (!t->PropagateTo(rho1,b)) {
4143 Error(
"PropagateToDCA",
"Propagation failed !");
4148 Double_t pBachelorDCA[3]; t->GetPxPyPz(pBachelorDCA);
4149 pxVtxBachelor=pBachelorDCA[0], pyVtxBachelor=pBachelorDCA[1], pzVtxBachelor=pBachelorDCA[2];
4154 Double_t t2 =
Det(x1-x2,y1-y2,z1-z2,px1,py1,pz1,ax,ay,az)/
4155 Det(px2,py2,pz2,px1,py1,pz1,ax,ay,az);
4156 x2 += px2*t2; y2 += py2*t2; z2 += pz2*t2;
4160 xVtxLc = 0.5*(x1+x2);
4161 yVtxLc = 0.5*(y1+y2);
4162 zVtxLc = 0.5*(z1+z2);
4177 const double kSafe = 1e-5;
4178 Double_t radPos2 = xyz[0]*xyz[0]+xyz[1]*xyz[1];
4180 if (radPos2 < radMax*radMax) {
4181 alpha = TMath::ATan2(pxpypz[1],pxpypz[0]);
4183 Float_t phiPos = TMath::Pi()+TMath::ATan2(-xyz[1], -xyz[0]);
4185 TMath::DegToRad()*(20*((((
Int_t)(phiPos*TMath::RadToDeg()))/20))+10);
4188 Double_t cs=TMath::Cos(alpha), sn=TMath::Sin(alpha);
4190 if (TMath::Abs(sn)<2*kSafe) {
4191 if (alpha>0) alpha += alpha< TMath::Pi()/2. ? 2*kSafe : -2*kSafe;
4192 else alpha += alpha>-TMath::Pi()/2. ? -2*kSafe : 2*kSafe;
4193 cs=TMath::Cos(alpha);
4194 sn=TMath::Sin(alpha);
4196 else if (TMath::Abs(cs)<2*kSafe) {
4197 if (alpha>0) alpha += alpha> TMath::Pi()/2. ? 2*kSafe : -2*kSafe;
4198 else alpha += alpha>-TMath::Pi()/2. ? 2*kSafe : -2*kSafe;
4199 cs=TMath::Cos(alpha);
4200 sn=TMath::Sin(alpha);
4214 return a00*a11 - a01*a10;
4225 return a00*
Det(a11,a12,a21,a22)-a01*
Det(a10,a12,a20,a22)+a02*
Det(a10,a11,a20,a21);
4230 TClonesArray *mcArray)
4238 AliAODv0 *theV0 =
dynamic_cast<AliAODv0*
>(candidate->
Getv0());
4239 AliVTrack *trk =
dynamic_cast<AliVTrack*
>(candidate->
GetBachelor());
4240 if (!trk || !theV0)
return -1;
4242 if (trk->GetLabel()==-1)
return -1;
4243 Int_t bachLabels = TMath::Abs(trk->GetLabel());
4244 AliAODMCParticle*bachelorMC =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(bachLabels));
4245 if (!bachelorMC)
return -1;
4246 if (TMath::Abs(bachelorMC->GetPdgCode())!=2212)
return -1;
4247 Int_t indexMotherBach = bachelorMC->GetMother();
4248 if (indexMotherBach==-1)
return -1;
4250 Int_t pdgDg2prong[2] = {211,211};
4251 Int_t lab2Prong = theV0->MatchToMC(310,mcArray,2,pdgDg2prong);
4252 if(lab2Prong<0)
return -1;
4253 AliAODMCParticle*partK0S =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(lab2Prong));
4254 if (!partK0S)
return -1;
4255 Int_t indexMotherK0S = partK0S->GetMother();
4256 if (indexMotherK0S==-1)
return -1;
4257 AliAODMCParticle*partK0 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(indexMotherK0S));
4258 if (!partK0)
return -1;
4259 Int_t indexMotherK0 = partK0->GetMother();
4260 if (indexMotherK0==-1)
return -1;
4262 if (indexMotherBach!=indexMotherK0)
return -1;
4264 AliAODMCParticle*partLc =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(indexMotherK0));
4265 if (!partLc)
return -1;
4266 Int_t ndg2 = partLc->GetDaughter(1)-partLc->GetDaughter(0)+1;
4267 if (ndg2==2)
return -1;
4269 TString stringaCheck = Form(
">>>>>>>> %d -> ",partLc->GetPdgCode());
4270 for(
Int_t ii=0; ii<ndg2; ii++) {
4271 AliAODMCParticle* partDau=(AliAODMCParticle*)(mcArray->At(partLc->GetDaughter(0)+ii));
4272 stringaCheck.Append(Form(
" %d",partDau->GetPdgCode()));
4276 return indexMotherBach;
4290 Int_t lab=-1,labMother=-1,pdgMother=0;
4291 AliAODMCParticle *part=0;
4292 AliAODMCParticle *mother=0;
4296 for(
Int_t i=0; i<ndg; i++) labelMother[i] =
new TArrayI(0);
4297 for(
Int_t i=0; i<ndg; i++) {
4298 lab = TMath::Abs(dgLabels[i]);
4300 AliDebug(2,Form(
"daughter with negative label %d",lab));
4301 delete [] labelMother;
4304 part = (AliAODMCParticle*)mcArray->At(lab);
4306 AliDebug(2,
"no MC particle");
4307 delete [] labelMother;
4312 while(mother->GetMother()>=0) {
4313 labMother=mother->GetMother();
4314 mother = (AliAODMCParticle*)mcArray->At(labMother);
4316 AliDebug(2,
"no MC mother particle");
4319 pdgMother = TMath::Abs(mother->GetPdgCode());
4320 if (pdgMother<10 || (pdgMother>18 && pdgMother<111)) {
4323 labelMother[i]->Set(labelMother[i]->GetSize()+1);
4324 labelMother[i]->AddAt(labMother,labelMother[i]->GetSize()-1);
4331 for(
Int_t i=0; i<ndg; i++) {
4332 AliAODMCParticle*part0 = (AliAODMCParticle*)mcArray->At(TMath::Abs(dgLabels[i]));
4333 stringaCheck.Append(Form(
"part[%d]->GetLabel()=%d(%d) | ",i,dgLabels[i],part0->GetPdgCode()));
4334 stringaCheck.Append(Form(
"labelMother[%d] = ",i));
4335 for (
Int_t jj=0;jj<labelMother[i]->GetSize(); jj++)
4336 stringaCheck.Append(Form(
"%d, ",labelMother[i]->At(jj)));
4338 AliDebug(2,Form(
"%s \n",stringaCheck.Data()));
4339 Int_t pdgToBeReturned=0;
4343 pdgDg =
new Int_t[ndgCk];
4344 for (
Int_t index=1; index<ndg; index++) {
4346 for (
Int_t jj=0;jj<labelMother[index]->GetSize(); jj++) {
4347 for (
Int_t ii=0;ii<labelMother[0]->GetSize(); ii++) {
4348 if (labelMother[0]->At(ii)==labelMother[index]->At(jj) &&
4349 labelMother[0]->At(ii)!=0 && labelMother[0]->At(ii)!=1 && !found) {
4350 mother = (AliAODMCParticle*)mcArray->At(labelMother[0]->At(ii));
4351 pdgToBeReturned=mother->GetPdgCode();
4352 absLabelMother=labelMother[0]->At(ii);
4353 AliDebug(2,Form(
"FOUND label for the mother of this candidate: %d (PDG=%d)\n",labelMother[0]->At(ii),pdgToBeReturned));
4355 nDauCand=mother->GetNDaughters();
4357 AliAODMCParticle *partMC = (AliAODMCParticle*)mcArray->At(dgLabels[0]);
4358 pdgDg[0]=partMC->GetPdgCode();
4359 partMC = (AliAODMCParticle*)mcArray->At(dgLabels[index]);
4360 pdgDg[index]=partMC->GetPdgCode();
4361 if (index==1) stringaCheck2.Append(Form(
"found daughters -> %d(%d)",dgLabels[0],pdgDg[0]));
4362 stringaCheck2.Append(Form(
" %d(%d)",dgLabels[index],pdgDg[index]));
4369 stringaCheck2.Prepend(Form(
"Ecco quanto trovato: %d(%d) with %d daughters; ",absLabelMother,pdgToBeReturned,nDauCand));
4370 AliDebug(2,Form(
"%s \n",stringaCheck2.Data()));
4372 delete [] labelMother;
4375 return pdgToBeReturned;
4384 Double_t px[2]={partCopy->PxProng(0),partCopy->PxProng(1)};
4385 Double_t py[2]={partCopy->PyProng(0),partCopy->PyProng(1)};
4386 Double_t pz[2]={partCopy->PzProng(0),partCopy->PzProng(1)};
4390 UInt_t pdgLc2pK0S[2]={2212,310};
4391 Double_t minv2 = partCopy->InvMass2(2,pdgLc2pK0S);
4393 Double_t rapid = partCopy->Y(pdgD);
4398 fillthis=
"hMassVsPtVsY"+appendthis;
4402 fillthis=
"phiVSthetaVSpt"+appendthis;
4417 px[0]=tmpx*TMath::Cos(phirot)-tmpy*TMath::Sin(phirot);
4418 py[0]=tmpx*TMath::Sin(phirot)+tmpy*TMath::Cos(phirot);
4419 partCopy->SetPxPyPzProngs(2,px,py,pz);
4420 pt = partCopy->Pt();
4421 minv2 = partCopy->InvMass2(2,pdgLc2pK0S);
4422 massRot=TMath::Sqrt(minv2);
4423 rapid = partCopy->Y(pdgD);
4428 fillthis=
"histLcMassByK0S"+appendthis;
4432 fillthis=
"hMassVsPtVsYRot"+appendthis;
4436 fillthis=
"phiVSthetaVSptRot"+appendthis;
4440 fillthis=
"hDeltaMass"+appendthis;
4454 fillthis=
"histptK0S"+appendthis;
4458 ((
TH2F*)(
fOutputPIDBachTR->FindObject(fillthis)))->Fill(pt,TMath::Sqrt(px[1]*px[1]+py[1]*py[1]));
4461 fillthis=
"histptP"+appendthis;
4465 ((
TH2F*)(
fOutputPIDBachTR->FindObject(fillthis)))->Fill(pt,TMath::Sqrt(px[0]*px[0]+py[0]*py[0]));
4468 fillthis=
"histptPip"+appendthis;
4475 fillthis=
"histptPim"+appendthis;
4482 fillthis=
"histLambdaMass"+appendthis;
4489 fillthis=
"histLambdaBarMass"+appendthis;
4496 fillthis=
"histGammaMass"+appendthis;
4503 fillthis=
"histCosPAK0S"+appendthis;
4510 fillthis=
"histCosThetaProtonCMS"+appendthis;
4517 fillthis=
"histResignedD0"+appendthis;
4530 fillthis=
"hNormRotated"+appendthis;
4550 Double_t mLcPDG = TDatabasePDG::Instance()->GetParticle(4122)->Mass();
4551 Double_t mK0SPDG = TDatabasePDG::Instance()->GetParticle(310)->Mass();
4552 Double_t mMinLambdaPDG = TDatabasePDG::Instance()->GetParticle(2212)->Mass()+
4553 TDatabasePDG::Instance()->GetParticle(211)->Mass();
4555 TString nameHistoSgnC=
" ", nameHistoSgnB=
" ", nameHistoSgnNoQ=
" ";
4556 TString titleHistoSgnC=
" ", titleHistoSgnB=
" ", titleHistoSgnNoQ=
" ";
4575 binLimpTprong[ 0]= 0.0;
4576 binLimpTprong[ 1]= 0.1;
4577 binLimpTprong[ 2]= 0.2;
4578 binLimpTprong[ 3]= 0.3;
4579 binLimpTprong[ 4]= 0.4;
4580 binLimpTprong[ 5]= 0.5;
4581 binLimpTprong[ 6]= 0.6;
4582 binLimpTprong[ 7]= 0.7;
4583 binLimpTprong[ 8]= 0.8;
4584 binLimpTprong[ 9]= 0.9;
4585 binLimpTprong[10]= 1.0;
4586 binLimpTprong[11]= 1.2;
4587 binLimpTprong[12]= 1.4;
4588 binLimpTprong[13]= 1.6;
4589 binLimpTprong[14]= 1.8;
4590 binLimpTprong[15]= 2.0;
4591 binLimpTprong[16]= 2.2;
4592 binLimpTprong[17]= 2.4;
4593 binLimpTprong[18]= 2.6;
4594 binLimpTprong[19]= 2.8;
4595 binLimpTprong[20]= 3.0;
4596 binLimpTprong[21]= 3.5;
4597 binLimpTprong[22]= 4.0;
4598 binLimpTprong[23]= 4.5;
4599 binLimpTprong[24]= 5.0;
4600 binLimpTprong[25]= 5.5;
4601 binLimpTprong[26]= 6.0;
4602 binLimpTprong[27]= 6.5;
4603 binLimpTprong[28]= 7.0;
4604 binLimpTprong[29]= 7.5;
4605 binLimpTprong[30]= 8.0;
4606 binLimpTprong[31]= 9.0;
4607 binLimpTprong[32]=10.0;
4608 binLimpTprong[33]=11.0;
4609 binLimpTprong[34]=12.0;
4610 binLimpTprong[35]=13.0;
4611 binLimpTprong[36]=14.0;
4612 binLimpTprong[37]=15.0;
4613 binLimpTprong[38]=20.0;
4614 binLimpTprong[39]=25.0;
4615 binLimpTprong[40]=30.0;
4616 binLimpTprong[41]=35.0;
4620 nameHistoSgnC=
"histLcMassByK0SSgnC";
4621 nameHistoSgnB=
"histLcMassByK0SSgnB";
4622 nameHistoSgnNoQ=
"histLcMassByK0SSgnNoQ";
4623 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]";
4624 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]";
4625 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]";
4626 TH2F* spectrumLcMassByK0SSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
4627 TH2F* spectrumLcMassByK0SSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
4628 TH2F* spectrumLcMassByK0SSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
4630 TH2F* allspectrumLcMassByK0SSgnC = (
TH2F*)spectrumLcMassByK0SSgnC->Clone();
4631 TH2F* allspectrumLcMassByK0SSgnB = (
TH2F*) spectrumLcMassByK0SSgnB->Clone();
4632 TH2F* allspectrumLcMassByK0SSgnNoQ = (
TH2F*) spectrumLcMassByK0SSgnNoQ->Clone();
4633 TH2F* pidBachspectrumLcMassByK0SSgnC = (
TH2F*)spectrumLcMassByK0SSgnC->Clone();
4634 TH2F* pidBachspectrumLcMassByK0SSgnB = (
TH2F*) spectrumLcMassByK0SSgnB->Clone();
4635 TH2F* pidBachspectrumLcMassByK0SSgnNoQ = (
TH2F*) spectrumLcMassByK0SSgnNoQ->Clone();
4639 fOutputAll->Add(allspectrumLcMassByK0SSgnNoQ);
4644 nameHistoSgnC=
"histptK0SSgnC";
4645 nameHistoSgnB=
"histptK0SSgnB";
4646 nameHistoSgnNoQ=
"histptK0SSgnNoQ";
4647 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";
4648 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";
4649 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";
4650 TH2F* ptK0SSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,41,binLimpTprong);
4651 TH2F* ptK0SSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
4652 TH2F* ptK0SSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),11,binLimpTLc,41,binLimpTprong);
4654 nameHistoSgnC=
"histptPSgnC";
4655 nameHistoSgnB=
"histptPSgnB";
4656 nameHistoSgnNoQ=
"histptPSgnNoQ";
4657 titleHistoSgnC=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
4658 titleHistoSgnB=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
4659 titleHistoSgnNoQ=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
4660 TH2F* ptPSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,41,binLimpTprong);
4661 TH2F* ptPSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
4662 TH2F* ptPSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),11,binLimpTLc,41,binLimpTprong);
4664 nameHistoSgnC=
"histptPipSgnC";
4665 nameHistoSgnB=
"histptPipSgnB";
4666 nameHistoSgnNoQ=
"histptPipSgnNoQ";
4667 titleHistoSgnC=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
4668 titleHistoSgnB=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
4669 titleHistoSgnNoQ=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
4670 TH2F* ptPiPSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,41,binLimpTprong);
4671 TH2F* ptPiPSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
4672 TH2F* ptPiPSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
4674 nameHistoSgnC=
"histptPimSgnC";
4675 nameHistoSgnB=
"histptPimSgnB";
4676 nameHistoSgnNoQ=
"histptPimSgnNoQ";
4677 titleHistoSgnC=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
4678 titleHistoSgnB=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
4679 titleHistoSgnNoQ=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
4680 TH2F* ptPiMSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,41,binLimpTprong);
4681 TH2F* ptPiMSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
4682 TH2F* ptPiMSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
4684 nameHistoSgnC=
"histD0K0SSgnC";
4685 nameHistoSgnB=
"histD0K0SSgnB";
4686 nameHistoSgnNoQ=
"histD0K0SSgnNoQ";
4687 titleHistoSgnC=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
4688 titleHistoSgnB=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
4689 titleHistoSgnNoQ=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
4690 TH2F* d0K0SSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,1000,-1.,1.);
4691 TH2F* d0K0SSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,1000,-1.,1.);
4692 TH2F* d0K0SSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),11,binLimpTLc,1000,-1.,1.);
4694 nameHistoSgnC=
"histD0PSgnC";
4695 nameHistoSgnB=
"histD0PSgnB";
4696 nameHistoSgnNoQ=
"histD0PSgnNoQ";
4697 titleHistoSgnC=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
4698 titleHistoSgnB=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
4699 titleHistoSgnNoQ=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
4700 TH2F* d0PSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,1000,-1.,1.);
4701 TH2F* d0PSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,1000,-1.,1.);
4702 TH2F* d0PSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),11,binLimpTLc,1000,-1.,1.);
4704 nameHistoSgnC=
"histCosPAK0SSgnC";
4705 nameHistoSgnB=
"histCosPAK0SSgnB";
4706 nameHistoSgnNoQ=
"histCosPAK0SSgnNoQ";
4707 titleHistoSgnC=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
4708 titleHistoSgnB=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
4709 titleHistoSgnNoQ=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
4710 TH2F *cosPAK0SSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),41,binLimpTprong,100,0.99,1.);
4711 TH2F *cosPAK0SSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),41,binLimpTprong,100,0.99,1.);
4712 TH2F *cosPAK0SSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),41,binLimpTprong,100,0.99,1.);
4714 nameHistoSgnC=
"histCosThetaProtonCMSSgnC";
4715 nameHistoSgnB=
"histCosThetaProtonCMSSgnB";
4716 nameHistoSgnNoQ=
"histCosThetaProtonCMSSgnNoQ";
4717 titleHistoSgnC=
"cosien of proton emission angle in Lc rest frame; p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
4718 titleHistoSgnB=
"cosien of proton emission angle in Lc rest frame; p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
4719 titleHistoSgnNoQ=
"cosien of proton emission angle in Lc rest frame; p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
4720 TH2F *cosThePrSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),41,binLimpTprong,100,-1.,1.);
4721 TH2F *cosThePrSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),41,binLimpTprong,100,-1.,1.);
4722 TH2F *cosThePrSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),41,binLimpTprong,100,-1.,1.);
4724 nameHistoSgnC=
"histResignedD0SgnC";
4725 nameHistoSgnB=
"histResignedD0SgnB";
4726 nameHistoSgnNoQ=
"histResignedD0SgnNoQ";
4727 titleHistoSgnC=
"Proton d0 with different sign convention; p_{T}(#Lambda_{c}) [GeV/c]; d0 [cm]; Entries";
4728 titleHistoSgnB=
"Proton d0 with different sign convention; p_{T}(#Lambda_{c}) [GeV/c]; d0 [cm]; Entries";
4729 titleHistoSgnNoQ=
"Proton d0 with different sign convention; p_{T}(#Lambda_{c}) [GeV/c]; d0 [cm]; Entries";
4730 TH2F *resignedD0SgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),41,binLimpTprong,100,-0.1,0.1);
4731 TH2F *resignedD0SgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),41,binLimpTprong,100,-0.1,0.1);
4732 TH2F *resignedD0SgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),41,binLimpTprong,100,-0.1,0.1);
4734 TH2F* allptK0SSgnC = (
TH2F*)ptK0SSgnC->Clone();
4735 TH2F* allptK0SSgnB = (
TH2F*)ptK0SSgnB->Clone();
4736 TH2F* allptK0SSgnNoQ = (
TH2F*)ptK0SSgnNoQ->Clone();
4737 TH2F* allptPSgnC = (
TH2F*)ptPSgnC->Clone();
4738 TH2F* allptPSgnB = (
TH2F*)ptPSgnB->Clone();
4739 TH2F* allptPSgnNoQ = (
TH2F*)ptPSgnNoQ->Clone();
4740 TH2F* allptPiPSgnC = (
TH2F*)ptPiPSgnC->Clone();
4741 TH2F* allptPiPSgnB = (
TH2F*)ptPiPSgnB->Clone();
4742 TH2F* allptPiPSgnNoQ = (
TH2F*)ptPiPSgnNoQ->Clone();
4743 TH2F* allptPiMSgnC = (
TH2F*)ptPiMSgnC->Clone();
4744 TH2F* allptPiMSgnB = (
TH2F*)ptPiMSgnB->Clone();
4745 TH2F* allptPiMSgnNoQ = (
TH2F*)ptPiMSgnNoQ->Clone();
4746 TH2F* alld0K0SSgnC = (
TH2F*)d0K0SSgnC->Clone();
4747 TH2F* alld0K0SSgnB = (
TH2F*)d0K0SSgnB->Clone();
4748 TH2F* alld0K0SSgnNoQ = (
TH2F*)d0K0SSgnNoQ->Clone();
4749 TH2F* alld0PSgnC = (
TH2F*)d0PSgnC->Clone();
4750 TH2F* alld0PSgnB = (
TH2F*)d0PSgnB->Clone();
4751 TH2F* alld0PSgnNoQ = (
TH2F*)d0PSgnNoQ->Clone();
4752 TH2F* allcosPAK0SSgnC = (
TH2F*)cosPAK0SSgnC->Clone();
4753 TH2F* allcosPAK0SSgnB = (
TH2F*)cosPAK0SSgnB->Clone();
4754 TH2F* allcosPAK0SSgnNoQ = (
TH2F*)cosPAK0SSgnNoQ->Clone();
4755 TH2F* allcosThePrSgnC = (
TH2F*)cosThePrSgnC->Clone();
4756 TH2F* allcosThePrSgnB = (
TH2F*)cosThePrSgnB->Clone();
4757 TH2F* allcosThePrSgnNoQ = (
TH2F*)cosThePrSgnNoQ->Clone();
4758 TH2F* allresignedD0SgnC = (
TH2F*)resignedD0SgnC->Clone();
4759 TH2F* allresignedD0SgnB = (
TH2F*)resignedD0SgnB->Clone();
4760 TH2F* allresignedD0SgnNoQ = (
TH2F*)resignedD0SgnNoQ->Clone();
4762 TH2F* pidptK0SSgnC = (
TH2F*)ptK0SSgnC->Clone();
4763 TH2F* pidptK0SSgnB = (
TH2F*)ptK0SSgnB->Clone();
4764 TH2F* pidptK0SSgnNoQ = (
TH2F*)ptK0SSgnNoQ->Clone();
4765 TH2F* pidptPSgnC = (
TH2F*)ptPSgnC->Clone();
4766 TH2F* pidptPSgnB = (
TH2F*)ptPSgnB->Clone();
4767 TH2F* pidptPSgnNoQ = (
TH2F*)ptPSgnNoQ->Clone();
4768 TH2F* pidptPiPSgnC = (
TH2F*)ptPiPSgnC->Clone();
4769 TH2F* pidptPiPSgnB = (
TH2F*)ptPiPSgnB->Clone();
4770 TH2F* pidptPiPSgnNoQ = (
TH2F*)ptPiPSgnNoQ->Clone();
4771 TH2F* pidptPiMSgnC = (
TH2F*)ptPiMSgnC->Clone();
4772 TH2F* pidptPiMSgnB = (
TH2F*)ptPiMSgnB->Clone();
4773 TH2F* pidptPiMSgnNoQ = (
TH2F*)ptPiMSgnNoQ->Clone();
4774 TH2F* pidd0K0SSgnC = (
TH2F*)d0K0SSgnC->Clone();
4775 TH2F* pidd0K0SSgnB = (
TH2F*)d0K0SSgnB->Clone();
4776 TH2F* pidd0K0SSgnNoQ = (
TH2F*)d0K0SSgnNoQ->Clone();
4777 TH2F* pidd0PSgnC = (
TH2F*)d0PSgnC->Clone();
4778 TH2F* pidd0PSgnB = (
TH2F*)d0PSgnB->Clone();
4779 TH2F* pidd0PSgnNoQ = (
TH2F*)d0PSgnNoQ->Clone();
4780 TH2F* pidcosPAK0SSgnC = (
TH2F*)cosPAK0SSgnC->Clone();
4781 TH2F* pidcosPAK0SSgnB = (
TH2F*)cosPAK0SSgnB->Clone();
4782 TH2F* pidcosPAK0SSgnNoQ = (
TH2F*)cosPAK0SSgnNoQ->Clone();
4783 TH2F* pidcosThePrSgnC = (
TH2F*)cosThePrSgnC->Clone();
4784 TH2F* pidcosThePrSgnB = (
TH2F*)cosThePrSgnB->Clone();
4785 TH2F* pidcosThePrSgnNoQ = (
TH2F*)cosThePrSgnNoQ->Clone();
4786 TH2F* pidresignedD0SgnC = (
TH2F*)resignedD0SgnC->Clone();
4787 TH2F* pidresignedD0SgnB = (
TH2F*)resignedD0SgnB->Clone();
4788 TH2F* pidresignedD0SgnNoQ = (
TH2F*)resignedD0SgnNoQ->Clone();
4848 nameHistoSgnC=
"histLcMassByK0SOfflineSgnC";
4849 nameHistoSgnB=
"histLcMassByK0SOfflineSgnB";
4850 nameHistoSgnNoQ=
"histLcMassByK0SOfflineSgnNoQ";
4851 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]";
4852 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]";
4853 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]";
4854 TH2F* spectrumLcMassOfflineByK0SSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
4855 TH2F* spectrumLcMassOfflineByK0SSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
4856 TH2F* spectrumLcMassOfflineByK0SSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
4858 TH2F* allspectrumLcMassOfflineByK0SSgnC = (
TH2F*)spectrumLcMassOfflineByK0SSgnC->Clone();
4859 TH2F* allspectrumLcMassOfflineByK0SSgnB = (
TH2F*) spectrumLcMassOfflineByK0SSgnB->Clone();
4860 TH2F* allspectrumLcMassOfflineByK0SSgnNoQ = (
TH2F*) spectrumLcMassOfflineByK0SSgnNoQ->Clone();
4861 TH2F* pidBachspectrumLcMassOfflineByK0SSgnC = (
TH2F*)spectrumLcMassOfflineByK0SSgnC->Clone();
4862 TH2F* pidBachspectrumLcMassOfflineByK0SSgnB = (
TH2F*) spectrumLcMassOfflineByK0SSgnB->Clone();
4863 TH2F* pidBachspectrumLcMassOfflineByK0SSgnNoQ = (
TH2F*) spectrumLcMassOfflineByK0SSgnNoQ->Clone();
4864 fOutputAll->Add(allspectrumLcMassOfflineByK0SSgnC);
4865 fOutputAll->Add(allspectrumLcMassOfflineByK0SSgnB);
4866 fOutputAll->Add(allspectrumLcMassOfflineByK0SSgnNoQ);
4871 nameHistoSgnC=
"histptK0SOfflineSgnC";
4872 nameHistoSgnB=
"histptK0SOfflineSgnB";
4873 nameHistoSgnNoQ=
"histptK0SOfflineSgnNoQ";
4874 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";
4875 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";
4876 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";
4877 TH2F* ptK0SOfflineSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,41,binLimpTprong);
4878 TH2F* ptK0SOfflineSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
4879 TH2F* ptK0SOfflineSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),11,binLimpTLc,41,binLimpTprong);
4881 nameHistoSgnC=
"histptPOfflineSgnC";
4882 nameHistoSgnB=
"histptPOfflineSgnB";
4883 nameHistoSgnNoQ=
"histptPOfflineSgnNoQ";
4884 titleHistoSgnC=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
4885 titleHistoSgnB=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
4886 titleHistoSgnNoQ=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
4887 TH2F* ptPOfflineSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,41,binLimpTprong);
4888 TH2F* ptPOfflineSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
4889 TH2F* ptPOfflineSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),11,binLimpTLc,41,binLimpTprong);
4891 nameHistoSgnC=
"histptPipOfflineSgnC";
4892 nameHistoSgnB=
"histptPipOfflineSgnB";
4893 nameHistoSgnNoQ=
"histptPipOfflineSgnNoQ";
4894 titleHistoSgnC=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
4895 titleHistoSgnB=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
4896 titleHistoSgnNoQ=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
4897 TH2F* ptPiPOfflineSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,41,binLimpTprong);
4898 TH2F* ptPiPOfflineSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
4899 TH2F* ptPiPOfflineSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
4901 nameHistoSgnC=
"histptPimOfflineSgnC";
4902 nameHistoSgnB=
"histptPimOfflineSgnB";
4903 nameHistoSgnNoQ=
"histptPimOfflineSgnNoQ";
4904 titleHistoSgnC=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
4905 titleHistoSgnB=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
4906 titleHistoSgnNoQ=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
4907 TH2F* ptPiMOfflineSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,41,binLimpTprong);
4908 TH2F* ptPiMOfflineSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
4909 TH2F* ptPiMOfflineSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
4911 nameHistoSgnC=
"histD0K0SOfflineSgnC";
4912 nameHistoSgnB=
"histD0K0SOfflineSgnB";
4913 nameHistoSgnNoQ=
"histD0K0SOfflineSgnNoQ";
4914 titleHistoSgnC=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
4915 titleHistoSgnB=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
4916 titleHistoSgnNoQ=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
4917 TH2F* d0K0SOfflineSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,1000,-1.,1.);
4918 TH2F* d0K0SOfflineSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,1000,-1.,1.);
4919 TH2F* d0K0SOfflineSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),11,binLimpTLc,1000,-1.,1.);
4921 nameHistoSgnC=
"histD0POfflineSgnC";
4922 nameHistoSgnB=
"histD0POfflineSgnB";
4923 nameHistoSgnNoQ=
"histD0POfflineSgnNoQ";
4924 titleHistoSgnC=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
4925 titleHistoSgnB=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
4926 titleHistoSgnNoQ=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
4927 TH2F* d0POfflineSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,1000,-1.,1.);
4928 TH2F* d0POfflineSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,1000,-1.,1.);
4929 TH2F* d0POfflineSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),11,binLimpTLc,1000,-1.,1.);
4931 nameHistoSgnC=
"histCosPAK0SOfflineSgnC";
4932 nameHistoSgnB=
"histCosPAK0SOfflineSgnB";
4933 nameHistoSgnNoQ=
"histCosPAK0SOfflineSgnNoQ";
4934 titleHistoSgnC=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
4935 titleHistoSgnB=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
4936 titleHistoSgnNoQ=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
4937 TH2F *cosPAK0SOfflineSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),41,binLimpTprong,100,0.99,1.);
4938 TH2F *cosPAK0SOfflineSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),41,binLimpTprong,100,0.99,1.);
4939 TH2F *cosPAK0SOfflineSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),41,binLimpTprong,100,0.99,1.);
4941 nameHistoSgnC=
"histCosThetaProtonCMSOfflineSgnC";
4942 nameHistoSgnB=
"histCosThetaProtonCMSOfflineSgnB";
4943 nameHistoSgnNoQ=
"histCosThetaProtonCMSOfflineSgnNoQ";
4944 titleHistoSgnC=
"cosien of proton emission angle in Lc rest frame; p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
4945 titleHistoSgnB=
"cosien of proton emission angle in Lc rest frame; p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
4946 titleHistoSgnNoQ=
"cosien of proton emission angle in Lc rest frame; p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
4947 TH2F *cosThePrOfflineSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),41,binLimpTprong,100,-1.,1.);
4948 TH2F *cosThePrOfflineSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),41,binLimpTprong,100,-1.,1.);
4949 TH2F *cosThePrOfflineSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),41,binLimpTprong,100,-1.,1.);
4951 nameHistoSgnC=
"histResignedD0OfflineSgnC";
4952 nameHistoSgnB=
"histResignedD0OfflineSgnB";
4953 nameHistoSgnNoQ=
"histResignedD0OfflineSgnNoQ";
4954 titleHistoSgnC=
"Proton d0 with different sign convention; p_{T}(#Lambda_{c}) [GeV/c]; d0 [cm]; Entries";
4955 titleHistoSgnB=
"Proton d0 with different sign convention; p_{T}(#Lambda_{c}) [GeV/c]; d0 [cm]; Entries";
4956 titleHistoSgnNoQ=
"Proton d0 with different sign convention; p_{T}(#Lambda_{c}) [GeV/c]; d0 [cm]; Entries";
4957 TH2F *resignedD0OfflineSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),41,binLimpTprong,100,-0.1,0.1);
4958 TH2F *resignedD0OfflineSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),41,binLimpTprong,100,-0.1,0.1);
4959 TH2F *resignedD0OfflineSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),41,binLimpTprong,100,-0.1,0.1);
4961 TH2F* allptK0SOfflineSgnC = (
TH2F*)ptK0SOfflineSgnC->Clone();
4962 TH2F* allptK0SOfflineSgnB = (
TH2F*)ptK0SOfflineSgnB->Clone();
4963 TH2F* allptK0SOfflineSgnNoQ = (
TH2F*)ptK0SOfflineSgnNoQ->Clone();
4964 TH2F* allptPOfflineSgnC = (
TH2F*)ptPOfflineSgnC->Clone();
4965 TH2F* allptPOfflineSgnB = (
TH2F*)ptPOfflineSgnB->Clone();
4966 TH2F* allptPOfflineSgnNoQ = (
TH2F*)ptPOfflineSgnNoQ->Clone();
4967 TH2F* allptPiPOfflineSgnC = (
TH2F*)ptPiPOfflineSgnC->Clone();
4968 TH2F* allptPiPOfflineSgnB = (
TH2F*)ptPiPOfflineSgnB->Clone();
4969 TH2F* allptPiPOfflineSgnNoQ = (
TH2F*)ptPiPOfflineSgnNoQ->Clone();
4970 TH2F* allptPiMOfflineSgnC = (
TH2F*)ptPiMOfflineSgnC->Clone();
4971 TH2F* allptPiMOfflineSgnB = (
TH2F*)ptPiMOfflineSgnB->Clone();
4972 TH2F* allptPiMOfflineSgnNoQ = (
TH2F*)ptPiMOfflineSgnNoQ->Clone();
4973 TH2F* alld0K0SOfflineSgnC = (
TH2F*)d0K0SOfflineSgnC->Clone();
4974 TH2F* alld0K0SOfflineSgnB = (
TH2F*)d0K0SOfflineSgnB->Clone();
4975 TH2F* alld0K0SOfflineSgnNoQ = (
TH2F*)d0K0SOfflineSgnNoQ->Clone();
4976 TH2F* alld0POfflineSgnC = (
TH2F*)d0POfflineSgnC->Clone();
4977 TH2F* alld0POfflineSgnB = (
TH2F*)d0POfflineSgnB->Clone();
4978 TH2F* alld0POfflineSgnNoQ = (
TH2F*)d0POfflineSgnNoQ->Clone();
4979 TH2F* allcosPAK0SOfflineSgnC = (
TH2F*)cosPAK0SOfflineSgnC->Clone();
4980 TH2F* allcosPAK0SOfflineSgnB = (
TH2F*)cosPAK0SOfflineSgnB->Clone();
4981 TH2F* allcosPAK0SOfflineSgnNoQ = (
TH2F*)cosPAK0SOfflineSgnNoQ->Clone();
4982 TH2F* allcosThePrOfflineSgnC = (
TH2F*)cosThePrOfflineSgnC->Clone();
4983 TH2F* allcosThePrOfflineSgnB = (
TH2F*)cosThePrOfflineSgnB->Clone();
4984 TH2F* allcosThePrOfflineSgnNoQ = (
TH2F*)cosThePrOfflineSgnNoQ->Clone();
4985 TH2F* allresignedD0OfflineSgnC = (
TH2F*)resignedD0OfflineSgnC->Clone();
4986 TH2F* allresignedD0OfflineSgnB = (
TH2F*)resignedD0OfflineSgnB->Clone();
4987 TH2F* allresignedD0OfflineSgnNoQ = (
TH2F*)resignedD0OfflineSgnNoQ->Clone();
4989 TH2F* pidptK0SOfflineSgnC = (
TH2F*)ptK0SOfflineSgnC->Clone();
4990 TH2F* pidptK0SOfflineSgnB = (
TH2F*)ptK0SOfflineSgnB->Clone();
4991 TH2F* pidptK0SOfflineSgnNoQ = (
TH2F*)ptK0SOfflineSgnNoQ->Clone();
4992 TH2F* pidptPOfflineSgnC = (
TH2F*)ptPOfflineSgnC->Clone();
4993 TH2F* pidptPOfflineSgnB = (
TH2F*)ptPOfflineSgnB->Clone();
4994 TH2F* pidptPOfflineSgnNoQ = (
TH2F*)ptPOfflineSgnNoQ->Clone();
4995 TH2F* pidptPiPOfflineSgnC = (
TH2F*)ptPiPOfflineSgnC->Clone();
4996 TH2F* pidptPiPOfflineSgnB = (
TH2F*)ptPiPOfflineSgnB->Clone();
4997 TH2F* pidptPiPOfflineSgnNoQ = (
TH2F*)ptPiPOfflineSgnNoQ->Clone();
4998 TH2F* pidptPiMOfflineSgnC = (
TH2F*)ptPiMOfflineSgnC->Clone();
4999 TH2F* pidptPiMOfflineSgnB = (
TH2F*)ptPiMOfflineSgnB->Clone();
5000 TH2F* pidptPiMOfflineSgnNoQ = (
TH2F*)ptPiMOfflineSgnNoQ->Clone();
5001 TH2F* pidd0K0SOfflineSgnC = (
TH2F*)d0K0SOfflineSgnC->Clone();
5002 TH2F* pidd0K0SOfflineSgnB = (
TH2F*)d0K0SOfflineSgnB->Clone();
5003 TH2F* pidd0K0SOfflineSgnNoQ = (
TH2F*)d0K0SOfflineSgnNoQ->Clone();
5004 TH2F* pidd0POfflineSgnC = (
TH2F*)d0POfflineSgnC->Clone();
5005 TH2F* pidd0POfflineSgnB = (
TH2F*)d0POfflineSgnB->Clone();
5006 TH2F* pidd0POfflineSgnNoQ = (
TH2F*)d0POfflineSgnNoQ->Clone();
5007 TH2F* pidcosPAK0SOfflineSgnC = (
TH2F*)cosPAK0SOfflineSgnC->Clone();
5008 TH2F* pidcosPAK0SOfflineSgnB = (
TH2F*)cosPAK0SOfflineSgnB->Clone();
5009 TH2F* pidcosPAK0SOfflineSgnNoQ = (
TH2F*)cosPAK0SOfflineSgnNoQ->Clone();
5010 TH2F* pidcosThePrOfflineSgnC = (
TH2F*)cosThePrOfflineSgnC->Clone();
5011 TH2F* pidcosThePrOfflineSgnB = (
TH2F*)cosThePrOfflineSgnB->Clone();
5012 TH2F* pidcosThePrOfflineSgnNoQ = (
TH2F*)cosThePrOfflineSgnNoQ->Clone();
5013 TH2F* pidresignedD0OfflineSgnC = (
TH2F*)resignedD0OfflineSgnC->Clone();
5014 TH2F* pidresignedD0OfflineSgnB = (
TH2F*)resignedD0OfflineSgnB->Clone();
5015 TH2F* pidresignedD0OfflineSgnNoQ = (
TH2F*)resignedD0OfflineSgnNoQ->Clone();
Double_t NormalizedDecayLengthXY() const
Double_t NormalizedDecayLength() const
Float_t fBzkG
primary vertex
void FillTheTree(AliAODRecoCascadeHF *part, AliRDHFCutsLctoV0 *cutsAnal, TClonesArray *mcArray, Int_t isLc, Int_t originLc)
Bool_t fIsEventSelected
flag to activate protection against AOD-dAOD mismatch.
Float_t GetMinRatioSignalNOverCrossRowsTPC() const
void StoreCandidates(AliVEvent *, Int_t nCand=0, Bool_t flagFilter=kTRUE)
Double_t Det(Double_t a00, Double_t a01, Double_t a10, Double_t a11) const
Double_t fPtMaxToFillTheTree
0.
Int_t GetnSigmaTOF(AliAODTrack *track, Int_t species, Double_t &sigma) const
Bool_t fAdditionalChecks
magnetic field value [kG]
void TrackRotation(AliRDHFCutsLctoV0 *cutsAnal, AliAODRecoCascadeHF *part, TString appendthis)
void FillLc2pK0Sspectrum(AliAODRecoCascadeHF *part, Int_t isLc, Int_t &nSelectedAnal, AliRDHFCutsLctoV0 *cutsAnal, TClonesArray *mcArray, Int_t originLc)
histos
Double_t NormalizedV0DecayLength() const
void DefineGeneralHistograms()
Int_t MatchToMC(Int_t pdgabs, Int_t pdgabs2prong, Int_t *pdgDg, Int_t *pdgDg2prong, TClonesArray *mcArray, Bool_t isV0=kFALSE) const
AliAODTrack * Getv0NegativeTrack() const
void UnsetOwnPrimaryVtx()
TTree * fVariablesTree
flag to decide whether to write the candidate variables on a tree variables
Int_t GetnSigmaTPC(AliAODTrack *track, Int_t species, Double_t &sigma) const
const char * GetMinCrossedRowsTPCPtDep() const
Int_t fDoSingleAnalysisForSystK0SP
Double_t InvMassLctoLambdaPi() const
static Int_t CheckMatchingAODdeltaAODevents()
void MakeSingleAnalysisForSystK0SP(AliAODEvent *aodEvent, TClonesArray *mcArray, AliRDHFCutsLctoV0 *cutsAnal)
const Float_t * GetCuts() const
Double_t CosV0PointingAngleXY() const
Double_t GetAlpha(Double_t xyz[3], Double_t pxpypz[3])