39 #include <TParticle.h>
40 #include <TParticlePDG.h>
44 #include <THnSparse.h>
47 #include <TDatabasePDG.h>
48 #include <AliAnalysisDataSlot.h>
49 #include <AliAnalysisDataContainer.h>
51 #include "AliMCEvent.h"
52 #include "AliAnalysisManager.h"
53 #include "AliAODMCHeader.h"
54 #include "AliAODHandler.h"
56 #include "AliExternalTrackParam.h"
57 #include "AliAODVertex.h"
58 #include "AliAODRecoDecay.h"
62 #include "AliESDtrack.h"
63 #include "AliAODTrack.h"
65 #include "AliAODMCParticle.h"
66 #include "AliAnalysisTaskSE.h"
70 #include "AliInputEventHandler.h"
71 #include "AliESDtrackCuts.h"
72 #include "AliNeutralTrackParam.h"
91 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),
116 Double_t mLcPDG = TDatabasePDG::Instance()->GetParticle(4122)->Mass();
133 fUseOnTheFlyV0(useOnTheFly),
134 fIsEventSelected(kFALSE),
135 fWriteVariableTree(writeVariableTree),
137 fCandidateVariables(),
140 fAdditionalChecks(additionalChecks),
141 fTrackRotation(trackRotation),
143 fMinAngleForRot(5*TMath::Pi()/6),
144 fMaxAngleForRot(7*TMath::Pi()/6),
148 fPtMinToFillTheTree(0.),
149 fPtMaxToFillTheTree(999.),
150 fUseTPCPIDtoFillTree(useTPCpid),
157 Info(
"AliAnalysisTaskSELc2V0bachelor",
"Calling Constructor");
164 Double_t mLcPDG = TDatabasePDG::Instance()->GetParticle(4122)->Mass();
168 DefineOutput(1,TList::Class());
169 DefineOutput(2,AliNormalizationCounter::Class());
170 DefineOutput(3,AliRDHFCutsLctoV0::Class());
171 if (!writeVariableTree) {
172 DefineOutput(4,TList::Class());
173 DefineOutput(5,TList::Class());
175 DefineOutput(6,TList::Class());
179 DefineOutput(4,TTree::Class());
191 Info(
"~AliAnalysisTaskSELc2V0bachelor",
"Calling Destructor");
237 if (fDebug > 1) AliInfo(
"Init");
249 AliError(
"NO EVENT FOUND!");
254 TClonesArray *arrayLctopKos=0;
256 if (!aodEvent && AODEvent() && IsStandardAOD()) {
259 aodEvent =
dynamic_cast<AliAODEvent*
> (AODEvent());
262 AliAODHandler* aodHandler = (AliAODHandler*)
263 ((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler());
265 if (aodHandler->GetExtensions()) {
266 AliAODExtension *ext = (AliAODExtension*)aodHandler->GetExtensions()->FindObject(
"AliAOD.VertexingHF.root");
268 arrayLctopKos=(TClonesArray*)aodFromExt->GetList()->FindObject(
"CascadesHF");
271 arrayLctopKos=(TClonesArray*)aodEvent->GetList()->FindObject(
"CascadesHF");
280 fVtx1 = (AliAODVertex*)aodEvent->GetPrimaryVertex();
290 if (TMath::Abs(
fBzkG)<0.001)
return;
293 if (!arrayLctopKos) {
294 AliInfo(
"Could not find array of HF cascades, skipping the event");
297 if (arrayLctopKos->GetEntriesFast()) {
298 AliInfo(Form(
"Found %d cascades",arrayLctopKos->GetEntriesFast()));
304 TClonesArray *mcArray = 0;
305 AliAODMCHeader *mcHeader=0;
309 mcArray =
dynamic_cast<TClonesArray*
>(aodEvent->FindListObject(AliAODMCParticle::StdBranchName()));
311 AliError(
"Could not find Monte-Carlo in AOD");
317 mcHeader = (AliAODMCHeader*)aodEvent->GetList()->FindObject(AliAODMCHeader::StdBranchName());
319 AliError(
"AliAnalysisTaskSELc2V0bachelor::UserExec: MC header branch not found!\n");
324 Double_t zMCVertex = mcHeader->GetVtxZ();
326 AliDebug(2,Form(
"Event rejected: abs(zVtxMC)=%f > fAnalCuts->GetMaxVtxZ()=%f",zMCVertex,
fAnalCuts->
GetMaxVtxZ()));
333 Int_t runnumber = aodEvent->GetRunNumber();
334 if (aodEvent->GetTriggerMask() == 0 && (runnumber >= 195344 && runnumber <= 195677)){
335 AliDebug(3,
"Event rejected because of null trigger mask");
341 if (
fVtx1->GetNContributors()>0)
347 Int_t nSelectedAnal = 0;
380 AliAnalysisTaskSE::Terminate();
384 AliError(
"fOutput not available");
392 AliError(
"fOutputAll not available");
398 AliError(
"fOutputPIDBach not available");
405 AliError(
"fOutputPIDBachTR not available");
413 AliError(
"fVariablesTree not available");
423 AliInfo(Form(
"CreateOutputObjects of task %s\n", GetName()));
471 TClonesArray *mcArray,
472 Int_t &nSelectedAnal,
478 Int_t pdgCand = 4122;
479 Int_t pdgDgLctoV0bachelor[2]={2212,310};
480 Int_t pdgDgV0toDaughters[2]={211,211};
483 Int_t nCascades= arrayLctopKos->GetEntriesFast();
485 AliInfo(
"Could not find cascades, skipping the event");
489 for (
Int_t iLctopK0S = 0; iLctopK0S<nCascades; iLctopK0S++) {
491 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(0);
496 AliDebug(2,Form(
"Cascade %d doens't exist, skipping",iLctopK0S));
501 AliDebug(2,Form(
"Cascade %d is not flagged as Lc candidate",iLctopK0S));
515 if (!lcK0Spr->GetSecondaryVtx()) {
516 AliInfo(
"No secondary vertex");
520 if (lcK0Spr->GetNDaughters()!=2) {
521 AliDebug(2,Form(
"Cascade %d has not 2 daughters (nDaughters=%d)",iLctopK0S,lcK0Spr->GetNDaughters()));
525 if ( (
fSign == 0 && lcK0Spr->Charge()<0) ||
526 (
fSign == 1 && lcK0Spr->Charge()>0) ) {
527 AliDebug(2,Form(
"Charge of the cascade %d is different with respect to the required one",iLctopK0S));
531 AliAODv0 * v0part =
dynamic_cast<AliAODv0*
>(lcK0Spr->
Getv0());
532 AliAODTrack * bachPart =
dynamic_cast<AliAODTrack*
>(lcK0Spr->
GetBachelor());
533 if (!v0part || !bachPart) {
534 AliDebug(2,Form(
"Cascade %d has no V0 or no bachelor object",iLctopK0S));
538 if (!v0part->GetSecondaryVtx()) {
539 AliDebug(2,Form(
"No secondary vertex for V0 by cascade %d",iLctopK0S));
543 if (v0part->GetNDaughters()!=2) {
544 AliDebug(2,Form(
"current V0 has not 2 daughters (onTheFly=%d, nDaughters=%d)",v0part->GetOnFlyStatus(),v0part->GetNDaughters()));
550 if (!v0Neg || !v0Pos) {
551 AliDebug(2,Form(
"V0 by cascade %d has no V0positive of V0negative object",iLctopK0S));
555 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(1);
557 if (v0Pos->Charge() == v0Neg->Charge())
continue;
559 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(2);
569 Int_t mcLabel = lcK0Spr->
MatchToMC(pdgCand,pdgDgLctoV0bachelor[1],pdgDgLctoV0bachelor,pdgDgV0toDaughters,mcArray,kTRUE);
571 AliDebug(2,Form(
" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~cascade number %d (total cascade number = %d)", iLctopK0S,nCascades));
573 AliAODMCParticle *partLc =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(mcLabel));
575 pdgCode = partLc->GetPdgCode();
576 if (pdgCode<0) AliDebug(2,Form(
" ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ MClabel=%d ~~~~~~~~~~ pdgCode=%d", mcLabel, pdgCode));
577 pdgCode = TMath::Abs(pdgCode);
583 }
else if (pdgMom == 5) {
587 if (isThereaQuark<=0) originLc=3;
592 AliDebug(2,Form(
"No MC candidate (cascade number %d -total cascade number = %d -)", iLctopK0S,nCascades));
600 nSelectedAnal, cutsAnal,
608 AliDebug(2, Form(
"Found %d Reco particles that are Lc!!", nSelectedAnal));
616 Int_t &nSelectedAnal,
618 TClonesArray *mcArray,
627 AliAODTrack *bachelor = (AliAODTrack*)part->
GetBachelor();
630 AliAODv0 * v0part = (AliAODv0*)part->
Getv0();
631 Bool_t onFlyV0 = v0part->GetOnFlyStatus();
681 Double_t invmassK0S = v0part->MassK0Short();
682 Double_t mk0sPDG = TDatabasePDG::Instance()->GetParticle(310)->Mass();
685 if ( !onFlyV0 && isInCascadeWindow &&
701 Int_t pdgCand1 = 4122;
702 Int_t pdgDgLctoV0bachelor1[2]={2212,310};
703 Int_t pdgDgV0toDaughters1[2]={211,211};
704 Int_t mcLabel1=part->
MatchToMC(pdgCand1,pdgDgLctoV0bachelor1[1],pdgDgLctoV0bachelor1,pdgDgV0toDaughters1,mcArray,kTRUE);
705 AliDebug(2,Form(
" Found true MC candidate: Lc->pK0S(%d) - onTheFly=%1d",mcLabel1,onFlyV0));
726 fillthis=
"histArmPodK0S";
729 fillthis=
"histArmPodLc";
738 fillthis=
"histArmPodK0SOffline";
741 fillthis=
"histArmPodLcOffline";
745 if (isCandidateSelectedCuts) {
746 fillthis=
"histoprotonBachSigmaVspTOF";
747 ((
TH2F*)(
fOutput->FindObject(fillthis)))->Fill(momBach,nSigmaTOFpr);
748 fillthis=
"histoprotonBachSigmaVspTPC";
749 ((
TH2F*)(
fOutput->FindObject(fillthis)))->Fill(momBach,nSigmaTPCpr);
757 fillthis=
"histArmPodK0SSgn";
760 fillthis=
"histArmPodLcSgn";
782 fillthis=
"histArmPodK0SOfflineSgn";
785 fillthis=
"histArmPodLcOfflineSgn";
788 if (isCandidateSelectedCuts) {
789 fillthis=
"histoprotonBachSigmaVspTOFsgn";
790 ((
TH2F*)(
fOutput->FindObject(fillthis)))->Fill(momBach,nSigmaTOFpr);
791 fillthis=
"histoprotonBachSigmaVspTPCsgn";
792 ((
TH2F*)(
fOutput->FindObject(fillthis)))->Fill(momBach,nSigmaTPCpr);
816 fillthis=
"histArmPodK0SBkg";
819 fillthis=
"histArmPodLcBkg";
828 fillthis=
"histArmPodK0SOfflineBkg";
831 fillthis=
"histArmPodLcOfflineBkg";
835 if (isCandidateSelectedCuts) {
836 fillthis=
"histoprotonBachSigmaVspTOFbkg";
837 ((
TH2F*)(
fOutput->FindObject(fillthis)))->Fill(momBach,nSigmaTOFpr);
838 fillthis=
"histoprotonBachSigmaVspTPCbkg";
839 ((
TH2F*)(
fOutput->FindObject(fillthis)))->Fill(momBach,nSigmaTPCpr);
853 Double_t mLcPDG = TDatabasePDG::Instance()->GetParticle(4122)->Mass();
854 Double_t mK0SPDG = TDatabasePDG::Instance()->GetParticle(310)->Mass();
855 Double_t mMinLambdaPDG = TDatabasePDG::Instance()->GetParticle(2212)->Mass()+
856 TDatabasePDG::Instance()->GetParticle(211)->Mass();
858 TString nameHisto=
" ", nameHistoSgn=
" ", nameHistoBkg=
" ";
859 TString titleHisto=
" ", titleHistoSgn=
" ", titleHistoBkg=
" ";
878 binLimpTprong[ 0]= 0.0;
879 binLimpTprong[ 1]= 0.1;
880 binLimpTprong[ 2]= 0.2;
881 binLimpTprong[ 3]= 0.3;
882 binLimpTprong[ 4]= 0.4;
883 binLimpTprong[ 5]= 0.5;
884 binLimpTprong[ 6]= 0.6;
885 binLimpTprong[ 7]= 0.7;
886 binLimpTprong[ 8]= 0.8;
887 binLimpTprong[ 9]= 0.9;
888 binLimpTprong[10]= 1.0;
889 binLimpTprong[11]= 1.2;
890 binLimpTprong[12]= 1.4;
891 binLimpTprong[13]= 1.6;
892 binLimpTprong[14]= 1.8;
893 binLimpTprong[15]= 2.0;
894 binLimpTprong[16]= 2.2;
895 binLimpTprong[17]= 2.4;
896 binLimpTprong[18]= 2.6;
897 binLimpTprong[19]= 2.8;
898 binLimpTprong[20]= 3.0;
899 binLimpTprong[21]= 3.5;
900 binLimpTprong[22]= 4.0;
901 binLimpTprong[23]= 4.5;
902 binLimpTprong[24]= 5.0;
903 binLimpTprong[25]= 5.5;
904 binLimpTprong[26]= 6.0;
905 binLimpTprong[27]= 6.5;
906 binLimpTprong[28]= 7.0;
907 binLimpTprong[29]= 7.5;
908 binLimpTprong[30]= 8.0;
909 binLimpTprong[31]= 9.0;
910 binLimpTprong[32]=10.0;
911 binLimpTprong[33]=11.0;
912 binLimpTprong[34]=12.0;
913 binLimpTprong[35]=13.0;
914 binLimpTprong[36]=14.0;
915 binLimpTprong[37]=15.0;
916 binLimpTprong[38]=20.0;
917 binLimpTprong[39]=25.0;
918 binLimpTprong[40]=30.0;
919 binLimpTprong[41]=35.0;
924 nameHisto=
"histK0SMass";
925 titleHisto=
"K^{0}_{S} invariant mass VS p_{T}; p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(#pi^{+},#pi^{-}) [GeV/c^{2}]; Entries";
926 TH2F* spectrumK0SMass =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,mK0SPDG-0.050,mK0SPDG+0.050);
929 nameHisto=
"histLcMassByK0S";
930 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]";
931 TH2F* spectrumLcMassByK0S =
new TH2F(nameHisto.Data(),titleHisto.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
933 nameHisto=
"histpK0Svsp";
934 titleHisto=
"p(K^{0}_{S}) vs p(p); p(p) [GeV/c]; p(K^{0}_{S}) [GeV/c]";
935 TH2F* momentumDistributionK0Svsp =
new TH2F(nameHisto.Data(),titleHisto.Data(),41,binLimpTprong,41,binLimpTprong);
937 nameHisto=
"histArmPodK0S";
938 titleHisto=
"V0-candidate Armenteros-Podolanski distribution; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
939 TH2F* armenterosPodK0S =
new TH2F(nameHisto.Data(),titleHisto.Data(),200,-1.,1.,300,0.,0.3);
941 nameHisto=
"histArmPodLc";
942 titleHisto=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
943 TH2F* armenterosPodLc =
new TH2F(nameHisto.Data(),titleHisto.Data(),200,-4.,4.,800,0.,1.6);
945 TH2F* allspectrumK0SMass = (
TH2F*)spectrumK0SMass->Clone();
946 TH2F* allspectrumLcMassByK0S = (
TH2F*)spectrumLcMassByK0S->Clone();
947 TH2F* allmomentumDistributionK0Svsp = (
TH2F*)momentumDistributionK0Svsp->Clone();
948 TH2F* allArmenterosPodK0S = (
TH2F*)armenterosPodK0S->Clone();
949 TH2F* allArmenterosPodLc = (
TH2F*)armenterosPodLc->Clone();
951 TH2F* pidBachspectrumK0SMass = (
TH2F*)spectrumK0SMass->Clone();
952 TH2F* pidBachspectrumLcMassByK0S = (
TH2F*)spectrumLcMassByK0S->Clone();
953 TH2F* pidBachmomentumDistributionK0Svsp = (
TH2F*)momentumDistributionK0Svsp->Clone();
954 TH2F* pidBachArmenterosPodK0S = (
TH2F*)armenterosPodK0S->Clone();
955 TH2F* pidBachArmenterosPodLc = (
TH2F*)armenterosPodLc->Clone();
959 fOutputAll->Add(allmomentumDistributionK0Svsp);
969 nameHisto=
"histArmPodK0S0";
970 titleHisto=
"V0-candidate Armenteros-Podolanski distribution; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
971 TH2F* armenterosPodK0S0 =
new TH2F(nameHisto.Data(),titleHisto.Data(),200,-1.,1.,300,0.,0.3);
972 nameHisto=
"histArmPodLc0";
973 titleHisto=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
974 TH2F* armenterosPodLc0 =
new TH2F(nameHisto.Data(),titleHisto.Data(),200,-4.,4.,800,0.,1.6);
980 TH2F* pidBachTRspectrumLcMassByK0S = (
TH2F*)spectrumLcMassByK0S->Clone();
986 nameHisto=
"histptK0S";
987 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";
988 TH2F* ptK0S =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,41,binLimpTprong);
991 titleHisto=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
992 TH2F* ptP =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,41,binLimpTprong);
994 nameHisto=
"histptPip";
995 titleHisto=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
996 TH2F* ptPiP =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,41,binLimpTprong);
998 nameHisto=
"histptPim";
999 titleHisto=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
1000 TH2F* ptPiM =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,41,binLimpTprong);
1002 nameHisto=
"histLambdaMass";
1003 titleHisto=
"m_{inv}(p,#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(p,#pi^{-}) [GeV/c^{2}]; Entries";
1004 TH2F* massLambda =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1006 nameHisto=
"histLambdaBarMass";
1007 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";
1008 TH2F* massLambdaBar =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1010 nameHisto=
"histGammaMass";
1011 titleHisto=
"m_{inv}(e^{+},e^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(e^{+},e^{-}) [GeV/c^{2}]; Entries";
1012 TH2F* massGamma =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,100,0.,1.);
1014 nameHisto=
"histD0K0S";
1015 titleHisto=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
1016 TH2F* d0K0S =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,-1.,1.);
1018 nameHisto=
"histD0P";
1019 titleHisto=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
1020 TH2F* d0P =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,-1.,1.);
1022 nameHisto=
"histCosPAK0S";
1023 titleHisto=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
1024 TH2F *cosPAK0S =
new TH2F(nameHisto.Data(),titleHisto.Data(),41,binLimpTprong,100,0.99,1.);
1026 TH2F* allptK0S = (
TH2F*)ptK0S->Clone();
1027 TH2F* allptP = (
TH2F*)ptP->Clone();
1028 TH2F* allptPiP = (
TH2F*)ptPiP->Clone();
1029 TH2F* allptPiM = (
TH2F*)ptPiM->Clone();
1030 TH2F* allmassLambda = (
TH2F*)massLambda->Clone();
1031 TH2F* allmassLambdaBar = (
TH2F*)massLambdaBar->Clone();
1032 TH2F* allmassGamma = (
TH2F*)massGamma->Clone();
1033 TH2F* alld0K0S = (
TH2F*)d0K0S->Clone();
1034 TH2F* alld0P = (
TH2F*)d0P->Clone();
1035 TH2F* allcosPAK0S = (
TH2F*)cosPAK0S->Clone();
1037 TH2F* pidptK0S = (
TH2F*)ptK0S->Clone();
1038 TH2F* pidptP = (
TH2F*)ptP->Clone();
1039 TH2F* pidptPiP = (
TH2F*)ptPiP->Clone();
1040 TH2F* pidptPiM = (
TH2F*)ptPiM->Clone();
1041 TH2F* pidmassLambda = (
TH2F*)massLambda->Clone();
1042 TH2F* pidmassLambdaBar = (
TH2F*)massLambdaBar->Clone();
1043 TH2F* pidmassGamma = (
TH2F*)massGamma->Clone();
1044 TH2F* pidd0K0S = (
TH2F*)d0K0S->Clone();
1045 TH2F* pidd0P = (
TH2F*)d0P->Clone();
1046 TH2F* pidcosPAK0S = (
TH2F*)cosPAK0S->Clone();
1072 TH2F* pidTRptK0S = (
TH2F*)ptK0S->Clone();
1073 TH2F* pidTRptP = (
TH2F*)ptP->Clone();
1074 TH2F* pidTRptPiP = (
TH2F*)ptPiP->Clone();
1075 TH2F* pidTRptPiM = (
TH2F*)ptPiM->Clone();
1076 TH2F* pidTRmassLambda = (
TH2F*)massLambda->Clone();
1077 TH2F* pidTRmassLambdaBar = (
TH2F*)massLambdaBar->Clone();
1078 TH2F* pidTRmassGamma = (
TH2F*)massGamma->Clone();
1079 TH2F* pidTRcosPAK0S = (
TH2F*)cosPAK0S->Clone();
1094 nameHisto=
"histK0SMassOffline";
1095 titleHisto=
"K^{0}_{S} invariant mass VS p_{T}; p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(#pi^{+},#pi^{-}) [GeV/c^{2}]; Entries";
1096 TH2F* spectrumK0SMassOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,mK0SPDG-0.050,mK0SPDG+0.050);
1099 nameHisto=
"histLcMassByK0SOffline";
1100 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]";
1101 TH2F* spectrumLcMassOfflineByK0S =
new TH2F(nameHisto.Data(),titleHisto.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
1103 nameHisto=
"histpK0SvspOffline";
1104 titleHisto=
"p(K^{0}_{S}) vs p(p); p(p) [GeV/c]; p(K^{0}_{S}) [GeV/c]";
1105 TH2F* momentumDistributionK0SvspOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),41,binLimpTprong,41,binLimpTprong);
1107 nameHisto=
"histArmPodK0SOffline";
1108 titleHisto=
"V0-candidate Armenteros-Podolanski distribution; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1109 TH2F* armenterosPodK0SOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),200,-1.,1.,300,0.,0.3);
1111 nameHisto=
"histArmPodLcOffline";
1112 titleHisto=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1113 TH2F* armenterosPodLcOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),200,-4.,4.,800,0.,1.6);
1115 TH2F* allspectrumK0SMassOffline = (
TH2F*)spectrumK0SMassOffline->Clone();
1116 TH2F* allspectrumLcMassOfflineByK0S = (
TH2F*)spectrumLcMassOfflineByK0S->Clone();
1117 TH2F* allmomentumDistributionK0SvspOffline = (
TH2F*)momentumDistributionK0SvspOffline->Clone();
1118 TH2F* allArmenterosPodK0SOffline = (
TH2F*)armenterosPodK0SOffline->Clone();
1119 TH2F* allArmenterosPodLcOffline = (
TH2F*)armenterosPodLcOffline->Clone();
1121 TH2F* pidBachspectrumK0SMassOffline = (
TH2F*)spectrumK0SMassOffline->Clone();
1122 TH2F* pidBachspectrumLcMassOfflineByK0S = (
TH2F*)spectrumLcMassOfflineByK0S->Clone();
1123 TH2F* pidBachmomentumDistributionK0SvspOffline = (
TH2F*)momentumDistributionK0SvspOffline->Clone();
1124 TH2F* pidBachArmenterosPodK0SOffline = (
TH2F*)armenterosPodK0SOffline->Clone();
1125 TH2F* pidBachArmenterosPodLcOffline = (
TH2F*)armenterosPodLcOffline->Clone();
1128 fOutputAll->Add(allspectrumLcMassOfflineByK0S);
1129 fOutputAll->Add(allmomentumDistributionK0SvspOffline);
1139 nameHisto=
"histArmPodK0SOffline0";
1140 titleHisto=
"V0-candidate Armenteros-Podolanski distribution; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1141 TH2F* armenterosPodK0SOffline0 =
new TH2F(nameHisto.Data(),titleHisto.Data(),200,-1.,1.,300,0.,0.3);
1142 nameHisto=
"histArmPodLcOffline0";
1143 titleHisto=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1144 TH2F* armenterosPodLcOffline0 =
new TH2F(nameHisto.Data(),titleHisto.Data(),200,-4.,4.,800,0.,1.6);
1149 TH2F* pidBachTRspectrumLcMassOfflineByK0S = (
TH2F*)spectrumLcMassOfflineByK0S->Clone();
1156 nameHisto=
"histptK0SOffline";
1157 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";
1158 TH2F* ptK0SOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,41,binLimpTprong);
1160 nameHisto=
"histptPOffline";
1161 titleHisto=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
1162 TH2F* ptPOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,41,binLimpTprong);
1164 nameHisto=
"histptPipOffline";
1165 titleHisto=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
1166 TH2F* ptPiPOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,41,binLimpTprong);
1168 nameHisto=
"histptPimOffline";
1169 titleHisto=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
1170 TH2F* ptPiMOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,41,binLimpTprong);
1172 nameHisto=
"histLambdaMassOffline";
1173 titleHisto=
"m_{inv}(p,#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(p,#pi^{-}) [GeV/c^{2}]; Entries";
1174 TH2F* massLambdaOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1176 nameHisto=
"histLambdaBarMassOffline";
1177 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";
1178 TH2F* massLambdaBarOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1180 nameHisto=
"histGammaMassOffline";
1181 titleHisto=
"m_{inv}(e^{+},e^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(e^{+},e^{-}) [GeV/c^{2}]; Entries";
1182 TH2F* massGammaOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,100,0.,1.);
1184 nameHisto=
"histD0K0SOffline";
1185 titleHisto=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
1186 TH2F* d0K0SOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,-1.,1.);
1188 nameHisto=
"histD0POffline";
1189 titleHisto=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
1190 TH2F* d0POffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,-1.,1.);
1192 nameHisto=
"histCosPAK0SOffline";
1193 titleHisto=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
1194 TH2F *cosPAK0SOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),41,binLimpTprong,100,0.99,1.);
1196 TH2F* allptK0SOffline = (
TH2F*)ptK0SOffline->Clone();
1197 TH2F* allptPOffline = (
TH2F*)ptPOffline->Clone();
1198 TH2F* allptPiPOffline = (
TH2F*)ptPiPOffline->Clone();
1199 TH2F* allptPiMOffline = (
TH2F*)ptPiMOffline->Clone();
1200 TH2F* allmassLambdaOffline = (
TH2F*)massLambdaOffline->Clone();
1201 TH2F* allmassLambdaBarOffline = (
TH2F*)massLambdaBarOffline->Clone();
1202 TH2F* allmassGammaOffline = (
TH2F*)massGammaOffline->Clone();
1203 TH2F* alld0K0SOffline = (
TH2F*)d0K0SOffline->Clone();
1204 TH2F* alld0POffline = (
TH2F*)d0POffline->Clone();
1205 TH2F* allcosPAK0SOffline = (
TH2F*)cosPAK0SOffline->Clone();
1207 TH2F* pidptK0SOffline = (
TH2F*)ptK0SOffline->Clone();
1208 TH2F* pidptPOffline = (
TH2F*)ptPOffline->Clone();
1209 TH2F* pidptPiPOffline = (
TH2F*)ptPiPOffline->Clone();
1210 TH2F* pidptPiMOffline = (
TH2F*)ptPiMOffline->Clone();
1211 TH2F* pidmassLambdaOffline = (
TH2F*)massLambdaOffline->Clone();
1212 TH2F* pidmassLambdaBarOffline = (
TH2F*)massLambdaBarOffline->Clone();
1213 TH2F* pidmassGammaOffline = (
TH2F*)massGammaOffline->Clone();
1214 TH2F* pidd0K0SOffline = (
TH2F*)d0K0SOffline->Clone();
1215 TH2F* pidd0POffline = (
TH2F*)d0POffline->Clone();
1216 TH2F* pidcosPAK0SOffline = (
TH2F*)cosPAK0SOffline->Clone();
1242 TH2F* pidTRptK0SOffline = (
TH2F*)ptK0SOffline->Clone();
1243 TH2F* pidTRptPOffline = (
TH2F*)ptPOffline->Clone();
1244 TH2F* pidTRptPiPOffline = (
TH2F*)ptPiPOffline->Clone();
1245 TH2F* pidTRptPiMOffline = (
TH2F*)ptPiMOffline->Clone();
1246 TH2F* pidTRmassLambdaOffline = (
TH2F*)massLambdaOffline->Clone();
1247 TH2F* pidTRmassLambdaBarOffline = (
TH2F*)massLambdaBarOffline->Clone();
1248 TH2F* pidTRmassGammaOffline = (
TH2F*)massGammaOffline->Clone();
1249 TH2F* pidTRcosPAK0SOffline = (
TH2F*)cosPAK0SOffline->Clone();
1269 nameHistoSgn=
"histK0SMassSgn";
1270 nameHistoBkg=
"histK0SMassBkg";
1271 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";
1272 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";
1273 TH2F* spectrumK0SMassSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,mK0SPDG-0.050,mK0SPDG+0.050);
1274 TH2F* spectrumK0SMassBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,mK0SPDG-0.050,mK0SPDG+0.050);
1276 nameHistoSgn=
"histLcMassByK0SSgn";
1277 nameHistoBkg=
"histLcMassByK0SBkg";
1278 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]";
1279 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]";
1280 TH2F* spectrumLcMassByK0SSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
1281 TH2F* spectrumLcMassByK0SBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
1283 nameHistoSgn=
"histpK0SvspSgn";
1284 nameHistoBkg=
"histpK0SvspBkg";
1285 titleHistoSgn=
"#Lambda_{c} - sgn: K^{0}_{S} vs p Total Momentum Distribution - MC; p(p) [GeV/c]; p(K^{0}_{S}) [GeV/c]";
1286 titleHistoBkg=
"#Lambda_{c} - bkg: K^{0}_{S} vs p Total Momentum Distribution - MC; p(p) [GeV/c]; p(K^{0}_{S}) [GeV/c]";
1287 TH2F* momentumDistributionK0SvspSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),41,binLimpTprong,41,binLimpTprong);
1288 TH2F* momentumDistributionK0SvspBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),41,binLimpTprong,41,binLimpTprong);
1291 nameHistoSgn=
"histArmPodK0SSgn";
1292 nameHistoBkg=
"histArmPodK0SBkg";
1293 titleHistoSgn=
"V0-candidate Armenteros-Podolanski distribution (sgn); #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1294 titleHistoBkg=
"V0-candidate Armenteros-Podolanski distribution (bkg); #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1295 TH2F* armenterosPodK0SSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),200,-1.,1.,300,0.,0.3);
1296 TH2F* armenterosPodK0SBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),200,-1.,1.,300,0.,0.3);
1298 nameHistoSgn=
"histArmPodLcSgn";
1299 nameHistoBkg=
"histArmPodLcBkg";
1300 titleHistoSgn=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution (sgn); #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1301 titleHistoBkg=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution (bkg); #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1302 TH2F* armenterosPodLcSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),200,-4.,4.,800,0.,1.6);
1303 TH2F* armenterosPodLcBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),200,-4.,4.,800,0.,1.6);
1305 TH2F* allspectrumK0SMassSgn = (
TH2F*)spectrumK0SMassSgn->Clone();
1306 TH2F* allspectrumK0SMassBkg = (
TH2F*)spectrumK0SMassBkg->Clone();
1307 TH2F* allspectrumLcMassByK0SSgn = (
TH2F*)spectrumLcMassByK0SSgn->Clone();
1308 TH2F* allspectrumLcMassByK0SBkg = (
TH2F*)spectrumLcMassByK0SBkg->Clone();
1309 TH2F* allmomentumDistributionK0SvspSgn = (
TH2F*)momentumDistributionK0SvspSgn->Clone();
1310 TH2F* allmomentumDistributionK0SvspBkg = (
TH2F*)momentumDistributionK0SvspBkg->Clone();
1311 TH2F* allArmenterosPodK0SSgn = (
TH2F*)armenterosPodK0SSgn->Clone();
1312 TH2F* allArmenterosPodK0SBkg = (
TH2F*)armenterosPodK0SBkg->Clone();
1313 TH2F* allArmenterosPodLcSgn = (
TH2F*)armenterosPodLcSgn->Clone();
1314 TH2F* allArmenterosPodLcBkg = (
TH2F*)armenterosPodLcBkg->Clone();
1316 TH2F* pidBachspectrumK0SMassSgn = (
TH2F*)spectrumK0SMassSgn->Clone();
1317 TH2F* pidBachspectrumK0SMassBkg = (
TH2F*)spectrumK0SMassBkg->Clone();
1318 TH2F* pidBachspectrumLcMassByK0SSgn = (
TH2F*)spectrumLcMassByK0SSgn->Clone();
1319 TH2F* pidBachspectrumLcMassByK0SBkg = (
TH2F*)spectrumLcMassByK0SBkg->Clone();
1320 TH2F* pidBachmomentumDistributionK0SvspSgn = (
TH2F*)momentumDistributionK0SvspSgn->Clone();
1321 TH2F* pidBachmomentumDistributionK0SvspBkg = (
TH2F*)momentumDistributionK0SvspBkg->Clone();
1322 TH2F* pidBachArmenterosPodK0SSgn = (
TH2F*)armenterosPodK0SSgn->Clone();
1323 TH2F* pidBachArmenterosPodK0SBkg = (
TH2F*)armenterosPodK0SBkg->Clone();
1324 TH2F* pidBachArmenterosPodLcSgn = (
TH2F*)armenterosPodLcSgn->Clone();
1325 TH2F* pidBachArmenterosPodLcBkg = (
TH2F*)armenterosPodLcBkg->Clone();
1331 fOutputAll->Add(allmomentumDistributionK0SvspSgn);
1332 fOutputAll->Add(allmomentumDistributionK0SvspBkg);
1349 nameHistoSgn=
"histArmPodK0SSgn0";
1350 nameHistoBkg=
"histArmPodK0SBkg0";
1351 titleHistoSgn=
"V0-candidate Armenteros-Podolanski distribution (sgn); #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1352 titleHistoBkg=
"V0-candidate Armenteros-Podolanski distribution (bkg); #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1353 TH2F* armenterosPodK0SSgn0 =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),200,-1.,1.,300,0.,0.3);
1354 TH2F* armenterosPodK0SBkg0 =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),200,-1.,1.,300,0.,0.3);
1357 nameHistoSgn=
"histArmPodLcSgn0";
1358 nameHistoBkg=
"histArmPodLcBkg0";
1359 titleHistoSgn=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution (sgn); #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1360 titleHistoBkg=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution (bkg); #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1361 TH2F* armenterosPodLcSgn0 =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),200,-4.,4.,800,0.,1.6);
1362 TH2F* armenterosPodLcBkg0 =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),200,-4.,4.,800,0.,1.6);
1367 TH2F* pidBachTRspectrumLcMassByK0SSgn = (
TH2F*)spectrumLcMassByK0SSgn->Clone();
1368 TH2F* pidBachTRspectrumLcMassByK0SBkg = (
TH2F*)spectrumLcMassByK0SBkg->Clone();
1375 nameHistoSgn=
"histptK0SSgn";
1376 nameHistoBkg=
"histptK0SBkg";
1377 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";
1378 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";
1379 TH2F* ptK0SSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,41,binLimpTprong);
1380 TH2F* ptK0SBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,41,binLimpTprong);
1382 nameHistoSgn=
"histptPSgn";
1383 nameHistoBkg=
"histptPBkg";
1384 titleHistoSgn=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
1385 titleHistoBkg=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
1386 TH2F* ptPSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,41,binLimpTprong);
1387 TH2F* ptPBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,41,binLimpTprong);
1389 nameHistoSgn=
"histptPipSgn";
1390 nameHistoBkg=
"histptPipBkg";
1391 titleHistoSgn=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
1392 titleHistoBkg=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
1393 TH2F* ptPiPSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,41,binLimpTprong);
1394 TH2F* ptPiPBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,41,binLimpTprong);
1396 nameHistoSgn=
"histptPimSgn";
1397 nameHistoBkg=
"histptPimBkg";
1398 titleHistoSgn=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
1399 titleHistoBkg=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
1400 TH2F* ptPiMSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,41,binLimpTprong);
1401 TH2F* ptPiMBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,41,binLimpTprong);
1403 nameHistoSgn=
"histLambdaMassSgn";
1404 nameHistoBkg=
"histLambdaMassBkg";
1405 titleHistoSgn=
"m_{inv}(p,#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(p,#pi^{-}) [GeV/c^{2}]; Entries";
1406 titleHistoBkg=
"m_{inv}(p,#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(p,#pi^{-}) [GeV/c^{2}]; Entries";
1407 TH2F* massLambdaSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1408 TH2F* massLambdaBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1410 nameHistoSgn=
"histLambdaBarMassSgn";
1411 nameHistoBkg=
"histLambdaBarMassBkg";
1412 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";
1413 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";
1414 TH2F* massLambdaBarSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1415 TH2F* massLambdaBarBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1417 nameHistoSgn=
"histGammaMassSgn";
1418 nameHistoBkg=
"histGammaMassBkg";
1419 titleHistoSgn=
"m_{inv}(e^{+},e^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(e^{+},e^{-}) [GeV/c^{2}]; Entries";
1420 titleHistoBkg=
"m_{inv}(e^{+},e^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(e^{+},e^{-}) [GeV/c^{2}]; Entries";
1421 TH2F* massGammaSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,100,0.,1.);
1422 TH2F* massGammaBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,100,0.,1.);
1424 nameHistoSgn=
"histD0K0SSgn";
1425 nameHistoBkg=
"histD0K0SBkg";
1426 titleHistoSgn=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
1427 titleHistoBkg=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
1428 TH2F* d0K0SSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,-1.,1.);
1429 TH2F* d0K0SBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,-1.,1.);
1431 nameHistoSgn=
"histD0PSgn";
1432 nameHistoBkg=
"histD0PBkg";
1433 titleHistoSgn=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
1434 titleHistoBkg=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
1435 TH2F* d0PSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,-1.,1.);
1436 TH2F* d0PBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,-1.,1.);
1438 nameHistoSgn=
"histCosPAK0SSgn";
1439 nameHistoBkg=
"histCosPAK0SBkg";
1440 titleHistoSgn=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
1441 titleHistoBkg=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
1442 TH2F *cosPAK0SSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),41,binLimpTprong,100,0.99,1.);
1443 TH2F *cosPAK0SBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),41,binLimpTprong,100,0.99,1.);
1445 TH2F* allptK0SSgn = (
TH2F*)ptK0SSgn->Clone();
1446 TH2F* allptK0SBkg = (
TH2F*)ptK0SBkg->Clone();
1447 TH2F* allptPSgn = (
TH2F*)ptPSgn->Clone();
1448 TH2F* allptPBkg = (
TH2F*)ptPBkg->Clone();
1449 TH2F* allptPiPSgn = (
TH2F*)ptPiPSgn->Clone();
1450 TH2F* allptPiPBkg = (
TH2F*)ptPiPBkg->Clone();
1451 TH2F* allptPiMSgn = (
TH2F*)ptPiMSgn->Clone();
1452 TH2F* allptPiMBkg = (
TH2F*)ptPiMBkg->Clone();
1453 TH2F* allmassLambdaSgn = (
TH2F*)massLambdaSgn->Clone();
1454 TH2F* allmassLambdaBkg = (
TH2F*)massLambdaBkg->Clone();
1455 TH2F* allmassLambdaBarSgn = (
TH2F*)massLambdaBarSgn->Clone();
1456 TH2F* allmassLambdaBarBkg = (
TH2F*)massLambdaBarBkg->Clone();
1457 TH2F* allmassGammaSgn = (
TH2F*)massGammaSgn->Clone();
1458 TH2F* allmassGammaBkg = (
TH2F*)massGammaBkg->Clone();
1459 TH2F* alld0K0SSgn = (
TH2F*)d0K0SSgn->Clone();
1460 TH2F* alld0K0SBkg = (
TH2F*)d0K0SBkg->Clone();
1461 TH2F* alld0PSgn = (
TH2F*)d0PSgn->Clone();
1462 TH2F* alld0PBkg = (
TH2F*)d0PBkg->Clone();
1463 TH2F* allcosPAK0SSgn = (
TH2F*)cosPAK0SSgn->Clone();
1464 TH2F* allcosPAK0SBkg = (
TH2F*)cosPAK0SBkg->Clone();
1466 TH2F* pidptK0SSgn = (
TH2F*)ptK0SSgn->Clone();
1467 TH2F* pidptK0SBkg = (
TH2F*)ptK0SBkg->Clone();
1468 TH2F* pidptPSgn = (
TH2F*)ptPSgn->Clone();
1469 TH2F* pidptPBkg = (
TH2F*)ptPBkg->Clone();
1470 TH2F* pidptPiPSgn = (
TH2F*)ptPiPSgn->Clone();
1471 TH2F* pidptPiPBkg = (
TH2F*)ptPiPBkg->Clone();
1472 TH2F* pidptPiMSgn = (
TH2F*)ptPiMSgn->Clone();
1473 TH2F* pidptPiMBkg = (
TH2F*)ptPiMBkg->Clone();
1474 TH2F* pidmassLambdaSgn = (
TH2F*)massLambdaSgn->Clone();
1475 TH2F* pidmassLambdaBkg = (
TH2F*)massLambdaBkg->Clone();
1476 TH2F* pidmassLambdaBarSgn = (
TH2F*)massLambdaBarSgn->Clone();
1477 TH2F* pidmassLambdaBarBkg = (
TH2F*)massLambdaBarBkg->Clone();
1478 TH2F* pidmassGammaSgn = (
TH2F*)massGammaSgn->Clone();
1479 TH2F* pidmassGammaBkg = (
TH2F*)massGammaBkg->Clone();
1480 TH2F* pidd0K0SSgn = (
TH2F*)d0K0SSgn->Clone();
1481 TH2F* pidd0K0SBkg = (
TH2F*)d0K0SBkg->Clone();
1482 TH2F* pidd0PSgn = (
TH2F*)d0PSgn->Clone();
1483 TH2F* pidd0PBkg = (
TH2F*)d0PBkg->Clone();
1484 TH2F* pidcosPAK0SSgn = (
TH2F*)cosPAK0SSgn->Clone();
1485 TH2F* pidcosPAK0SBkg = (
TH2F*)cosPAK0SBkg->Clone();
1531 TH2F* pidTRptK0SSgn = (
TH2F*)ptK0SSgn->Clone();
1532 TH2F* pidTRptK0SBkg = (
TH2F*)ptK0SBkg->Clone();
1533 TH2F* pidTRptPSgn = (
TH2F*)ptPSgn->Clone();
1534 TH2F* pidTRptPBkg = (
TH2F*)ptPBkg->Clone();
1535 TH2F* pidTRptPiPSgn = (
TH2F*)ptPiPSgn->Clone();
1536 TH2F* pidTRptPiPBkg = (
TH2F*)ptPiPBkg->Clone();
1537 TH2F* pidTRptPiMSgn = (
TH2F*)ptPiMSgn->Clone();
1538 TH2F* pidTRptPiMBkg = (
TH2F*)ptPiMBkg->Clone();
1539 TH2F* pidTRmassLambdaSgn = (
TH2F*)massLambdaSgn->Clone();
1540 TH2F* pidTRmassLambdaBkg = (
TH2F*)massLambdaBkg->Clone();
1541 TH2F* pidTRmassLambdaBarSgn = (
TH2F*)massLambdaBarSgn->Clone();
1542 TH2F* pidTRmassLambdaBarBkg = (
TH2F*)massLambdaBarBkg->Clone();
1543 TH2F* pidTRmassGammaSgn = (
TH2F*)massGammaSgn->Clone();
1544 TH2F* pidTRmassGammaBkg = (
TH2F*)massGammaBkg->Clone();
1545 TH2F* pidTRcosPAK0SSgn = (
TH2F*)cosPAK0SSgn->Clone();
1546 TH2F* pidTRcosPAK0SBkg = (
TH2F*)cosPAK0SBkg->Clone();
1570 nameHistoSgn=
"histK0SMassOfflineSgn";
1571 nameHistoBkg=
"histK0SMassOfflineBkg";
1572 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";
1573 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";
1574 TH2F* spectrumK0SMassOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,mK0SPDG-0.050,mK0SPDG+0.050);
1575 TH2F* spectrumK0SMassOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,mK0SPDG-0.050,mK0SPDG+0.050);
1577 nameHistoSgn=
"histLcMassByK0SOfflineSgn";
1578 nameHistoBkg=
"histLcMassByK0SOfflineBkg";
1579 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]";
1580 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]";
1581 TH2F* spectrumLcMassOfflineByK0SSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
1582 TH2F* spectrumLcMassOfflineByK0SBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
1584 nameHistoSgn=
"histpK0SvspOfflineSgn";
1585 nameHistoBkg=
"histpK0SvspOfflineBkg";
1586 titleHistoSgn=
"#Lambda_{c} - sgn: K^{0}_{S} vs p Total Momentum Distribution - Offline - MC; p(p) [GeV/c]; p(K^{0}_{S}) [GeV/c]";
1587 titleHistoBkg=
"#Lambda_{c} - bkg: K^{0}_{S} vs p Total Momentum Distribution - Offline - MC; p(p) [GeV/c]; p(K^{0}_{S}) [GeV/c]";
1588 TH2F* momentumDistributionK0SvspOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),41,binLimpTprong,41,binLimpTprong);
1589 TH2F* momentumDistributionK0SvspOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),41,binLimpTprong,41,binLimpTprong);
1592 nameHistoSgn=
"histArmPodK0SOfflineSgn";
1593 nameHistoBkg=
"histArmPodK0SOfflineBkg";
1594 titleHistoSgn=
"V0-candidate Armenteros-Podolanski distribution (sgn) -offline-; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1595 titleHistoBkg=
"V0-candidate Armenteros-Podolanski distribution (bkg) -offline-; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1596 TH2F* armenterosPodK0SOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),200,-1.,1.,300,0.,0.3);
1597 TH2F* armenterosPodK0SOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),200,-1.,1.,300,0.,0.3);
1599 nameHistoSgn=
"histArmPodLcOfflineSgn";
1600 nameHistoBkg=
"histArmPodLcOfflineBkg";
1601 titleHistoSgn=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution (sgn) -offline-; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1602 titleHistoBkg=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution (bkg) -offline-; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1603 TH2F* armenterosPodLcOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),200,-4.,4.,800,0.,1.6);
1604 TH2F* armenterosPodLcOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),200,-4.,4.,800,0.,1.6);
1607 TH2F* allspectrumK0SMassOfflineSgn = (
TH2F*)spectrumK0SMassOfflineSgn->Clone();
1608 TH2F* allspectrumK0SMassOfflineBkg = (
TH2F*) spectrumK0SMassOfflineBkg->Clone();
1609 TH2F* allspectrumLcMassOfflineByK0SSgn = (
TH2F*)spectrumLcMassOfflineByK0SSgn->Clone();
1610 TH2F* allspectrumLcMassOfflineByK0SBkg = (
TH2F*) spectrumLcMassOfflineByK0SBkg->Clone();
1611 TH2F* allmomentumDistributionK0SvspOfflineSgn = (
TH2F*)momentumDistributionK0SvspOfflineSgn->Clone();
1612 TH2F* allmomentumDistributionK0SvspOfflineBkg = (
TH2F*)momentumDistributionK0SvspOfflineBkg->Clone();
1613 TH2F* allArmenterosPodK0SOfflineSgn = (
TH2F*)armenterosPodK0SOfflineSgn->Clone();
1614 TH2F* allArmenterosPodK0SOfflineBkg = (
TH2F*)armenterosPodK0SOfflineBkg->Clone();
1615 TH2F* allArmenterosPodLcOfflineSgn = (
TH2F*)armenterosPodLcOfflineSgn->Clone();
1616 TH2F* allArmenterosPodLcOfflineBkg = (
TH2F*)armenterosPodLcOfflineBkg->Clone();
1618 TH2F* pidBachspectrumLcMassOfflineByK0SSgn = (
TH2F*)spectrumLcMassOfflineByK0SSgn->Clone();
1619 TH2F* pidBachspectrumLcMassOfflineByK0SBkg = (
TH2F*) spectrumLcMassOfflineByK0SBkg->Clone();
1620 TH2F* pidBachspectrumK0SMassOfflineSgn = (
TH2F*)spectrumK0SMassOfflineSgn->Clone();
1621 TH2F* pidBachspectrumK0SMassOfflineBkg = (
TH2F*) spectrumK0SMassOfflineBkg->Clone();
1622 TH2F* pidBachmomentumDistributionK0SvspOfflineSgn = (
TH2F*)momentumDistributionK0SvspOfflineSgn->Clone();
1623 TH2F* pidBachmomentumDistributionK0SvspOfflineBkg = (
TH2F*)momentumDistributionK0SvspOfflineBkg->Clone();
1624 TH2F* pidBachArmenterosPodK0SOfflineSgn = (
TH2F*)armenterosPodK0SOfflineSgn->Clone();
1625 TH2F* pidBachArmenterosPodK0SOfflineBkg = (
TH2F*)armenterosPodK0SOfflineBkg->Clone();
1626 TH2F* pidBachArmenterosPodLcOfflineSgn = (
TH2F*)armenterosPodLcOfflineSgn->Clone();
1627 TH2F* pidBachArmenterosPodLcOfflineBkg = (
TH2F*)armenterosPodLcOfflineBkg->Clone();
1629 fOutputAll->Add(allspectrumK0SMassOfflineSgn);
1630 fOutputAll->Add(allspectrumK0SMassOfflineBkg);
1631 fOutputAll->Add(allspectrumLcMassOfflineByK0SSgn);
1632 fOutputAll->Add(allspectrumLcMassOfflineByK0SBkg);
1633 fOutputAll->Add(allmomentumDistributionK0SvspOfflineSgn);
1634 fOutputAll->Add(allmomentumDistributionK0SvspOfflineBkg);
1635 fOutputAll->Add(allArmenterosPodK0SOfflineSgn);
1636 fOutputAll->Add(allArmenterosPodK0SOfflineBkg);
1637 fOutputAll->Add(allArmenterosPodLcOfflineSgn);
1638 fOutputAll->Add(allArmenterosPodLcOfflineBkg);
1644 fOutputPIDBach->Add(pidBachmomentumDistributionK0SvspOfflineSgn);
1645 fOutputPIDBach->Add(pidBachmomentumDistributionK0SvspOfflineBkg);
1651 nameHistoSgn=
"histArmPodK0SOfflineSgn0";
1652 nameHistoBkg=
"histArmPodK0SOfflineBkg0";
1653 titleHistoSgn=
"V0-candidate Armenteros-Podolanski distribution (sgn) -offline-; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1654 titleHistoBkg=
"V0-candidate Armenteros-Podolanski distribution (bkg) -offline-; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1655 TH2F* armenterosPodK0SOfflineSgn0 =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),200,-1.,1.,300,0.,0.3);
1656 TH2F* armenterosPodK0SOfflineBkg0 =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),200,-1.,1.,300,0.,0.3);
1657 nameHistoSgn=
"histArmPodLcOfflineSgn0";
1658 nameHistoBkg=
"histArmPodLcOfflineBkg0";
1659 titleHistoSgn=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution (sgn) -offline-; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1660 titleHistoBkg=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution (bkg) -offline-; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1661 TH2F* armenterosPodLcOfflineSgn0 =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),200,-4.,4.,800,0.,1.6);
1662 TH2F* armenterosPodLcOfflineBkg0 =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),200,-4.,4.,800,0.,1.6);
1663 fOutputAll->Add(armenterosPodK0SOfflineSgn0);
1664 fOutputAll->Add(armenterosPodK0SOfflineBkg0);
1669 TH2F* pidBachTRspectrumLcMassOfflineByK0SSgn = (
TH2F*)spectrumLcMassOfflineByK0SSgn->Clone();
1670 TH2F* pidBachTRspectrumLcMassOfflineByK0SBkg = (
TH2F*) spectrumLcMassOfflineByK0SBkg->Clone();
1678 nameHistoSgn=
"histptK0SOfflineSgn";
1679 nameHistoBkg=
"histptK0SOfflineBkg";
1680 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";
1681 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";
1682 TH2F* ptK0SOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,41,binLimpTprong);
1683 TH2F* ptK0SOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,41,binLimpTprong);
1685 nameHistoSgn=
"histptPOfflineSgn";
1686 nameHistoBkg=
"histptPOfflineBkg";
1687 titleHistoSgn=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
1688 titleHistoBkg=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
1689 TH2F* ptPOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,41,binLimpTprong);
1690 TH2F* ptPOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,41,binLimpTprong);
1692 nameHistoSgn=
"histptPipOfflineSgn";
1693 nameHistoBkg=
"histptPipOfflineBkg";
1694 titleHistoSgn=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
1695 titleHistoBkg=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
1696 TH2F* ptPiPOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,41,binLimpTprong);
1697 TH2F* ptPiPOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,41,binLimpTprong);
1699 nameHistoSgn=
"histptPimOfflineSgn";
1700 nameHistoBkg=
"histptPimOfflineBkg";
1701 titleHistoSgn=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
1702 titleHistoBkg=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
1703 TH2F* ptPiMOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,41,binLimpTprong);
1704 TH2F* ptPiMOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,41,binLimpTprong);
1706 nameHistoSgn=
"histLambdaMassOfflineSgn";
1707 nameHistoBkg=
"histLambdaMassOfflineBkg";
1708 titleHistoSgn=
"m_{inv}(p,#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(p,#pi^{-}) [GeV/c^{2}]; Entries";
1709 titleHistoBkg=
"m_{inv}(p,#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(p,#pi^{-}) [GeV/c^{2}]; Entries";
1710 TH2F* massLambdaOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1711 TH2F* massLambdaOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1713 nameHistoSgn=
"histLambdaBarMassOfflineSgn";
1714 nameHistoBkg=
"histLambdaBarMassOfflineBkg";
1715 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";
1716 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";
1717 TH2F* massLambdaBarOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1718 TH2F* massLambdaBarOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1720 nameHistoSgn=
"histGammaMassOfflineSgn";
1721 nameHistoBkg=
"histGammaMassOfflineBkg";
1722 titleHistoSgn=
"m_{inv}(e^{+},e^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(e^{+},e^{-}) [GeV/c^{2}]; Entries";
1723 titleHistoBkg=
"m_{inv}(e^{+},e^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(e^{+},e^{-}) [GeV/c^{2}]; Entries";
1724 TH2F* massGammaOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,100,0.,1.);
1725 TH2F* massGammaOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,100,0.,1.);
1727 nameHistoSgn=
"histD0K0SOfflineSgn";
1728 nameHistoBkg=
"histD0K0SOfflineBkg";
1729 titleHistoSgn=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
1730 titleHistoBkg=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
1731 TH2F* d0K0SOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,-1.,1.);
1732 TH2F* d0K0SOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,-1.,1.);
1734 nameHistoSgn=
"histD0POfflineSgn";
1735 nameHistoBkg=
"histD0POfflineBkg";
1736 titleHistoSgn=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
1737 titleHistoBkg=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
1738 TH2F* d0POfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,-1.,1.);
1739 TH2F* d0POfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,-1.,1.);
1741 nameHistoSgn=
"histCosPAK0SOfflineSgn";
1742 nameHistoBkg=
"histCosPAK0SOfflineBkg";
1743 titleHistoSgn=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
1744 titleHistoBkg=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
1745 TH2F *cosPAK0SOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),41,binLimpTprong,100,0.99,1.);
1746 TH2F *cosPAK0SOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),41,binLimpTprong,100,0.99,1.);
1748 TH2F* allptK0SOfflineSgn = (
TH2F*)ptK0SOfflineSgn->Clone();
1749 TH2F* allptK0SOfflineBkg = (
TH2F*)ptK0SOfflineBkg->Clone();
1750 TH2F* allptPOfflineSgn = (
TH2F*)ptPOfflineSgn->Clone();
1751 TH2F* allptPOfflineBkg = (
TH2F*)ptPOfflineBkg->Clone();
1752 TH2F* allptPiPOfflineSgn = (
TH2F*)ptPiPOfflineSgn->Clone();
1753 TH2F* allptPiPOfflineBkg = (
TH2F*)ptPiPOfflineBkg->Clone();
1754 TH2F* allptPiMOfflineSgn = (
TH2F*)ptPiMOfflineSgn->Clone();
1755 TH2F* allptPiMOfflineBkg = (
TH2F*)ptPiMOfflineBkg->Clone();
1756 TH2F* allmassLambdaOfflineSgn = (
TH2F*)massLambdaOfflineSgn->Clone();
1757 TH2F* allmassLambdaOfflineBkg = (
TH2F*)massLambdaOfflineBkg->Clone();
1758 TH2F* allmassLambdaBarOfflineSgn = (
TH2F*)massLambdaBarOfflineSgn->Clone();
1759 TH2F* allmassLambdaBarOfflineBkg = (
TH2F*)massLambdaBarOfflineBkg->Clone();
1760 TH2F* allmassGammaOfflineSgn = (
TH2F*)massGammaOfflineSgn->Clone();
1761 TH2F* allmassGammaOfflineBkg = (
TH2F*)massGammaOfflineBkg->Clone();
1762 TH2F* alld0K0SOfflineSgn = (
TH2F*)d0K0SOfflineSgn->Clone();
1763 TH2F* alld0K0SOfflineBkg = (
TH2F*)d0K0SOfflineBkg->Clone();
1764 TH2F* alld0POfflineSgn = (
TH2F*)d0POfflineSgn->Clone();
1765 TH2F* alld0POfflineBkg = (
TH2F*)d0POfflineBkg->Clone();
1766 TH2F* allcosPAK0SOfflineSgn = (
TH2F*)cosPAK0SOfflineSgn->Clone();
1767 TH2F* allcosPAK0SOfflineBkg = (
TH2F*)cosPAK0SOfflineBkg->Clone();
1769 TH2F* pidptK0SOfflineSgn = (
TH2F*)ptK0SOfflineSgn->Clone();
1770 TH2F* pidptK0SOfflineBkg = (
TH2F*)ptK0SOfflineBkg->Clone();
1771 TH2F* pidptPOfflineSgn = (
TH2F*)ptPOfflineSgn->Clone();
1772 TH2F* pidptPOfflineBkg = (
TH2F*)ptPOfflineBkg->Clone();
1773 TH2F* pidptPiPOfflineSgn = (
TH2F*)ptPiPOfflineSgn->Clone();
1774 TH2F* pidptPiPOfflineBkg = (
TH2F*)ptPiPOfflineBkg->Clone();
1775 TH2F* pidptPiMOfflineSgn = (
TH2F*)ptPiMOfflineSgn->Clone();
1776 TH2F* pidptPiMOfflineBkg = (
TH2F*)ptPiMOfflineBkg->Clone();
1777 TH2F* pidmassLambdaOfflineSgn = (
TH2F*)massLambdaOfflineSgn->Clone();
1778 TH2F* pidmassLambdaOfflineBkg = (
TH2F*)massLambdaOfflineBkg->Clone();
1779 TH2F* pidmassLambdaBarOfflineSgn = (
TH2F*)massLambdaBarOfflineSgn->Clone();
1780 TH2F* pidmassLambdaBarOfflineBkg = (
TH2F*)massLambdaBarOfflineBkg->Clone();
1781 TH2F* pidmassGammaOfflineSgn = (
TH2F*)massGammaOfflineSgn->Clone();
1782 TH2F* pidmassGammaOfflineBkg = (
TH2F*)massGammaOfflineBkg->Clone();
1783 TH2F* pidd0K0SOfflineSgn = (
TH2F*)d0K0SOfflineSgn->Clone();
1784 TH2F* pidd0K0SOfflineBkg = (
TH2F*)d0K0SOfflineBkg->Clone();
1785 TH2F* pidd0POfflineSgn = (
TH2F*)d0POfflineSgn->Clone();
1786 TH2F* pidd0POfflineBkg = (
TH2F*)d0POfflineBkg->Clone();
1787 TH2F* pidcosPAK0SOfflineSgn = (
TH2F*)cosPAK0SOfflineSgn->Clone();
1788 TH2F* pidcosPAK0SOfflineBkg = (
TH2F*)cosPAK0SOfflineBkg->Clone();
1834 TH2F* pidTRptK0SOfflineSgn = (
TH2F*)ptK0SOfflineSgn->Clone();
1835 TH2F* pidTRptK0SOfflineBkg = (
TH2F*)ptK0SOfflineBkg->Clone();
1836 TH2F* pidTRptPOfflineSgn = (
TH2F*)ptPOfflineSgn->Clone();
1837 TH2F* pidTRptPOfflineBkg = (
TH2F*)ptPOfflineBkg->Clone();
1838 TH2F* pidTRptPiPOfflineSgn = (
TH2F*)ptPiPOfflineSgn->Clone();
1839 TH2F* pidTRptPiPOfflineBkg = (
TH2F*)ptPiPOfflineBkg->Clone();
1840 TH2F* pidTRptPiMOfflineSgn = (
TH2F*)ptPiMOfflineSgn->Clone();
1841 TH2F* pidTRptPiMOfflineBkg = (
TH2F*)ptPiMOfflineBkg->Clone();
1842 TH2F* pidTRmassLambdaOfflineSgn = (
TH2F*)massLambdaOfflineSgn->Clone();
1843 TH2F* pidTRmassLambdaOfflineBkg = (
TH2F*)massLambdaOfflineBkg->Clone();
1844 TH2F* pidTRmassLambdaBarOfflineSgn = (
TH2F*)massLambdaBarOfflineSgn->Clone();
1845 TH2F* pidTRmassLambdaBarOfflineBkg = (
TH2F*)massLambdaBarOfflineBkg->Clone();
1846 TH2F* pidTRmassGammaOfflineSgn = (
TH2F*)massGammaOfflineSgn->Clone();
1847 TH2F* pidTRmassGammaOfflineBkg = (
TH2F*)massGammaOfflineBkg->Clone();
1848 TH2F* pidTRcosPAK0SOfflineSgn = (
TH2F*)cosPAK0SOfflineSgn->Clone();
1849 TH2F* pidTRcosPAK0SOfflineBkg = (
TH2F*)cosPAK0SOfflineBkg->Clone();
1874 TH3F *phiVSthetaVSpt =
new TH3F(
"phiVSthetaVSpt",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
1875 TH3F *phiVSthetaVSptRot =
new TH3F(
"phiVSthetaVSptRot",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
1876 TH3F *phiVSthetaVSptOffline =
new TH3F(
"phiVSthetaVSptOffline",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
1877 TH3F *phiVSthetaVSptRotOffline =
new TH3F(
"phiVSthetaVSptRotOffline",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
1898 TH3F *phiVSthetaVSptSgn =
new TH3F(
"phiVSthetaVSptSgn",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
1899 TH3F *phiVSthetaVSptRotSgn =
new TH3F(
"phiVSthetaVSptRotSgn",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
1900 TH3F *phiVSthetaVSptOfflineSgn =
new TH3F(
"phiVSthetaVSptOfflineSgn",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
1901 TH3F *phiVSthetaVSptRotOfflineSgn =
new TH3F(
"phiVSthetaVSptRotOfflineSgn",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
1907 TH3F *phiVSthetaVSptBkg =
new TH3F(
"phiVSthetaVSptBkg",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
1908 TH3F *phiVSthetaVSptRotBkg =
new TH3F(
"phiVSthetaVSptRotBkg",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
1909 TH3F *phiVSthetaVSptOfflineBkg =
new TH3F(
"phiVSthetaVSptOfflineBkg",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
1910 TH3F *phiVSthetaVSptRotOfflineBkg =
new TH3F(
"phiVSthetaVSptRotOfflineBkg",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
1941 TH3F *hMassVsPtVsY=
new TH3F(
"hMassVsPtVsY",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
1942 TH3F *hMassVsPtVsYOffline=
new TH3F(
"hMassVsPtVsYOffline",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
1956 TH3F *hMassVsPtVsYSgn=
new TH3F(
"hMassVsPtVsYSgn",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
1957 TH3F *hMassVsPtVsYOfflineSgn=
new TH3F(
"hMassVsPtVsYOfflineSgn",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
1958 TH3F *hMassVsPtVsYBkg=
new TH3F(
"hMassVsPtVsYBkg",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
1959 TH3F *hMassVsPtVsYOfflineBkg=
new TH3F(
"hMassVsPtVsYOfflineBkg",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
1980 TH3F *hMassVsPtVsYRot=
new TH3F(
"hMassVsPtVsYRot",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
1981 TH3F *hMassVsPtVsYRotOffline=
new TH3F(
"hMassVsPtVsYRotOffline",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
1995 TH3F *hMassVsPtVsYRotSgn=
new TH3F(
"hMassVsPtVsYRotSgn",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
1996 TH3F *hMassVsPtVsYRotOfflineSgn=
new TH3F(
"hMassVsPtVsYRotOfflineSgn",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
1997 TH3F *hMassVsPtVsYRotBkg=
new TH3F(
"hMassVsPtVsYRotBkg",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
1998 TH3F *hMassVsPtVsYRotOfflineBkg=
new TH3F(
"hMassVsPtVsYRotOfflineBkg",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
2018 TH1F *hDeltaMass=
new TH1F(
"hDeltaMass",
"",100,-0.4,0.4);
2019 TH1F *hDeltaMassOffline=
new TH1F(
"hDeltaMassOffline",
"",100,-0.4,0.4);
2033 TH1F *hDeltaMassSgn=
new TH1F(
"hDeltaMassSgn",
"",100,-0.4,0.4);
2034 TH1F *hDeltaMassOfflineSgn=
new TH1F(
"hDeltaMassOfflineSgn",
"",100,-0.4,0.4);
2035 TH1F *hDeltaMassBkg=
new TH1F(
"hDeltaMassBkg",
"",100,-0.4,0.4);
2036 TH1F *hDeltaMassOfflineBkg=
new TH1F(
"hDeltaMassOfflineBkg",
"",100,-0.4,0.4);
2098 TClonesArray *arrayLctopKos=0;
2100 if(AODEvent() && IsStandardAOD()) {
2103 aodEvent =
dynamic_cast<AliAODEvent*
> (AODEvent());
2106 AliAODHandler* aodHandler = (AliAODHandler*)
2107 ((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler());
2109 if (aodHandler->GetExtensions()) {
2110 AliAODExtension *ext = (AliAODExtension*)aodHandler->GetExtensions()->FindObject(
"AliAOD.VertexingHF.root");
2112 arrayLctopKos=(TClonesArray*)aodFromExt->GetList()->FindObject(
"CascadesHF");
2116 arrayLctopKos=(TClonesArray*)aodEvent->GetList()->FindObject(
"CascadesHF");
2122 if (TMath::Abs(
fBzkG)>=0.001) {
2126 if (arrayLctopKos) {
2131 TClonesArray *mcArray = 0;
2132 AliAODMCHeader *mcHeader=0;
2136 mcArray =
dynamic_cast<TClonesArray*
>(aodEvent->FindListObject(AliAODMCParticle::StdBranchName()));
2141 mcHeader = (AliAODMCHeader*)aodEvent->GetList()->FindObject(AliAODMCHeader::StdBranchName());
2147 for (
Int_t iii=0; iii<mcArray->GetEntries(); iii++)
2155 if (
fVtx1->GetNContributors()>0) {
2158 TString firedTriggerClasses = aodEvent->GetFiredTriggerClasses();
2159 ULong64_t fTriggerMask=AliVEvent::kAnyINT;
2162 (aodEvent->GetRunNumber()<136851 || aodEvent->GetRunNumber()>139517) ) {
2163 if ( !(firedTriggerClasses.Contains(
"CINT1")) ) {
2164 AliInfo(Form(
" ======================== firedTriggerClasses.Data() = %s",firedTriggerClasses.Data()));
2171 Bool_t isSelectedAAA = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & fTriggerMask);
2172 if (!isSelectedAAA) {
2177 if (!isSelectedAAA || check1) {
2182 fTriggerMask=AliVEvent::kAny;
2183 Bool_t isSelectedBBB = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & fTriggerMask);
2184 if (!isSelectedBBB) {
2189 if (titleVtx.Contains(
"Z")) {
2193 else if (titleVtx.Contains(
"3D")) {
2228 TString firedTriggerClasses = aodEvent->GetFiredTriggerClasses();
2229 ULong64_t fTriggerMask=AliVEvent::kAnyINT;
2231 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(6);
2236 (aodEvent->GetRunNumber()<136851 || aodEvent->GetRunNumber()>139517) ) {
2237 if ( !(firedTriggerClasses.Contains(
"CINT1")) ) {
2238 AliInfo(Form(
" ======================== firedTriggerClasses.Data() = %s",firedTriggerClasses.Data()));
2239 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(8);
2245 Bool_t isSelectedAAAa = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & fTriggerMask);
2246 if (!isSelectedAAAa) {
2247 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(9);
2251 if (!isSelectedAAAa || check1a) {
2252 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(16);
2256 fTriggerMask=AliVEvent::kAny;
2257 Bool_t isSelectedBBBa = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & fTriggerMask);
2258 if (!isSelectedBBBa) {
2259 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(10);
2263 if (titleVtx.Contains(
"Z")) {
2264 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(11);
2267 else if (titleVtx.Contains(
"3D")) {
2268 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(12);
2271 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(13);
2276 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(14);
2281 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(7);
2284 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(15);
2294 TClonesArray *mcArray) {
2300 AliAODTrack *bachelor = (AliAODTrack*)lc2bacV0->
GetBachelor();
2301 if (!bachelor)
return -1;
2302 Int_t labBachelor = TMath::Abs(bachelor->GetLabel());
2303 if (labBachelor<0)
return -1;
2304 AliAODMCParticle *partBachelor = (AliAODMCParticle*)mcArray->At(labBachelor);
2305 if (!partBachelor)
return -1;
2306 if (TMath::Abs(partBachelor->GetPdgCode())!=pdgDgLc2bacV0[0])
return -1;
2308 Int_t labBacMother = partBachelor->GetMother();
2309 if (labBacMother<0)
return -1;
2310 AliAODMCParticle *partBacMother = (AliAODMCParticle*)mcArray->At(labBacMother);
2311 if (!partBacMother)
return -1;
2312 if (TMath::Abs(partBacMother->GetPdgCode())!=4122)
return -1;
2317 if (!posV0Daugh || !negV0Daugh)
return -1;
2319 Int_t labV0pos = TMath::Abs(posV0Daugh->GetLabel());
2320 Int_t labV0neg = TMath::Abs(negV0Daugh->GetLabel());
2321 if (labV0pos<0 || labV0neg<0)
return -1;
2323 AliAODMCParticle *partV0pos = (AliAODMCParticle*)mcArray->At(labV0neg);
2324 AliAODMCParticle *partV0neg = (AliAODMCParticle*)mcArray->At(labV0pos);
2325 if (!partV0pos || !partV0neg)
return -1;
2327 if ( ! ( (TMath::Abs(partV0pos->GetPdgCode())==pdgDgV0[0] &&
2328 TMath::Abs(partV0neg->GetPdgCode())==pdgDgV0[1]) ||
2329 (TMath::Abs(partV0pos->GetPdgCode())==pdgDgV0[1] &&
2330 TMath::Abs(partV0neg->GetPdgCode())==pdgDgV0[0]) ) )
return -1;
2331 Int_t labV0posMother = partV0pos->GetMother();
2332 Int_t labV0negMother = partV0neg->GetMother();
2334 if (labV0posMother<0 || labV0negMother<0)
return -1;
2335 if (labV0posMother!=labV0negMother)
return -1;
2337 AliAODMCParticle *motherV0 = (AliAODMCParticle*)mcArray->At(labV0posMother);
2338 if (!motherV0)
return-1;
2340 if (TMath::Abs(motherV0->GetPdgCode())!=pdgDgLc2bacV0[1])
return -1;
2341 Int_t labV0mother = motherV0->GetMother();
2342 if (labV0mother<0)
return -1;
2343 AliAODMCParticle *gMotherV0 = (AliAODMCParticle*)mcArray->At(labV0mother);
2344 if (!gMotherV0)
return-1;
2346 if ( !(pdgDgLc2bacV0[1]==310 && TMath::Abs(gMotherV0->GetPdgCode())==311) &&
2347 !(pdgDgLc2bacV0[1]==3122 && TMath::Abs(motherV0->GetPdgCode())==3122) )
return -1;
2349 if ( (pdgDgLc2bacV0[1]==310 && TMath::Abs(gMotherV0->GetPdgCode())==311) ) {
2350 Int_t labV0GMother = gMotherV0->GetMother();
2351 if (labV0GMother<0)
return -1;
2352 AliAODMCParticle *ggMotherV0 = (AliAODMCParticle*)mcArray->At(labV0GMother);
2353 if (!ggMotherV0)
return-1;
2355 if (TMath::Abs(ggMotherV0->GetPdgCode())!=4122)
return -1;
2356 gMotherV0 = (AliAODMCParticle*)ggMotherV0;
2357 labV0mother=labV0GMother;
2359 else if (pdgDgLc2bacV0[1]==3122 && TMath::Abs(motherV0->GetPdgCode())==3122) {
2360 if (TMath::Abs(gMotherV0->GetPdgCode())!=4122)
return -1;
2363 if (labBacMother!=labV0mother) {
2367 return labBacMother;
2377 Int_t indexToBeReturned=-999;
2380 Int_t pdgLambda=3122;
2383 Int_t pdgBachelor=2212;
2384 Int_t pdgBachelorPi=211;
2387 fillthis=
"histMcStatLc";
2389 AliAODMCParticle *searchLc =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(iii));
2390 if(!searchLc)
return -999;
2391 if (TMath::Abs(searchLc->GetPdgCode()) != pdgLc)
return -999;
2393 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(0);
2394 indexToBeReturned = 0;
2396 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*1);
2397 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*1;
2399 Int_t nDaughLc = searchLc->GetNDaughters();
2401 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*10);
2402 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*10;
2403 return indexToBeReturned;
2406 Int_t index1=searchLc->GetDaughter(0);
2407 Int_t index2=searchLc->GetDaughter(1);
2408 if (index1<=0 || index2<=0) {
2412 AliAODMCParticle *daugh1 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(index1));
2413 AliAODMCParticle *daugh2 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(index2));
2414 if (!daugh1 || !daugh2)
return -999;
2416 Int_t daughPdg1 = TMath::Abs(daugh1->GetPdgCode());
2417 Int_t daughPdg2 = TMath::Abs(daugh2->GetPdgCode());
2418 if ( !( (daughPdg1==pdgBachelor && daughPdg2==pdgK0) ||
2419 (daughPdg2==pdgBachelor && daughPdg1==pdgK0) ||
2420 (daughPdg1==pdgLambda && daughPdg2==pdgBachelorPi) ||
2421 (daughPdg2==pdgLambda && daughPdg1==pdgBachelorPi) ) ) {
2422 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*10);
2423 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*10;
2424 return indexToBeReturned;
2427 if (daughPdg1==pdgK0 || daughPdg1==pdgLambda) {
2428 index1=searchLc->GetDaughter(1);
2429 index2=searchLc->GetDaughter(0);
2431 daugh1 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(index1));
2432 daugh2 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(index2));
2433 if (!daugh1 || !daugh2)
return -999;
2435 daughPdg1=TMath::Abs(daugh1->GetPdgCode());
2436 daughPdg2=TMath::Abs(daugh2->GetPdgCode());
2438 if ( daughPdg1==pdgBachelor && daughPdg2==pdgK0 ) {
2440 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*2);
2441 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*2;
2443 Int_t nDaughK0 = daugh2->GetNDaughters();
2444 if (nDaughK0!=1)
return -999;
2446 Int_t indexK0daugh=daugh2->GetDaughter(0);
2447 if (indexK0daugh<=0)
return -999;
2449 AliAODMCParticle *daughK0 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(indexK0daugh));
2450 if (!daughK0)
return -999;
2452 Int_t daughK0Pdg=TMath::Abs(daughK0->GetPdgCode());
2453 if (daughK0Pdg!=pdgV0) {
2454 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*4);
2455 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*4;
2456 return indexToBeReturned;
2458 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*3);
2459 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*3;
2461 Int_t nDaughK0S = daughK0->GetNDaughters();
2463 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*5);
2464 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*5;
2465 return indexToBeReturned;
2468 index1=daughK0->GetDaughter(0);
2469 index2=daughK0->GetDaughter(1);
2470 if(index1<=0 || index2<=0) {
2474 AliAODMCParticle *daughK0S1 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(index1));
2475 AliAODMCParticle *daughK0S2 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(index2));
2476 if (!daughK0S1 || !daughK0S2)
return -999;
2478 Int_t daughK0S1pdg=TMath::Abs(daughK0S1->GetPdgCode());
2479 Int_t daughK0S2pdg=TMath::Abs(daughK0S2->GetPdgCode());
2481 if ( daughK0S1pdg==211 && daughK0S2pdg==211 ) {
2482 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*6);
2483 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*6;
2485 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*5);
2486 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*5;
2490 else if ( daughPdg1==pdgBachelorPi && daughPdg2==pdgLambda ) {
2492 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*7);
2493 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*7;
2495 Int_t nDaughL = daugh2->GetNDaughters();
2497 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*8);
2498 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*8;
2499 return indexToBeReturned;
2502 index1=daugh2->GetDaughter(0);
2503 index2=daugh2->GetDaughter(1);
2504 if(index1<=0 || index2<=0) {
2508 AliAODMCParticle *daughL1 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(index1));
2509 AliAODMCParticle *daughL2 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(index2));
2510 if (!daughL1 || !daughL2)
return -999;
2512 Int_t daughL1pdg=TMath::Abs(daughL1->GetPdgCode());
2513 Int_t daughL2pdg=TMath::Abs(daughL2->GetPdgCode());
2514 if ( (daughL1pdg==211 && daughL2pdg==2212) ||
2515 (daughL2pdg==211 && daughL1pdg==2212) ) {
2516 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*9);
2517 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*9;
2519 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*8);
2520 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*8;
2525 return indexToBeReturned;
2531 Bool_t isCandidateSelectedCuts,
2540 ((
TH2F*)(
fOutputAll->FindObject(histoTitle+
"0")))->Fill(alpha,qT);
2541 if (isCandidateSelectedCuts) {
2557 AliAODv0 * v0part = (AliAODv0*)part->
Getv0();
2558 Bool_t onFlyV0 = v0part->GetOnFlyStatus();
2560 AliAODTrack *bachelor = (AliAODTrack*)part->
GetBachelor();
2563 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(3);
2566 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(4);
2568 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(5);
2571 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(6);
2574 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(7);
2576 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(8);
2578 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(9);
2588 ((TH1F*)(
fOutput->FindObject(
"hSwitchOnCandidates1")))->Fill( -aaa );
2590 ((TH1F*)(
fOutput->FindObject(
"hSwitchOnCandidates1")))->Fill( aaa );
2595 if ((aaa&AliRDHFCutsLctoV0::kLcToK0Spr)==AliRDHFCutsLctoV0::kLcToK0Spr) {
2598 ((TH1F*)(
fOutput->FindObject(
"hSwitchOnCandidates2")))->Fill( -aaa );
2600 ((TH1F*)(
fOutput->FindObject(
"hSwitchOnCandidates2")))->Fill( aaa );
2605 if ((aaa&AliRDHFCutsLctoV0::kLcToK0Spr)==AliRDHFCutsLctoV0::kLcToK0Spr) {
2608 ((TH1F*)(
fOutput->FindObject(
"hSwitchOnCandidates3")))->Fill( -aaa );
2610 ((TH1F*)(
fOutput->FindObject(
"hSwitchOnCandidates3")))->Fill( aaa );
2614 if ((aaa&AliRDHFCutsLctoV0::kLcToK0Spr)==AliRDHFCutsLctoV0::kLcToK0Spr) {
2617 ((TH1F*)(
fOutput->FindObject(
"hSwitchOnCandidates4")))->Fill( -aaa );
2619 ((TH1F*)(
fOutput->FindObject(
"hSwitchOnCandidates4")))->Fill( aaa );
2634 Double_t mk0sPDG = TDatabasePDG::Instance()->GetParticle(310)->Mass();
2635 Double_t mLPDG = TDatabasePDG::Instance()->GetParticle(3122)->Mass();
2640 AliAODTrack *bachelor = (AliAODTrack*)part->
GetBachelor();
2642 AliAODv0 * v0part = (AliAODv0*)part->
Getv0();
2643 Double_t dcaV0ptp = v0part->GetDCA();
2644 Double_t invmassK0S = v0part->MassK0Short();
2645 Double_t invmassLambda = v0part->MassLambda();
2646 Double_t invmassLambdaBar = v0part->MassAntiLambda();
2648 Int_t isLc2LBarpi=0, isLc2Lpi=0;
2650 Int_t isDp2K0Spi=0, isDs2K0SK=0;
2651 Int_t mcLabel2 = -1;
2652 Int_t mcLabel3 = -1;
2653 Int_t isKstar12K0Spi=0, isKstar22K0Spi=0;
2654 Int_t mcLabel4 = -1;
2655 Int_t mcLabel5 = -1;
2660 Int_t pdgCand0 = 4122;
2661 Int_t pdgDgLctoV0bachelor0[2]={2212,310};
2662 Int_t pdgDgV0toDaughters0[2]={211,211};
2663 Int_t mcLabelLc2pK0S = part->
MatchToMC(pdgCand0,pdgDgLctoV0bachelor0[1],pdgDgLctoV0bachelor0,pdgDgV0toDaughters0,mcArray,kTRUE);
2664 AliAODMCParticle *lambdaCpartMC = (AliAODMCParticle*)mcArray->At(mcLabelLc2pK0S);
2665 if (lambdaCpartMC) {
2666 ptCandByMC = lambdaCpartMC->Pt();
2667 yCandByMC = lambdaCpartMC->Y();
2671 Int_t pdgCand = 4122;
2672 Int_t pdgDgLctoV0bachelor[2]={211,3122};
2673 Int_t pdgDgV0toDaughters[2]={2212,211};
2674 mcLabel = part->
MatchToMC(pdgCand,pdgDgLctoV0bachelor[1],pdgDgLctoV0bachelor,pdgDgV0toDaughters,mcArray,kTRUE);
2676 if (bachelor->Charge()<0) isLc2LBarpi=1;
2677 if (bachelor->Charge()>0) isLc2Lpi=1;
2678 AliAODMCParticle *lambdaCpartMC = (AliAODMCParticle*)mcArray->At(mcLabel);
2679 if (lambdaCpartMC) {
2680 ptCandByMC = lambdaCpartMC->Pt();
2681 yCandByMC = lambdaCpartMC->Y();
2685 Int_t pdgCand2 = 411;
2686 Int_t pdgCand3 = 431;
2687 Int_t pdgDgCand2[2]={211,310};
2688 Int_t pdgDgCand3[2]={321,310};
2689 pdgDgV0toDaughters[0]=211;
2690 pdgDgV0toDaughters[1]=211;
2691 mcLabel2 = part->
MatchToMC(pdgCand2,pdgDgCand2[1],pdgDgCand2,pdgDgV0toDaughters,mcArray,kTRUE);
2692 mcLabel3 = part->
MatchToMC(pdgCand3,pdgDgCand3[1],pdgDgCand3,pdgDgV0toDaughters,mcArray,kTRUE);
2695 AliAODMCParticle *lambdaCpartMC = (AliAODMCParticle*)mcArray->At(mcLabel2);
2696 if (lambdaCpartMC) {
2697 ptCandByMC = lambdaCpartMC->Pt();
2698 yCandByMC = lambdaCpartMC->Y();
2703 AliAODMCParticle *lambdaCpartMC = (AliAODMCParticle*)mcArray->At(mcLabel3);
2704 if (lambdaCpartMC) {
2705 ptCandByMC = lambdaCpartMC->Pt();
2706 yCandByMC = lambdaCpartMC->Y();
2710 Int_t pdgCand4 = 313;
2711 Int_t pdgCand5 = 325;
2712 Int_t pdgDgCand4[2]={211,310};
2713 Int_t pdgDgCand5[2]={211,310};
2714 pdgDgV0toDaughters[0]=211;
2715 pdgDgV0toDaughters[1]=211;
2716 mcLabel4 = part->
MatchToMC(pdgCand4,pdgDgCand4[1],pdgDgCand4,pdgDgV0toDaughters,mcArray,kTRUE);
2717 mcLabel5 = part->
MatchToMC(pdgCand5,pdgDgCand5[1],pdgDgCand5,pdgDgV0toDaughters,mcArray,kTRUE);
2720 AliAODMCParticle *lambdaCpartMC = (AliAODMCParticle*)mcArray->At(mcLabel4);
2721 if (lambdaCpartMC) {
2722 ptCandByMC = lambdaCpartMC->Pt();
2723 yCandByMC = lambdaCpartMC->Y();
2728 AliAODMCParticle *lambdaCpartMC = (AliAODMCParticle*)mcArray->At(mcLabel5);
2729 if (lambdaCpartMC) {
2730 ptCandByMC = lambdaCpartMC->Pt();
2731 yCandByMC = lambdaCpartMC->Y();
2736 Int_t isLcByMC = isLc+isLc2LBarpi*2+isLc2Lpi*4+isDp2K0Spi*8+isDs2K0SK*16+isKstar12K0Spi*32+isKstar22K0Spi*64;
2738 Bool_t isMCparticleInFiducialAcceptance = kTRUE;
2739 if (isLc || isLc2LBarpi || isLc2Lpi || isDp2K0Spi || isDs2K0SK || isKstar12K0Spi || isKstar22K0Spi) {
2745 Int_t isLambdaBar = 0;
2748 Int_t pdgDg2prong[2] = {211, 211};
2749 Int_t labelK0S = v0part->MatchToMC(310,mcArray,2,pdgDg2prong);
2750 if (labelK0S>=0) isK0S = 1;
2752 pdgDg2prong[0] = 211;
2753 pdgDg2prong[1] = 2212;
2754 Int_t lambdaLabel = v0part->MatchToMC(3122,mcArray,2,pdgDg2prong);
2755 if (lambdaLabel>=0) {
2756 AliAODMCParticle *lambdaTrack = (AliAODMCParticle*)mcArray->At(lambdaLabel);
2757 if (lambdaTrack->GetPdgCode()==3122) isLambda = 1;
2758 else if (lambdaTrack->GetPdgCode()==-3122) isLambdaBar = 1;
2761 pdgDg2prong[0] = 11;
2762 pdgDg2prong[1] = 11;
2763 Int_t gammaLabel = v0part->MatchToMC(22,mcArray,2,pdgDg2prong);
2764 if (gammaLabel>=0) {
2765 AliAODMCParticle *gammaTrack = (AliAODMCParticle*)mcArray->At(gammaLabel);
2766 if (gammaTrack->GetPdgCode()==22) isGamma = 1;
2770 Int_t isV0ByMC = isK0S+isLambdaBar*2+isLambda*4+isGamma*8;
2772 Int_t isBachelorSelected = (bachelor->TestFilterMask(BIT(4)))*1 + (!(bachelor->TestFilterMask(BIT(4))))*2;
2773 isBachelorSelected += (bachelor->GetLabel()<0)*4 + (bachelor->GetLabel()>=0)*8;
2774 if ( ( !(bachelor->HasPointOnITSLayer(0)) && !(bachelor->HasPointOnITSLayer(1)) ) )
2775 isBachelorSelected += 16;
2777 if ( bachelor->HasPointOnITSLayer(0) && !(bachelor->HasPointOnITSLayer(1)) )
2778 isBachelorSelected += 32;
2779 else if ( !(bachelor->HasPointOnITSLayer(0)) && bachelor->HasPointOnITSLayer(1) )
2780 isBachelorSelected += 64;
2782 isBachelorSelected += 128;
2788 Int_t areV0daughtersSelected = (v0pos->TestFilterMask(BIT(4)))*1 + (!(v0pos->TestFilterMask(BIT(4))))*2;
2789 areV0daughtersSelected += (v0pos->GetLabel()<0)*4 + (v0pos->GetLabel()>=0)*8;
2790 areV0daughtersSelected += (v0pos->HasPointOnITSLayer(0))*16;
2791 areV0daughtersSelected += (v0pos->HasPointOnITSLayer(1))*32;
2792 areV0daughtersSelected += (v0pos->HasPointOnITSLayer(2))*64;
2793 areV0daughtersSelected += (v0pos->HasPointOnITSLayer(3))*128;
2794 areV0daughtersSelected += (v0pos->HasPointOnITSLayer(4))*256;
2795 areV0daughtersSelected += (v0pos->HasPointOnITSLayer(5))*512;
2797 areV0daughtersSelected += (v0neg->TestFilterMask(BIT(4)))*1024 + (!(v0neg->TestFilterMask(BIT(4))))*2048;
2798 areV0daughtersSelected += (v0neg->GetLabel()<0)*4096 + (v0neg->GetLabel()>=0)*8192;
2799 areV0daughtersSelected += (v0neg->HasPointOnITSLayer(0))*16384;
2800 areV0daughtersSelected += (v0neg->HasPointOnITSLayer(1))*32768;
2801 areV0daughtersSelected += (v0neg->HasPointOnITSLayer(2))*65536;
2802 areV0daughtersSelected += (v0neg->HasPointOnITSLayer(3))*131072;
2803 areV0daughtersSelected += (v0neg->HasPointOnITSLayer(4))*262144;
2804 areV0daughtersSelected += (v0neg->HasPointOnITSLayer(5))*524288;
2828 Int_t flagToCheckCandidate = 1*(TMath::Abs(invmassK0S-mk0sPDG)<=0.050);
2829 flagToCheckCandidate+=2*((TMath::Abs(invmassLambdaBar-mLPDG)<=0.050) && (bachelor->Charge()<0));
2830 flagToCheckCandidate+=4*((TMath::Abs(invmassLambda-mLPDG)<=0.050) && (bachelor->Charge()>0));
2831 flagToCheckCandidate+=8*((TMath::Abs(invmassLambdaBar-mLPDG)<=0.050) && (bachelor->Charge()>0));
2832 flagToCheckCandidate+=16*((TMath::Abs(invmassLambda-mLPDG)<=0.050) && (bachelor->Charge()<0));
2892 Double_t xVtxLc=0, yVtxLc=0, zVtxLc=0;
2894 Double_t pxVtxBachelor=0, pyVtxBachelor=0, pzVtxBachelor=0;
2895 dcaForLc =
PropagateToDCA(v0part,bachelor,
fBzkG, xVtxLc, yVtxLc, zVtxLc, pxVtxBachelor, pyVtxBachelor, pzVtxBachelor);
2897 Int_t pdgCand0 = 4122;
2898 Int_t pdgDgLctoV0bachelor0[2]={2212,310};
2899 Int_t pdgDgV0toDaughters0[2]={211,211};
2900 Int_t mcLabel0 = part->
MatchToMC(pdgCand0,pdgDgLctoV0bachelor0[1],pdgDgLctoV0bachelor0,pdgDgV0toDaughters0,mcArray,kTRUE);
2901 AliAODMCParticle *partLc =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(mcLabel0));
2903 AliAODMCParticle *partLcDaug0 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(partLc->GetDaughter(0)));
2905 xLcMC=partLcDaug0->Xv(), yLcMC=partLcDaug0->Yv(), zLcMC=partLcDaug0->Zv();
2908 }
else if (isLc2LBarpi || isLc2Lpi) {
2909 AliAODMCParticle *partLc =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(mcLabel));
2910 AliAODMCParticle *partLcDaug0 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(partLc->GetDaughter(0)));
2911 xLcMC=partLcDaug0->Xv(), yLcMC=partLcDaug0->Yv(), zLcMC=partLcDaug0->Zv();
2912 }
else if (isDp2K0Spi) {
2913 AliAODMCParticle *partLc =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(mcLabel2));
2914 AliAODMCParticle *partLcDaug0 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(partLc->GetDaughter(0)));
2915 xLcMC=partLcDaug0->Xv(), yLcMC=partLcDaug0->Yv(), zLcMC=partLcDaug0->Zv();
2916 }
else if (isDs2K0SK) {
2917 AliAODMCParticle *partLc =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(mcLabel3));
2918 AliAODMCParticle *partLcDaug0 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(partLc->GetDaughter(0)));
2919 xLcMC=partLcDaug0->Xv(), yLcMC=partLcDaug0->Yv(), zLcMC=partLcDaug0->Zv();
2920 }
else if (isKstar12K0Spi) {
2921 AliAODMCParticle *partLc =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(mcLabel4));
2922 AliAODMCParticle *partLcDaug0 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(partLc->GetDaughter(0)));
2923 xLcMC=partLcDaug0->Xv(), yLcMC=partLcDaug0->Yv(), zLcMC=partLcDaug0->Zv();
2924 }
else if (isKstar22K0Spi) {
2925 AliAODMCParticle *partLc =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(mcLabel5));
2926 AliAODMCParticle *partLcDaug0 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(partLc->GetDaughter(0)));
2927 xLcMC=partLcDaug0->Xv(), yLcMC=partLcDaug0->Yv(), zLcMC=partLcDaug0->Zv();
2970 if (bachelor->GetLabel()!=-1) {
2971 AliAODMCParticle *partBachelor =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(TMath::Abs(bachelor->GetLabel())));
2974 if (bachelor->GetLabel()!=-1 &&
2975 v0pos->GetLabel()!=-1 &&
2976 v0neg->GetLabel()!=-1) {
2978 Int_t dgLabels[ndg]={TMath::Abs(bachelor->GetLabel()),
2979 TMath::Abs(v0pos->GetLabel()),
2980 TMath::Abs(v0neg->GetLabel())};
2983 Int_t absLabelMother=-1;
2986 dgLabels,ndg,ndgCk,pdgDg,absLabelMother,nDauCand);
2988 if (v0pos->GetLabel()!=-1) {
2989 AliAODMCParticle *part1 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(TMath::Abs(v0pos->GetLabel())));
2992 if (v0neg->GetLabel()!=-1) {
2993 AliAODMCParticle *part2 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(TMath::Abs(v0neg->GetLabel())));
2996 if (v0pos->GetLabel()!=-1 &&
2997 v0neg->GetLabel()!=-1) {
2999 Int_t dgLabels[ndg]={TMath::Abs(v0pos->GetLabel()),
3000 TMath::Abs(v0neg->GetLabel())};
3003 Int_t absLabelMother=-1;
3006 dgLabels,ndg,ndgCk,pdgDg,absLabelMother,nDauCand);
3011 AliInputEventHandler *inputHandler=(AliInputEventHandler*)mgr->GetInputEventHandler();
3012 AliPIDResponse *pidResponse=inputHandler->GetPIDResponse();
3015 AliPIDCombined *objectPIDCombined=
new AliPIDCombined;
3016 objectPIDCombined->SetDefaultTPCPriors();
3017 objectPIDCombined->SetDetectorMask(AliPIDResponse::kDetTPC+AliPIDResponse::kDetTOF);
3019 Double_t probTPCTOF[AliPID::kSPECIES]={-1.};
3020 UInt_t detUsed = objectPIDCombined->ComputeProbabilities(bachelor, pidResponse, probTPCTOF);
3025 if (detUsed == (
UInt_t)objectPIDCombined->GetDetectorMask() ) {
3026 AliDebug(2, Form(
"We have found the detector mask for TOF + TPC: probProton will be set to %f", probTPCTOF[
AliPID::kProton]));
3032 objectPIDCombined->SetDetectorMask(AliPIDResponse::kDetTPC);
3033 AliDebug(2,
"We did not find the detector mask for TOF + TPC, let's see only TPC");
3034 detUsed = objectPIDCombined->ComputeProbabilities(bachelor, pidResponse, probTPCTOF);
3035 AliDebug(2,Form(
" detUsed (TPC case) = %d", detUsed));
3036 if (detUsed == (
UInt_t)objectPIDCombined->GetDetectorMask()) {
3040 AliDebug(2, Form(
"TPC only worked: probProton will be set to %f", probTPCTOF[
AliPID::kProton]));
3043 AliDebug(2,
"Only TPC did not work...");
3046 objectPIDCombined->SetDetectorMask(AliPIDResponse::kDetTPC+AliPIDResponse::kDetTOF);
3048 AliDebug(2, Form(
"probProton = %f", probProton));
3053 Double_t pidTPC[AliPID::kSPECIES]={-1.};
3054 Double_t pidTOF[AliPID::kSPECIES]={-1.};
3055 Int_t respTPC = pidResponse->ComputePIDProbability(AliPIDResponse::kDetTPC, bachelor, AliPID::kSPECIES, pidTPC);
3056 Int_t respTOF = pidResponse->ComputePIDProbability(AliPIDResponse::kDetTOF, bachelor, AliPID::kSPECIES, pidTOF);
3057 if (respTPC == AliPIDResponse::kDetPidOk) probProtonTPC = pidTPC[
AliPID::kProton];
3058 if (respTOF == AliPIDResponse::kDetPidOk) probProtonTOF = pidTOF[
AliPID::kProton];
3068 delete objectPIDCombined;
3081 const char* nameoutput = GetOutputSlot(4)->GetContainer()->GetName();
3087 fCandidateVariableNames[ 0]=
"isLcByMC";
3088 fCandidateVariableNames[ 1]=
"isV0ByMC";
3089 fCandidateVariableNames[ 2]=
"flagToCheckBachelor";
3090 fCandidateVariableNames[ 3]=
"flagToCheckV0daughters";
3091 fCandidateVariableNames[ 4]=
"flagToCheckCandidate";
3092 fCandidateVariableNames[ 5]=
"massLc2K0Sp";
3093 fCandidateVariableNames[ 6]=
"massLc2Lambdapi";
3094 fCandidateVariableNames[ 7]=
"massD2K0Spi";
3095 fCandidateVariableNames[ 8]=
"massDS2K0SK";
3096 fCandidateVariableNames[ 9]=
"massK0S";
3097 fCandidateVariableNames[10]=
"massLambda";
3098 fCandidateVariableNames[11]=
"massLambdaBar";
3099 fCandidateVariableNames[12]=
"massGamma";
3100 fCandidateVariableNames[13]=
"dcaLcptp";
3101 fCandidateVariableNames[14]=
"dcaV0ptp";
3102 fCandidateVariableNames[15]=
"tImpParBach";
3103 fCandidateVariableNames[16]=
"tImpParV0";
3104 fCandidateVariableNames[17]=
"dcaV0postoPV";
3105 fCandidateVariableNames[18]=
"dcaV0negtoPV";
3106 fCandidateVariableNames[19]=
"cosPALc";
3107 fCandidateVariableNames[20]=
"cosPAK0S";
3108 fCandidateVariableNames[21]=
"rhoV0";
3109 fCandidateVariableNames[22]=
"nSigmaITSpr";
3110 fCandidateVariableNames[23]=
"nSigmaITSpi";
3111 fCandidateVariableNames[24]=
"nSigmaITSka";
3112 fCandidateVariableNames[25]=
"nSigmaTPCpr";
3113 fCandidateVariableNames[26]=
"nSigmaTPCpi";
3114 fCandidateVariableNames[27]=
"nSigmaTPCka";
3115 fCandidateVariableNames[28]=
"nSigmaTOFpr";
3116 fCandidateVariableNames[29]=
"nSigmaTOFpi";
3117 fCandidateVariableNames[30]=
"nSigmaTOFka";
3118 fCandidateVariableNames[31]=
"yLc";
3119 fCandidateVariableNames[32]=
"etaBach";
3120 fCandidateVariableNames[33]=
"etaV0pos";
3121 fCandidateVariableNames[34]=
"etaV0neg";
3122 fCandidateVariableNames[35]=
"LcP";
3123 fCandidateVariableNames[36]=
"LcPt";
3124 fCandidateVariableNames[37]=
"v0P";
3125 fCandidateVariableNames[38]=
"v0Pt";
3126 fCandidateVariableNames[39]=
"bachelorP";
3127 fCandidateVariableNames[40]=
"bachelorPt";
3128 fCandidateVariableNames[41]=
"V0positiveP";
3129 fCandidateVariableNames[42]=
"V0positivePt";
3130 fCandidateVariableNames[43]=
"V0negativeP";
3131 fCandidateVariableNames[44]=
"V0negativePt";
3132 fCandidateVariableNames[45]=
"decayLengthLc";
3133 fCandidateVariableNames[46]=
"decayLengthV0";
3134 fCandidateVariableNames[47]=
"cosPALcXY";
3135 fCandidateVariableNames[48]=
"cosPAV0XY";
3136 fCandidateVariableNames[49]=
"decayLengthLcXY";
3137 fCandidateVariableNames[50]=
"decayLengthV0XY";
3138 fCandidateVariableNames[51]=
"normalizedDecayLengthLc";
3139 fCandidateVariableNames[52]=
"normalizedDecayLengthV0";
3140 fCandidateVariableNames[53]=
"normalizedDecayLengthXYLc";
3141 fCandidateVariableNames[54]=
"normalizedDecayLengthXYV0";
3142 fCandidateVariableNames[55]=
"newLcDCA";
3144 fCandidateVariableNames[56]=
"cosThetaStarBachelor";
3145 fCandidateVariableNames[57]=
"cosThetaStarV0";
3146 fCandidateVariableNames[58]=
"etaV0";
3147 fCandidateVariableNames[59]=
"yV0";
3148 fCandidateVariableNames[60]=
"bachelorCharge";
3149 fCandidateVariableNames[61]=
"isMCparticleInFiducialAcceptance";
3151 fCandidateVariableNames[62]=
"massKstar12K0Spi";
3152 fCandidateVariableNames[63]=
"massKstar22K0Spi";
3153 fCandidateVariableNames[64]=
"pdgBachelor";
3154 fCandidateVariableNames[65]=
"pdgCandidate";
3155 fCandidateVariableNames[66]=
"pdgV0pos";
3156 fCandidateVariableNames[67]=
"pdgV0neg";
3157 fCandidateVariableNames[68]=
"pdgV0Candidate";
3158 fCandidateVariableNames[69]=
"startTimeMask";
3160 fCandidateVariableNames[70]=
"combinedProtonProb";
3161 fCandidateVariableNames[71]=
"TPCProtonProb";
3162 fCandidateVariableNames[72]=
"TOFProtonProb";
3163 fCandidateVariableNames[73]=
"checkLcOrigin";
3165 fCandidateVariableNames[74]=
"qtProng0V0";
3168 fCandidateVariableNames[75]=
"xVtxLcBad";
3169 fCandidateVariableNames[76]=
"yVtxLcBad";
3170 fCandidateVariableNames[77]=
"zVtxLcBad";
3171 fCandidateVariableNames[78]=
"xVtxLcGood";
3172 fCandidateVariableNames[79]=
"yVtxLcGood";
3173 fCandidateVariableNames[80]=
"zVtxLcGood";
3174 fCandidateVariableNames[81]=
"xVtxLcMC";
3175 fCandidateVariableNames[82]=
"yVtxLcMC";
3176 fCandidateVariableNames[83]=
"zVtxLcMC";
3177 fCandidateVariableNames[84]=
"pxVtxBachelorBad";
3178 fCandidateVariableNames[85]=
"pyVtxBachelorBad";
3179 fCandidateVariableNames[86]=
"pxVtxBachelorGood";
3180 fCandidateVariableNames[87]=
"pyVtxBachelorGood";
3181 fCandidateVariableNames[88]=
"pzVtxBachelorGood";
3182 fCandidateVariableNames[89]=
"pxVtxV0";
3183 fCandidateVariableNames[90]=
"pyVtxV0";
3184 fCandidateVariableNames[91]=
"pzVtxV0";
3185 fCandidateVariableNames[92]=
"xPvtx";
3186 fCandidateVariableNames[93]=
"yPvtx";
3187 fCandidateVariableNames[94]=
"zPvtx";
3203 fCEvents =
new TH1F(
"fCEvents",
"conter",19,0,19);
3205 fCEvents->GetXaxis()->SetBinLabel(1,
"X1");
3206 fCEvents->GetXaxis()->SetBinLabel(2,
"Analyzed events");
3207 fCEvents->GetXaxis()->SetBinLabel(3,
"AliAODVertex exists");
3208 fCEvents->GetXaxis()->SetBinLabel(4,
"CascadesHF exists");
3209 fCEvents->GetXaxis()->SetBinLabel(5,
"MCarray exists");
3210 fCEvents->GetXaxis()->SetBinLabel(6,
"MCheader exists");
3211 fCEvents->GetXaxis()->SetBinLabel(7,
"GetNContributors()>0");
3212 fCEvents->GetXaxis()->SetBinLabel(8,
"IsEventSelected");
3213 fCEvents->GetXaxis()->SetBinLabel(9,
"triggerClass!=CINT1");
3214 fCEvents->GetXaxis()->SetBinLabel(10,
"triggerMask!=kAnyINT");
3215 fCEvents->GetXaxis()->SetBinLabel(11,
"triggerMask!=kAny");
3216 fCEvents->GetXaxis()->SetBinLabel(12,
"vtxTitle.Contains(Z)");
3217 fCEvents->GetXaxis()->SetBinLabel(13,
"vtxTitle.Contains(3D)");
3218 fCEvents->GetXaxis()->SetBinLabel(14,
"vtxTitle.Doesn'tContain(Z-3D)");
3220 fCEvents->GetXaxis()->SetBinLabel(16,
"!IsEventSelected");
3221 fCEvents->GetXaxis()->SetBinLabel(17,
"triggerMask!=kAnyINT || triggerClass!=CINT1");
3223 fCEvents->GetXaxis()->SetBinLabel(19,
"Re-Fill Fail");
3225 fCEvents->GetYaxis()->SetTitle(
"counts");
3231 fillthis=
"histMcStatLc";
3232 TH1F* mcStatisticLc =
new TH1F(fillthis.Data(),
"#Lambda_{c} generated and their decays",21,-10.5,10.5);
3238 fillthis=
"histoprotonBachSigmaVspTOF";
3239 TH2F *hprotonBachSigmaVspTOF=
new TH2F(fillthis.Data(),fillthis.Data(),300,0.,30.,100,-5.,5.);
3242 fOutput->Add(hprotonBachSigmaVspTOF);
3246 fillthis=
"histoprotonBachSigmaVspTPC";
3247 TH2F *hprotonBachSigmaVspTPC=
new TH2F(fillthis.Data(),fillthis.Data(),300,0.,30.,100,-5.,5.);
3250 fOutput->Add(hprotonBachSigmaVspTPC);
3256 fillthis=
"histoprotonBachSigmaVspTOFsgn";
3257 TH2F *hprotonBachSigmaVspTOFsgn=
new TH2F(fillthis.Data(),fillthis.Data(),300,0.,30.,100,-5.,5.);
3260 fOutput->Add(hprotonBachSigmaVspTOFsgn);
3264 fillthis=
"histoprotonBachSigmaVspTPCsgn";
3265 TH2F *hprotonBachSigmaVspTPCsgn=
new TH2F(fillthis.Data(),fillthis.Data(),300,0.,30.,100,-5.,5.);
3268 fOutput->Add(hprotonBachSigmaVspTPCsgn);
3273 fillthis=
"histoprotonBachSigmaVspTOFbkg";
3274 TH2F *hprotonBachSigmaVspTOFbkg=
new TH2F(fillthis.Data(),fillthis.Data(),300,0.,30.,100,-5.,5.);
3277 fOutput->Add(hprotonBachSigmaVspTOFbkg);
3281 fillthis=
"histoprotonBachSigmaVspTPCbkg";
3282 TH2F *hprotonBachSigmaVspTPCbkg=
new TH2F(fillthis.Data(),fillthis.Data(),300,0.,30.,100,-5.,5.);
3285 fOutput->Add(hprotonBachSigmaVspTPCbkg);
3291 TH1F *hZ2 =
new TH1F(
"hZ2",
"",100,-50.,50.);
3293 TH1F *hZ3 =
new TH1F(
"hZ3",
"",100,-50.,50.);
3295 TH1F *hZ4 =
new TH1F(
"hZ4",
"",100,-50.,50.);
3297 TH1F *hZ5 =
new TH1F(
"hZ5",
"",100,-50.,50.);
3299 TH1F *hZ6 =
new TH1F(
"hZ6",
"",100,-50.,50.);
3301 TH1F *hZ7 =
new TH1F(
"hZ7",
"",100,-50.,50.);
3303 TH1F *hZ8 =
new TH1F(
"hZ8",
"",100,-50.,50.);
3305 TH1F *hZ9 =
new TH1F(
"hZ9",
"",100,-50.,50.);
3307 TH1F *hZ10 =
new TH1F(
"hZ10",
"",100,-50.,50.);
3309 TH1F *hZ11 =
new TH1F(
"hZ11",
"",100,-50.,50.);
3311 TH1F *hZ12 =
new TH1F(
"hZ12",
"",100,-50.,50.);
3313 TH1F *hZ13 =
new TH1F(
"hZ13",
"",100,-50.,50.);
3315 TH1F *hZ14 =
new TH1F(
"hZ14",
"",100,-50.,50.);
3317 TH1F *hZ15 =
new TH1F(
"hZ15",
"",100,-50.,50.);
3319 TH1F *hZ16 =
new TH1F(
"hZ16",
"",100,-50.,50.);
3323 TH1F *hCandidateSelection =
new TH1F(
"hCandidateSelection",
"",10,-0.5,9.5);
3324 hCandidateSelection->GetXaxis()->SetBinLabel(1,
"IsEventSelected");
3325 hCandidateSelection->GetXaxis()->SetBinLabel(2,
"IsSecondaryVtx");
3326 hCandidateSelection->GetXaxis()->SetBinLabel(3,
"V0toPosNeg");
3327 hCandidateSelection->GetXaxis()->SetBinLabel(4,
"offlineV0");
3328 hCandidateSelection->GetXaxis()->SetBinLabel(5,
"isInFiducialAcceptance");
3329 hCandidateSelection->GetXaxis()->SetBinLabel(6,
"analCuts::kTracks");
3330 hCandidateSelection->GetXaxis()->SetBinLabel(7,
"analCuts::kCandidateNoPID");
3331 hCandidateSelection->GetXaxis()->SetBinLabel(8,
"analCuts::kPID");
3332 hCandidateSelection->GetXaxis()->SetBinLabel(9,
"analCuts::kCandidateWithPID");
3333 hCandidateSelection->GetXaxis()->SetBinLabel(10,
"analCuts::kAll");
3334 fOutput->Add(hCandidateSelection);
3336 TH1F *hEventsWithCandidates =
new TH1F(
"hEventsWithCandidates",
"conter",11,5.5,16.5);
3337 hEventsWithCandidates->GetXaxis()->SetBinLabel(1,
"GetNContributors()>0");
3338 hEventsWithCandidates->GetXaxis()->SetBinLabel(2,
"IsEventSelected");
3339 hEventsWithCandidates->GetXaxis()->SetBinLabel(3,
"triggerClass!=CINT1");
3340 hEventsWithCandidates->GetXaxis()->SetBinLabel(4,
"triggerMask!=kAnyINT");
3341 hEventsWithCandidates->GetXaxis()->SetBinLabel(5,
"triggerMask!=kAny");
3342 hEventsWithCandidates->GetXaxis()->SetBinLabel(6,
"vtxTitle.Contains(Z)");
3343 hEventsWithCandidates->GetXaxis()->SetBinLabel(7,
"vtxTitle.Contains(3D)");
3344 hEventsWithCandidates->GetXaxis()->SetBinLabel(8,
"vtxTitle.Doesn'tContain(Z-3D)");
3345 hEventsWithCandidates->GetXaxis()->SetBinLabel(9,Form(
"zVtx<=%2.0fcm",
fAnalCuts->
GetMaxVtxZ()));
3346 hEventsWithCandidates->GetXaxis()->SetBinLabel(10,
"!IsEventSelected");
3347 hEventsWithCandidates->GetXaxis()->SetBinLabel(11,
"triggerMask!=kAnyINT || triggerClass!=CINT1");
3348 fOutput->Add(hEventsWithCandidates);
3352 TH1F *hZ6a =
new TH1F(
"hZ6a",
"",100,-50.,50.);
3354 TH1F *hZ7a =
new TH1F(
"hZ7a",
"",100,-50.,50.);
3356 TH1F *hZ8a =
new TH1F(
"hZ8a",
"",100,-50.,50.);
3358 TH1F *hZ9a =
new TH1F(
"hZ9a",
"",100,-50.,50.);
3360 TH1F *hZ10a =
new TH1F(
"hZ10a",
"",100,-50.,50.);
3362 TH1F *hZ11a =
new TH1F(
"hZ11a",
"",100,-50.,50.);
3364 TH1F *hZ12a =
new TH1F(
"hZ12a",
"",100,-50.,50.);
3366 TH1F *hZ13a =
new TH1F(
"hZ13a",
"",100,-50.,50.);
3368 TH1F *hZ14a =
new TH1F(
"hZ14a",
"",100,-50.,50.);
3370 TH1F *hZ15a =
new TH1F(
"hZ15a",
"",100,-50.,50.);
3372 TH1F *hZ16a =
new TH1F(
"hZ16a",
"",100,-50.,50.);
3376 TH1F *hSwitchOnCandidates1 =
new TH1F(
"hSwitchOnCandidates1",
"",15,-7.5,7.5);
3377 fOutput->Add(hSwitchOnCandidates1);
3378 TH1F *hSwitchOnCandidates2 =
new TH1F(
"hSwitchOnCandidates2",
"",15,-7.5,7.5);
3379 fOutput->Add(hSwitchOnCandidates2);
3380 TH1F *hSwitchOnCandidates3 =
new TH1F(
"hSwitchOnCandidates3",
"",15,-7.5,7.5);
3381 fOutput->Add(hSwitchOnCandidates3);
3382 TH1F *hSwitchOnCandidates4 =
new TH1F(
"hSwitchOnCandidates4",
"",15,-7.5,7.5);
3383 fOutput->Add(hSwitchOnCandidates4);
3404 AliAODTrack *bachelor = (AliAODTrack*)part->
GetBachelor();
3408 AliAODv0 *v0part = (AliAODv0*)part->
Getv0();
3412 Double_t invmassK0S = v0part->MassK0Short();
3419 if (!appendthis.Contains(
"SgnC") && !appendthis.Contains(
"SgnB") && !appendthis.Contains(
"SgnNoQ")) {
3420 fillthis=
"histpK0Svsp"+appendthis;
3423 ((
TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(momBach,momK0S);
3424 if (isBachelorID) ((
TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(momBach,momK0S);
3428 fillthis=
"histLcMassByK0S"+appendthis;
3431 ((
TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(invmassLc,lambdacpt);
3432 if (isBachelorID)((
TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(invmassLc,lambdacpt);
3435 if (!appendthis.Contains(
"SgnC") && !appendthis.Contains(
"SgnB") && !appendthis.Contains(
"SgnNoQ")) {
3436 fillthis=
"histK0SMass"+appendthis;
3440 ((
TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,invmassK0S);
3441 if (isBachelorID) ((
TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,invmassK0S);
3446 fillthis=
"histptK0S"+appendthis;
3450 ((
TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,ptK0S);
3451 if (isBachelorID)((
TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,ptK0S);
3454 fillthis=
"histptP"+appendthis;
3458 ((
TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,ptBach);
3459 if (isBachelorID)((
TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,ptBach);
3462 fillthis=
"histptPip"+appendthis;
3466 ((
TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,ptV0pos);
3467 if (isBachelorID)((
TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,ptV0pos);
3470 fillthis=
"histptPim"+appendthis;
3474 ((
TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,ptV0neg);
3475 if (isBachelorID)((
TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,ptV0neg);
3478 if (!appendthis.Contains(
"SgnC") && !appendthis.Contains(
"SgnB") && !appendthis.Contains(
"SgnNoQ")) {
3479 fillthis=
"histLambdaMass"+appendthis;
3483 ((
TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,v0part->MassLambda());
3484 if (isBachelorID)((
TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,v0part->MassLambda());
3487 fillthis=
"histLambdaBarMass"+appendthis;
3491 ((
TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,v0part->MassAntiLambda());
3492 if (isBachelorID)((
TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,v0part->MassAntiLambda());
3495 fillthis=
"histGammaMass"+appendthis;
3499 ((
TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,v0part->InvMass2Prongs(0,1,11,11));
3500 if (isBachelorID)((
TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,v0part->InvMass2Prongs(0,1,11,11));
3504 fillthis=
"histD0K0S"+appendthis;
3508 ((
TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,part->Getd0Prong(1));
3509 if (isBachelorID)((
TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,part->Getd0Prong(1));
3512 fillthis=
"histD0P"+appendthis;
3516 ((
TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,part->Getd0Prong(0));
3517 if (isBachelorID)((
TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,part->Getd0Prong(0));
3520 fillthis=
"histCosPAK0S"+appendthis;
3544 bachelor->PxPyPz(pxpypz);
3545 bachelor->XvYvZv(xyz);
3546 bachelor->GetCovarianceXYZPxPyPz(cv);
3547 sign=bachelor->Charge();
3548 AliExternalTrackParam *t =
new AliExternalTrackParam(xyz,pxpypz,cv,sign);
3550 Double_t alpha=t->GetAlpha(), cs1=TMath::Cos(alpha), sn1=TMath::Sin(alpha);
3554 Double_t x1=xyz[0], y1=xyz[1], z1=xyz[2];
3555 Double_t px1=pxpypz[0], py1=pxpypz[1], pz1=pxpypz[2];
3559 y2=v->DecayVertexV0Y(),
3560 z2=v->DecayVertexV0Z();
3588 Double_t dd=
Det(x2-x1,y2-y1,z2-z1,px1,py1,pz1,px2,py2,pz2);
3593 Double_t dca=TMath::Abs(dd)/TMath::Sqrt(ax*ax + ay*ay + az*az);
3596 Double_t t1 =
Det(x2-x1,y2-y1,z2-z1,px2,py2,pz2,ax,ay,az)/
3597 Det(px1,py1,pz1,px2,py2,pz2,ax,ay,az);
3598 x1 += px1*t1; y1 += py1*t1; z1 += pz1*t1;
3602 if (!t->PropagateTo(rho1,b)) {
3603 Error(
"PropagateToDCA",
"Propagation failed !");
3608 Double_t pBachelorDCA[3]; t->GetPxPyPz(pBachelorDCA);
3609 pxVtxBachelor=pBachelorDCA[0], pyVtxBachelor=pBachelorDCA[1], pzVtxBachelor=pBachelorDCA[2];
3614 Double_t t2 =
Det(x1-x2,y1-y2,z1-z2,px1,py1,pz1,ax,ay,az)/
3615 Det(px2,py2,pz2,px1,py1,pz1,ax,ay,az);
3616 x2 += px2*t2; y2 += py2*t2; z2 += pz2*t2;
3620 xVtxLc = 0.5*(x1+x2);
3621 yVtxLc = 0.5*(y1+y2);
3622 zVtxLc = 0.5*(z1+z2);
3637 const double kSafe = 1e-5;
3638 Double_t radPos2 = xyz[0]*xyz[0]+xyz[1]*xyz[1];
3640 if (radPos2 < radMax*radMax) {
3641 alpha = TMath::ATan2(pxpypz[1],pxpypz[0]);
3643 Float_t phiPos = TMath::Pi()+TMath::ATan2(-xyz[1], -xyz[0]);
3645 TMath::DegToRad()*(20*((((
Int_t)(phiPos*TMath::RadToDeg()))/20))+10);
3648 Double_t cs=TMath::Cos(alpha), sn=TMath::Sin(alpha);
3650 if (TMath::Abs(sn)<2*kSafe) {
3651 if (alpha>0) alpha += alpha< TMath::Pi()/2. ? 2*kSafe : -2*kSafe;
3652 else alpha += alpha>-TMath::Pi()/2. ? -2*kSafe : 2*kSafe;
3653 cs=TMath::Cos(alpha);
3654 sn=TMath::Sin(alpha);
3656 else if (TMath::Abs(cs)<2*kSafe) {
3657 if (alpha>0) alpha += alpha> TMath::Pi()/2. ? 2*kSafe : -2*kSafe;
3658 else alpha += alpha>-TMath::Pi()/2. ? 2*kSafe : -2*kSafe;
3659 cs=TMath::Cos(alpha);
3660 sn=TMath::Sin(alpha);
3674 return a00*a11 - a01*a10;
3685 return a00*
Det(a11,a12,a21,a22)-a01*
Det(a10,a12,a20,a22)+a02*
Det(a10,a11,a20,a21);
3690 TClonesArray *mcArray)
3698 AliAODv0 *theV0 =
dynamic_cast<AliAODv0*
>(candidate->
Getv0());
3699 AliVTrack *trk =
dynamic_cast<AliVTrack*
>(candidate->
GetBachelor());
3700 if (!trk || !theV0)
return -1;
3702 if (trk->GetLabel()==-1)
return -1;
3703 Int_t bachLabels = TMath::Abs(trk->GetLabel());
3704 AliAODMCParticle*bachelorMC =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(bachLabels));
3705 if (!bachelorMC)
return -1;
3706 if (TMath::Abs(bachelorMC->GetPdgCode())!=2212)
return -1;
3707 Int_t indexMotherBach = bachelorMC->GetMother();
3708 if (indexMotherBach==-1)
return -1;
3710 Int_t pdgDg2prong[2] = {211,211};
3711 Int_t lab2Prong = theV0->MatchToMC(310,mcArray,2,pdgDg2prong);
3712 if(lab2Prong<0)
return -1;
3713 AliAODMCParticle*partK0S =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(lab2Prong));
3714 if (!partK0S)
return -1;
3715 Int_t indexMotherK0S = partK0S->GetMother();
3716 if (indexMotherK0S==-1)
return -1;
3717 AliAODMCParticle*partK0 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(indexMotherK0S));
3718 if (!partK0)
return -1;
3719 Int_t indexMotherK0 = partK0->GetMother();
3720 if (indexMotherK0==-1)
return -1;
3722 if (indexMotherBach!=indexMotherK0)
return -1;
3724 AliAODMCParticle*partLc =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(indexMotherK0));
3725 if (!partLc)
return -1;
3726 Int_t ndg2 = partLc->GetDaughter(1)-partLc->GetDaughter(0)+1;
3727 if (ndg2==2)
return -1;
3729 TString stringaCheck = Form(
">>>>>>>> %d -> ",partLc->GetPdgCode());
3730 for(
Int_t ii=0; ii<ndg2; ii++) {
3731 AliAODMCParticle* partDau=(AliAODMCParticle*)(mcArray->At(partLc->GetDaughter(0)+ii));
3732 stringaCheck.Append(Form(
" %d",partDau->GetPdgCode()));
3736 return indexMotherBach;
3750 Int_t lab=-1,labMother=-1,pdgMother=0;
3751 AliAODMCParticle *part=0;
3752 AliAODMCParticle *mother=0;
3756 for(
Int_t i=0; i<ndg; i++) labelMother[i] =
new TArrayI(0);
3757 for(
Int_t i=0; i<ndg; i++) {
3758 lab = TMath::Abs(dgLabels[i]);
3760 AliDebug(2,Form(
"daughter with negative label %d",lab));
3761 delete [] labelMother;
3764 part = (AliAODMCParticle*)mcArray->At(lab);
3766 AliDebug(2,
"no MC particle");
3767 delete [] labelMother;
3772 while(mother->GetMother()>=0) {
3773 labMother=mother->GetMother();
3774 mother = (AliAODMCParticle*)mcArray->At(labMother);
3776 AliDebug(2,
"no MC mother particle");
3779 pdgMother = TMath::Abs(mother->GetPdgCode());
3780 if (pdgMother<10 || (pdgMother>18 && pdgMother<111)) {
3783 labelMother[i]->Set(labelMother[i]->GetSize()+1);
3784 labelMother[i]->AddAt(labMother,labelMother[i]->GetSize()-1);
3791 for(
Int_t i=0; i<ndg; i++) {
3792 AliAODMCParticle*part0 = (AliAODMCParticle*)mcArray->At(TMath::Abs(dgLabels[i]));
3793 stringaCheck.Append(Form(
"part[%d]->GetLabel()=%d(%d) | ",i,dgLabels[i],part0->GetPdgCode()));
3794 stringaCheck.Append(Form(
"labelMother[%d] = ",i));
3795 for (
Int_t jj=0;jj<labelMother[i]->GetSize(); jj++)
3796 stringaCheck.Append(Form(
"%d, ",labelMother[i]->At(jj)));
3798 AliDebug(2,Form(
"%s \n",stringaCheck.Data()));
3799 Int_t pdgToBeReturned=0;
3803 pdgDg =
new Int_t[ndgCk];
3804 for (
Int_t index=1; index<ndg; index++) {
3806 for (
Int_t jj=0;jj<labelMother[index]->GetSize(); jj++) {
3807 for (
Int_t ii=0;ii<labelMother[0]->GetSize(); ii++) {
3808 if (labelMother[0]->At(ii)==labelMother[index]->At(jj) &&
3809 labelMother[0]->At(ii)!=0 && labelMother[0]->At(ii)!=1 && !found) {
3810 mother = (AliAODMCParticle*)mcArray->At(labelMother[0]->At(ii));
3811 pdgToBeReturned=mother->GetPdgCode();
3812 absLabelMother=labelMother[0]->At(ii);
3813 AliDebug(2,Form(
"FOUND label for the mother of this candidate: %d (PDG=%d)\n",labelMother[0]->At(ii),pdgToBeReturned));
3815 nDauCand=mother->GetNDaughters();
3817 AliAODMCParticle *partMC = (AliAODMCParticle*)mcArray->At(dgLabels[0]);
3818 pdgDg[0]=partMC->GetPdgCode();
3819 partMC = (AliAODMCParticle*)mcArray->At(dgLabels[index]);
3820 pdgDg[index]=partMC->GetPdgCode();
3821 if (index==1) stringaCheck2.Append(Form(
"found daughters -> %d(%d)",dgLabels[0],pdgDg[0]));
3822 stringaCheck2.Append(Form(
" %d(%d)",dgLabels[index],pdgDg[index]));
3829 stringaCheck2.Prepend(Form(
"Ecco quanto trovato: %d(%d) with %d daughters; ",absLabelMother,pdgToBeReturned,nDauCand));
3830 AliDebug(2,Form(
"%s \n",stringaCheck2.Data()));
3832 delete [] labelMother;
3835 return pdgToBeReturned;
3844 Double_t px[2]={partCopy->PxProng(0),partCopy->PxProng(1)};
3845 Double_t py[2]={partCopy->PyProng(0),partCopy->PyProng(1)};
3846 Double_t pz[2]={partCopy->PzProng(0),partCopy->PzProng(1)};
3850 UInt_t pdgLc2pK0S[2]={2212,310};
3851 Double_t minv2 = partCopy->InvMass2(2,pdgLc2pK0S);
3853 Double_t rapid = partCopy->Y(pdgD);
3858 fillthis=
"hMassVsPtVsY"+appendthis;
3862 fillthis=
"phiVSthetaVSpt"+appendthis;
3877 px[0]=tmpx*TMath::Cos(phirot)-tmpy*TMath::Sin(phirot);
3878 py[0]=tmpx*TMath::Sin(phirot)+tmpy*TMath::Cos(phirot);
3879 partCopy->SetPxPyPzProngs(2,px,py,pz);
3880 pt = partCopy->Pt();
3881 minv2 = partCopy->InvMass2(2,pdgLc2pK0S);
3882 massRot=TMath::Sqrt(minv2);
3883 rapid = partCopy->Y(pdgD);
3888 fillthis=
"histLcMassByK0S"+appendthis;
3892 fillthis=
"hMassVsPtVsYRot"+appendthis;
3896 fillthis=
"phiVSthetaVSptRot"+appendthis;
3900 fillthis=
"hDeltaMass"+appendthis;
3914 fillthis=
"histptK0S"+appendthis;
3918 ((
TH2F*)(
fOutputPIDBachTR->FindObject(fillthis)))->Fill(pt,TMath::Sqrt(px[1]*px[1]+py[1]*py[1]));
3921 fillthis=
"histptP"+appendthis;
3925 ((
TH2F*)(
fOutputPIDBachTR->FindObject(fillthis)))->Fill(pt,TMath::Sqrt(px[0]*px[0]+py[0]*py[0]));
3928 fillthis=
"histptPip"+appendthis;
3935 fillthis=
"histptPim"+appendthis;
3942 fillthis=
"histLambdaMass"+appendthis;
3949 fillthis=
"histLambdaBarMass"+appendthis;
3956 fillthis=
"histGammaMass"+appendthis;
3963 fillthis=
"histCosPAK0S"+appendthis;
3976 fillthis=
"hNormRotated"+appendthis;
3996 Double_t mLcPDG = TDatabasePDG::Instance()->GetParticle(4122)->Mass();
3997 Double_t mK0SPDG = TDatabasePDG::Instance()->GetParticle(310)->Mass();
3998 Double_t mMinLambdaPDG = TDatabasePDG::Instance()->GetParticle(2212)->Mass()+
3999 TDatabasePDG::Instance()->GetParticle(211)->Mass();
4001 TString nameHistoSgnC=
" ", nameHistoSgnB=
" ", nameHistoSgnNoQ=
" ";
4002 TString titleHistoSgnC=
" ", titleHistoSgnB=
" ", titleHistoSgnNoQ=
" ";
4021 binLimpTprong[ 0]= 0.0;
4022 binLimpTprong[ 1]= 0.1;
4023 binLimpTprong[ 2]= 0.2;
4024 binLimpTprong[ 3]= 0.3;
4025 binLimpTprong[ 4]= 0.4;
4026 binLimpTprong[ 5]= 0.5;
4027 binLimpTprong[ 6]= 0.6;
4028 binLimpTprong[ 7]= 0.7;
4029 binLimpTprong[ 8]= 0.8;
4030 binLimpTprong[ 9]= 0.9;
4031 binLimpTprong[10]= 1.0;
4032 binLimpTprong[11]= 1.2;
4033 binLimpTprong[12]= 1.4;
4034 binLimpTprong[13]= 1.6;
4035 binLimpTprong[14]= 1.8;
4036 binLimpTprong[15]= 2.0;
4037 binLimpTprong[16]= 2.2;
4038 binLimpTprong[17]= 2.4;
4039 binLimpTprong[18]= 2.6;
4040 binLimpTprong[19]= 2.8;
4041 binLimpTprong[20]= 3.0;
4042 binLimpTprong[21]= 3.5;
4043 binLimpTprong[22]= 4.0;
4044 binLimpTprong[23]= 4.5;
4045 binLimpTprong[24]= 5.0;
4046 binLimpTprong[25]= 5.5;
4047 binLimpTprong[26]= 6.0;
4048 binLimpTprong[27]= 6.5;
4049 binLimpTprong[28]= 7.0;
4050 binLimpTprong[29]= 7.5;
4051 binLimpTprong[30]= 8.0;
4052 binLimpTprong[31]= 9.0;
4053 binLimpTprong[32]=10.0;
4054 binLimpTprong[33]=11.0;
4055 binLimpTprong[34]=12.0;
4056 binLimpTprong[35]=13.0;
4057 binLimpTprong[36]=14.0;
4058 binLimpTprong[37]=15.0;
4059 binLimpTprong[38]=20.0;
4060 binLimpTprong[39]=25.0;
4061 binLimpTprong[40]=30.0;
4062 binLimpTprong[41]=35.0;
4066 nameHistoSgnC=
"histLcMassByK0SSgnC";
4067 nameHistoSgnB=
"histLcMassByK0SSgnB";
4068 nameHistoSgnNoQ=
"histLcMassByK0SSgnNoQ";
4069 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]";
4070 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]";
4071 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]";
4072 TH2F* spectrumLcMassByK0SSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
4073 TH2F* spectrumLcMassByK0SSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
4074 TH2F* spectrumLcMassByK0SSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
4076 TH2F* allspectrumLcMassByK0SSgnC = (
TH2F*)spectrumLcMassByK0SSgnC->Clone();
4077 TH2F* allspectrumLcMassByK0SSgnB = (
TH2F*) spectrumLcMassByK0SSgnB->Clone();
4078 TH2F* allspectrumLcMassByK0SSgnNoQ = (
TH2F*) spectrumLcMassByK0SSgnNoQ->Clone();
4079 TH2F* pidBachspectrumLcMassByK0SSgnC = (
TH2F*)spectrumLcMassByK0SSgnC->Clone();
4080 TH2F* pidBachspectrumLcMassByK0SSgnB = (
TH2F*) spectrumLcMassByK0SSgnB->Clone();
4081 TH2F* pidBachspectrumLcMassByK0SSgnNoQ = (
TH2F*) spectrumLcMassByK0SSgnNoQ->Clone();
4085 fOutputAll->Add(allspectrumLcMassByK0SSgnNoQ);
4090 nameHistoSgnC=
"histptK0SSgnC";
4091 nameHistoSgnB=
"histptK0SSgnB";
4092 nameHistoSgnNoQ=
"histptK0SSgnNoQ";
4093 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";
4094 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";
4095 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";
4096 TH2F* ptK0SSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,41,binLimpTprong);
4097 TH2F* ptK0SSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
4098 TH2F* ptK0SSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),11,binLimpTLc,41,binLimpTprong);
4100 nameHistoSgnC=
"histptPSgnC";
4101 nameHistoSgnB=
"histptPSgnB";
4102 nameHistoSgnNoQ=
"histptPSgnNoQ";
4103 titleHistoSgnC=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
4104 titleHistoSgnB=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
4105 titleHistoSgnNoQ=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
4106 TH2F* ptPSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,41,binLimpTprong);
4107 TH2F* ptPSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
4108 TH2F* ptPSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),11,binLimpTLc,41,binLimpTprong);
4110 nameHistoSgnC=
"histptPipSgnC";
4111 nameHistoSgnB=
"histptPipSgnB";
4112 nameHistoSgnNoQ=
"histptPipSgnNoQ";
4113 titleHistoSgnC=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
4114 titleHistoSgnB=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
4115 titleHistoSgnNoQ=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
4116 TH2F* ptPiPSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,41,binLimpTprong);
4117 TH2F* ptPiPSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
4118 TH2F* ptPiPSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
4120 nameHistoSgnC=
"histptPimSgnC";
4121 nameHistoSgnB=
"histptPimSgnB";
4122 nameHistoSgnNoQ=
"histptPimSgnNoQ";
4123 titleHistoSgnC=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
4124 titleHistoSgnB=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
4125 titleHistoSgnNoQ=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
4126 TH2F* ptPiMSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,41,binLimpTprong);
4127 TH2F* ptPiMSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
4128 TH2F* ptPiMSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
4130 nameHistoSgnC=
"histD0K0SSgnC";
4131 nameHistoSgnB=
"histD0K0SSgnB";
4132 nameHistoSgnNoQ=
"histD0K0SSgnNoQ";
4133 titleHistoSgnC=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
4134 titleHistoSgnB=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
4135 titleHistoSgnNoQ=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
4136 TH2F* d0K0SSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,1000,-1.,1.);
4137 TH2F* d0K0SSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,1000,-1.,1.);
4138 TH2F* d0K0SSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),11,binLimpTLc,1000,-1.,1.);
4140 nameHistoSgnC=
"histD0PSgnC";
4141 nameHistoSgnB=
"histD0PSgnB";
4142 nameHistoSgnNoQ=
"histD0PSgnNoQ";
4143 titleHistoSgnC=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
4144 titleHistoSgnB=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
4145 titleHistoSgnNoQ=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
4146 TH2F* d0PSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,1000,-1.,1.);
4147 TH2F* d0PSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,1000,-1.,1.);
4148 TH2F* d0PSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),11,binLimpTLc,1000,-1.,1.);
4150 nameHistoSgnC=
"histCosPAK0SSgnC";
4151 nameHistoSgnB=
"histCosPAK0SSgnB";
4152 nameHistoSgnNoQ=
"histCosPAK0SSgnNoQ";
4153 titleHistoSgnC=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
4154 titleHistoSgnB=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
4155 titleHistoSgnNoQ=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
4156 TH2F *cosPAK0SSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),41,binLimpTprong,100,0.99,1.);
4157 TH2F *cosPAK0SSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),41,binLimpTprong,100,0.99,1.);
4158 TH2F *cosPAK0SSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),41,binLimpTprong,100,0.99,1.);
4160 TH2F* allptK0SSgnC = (
TH2F*)ptK0SSgnC->Clone();
4161 TH2F* allptK0SSgnB = (
TH2F*)ptK0SSgnB->Clone();
4162 TH2F* allptK0SSgnNoQ = (
TH2F*)ptK0SSgnNoQ->Clone();
4163 TH2F* allptPSgnC = (
TH2F*)ptPSgnC->Clone();
4164 TH2F* allptPSgnB = (
TH2F*)ptPSgnB->Clone();
4165 TH2F* allptPSgnNoQ = (
TH2F*)ptPSgnNoQ->Clone();
4166 TH2F* allptPiPSgnC = (
TH2F*)ptPiPSgnC->Clone();
4167 TH2F* allptPiPSgnB = (
TH2F*)ptPiPSgnB->Clone();
4168 TH2F* allptPiPSgnNoQ = (
TH2F*)ptPiPSgnNoQ->Clone();
4169 TH2F* allptPiMSgnC = (
TH2F*)ptPiMSgnC->Clone();
4170 TH2F* allptPiMSgnB = (
TH2F*)ptPiMSgnB->Clone();
4171 TH2F* allptPiMSgnNoQ = (
TH2F*)ptPiMSgnNoQ->Clone();
4172 TH2F* alld0K0SSgnC = (
TH2F*)d0K0SSgnC->Clone();
4173 TH2F* alld0K0SSgnB = (
TH2F*)d0K0SSgnB->Clone();
4174 TH2F* alld0K0SSgnNoQ = (
TH2F*)d0K0SSgnNoQ->Clone();
4175 TH2F* alld0PSgnC = (
TH2F*)d0PSgnC->Clone();
4176 TH2F* alld0PSgnB = (
TH2F*)d0PSgnB->Clone();
4177 TH2F* alld0PSgnNoQ = (
TH2F*)d0PSgnNoQ->Clone();
4178 TH2F* allcosPAK0SSgnC = (
TH2F*)cosPAK0SSgnC->Clone();
4179 TH2F* allcosPAK0SSgnB = (
TH2F*)cosPAK0SSgnB->Clone();
4180 TH2F* allcosPAK0SSgnNoQ = (
TH2F*)cosPAK0SSgnNoQ->Clone();
4182 TH2F* pidptK0SSgnC = (
TH2F*)ptK0SSgnC->Clone();
4183 TH2F* pidptK0SSgnB = (
TH2F*)ptK0SSgnB->Clone();
4184 TH2F* pidptK0SSgnNoQ = (
TH2F*)ptK0SSgnNoQ->Clone();
4185 TH2F* pidptPSgnC = (
TH2F*)ptPSgnC->Clone();
4186 TH2F* pidptPSgnB = (
TH2F*)ptPSgnB->Clone();
4187 TH2F* pidptPSgnNoQ = (
TH2F*)ptPSgnNoQ->Clone();
4188 TH2F* pidptPiPSgnC = (
TH2F*)ptPiPSgnC->Clone();
4189 TH2F* pidptPiPSgnB = (
TH2F*)ptPiPSgnB->Clone();
4190 TH2F* pidptPiPSgnNoQ = (
TH2F*)ptPiPSgnNoQ->Clone();
4191 TH2F* pidptPiMSgnC = (
TH2F*)ptPiMSgnC->Clone();
4192 TH2F* pidptPiMSgnB = (
TH2F*)ptPiMSgnB->Clone();
4193 TH2F* pidptPiMSgnNoQ = (
TH2F*)ptPiMSgnNoQ->Clone();
4194 TH2F* pidd0K0SSgnC = (
TH2F*)d0K0SSgnC->Clone();
4195 TH2F* pidd0K0SSgnB = (
TH2F*)d0K0SSgnB->Clone();
4196 TH2F* pidd0K0SSgnNoQ = (
TH2F*)d0K0SSgnNoQ->Clone();
4197 TH2F* pidd0PSgnC = (
TH2F*)d0PSgnC->Clone();
4198 TH2F* pidd0PSgnB = (
TH2F*)d0PSgnB->Clone();
4199 TH2F* pidd0PSgnNoQ = (
TH2F*)d0PSgnNoQ->Clone();
4200 TH2F* pidcosPAK0SSgnC = (
TH2F*)cosPAK0SSgnC->Clone();
4201 TH2F* pidcosPAK0SSgnB = (
TH2F*)cosPAK0SSgnB->Clone();
4202 TH2F* pidcosPAK0SSgnNoQ = (
TH2F*)cosPAK0SSgnNoQ->Clone();
4250 nameHistoSgnC=
"histLcMassByK0SOfflineSgnC";
4251 nameHistoSgnB=
"histLcMassByK0SOfflineSgnB";
4252 nameHistoSgnNoQ=
"histLcMassByK0SOfflineSgnNoQ";
4253 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]";
4254 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]";
4255 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]";
4256 TH2F* spectrumLcMassOfflineByK0SSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
4257 TH2F* spectrumLcMassOfflineByK0SSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
4258 TH2F* spectrumLcMassOfflineByK0SSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
4260 TH2F* allspectrumLcMassOfflineByK0SSgnC = (
TH2F*)spectrumLcMassOfflineByK0SSgnC->Clone();
4261 TH2F* allspectrumLcMassOfflineByK0SSgnB = (
TH2F*) spectrumLcMassOfflineByK0SSgnB->Clone();
4262 TH2F* allspectrumLcMassOfflineByK0SSgnNoQ = (
TH2F*) spectrumLcMassOfflineByK0SSgnNoQ->Clone();
4263 TH2F* pidBachspectrumLcMassOfflineByK0SSgnC = (
TH2F*)spectrumLcMassOfflineByK0SSgnC->Clone();
4264 TH2F* pidBachspectrumLcMassOfflineByK0SSgnB = (
TH2F*) spectrumLcMassOfflineByK0SSgnB->Clone();
4265 TH2F* pidBachspectrumLcMassOfflineByK0SSgnNoQ = (
TH2F*) spectrumLcMassOfflineByK0SSgnNoQ->Clone();
4266 fOutputAll->Add(allspectrumLcMassOfflineByK0SSgnC);
4267 fOutputAll->Add(allspectrumLcMassOfflineByK0SSgnB);
4268 fOutputAll->Add(allspectrumLcMassOfflineByK0SSgnNoQ);
4273 nameHistoSgnC=
"histptK0SOfflineSgnC";
4274 nameHistoSgnB=
"histptK0SOfflineSgnB";
4275 nameHistoSgnNoQ=
"histptK0SOfflineSgnNoQ";
4276 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";
4277 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";
4278 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";
4279 TH2F* ptK0SOfflineSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,41,binLimpTprong);
4280 TH2F* ptK0SOfflineSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
4281 TH2F* ptK0SOfflineSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),11,binLimpTLc,41,binLimpTprong);
4283 nameHistoSgnC=
"histptPOfflineSgnC";
4284 nameHistoSgnB=
"histptPOfflineSgnB";
4285 nameHistoSgnNoQ=
"histptPOfflineSgnNoQ";
4286 titleHistoSgnC=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
4287 titleHistoSgnB=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
4288 titleHistoSgnNoQ=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
4289 TH2F* ptPOfflineSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,41,binLimpTprong);
4290 TH2F* ptPOfflineSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
4291 TH2F* ptPOfflineSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),11,binLimpTLc,41,binLimpTprong);
4293 nameHistoSgnC=
"histptPipOfflineSgnC";
4294 nameHistoSgnB=
"histptPipOfflineSgnB";
4295 nameHistoSgnNoQ=
"histptPipOfflineSgnNoQ";
4296 titleHistoSgnC=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
4297 titleHistoSgnB=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
4298 titleHistoSgnNoQ=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
4299 TH2F* ptPiPOfflineSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,41,binLimpTprong);
4300 TH2F* ptPiPOfflineSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
4301 TH2F* ptPiPOfflineSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
4303 nameHistoSgnC=
"histptPimOfflineSgnC";
4304 nameHistoSgnB=
"histptPimOfflineSgnB";
4305 nameHistoSgnNoQ=
"histptPimOfflineSgnNoQ";
4306 titleHistoSgnC=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
4307 titleHistoSgnB=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
4308 titleHistoSgnNoQ=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
4309 TH2F* ptPiMOfflineSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,41,binLimpTprong);
4310 TH2F* ptPiMOfflineSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
4311 TH2F* ptPiMOfflineSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
4313 nameHistoSgnC=
"histD0K0SOfflineSgnC";
4314 nameHistoSgnB=
"histD0K0SOfflineSgnB";
4315 nameHistoSgnNoQ=
"histD0K0SOfflineSgnNoQ";
4316 titleHistoSgnC=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
4317 titleHistoSgnB=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
4318 titleHistoSgnNoQ=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
4319 TH2F* d0K0SOfflineSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,1000,-1.,1.);
4320 TH2F* d0K0SOfflineSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,1000,-1.,1.);
4321 TH2F* d0K0SOfflineSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),11,binLimpTLc,1000,-1.,1.);
4323 nameHistoSgnC=
"histD0POfflineSgnC";
4324 nameHistoSgnB=
"histD0POfflineSgnB";
4325 nameHistoSgnNoQ=
"histD0POfflineSgnNoQ";
4326 titleHistoSgnC=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
4327 titleHistoSgnB=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
4328 titleHistoSgnNoQ=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
4329 TH2F* d0POfflineSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,1000,-1.,1.);
4330 TH2F* d0POfflineSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,1000,-1.,1.);
4331 TH2F* d0POfflineSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),11,binLimpTLc,1000,-1.,1.);
4333 nameHistoSgnC=
"histCosPAK0SOfflineSgnC";
4334 nameHistoSgnB=
"histCosPAK0SOfflineSgnB";
4335 nameHistoSgnNoQ=
"histCosPAK0SOfflineSgnNoQ";
4336 titleHistoSgnC=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
4337 titleHistoSgnB=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
4338 titleHistoSgnNoQ=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
4339 TH2F *cosPAK0SOfflineSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),41,binLimpTprong,100,0.99,1.);
4340 TH2F *cosPAK0SOfflineSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),41,binLimpTprong,100,0.99,1.);
4341 TH2F *cosPAK0SOfflineSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),41,binLimpTprong,100,0.99,1.);
4343 TH2F* allptK0SOfflineSgnC = (
TH2F*)ptK0SOfflineSgnC->Clone();
4344 TH2F* allptK0SOfflineSgnB = (
TH2F*)ptK0SOfflineSgnB->Clone();
4345 TH2F* allptK0SOfflineSgnNoQ = (
TH2F*)ptK0SOfflineSgnNoQ->Clone();
4346 TH2F* allptPOfflineSgnC = (
TH2F*)ptPOfflineSgnC->Clone();
4347 TH2F* allptPOfflineSgnB = (
TH2F*)ptPOfflineSgnB->Clone();
4348 TH2F* allptPOfflineSgnNoQ = (
TH2F*)ptPOfflineSgnNoQ->Clone();
4349 TH2F* allptPiPOfflineSgnC = (
TH2F*)ptPiPOfflineSgnC->Clone();
4350 TH2F* allptPiPOfflineSgnB = (
TH2F*)ptPiPOfflineSgnB->Clone();
4351 TH2F* allptPiPOfflineSgnNoQ = (
TH2F*)ptPiPOfflineSgnNoQ->Clone();
4352 TH2F* allptPiMOfflineSgnC = (
TH2F*)ptPiMOfflineSgnC->Clone();
4353 TH2F* allptPiMOfflineSgnB = (
TH2F*)ptPiMOfflineSgnB->Clone();
4354 TH2F* allptPiMOfflineSgnNoQ = (
TH2F*)ptPiMOfflineSgnNoQ->Clone();
4355 TH2F* alld0K0SOfflineSgnC = (
TH2F*)d0K0SOfflineSgnC->Clone();
4356 TH2F* alld0K0SOfflineSgnB = (
TH2F*)d0K0SOfflineSgnB->Clone();
4357 TH2F* alld0K0SOfflineSgnNoQ = (
TH2F*)d0K0SOfflineSgnNoQ->Clone();
4358 TH2F* alld0POfflineSgnC = (
TH2F*)d0POfflineSgnC->Clone();
4359 TH2F* alld0POfflineSgnB = (
TH2F*)d0POfflineSgnB->Clone();
4360 TH2F* alld0POfflineSgnNoQ = (
TH2F*)d0POfflineSgnNoQ->Clone();
4361 TH2F* allcosPAK0SOfflineSgnC = (
TH2F*)cosPAK0SOfflineSgnC->Clone();
4362 TH2F* allcosPAK0SOfflineSgnB = (
TH2F*)cosPAK0SOfflineSgnB->Clone();
4363 TH2F* allcosPAK0SOfflineSgnNoQ = (
TH2F*)cosPAK0SOfflineSgnNoQ->Clone();
4365 TH2F* pidptK0SOfflineSgnC = (
TH2F*)ptK0SOfflineSgnC->Clone();
4366 TH2F* pidptK0SOfflineSgnB = (
TH2F*)ptK0SOfflineSgnB->Clone();
4367 TH2F* pidptK0SOfflineSgnNoQ = (
TH2F*)ptK0SOfflineSgnNoQ->Clone();
4368 TH2F* pidptPOfflineSgnC = (
TH2F*)ptPOfflineSgnC->Clone();
4369 TH2F* pidptPOfflineSgnB = (
TH2F*)ptPOfflineSgnB->Clone();
4370 TH2F* pidptPOfflineSgnNoQ = (
TH2F*)ptPOfflineSgnNoQ->Clone();
4371 TH2F* pidptPiPOfflineSgnC = (
TH2F*)ptPiPOfflineSgnC->Clone();
4372 TH2F* pidptPiPOfflineSgnB = (
TH2F*)ptPiPOfflineSgnB->Clone();
4373 TH2F* pidptPiPOfflineSgnNoQ = (
TH2F*)ptPiPOfflineSgnNoQ->Clone();
4374 TH2F* pidptPiMOfflineSgnC = (
TH2F*)ptPiMOfflineSgnC->Clone();
4375 TH2F* pidptPiMOfflineSgnB = (
TH2F*)ptPiMOfflineSgnB->Clone();
4376 TH2F* pidptPiMOfflineSgnNoQ = (
TH2F*)ptPiMOfflineSgnNoQ->Clone();
4377 TH2F* pidd0K0SOfflineSgnC = (
TH2F*)d0K0SOfflineSgnC->Clone();
4378 TH2F* pidd0K0SOfflineSgnB = (
TH2F*)d0K0SOfflineSgnB->Clone();
4379 TH2F* pidd0K0SOfflineSgnNoQ = (
TH2F*)d0K0SOfflineSgnNoQ->Clone();
4380 TH2F* pidd0POfflineSgnC = (
TH2F*)d0POfflineSgnC->Clone();
4381 TH2F* pidd0POfflineSgnB = (
TH2F*)d0POfflineSgnB->Clone();
4382 TH2F* pidd0POfflineSgnNoQ = (
TH2F*)d0POfflineSgnNoQ->Clone();
4383 TH2F* pidcosPAK0SOfflineSgnC = (
TH2F*)cosPAK0SOfflineSgnC->Clone();
4384 TH2F* pidcosPAK0SOfflineSgnB = (
TH2F*)cosPAK0SOfflineSgnB->Clone();
4385 TH2F* pidcosPAK0SOfflineSgnNoQ = (
TH2F*)cosPAK0SOfflineSgnNoQ->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 analyze also on-the-fly V0 candidates
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
Double_t InvMassLctoLambdaPi() const
Double_t CosV0PointingAngleXY() const
Double_t GetAlpha(Double_t xyz[3], Double_t pxpypz[3])
Double_t NormalizedV0DecayLengthXY() const
Double_t CosPointingAngleXY() const
Int_t SearchForCommonMother(TClonesArray *mcArray, Int_t dgLabels[10], Int_t ndg, Int_t &ndgCk, Int_t *pdgDg, Int_t &labelMother, Int_t &nDauCand) const
Bool_t fWriteVariableTree
flag for event selected
Double_t DecayLengthXYV0() const
static Int_t CheckOrigin(TClonesArray *arrayMC, AliAODMCParticle *mcPart, Bool_t searchUpToQuark=kTRUE)
Double_t fPtMinToFillTheTree
=9;
Double_t GetMaxVtxZ() const
TList * fOutputPIDBachTR
flag to check track rotation
Bool_t FillRecoCasc(AliVEvent *event, AliAODRecoCascadeHF *rc, Bool_t isDStar, Bool_t recoSecVtx=kFALSE)
Double_t InvMassLctoK0sP() const
AliAODPidHF * GetPidHF() const
AliNormalizationCounter * fCounter
Histogram to check selected events.
AliAODTrack * Getv0PositiveTrack() const
Int_t fNRotations
=mLcPDG+0.250;
AliAnalysisTaskSELc2V0bachelor()
void SetExcludedCut(Int_t excludedCut)
Double_t fMaxAngleForRot
=5*TMath::Pi()/6;
Int_t MatchToMC(AliAODRecoCascadeHF *lc2bacV0, Int_t *pdgDgLc2bacV0, Int_t *pdgDgV0, TClonesArray *mcArray)
Bool_t fUseOnTheFlyV0
Cuts - sent to output slot 3.
Bool_t fUseTPCPIDtoFillTree
void DefineTreeVariables()
TList * fOutputAll
User output slot 1 // general histos.
AliAODTrack * GetBachelor() const
AliAODVertex * GetOwnPrimaryVtx() const
void CheckEventSelection(AliAODEvent *aodEvent)
virtual void Terminate(Option_t *option)
TList * fOutputPIDBach
User output slot 4 // histos without pid and cut on V0.
Int_t SearchLcDaughter(TClonesArray *arrayMC, Int_t iii)
Double_t fMinMass
=7*TMath::Pi()/6;
Double_t CosV0PointingAngle() const
Bool_t Data(TH1F *h, Double_t *rangefit, Bool_t writefit, Double_t &sgn, Double_t &errsgn, Double_t &bkg, Double_t &errbkg, Double_t &sgnf, Double_t &errsgnf, Double_t &sigmafit, Int_t &status)
TH1F * fCEvents
User output slot 5 // histos with PID on Bachelor.
void SetOwnPrimaryVtx(const AliAODVertex *vtx)
Double_t DecayLengthXY() const
Double_t fMaxMass
=mLcPDG-0.250;
Int_t GetnSigmaITS(AliAODTrack *track, Int_t species, Double_t &sigma) const
Bool_t IsEventSelected(AliVEvent *event)
void DefineSignalHistosSeparatedPerOrigin()
void StoreEvent(AliVEvent *, AliRDHFCuts *, Bool_t mc=kFALSE, Int_t multiplicity=-9999, Double_t spherocity=-99.)
void SetUsePID(Bool_t flag=kTRUE)
virtual void UserExec(Option_t *option)
Double_t PropagateToDCA(AliAODv0 *v, AliAODTrack *bachelor, Double_t b, Double_t &xVtxLc, Double_t &yVtxLc, Double_t &zVtxLc, Double_t &pxVtxLc, Double_t &pyVtxLc, Double_t &pzVtxLc)
ClassImp(AliAnalysisTaskCRC) AliAnalysisTaskCRC
Int_t MatchToMClabelC(AliAODRecoCascadeHF *candidate, TClonesArray *mcArray)
Bool_t fTrackRotation
flag to fill additional histograms
void MakeAnalysisForLc2prK0S(AliAODEvent *aodEvent, TClonesArray *arrayLctopK0S, TClonesArray *mcArray, Int_t &nSelectedAnal, AliRDHFCutsLctoV0 *cutsAnal)
Bool_t CheckCascadeFlags(AliRDHFCuts::ESele selFlag=AliRDHFCuts::kLctoV0Cuts)
Float_t * fCandidateVariables
! variables to be written to the tree
AliRDHFCutsLctoV0 * fAnalCuts
AliNormalizationCounter on output slot 2.
void FillArmPodDistribution(AliAODRecoDecay *vZero, TString histoTitle, Bool_t isCandidateSelectedCuts, Bool_t isBachelorID)
void CheckCandidatesAtDifferentLevels(AliAODRecoCascadeHF *part, AliRDHFCutsLctoV0 *cutsAnal)
Bool_t GetIsUsePID() const
Double_t fMinAngleForRot
User output slot 6 // histos with PID on Bachelor and track rotation.
void CheckEventSelectionWithCandidates(AliAODEvent *aodEvent)
Double_t CosPointingAngle() const
TList * fOutput
Use MC info.
Double_t DecayLengthV0() const
void SetTriggerClass(TString trclass0, TString trclass1="")
virtual Bool_t IsInFiducialAcceptance(Double_t pt, Double_t y) const
Double_t DecayLength() const
void FillAnalysisHistograms(AliAODRecoCascadeHF *part, AliRDHFCutsLctoV0 *cutsAnal, TString appendthis)
Int_t IsSelectedSingleCut(TObject *obj, Int_t selectionLevel, Int_t cutIndex, AliAODEvent *aod=0x0)
virtual Int_t IsSelected(TObject *obj, Int_t selectionLevel)
virtual void UserCreateOutputObjects()
Implementation of interface methods.
Class with functions useful for different D2H analyses //.
virtual ~AliAnalysisTaskSELc2V0bachelor()