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();
124 Bool_t writeVariableTree, Bool_t additionalChecks, Bool_t trackRotation, Bool_t useTPCpid, Char_t sign, Bool_t origin) :
125 AliAnalysisTaskSE(name),
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!");
253 AliAODEvent* aodEvent =
dynamic_cast<AliAODEvent*
>(fInputEvent);
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");
267 AliAODEvent *aodFromExt = ext->GetAOD();
268 arrayLctopKos=(TClonesArray*)aodFromExt->GetList()->FindObject(
"CascadesHF");
271 arrayLctopKos=(TClonesArray*)aodEvent->GetList()->FindObject(
"CascadesHF");
280 fVtx1 = (AliAODVertex*)aodEvent->GetPrimaryVertex();
289 fBzkG = (Double_t)aodEvent->GetMagneticField();
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();
382 fOutput =
dynamic_cast<TList*
> (GetOutputData(1));
384 AliError(
"fOutput not available");
390 fOutputAll =
dynamic_cast<TList*
> (GetOutputData(4));
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));
500 Bool_t unsetvtx=kFALSE;
510 if (!lcK0Spr->GetSecondaryVtx()) {
511 AliInfo(
"No secondary vertex");
515 if (lcK0Spr->GetNDaughters()!=2) {
516 AliDebug(2,Form(
"Cascade %d has not 2 daughters (nDaughters=%d)",iLctopK0S,lcK0Spr->GetNDaughters()));
520 if ( (
fSign == 0 && lcK0Spr->Charge()<0) ||
521 (
fSign == 1 && lcK0Spr->Charge()>0) ) {
522 AliDebug(2,Form(
"Charge of the cascade %d is different with respect to the required one",iLctopK0S));
526 AliAODv0 * v0part =
dynamic_cast<AliAODv0*
>(lcK0Spr->
Getv0());
527 AliAODTrack * bachPart =
dynamic_cast<AliAODTrack*
>(lcK0Spr->
GetBachelor());
528 if (!v0part || !bachPart) {
529 AliDebug(2,Form(
"Cascade %d has no V0 or no bachelor object",iLctopK0S));
533 if (!v0part->GetSecondaryVtx()) {
534 AliDebug(2,Form(
"No secondary vertex for V0 by cascade %d",iLctopK0S));
538 if (v0part->GetNDaughters()!=2) {
539 AliDebug(2,Form(
"current V0 has not 2 daughters (onTheFly=%d, nDaughters=%d)",v0part->GetOnFlyStatus(),v0part->GetNDaughters()));
545 if (!v0Neg || !v0Pos) {
546 AliDebug(2,Form(
"V0 by cascade %d has no V0positive of V0negative object",iLctopK0S));
550 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(1);
552 if (v0Pos->Charge() == v0Neg->Charge())
continue;
554 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(2);
564 Int_t mcLabel = lcK0Spr->
MatchToMC(pdgCand,pdgDgLctoV0bachelor[1],pdgDgLctoV0bachelor,pdgDgV0toDaughters,mcArray,kTRUE);
566 AliDebug(2,Form(
" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~cascade number %d (total cascade number = %d)", iLctopK0S,nCascades));
568 AliAODMCParticle *partLc =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(mcLabel));
570 pdgCode = partLc->GetPdgCode();
571 if (pdgCode<0) AliDebug(2,Form(
" ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ MClabel=%d ~~~~~~~~~~ pdgCode=%d", mcLabel, pdgCode));
572 pdgCode = TMath::Abs(pdgCode);
575 Int_t pdgMom = util->
CheckOrigin(mcArray,partLc,kFALSE);
578 }
else if (pdgMom == 5) {
581 Int_t isThereaQuark=util->
CheckOrigin(mcArray,partLc,kTRUE);
582 if (isThereaQuark<=0) originLc=3;
587 AliDebug(2,Form(
"No MC candidate (cascade number %d -total cascade number = %d -)", iLctopK0S,nCascades));
595 nSelectedAnal, cutsAnal,
603 AliDebug(2, Form(
"Found %d Reco particles that are Lc!!", nSelectedAnal));
611 Int_t &nSelectedAnal,
613 TClonesArray *mcArray,
622 AliAODTrack *bachelor = (AliAODTrack*)part->
GetBachelor();
623 Double_t momBach = bachelor->P();
625 AliAODv0 * v0part = (AliAODv0*)part->
Getv0();
626 Bool_t onFlyV0 = v0part->GetOnFlyStatus();
676 Double_t invmassK0S = v0part->MassK0Short();
677 Double_t mk0sPDG = TDatabasePDG::Instance()->GetParticle(310)->Mass();
678 Double_t nSigmaTPCpr=-999.;
680 if ( !onFlyV0 && isInCascadeWindow &&
696 Int_t pdgCand1 = 4122;
697 Int_t pdgDgLctoV0bachelor1[2]={2212,310};
698 Int_t pdgDgV0toDaughters1[2]={211,211};
699 Int_t mcLabel1=part->
MatchToMC(pdgCand1,pdgDgLctoV0bachelor1[1],pdgDgLctoV0bachelor1,pdgDgV0toDaughters1,mcArray,kTRUE);
700 AliDebug(2,Form(
" Found true MC candidate: Lc->pK0S(%d) - onTheFly=%1d",mcLabel1,onFlyV0));
704 Double_t nSigmaTPCpr=-999.;
706 Double_t nSigmaTOFpr=-999.;
709 Double_t nSigmaTPCpi=-999.;
711 Double_t nSigmaTOFpi=-999.;
714 Double_t nSigmaTPCka=-999.;
716 Double_t nSigmaTOFka=-999.;
721 fillthis=
"histArmPodK0S";
724 fillthis=
"histArmPodLc";
733 fillthis=
"histArmPodK0SOffline";
736 fillthis=
"histArmPodLcOffline";
740 if (isCandidateSelectedCuts) {
741 fillthis=
"histoprotonBachSigmaVspTOF";
742 ((TH2F*)(
fOutput->FindObject(fillthis)))->Fill(momBach,nSigmaTOFpr);
743 fillthis=
"histoprotonBachSigmaVspTPC";
744 ((TH2F*)(
fOutput->FindObject(fillthis)))->Fill(momBach,nSigmaTPCpr);
752 fillthis=
"histArmPodK0SSgn";
755 fillthis=
"histArmPodLcSgn";
777 fillthis=
"histArmPodK0SOfflineSgn";
780 fillthis=
"histArmPodLcOfflineSgn";
783 if (isCandidateSelectedCuts) {
784 fillthis=
"histoprotonBachSigmaVspTOFsgn";
785 ((TH2F*)(
fOutput->FindObject(fillthis)))->Fill(momBach,nSigmaTOFpr);
786 fillthis=
"histoprotonBachSigmaVspTPCsgn";
787 ((TH2F*)(
fOutput->FindObject(fillthis)))->Fill(momBach,nSigmaTPCpr);
811 fillthis=
"histArmPodK0SBkg";
814 fillthis=
"histArmPodLcBkg";
823 fillthis=
"histArmPodK0SOfflineBkg";
826 fillthis=
"histArmPodLcOfflineBkg";
830 if (isCandidateSelectedCuts) {
831 fillthis=
"histoprotonBachSigmaVspTOFbkg";
832 ((TH2F*)(
fOutput->FindObject(fillthis)))->Fill(momBach,nSigmaTOFpr);
833 fillthis=
"histoprotonBachSigmaVspTPCbkg";
834 ((TH2F*)(
fOutput->FindObject(fillthis)))->Fill(momBach,nSigmaTPCpr);
848 Double_t mLcPDG = TDatabasePDG::Instance()->GetParticle(4122)->Mass();
849 Double_t mK0SPDG = TDatabasePDG::Instance()->GetParticle(310)->Mass();
850 Double_t mMinLambdaPDG = TDatabasePDG::Instance()->GetParticle(2212)->Mass()+
851 TDatabasePDG::Instance()->GetParticle(211)->Mass();
853 TString nameHisto=
" ", nameHistoSgn=
" ", nameHistoBkg=
" ";
854 TString titleHisto=
" ", titleHistoSgn=
" ", titleHistoBkg=
" ";
857 Double_t *binLimpTLc=
new Double_t[11+1];
872 Double_t *binLimpTprong=
new Double_t[41+1];
873 binLimpTprong[ 0]= 0.0;
874 binLimpTprong[ 1]= 0.1;
875 binLimpTprong[ 2]= 0.2;
876 binLimpTprong[ 3]= 0.3;
877 binLimpTprong[ 4]= 0.4;
878 binLimpTprong[ 5]= 0.5;
879 binLimpTprong[ 6]= 0.6;
880 binLimpTprong[ 7]= 0.7;
881 binLimpTprong[ 8]= 0.8;
882 binLimpTprong[ 9]= 0.9;
883 binLimpTprong[10]= 1.0;
884 binLimpTprong[11]= 1.2;
885 binLimpTprong[12]= 1.4;
886 binLimpTprong[13]= 1.6;
887 binLimpTprong[14]= 1.8;
888 binLimpTprong[15]= 2.0;
889 binLimpTprong[16]= 2.2;
890 binLimpTprong[17]= 2.4;
891 binLimpTprong[18]= 2.6;
892 binLimpTprong[19]= 2.8;
893 binLimpTprong[20]= 3.0;
894 binLimpTprong[21]= 3.5;
895 binLimpTprong[22]= 4.0;
896 binLimpTprong[23]= 4.5;
897 binLimpTprong[24]= 5.0;
898 binLimpTprong[25]= 5.5;
899 binLimpTprong[26]= 6.0;
900 binLimpTprong[27]= 6.5;
901 binLimpTprong[28]= 7.0;
902 binLimpTprong[29]= 7.5;
903 binLimpTprong[30]= 8.0;
904 binLimpTprong[31]= 9.0;
905 binLimpTprong[32]=10.0;
906 binLimpTprong[33]=11.0;
907 binLimpTprong[34]=12.0;
908 binLimpTprong[35]=13.0;
909 binLimpTprong[36]=14.0;
910 binLimpTprong[37]=15.0;
911 binLimpTprong[38]=20.0;
912 binLimpTprong[39]=25.0;
913 binLimpTprong[40]=30.0;
914 binLimpTprong[41]=35.0;
919 nameHisto=
"histK0SMass";
920 titleHisto=
"K^{0}_{S} invariant mass VS p_{T}; p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(#pi^{+},#pi^{-}) [GeV/c^{2}]; Entries";
921 TH2F* spectrumK0SMass =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,mK0SPDG-0.050,mK0SPDG+0.050);
924 nameHisto=
"histLcMassByK0S";
925 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]";
926 TH2F* spectrumLcMassByK0S =
new TH2F(nameHisto.Data(),titleHisto.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
928 nameHisto=
"histpK0Svsp";
929 titleHisto=
"p(K^{0}_{S}) vs p(p); p(p) [GeV/c]; p(K^{0}_{S}) [GeV/c]";
930 TH2F* momentumDistributionK0Svsp =
new TH2F(nameHisto.Data(),titleHisto.Data(),41,binLimpTprong,41,binLimpTprong);
932 nameHisto=
"histArmPodK0S";
933 titleHisto=
"V0-candidate Armenteros-Podolanski distribution; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
934 TH2F* armenterosPodK0S =
new TH2F(nameHisto.Data(),titleHisto.Data(),200,-1.,1.,300,0.,0.3);
936 nameHisto=
"histArmPodLc";
937 titleHisto=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
938 TH2F* armenterosPodLc =
new TH2F(nameHisto.Data(),titleHisto.Data(),200,-4.,4.,800,0.,1.6);
940 TH2F* allspectrumK0SMass = (TH2F*)spectrumK0SMass->Clone();
941 TH2F* allspectrumLcMassByK0S = (TH2F*)spectrumLcMassByK0S->Clone();
942 TH2F* allmomentumDistributionK0Svsp = (TH2F*)momentumDistributionK0Svsp->Clone();
943 TH2F* allArmenterosPodK0S = (TH2F*)armenterosPodK0S->Clone();
944 TH2F* allArmenterosPodLc = (TH2F*)armenterosPodLc->Clone();
946 TH2F* pidBachspectrumK0SMass = (TH2F*)spectrumK0SMass->Clone();
947 TH2F* pidBachspectrumLcMassByK0S = (TH2F*)spectrumLcMassByK0S->Clone();
948 TH2F* pidBachmomentumDistributionK0Svsp = (TH2F*)momentumDistributionK0Svsp->Clone();
949 TH2F* pidBachArmenterosPodK0S = (TH2F*)armenterosPodK0S->Clone();
950 TH2F* pidBachArmenterosPodLc = (TH2F*)armenterosPodLc->Clone();
954 fOutputAll->Add(allmomentumDistributionK0Svsp);
964 nameHisto=
"histArmPodK0S0";
965 titleHisto=
"V0-candidate Armenteros-Podolanski distribution; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
966 TH2F* armenterosPodK0S0 =
new TH2F(nameHisto.Data(),titleHisto.Data(),200,-1.,1.,300,0.,0.3);
967 nameHisto=
"histArmPodLc0";
968 titleHisto=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
969 TH2F* armenterosPodLc0 =
new TH2F(nameHisto.Data(),titleHisto.Data(),200,-4.,4.,800,0.,1.6);
975 TH2F* pidBachTRspectrumLcMassByK0S = (TH2F*)spectrumLcMassByK0S->Clone();
981 nameHisto=
"histptK0S";
982 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";
983 TH2F* ptK0S =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,41,binLimpTprong);
986 titleHisto=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
987 TH2F* ptP =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,41,binLimpTprong);
989 nameHisto=
"histptPip";
990 titleHisto=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
991 TH2F* ptPiP =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,41,binLimpTprong);
993 nameHisto=
"histptPim";
994 titleHisto=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
995 TH2F* ptPiM =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,41,binLimpTprong);
997 nameHisto=
"histLambdaMass";
998 titleHisto=
"m_{inv}(p,#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(p,#pi^{-}) [GeV/c^{2}]; Entries";
999 TH2F* massLambda =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1001 nameHisto=
"histLambdaBarMass";
1002 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";
1003 TH2F* massLambdaBar =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1005 nameHisto=
"histGammaMass";
1006 titleHisto=
"m_{inv}(e^{+},e^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(e^{+},e^{-}) [GeV/c^{2}]; Entries";
1007 TH2F* massGamma =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,100,0.,1.);
1009 nameHisto=
"histD0K0S";
1010 titleHisto=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
1011 TH2F* d0K0S =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,-1.,1.);
1013 nameHisto=
"histD0P";
1014 titleHisto=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
1015 TH2F* d0P =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,-1.,1.);
1017 nameHisto=
"histCosPAK0S";
1018 titleHisto=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
1019 TH2F *cosPAK0S =
new TH2F(nameHisto.Data(),titleHisto.Data(),41,binLimpTprong,100,0.99,1.);
1021 TH2F* allptK0S = (TH2F*)ptK0S->Clone();
1022 TH2F* allptP = (TH2F*)ptP->Clone();
1023 TH2F* allptPiP = (TH2F*)ptPiP->Clone();
1024 TH2F* allptPiM = (TH2F*)ptPiM->Clone();
1025 TH2F* allmassLambda = (TH2F*)massLambda->Clone();
1026 TH2F* allmassLambdaBar = (TH2F*)massLambdaBar->Clone();
1027 TH2F* allmassGamma = (TH2F*)massGamma->Clone();
1028 TH2F* alld0K0S = (TH2F*)d0K0S->Clone();
1029 TH2F* alld0P = (TH2F*)d0P->Clone();
1030 TH2F* allcosPAK0S = (TH2F*)cosPAK0S->Clone();
1032 TH2F* pidptK0S = (TH2F*)ptK0S->Clone();
1033 TH2F* pidptP = (TH2F*)ptP->Clone();
1034 TH2F* pidptPiP = (TH2F*)ptPiP->Clone();
1035 TH2F* pidptPiM = (TH2F*)ptPiM->Clone();
1036 TH2F* pidmassLambda = (TH2F*)massLambda->Clone();
1037 TH2F* pidmassLambdaBar = (TH2F*)massLambdaBar->Clone();
1038 TH2F* pidmassGamma = (TH2F*)massGamma->Clone();
1039 TH2F* pidd0K0S = (TH2F*)d0K0S->Clone();
1040 TH2F* pidd0P = (TH2F*)d0P->Clone();
1041 TH2F* pidcosPAK0S = (TH2F*)cosPAK0S->Clone();
1067 TH2F* pidTRptK0S = (TH2F*)ptK0S->Clone();
1068 TH2F* pidTRptP = (TH2F*)ptP->Clone();
1069 TH2F* pidTRptPiP = (TH2F*)ptPiP->Clone();
1070 TH2F* pidTRptPiM = (TH2F*)ptPiM->Clone();
1071 TH2F* pidTRmassLambda = (TH2F*)massLambda->Clone();
1072 TH2F* pidTRmassLambdaBar = (TH2F*)massLambdaBar->Clone();
1073 TH2F* pidTRmassGamma = (TH2F*)massGamma->Clone();
1074 TH2F* pidTRcosPAK0S = (TH2F*)cosPAK0S->Clone();
1089 nameHisto=
"histK0SMassOffline";
1090 titleHisto=
"K^{0}_{S} invariant mass VS p_{T}; p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(#pi^{+},#pi^{-}) [GeV/c^{2}]; Entries";
1091 TH2F* spectrumK0SMassOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,mK0SPDG-0.050,mK0SPDG+0.050);
1094 nameHisto=
"histLcMassByK0SOffline";
1095 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]";
1096 TH2F* spectrumLcMassOfflineByK0S =
new TH2F(nameHisto.Data(),titleHisto.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
1098 nameHisto=
"histpK0SvspOffline";
1099 titleHisto=
"p(K^{0}_{S}) vs p(p); p(p) [GeV/c]; p(K^{0}_{S}) [GeV/c]";
1100 TH2F* momentumDistributionK0SvspOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),41,binLimpTprong,41,binLimpTprong);
1102 nameHisto=
"histArmPodK0SOffline";
1103 titleHisto=
"V0-candidate Armenteros-Podolanski distribution; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1104 TH2F* armenterosPodK0SOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),200,-1.,1.,300,0.,0.3);
1106 nameHisto=
"histArmPodLcOffline";
1107 titleHisto=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1108 TH2F* armenterosPodLcOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),200,-4.,4.,800,0.,1.6);
1110 TH2F* allspectrumK0SMassOffline = (TH2F*)spectrumK0SMassOffline->Clone();
1111 TH2F* allspectrumLcMassOfflineByK0S = (TH2F*)spectrumLcMassOfflineByK0S->Clone();
1112 TH2F* allmomentumDistributionK0SvspOffline = (TH2F*)momentumDistributionK0SvspOffline->Clone();
1113 TH2F* allArmenterosPodK0SOffline = (TH2F*)armenterosPodK0SOffline->Clone();
1114 TH2F* allArmenterosPodLcOffline = (TH2F*)armenterosPodLcOffline->Clone();
1116 TH2F* pidBachspectrumK0SMassOffline = (TH2F*)spectrumK0SMassOffline->Clone();
1117 TH2F* pidBachspectrumLcMassOfflineByK0S = (TH2F*)spectrumLcMassOfflineByK0S->Clone();
1118 TH2F* pidBachmomentumDistributionK0SvspOffline = (TH2F*)momentumDistributionK0SvspOffline->Clone();
1119 TH2F* pidBachArmenterosPodK0SOffline = (TH2F*)armenterosPodK0SOffline->Clone();
1120 TH2F* pidBachArmenterosPodLcOffline = (TH2F*)armenterosPodLcOffline->Clone();
1123 fOutputAll->Add(allspectrumLcMassOfflineByK0S);
1124 fOutputAll->Add(allmomentumDistributionK0SvspOffline);
1134 nameHisto=
"histArmPodK0SOffline0";
1135 titleHisto=
"V0-candidate Armenteros-Podolanski distribution; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1136 TH2F* armenterosPodK0SOffline0 =
new TH2F(nameHisto.Data(),titleHisto.Data(),200,-1.,1.,300,0.,0.3);
1137 nameHisto=
"histArmPodLcOffline0";
1138 titleHisto=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1139 TH2F* armenterosPodLcOffline0 =
new TH2F(nameHisto.Data(),titleHisto.Data(),200,-4.,4.,800,0.,1.6);
1144 TH2F* pidBachTRspectrumLcMassOfflineByK0S = (TH2F*)spectrumLcMassOfflineByK0S->Clone();
1151 nameHisto=
"histptK0SOffline";
1152 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";
1153 TH2F* ptK0SOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,41,binLimpTprong);
1155 nameHisto=
"histptPOffline";
1156 titleHisto=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
1157 TH2F* ptPOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,41,binLimpTprong);
1159 nameHisto=
"histptPipOffline";
1160 titleHisto=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
1161 TH2F* ptPiPOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,41,binLimpTprong);
1163 nameHisto=
"histptPimOffline";
1164 titleHisto=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
1165 TH2F* ptPiMOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,41,binLimpTprong);
1167 nameHisto=
"histLambdaMassOffline";
1168 titleHisto=
"m_{inv}(p,#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(p,#pi^{-}) [GeV/c^{2}]; Entries";
1169 TH2F* massLambdaOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1171 nameHisto=
"histLambdaBarMassOffline";
1172 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";
1173 TH2F* massLambdaBarOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1175 nameHisto=
"histGammaMassOffline";
1176 titleHisto=
"m_{inv}(e^{+},e^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(e^{+},e^{-}) [GeV/c^{2}]; Entries";
1177 TH2F* massGammaOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,100,0.,1.);
1179 nameHisto=
"histD0K0SOffline";
1180 titleHisto=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
1181 TH2F* d0K0SOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,-1.,1.);
1183 nameHisto=
"histD0POffline";
1184 titleHisto=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
1185 TH2F* d0POffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),11,binLimpTLc,1000,-1.,1.);
1187 nameHisto=
"histCosPAK0SOffline";
1188 titleHisto=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
1189 TH2F *cosPAK0SOffline =
new TH2F(nameHisto.Data(),titleHisto.Data(),41,binLimpTprong,100,0.99,1.);
1191 TH2F* allptK0SOffline = (TH2F*)ptK0SOffline->Clone();
1192 TH2F* allptPOffline = (TH2F*)ptPOffline->Clone();
1193 TH2F* allptPiPOffline = (TH2F*)ptPiPOffline->Clone();
1194 TH2F* allptPiMOffline = (TH2F*)ptPiMOffline->Clone();
1195 TH2F* allmassLambdaOffline = (TH2F*)massLambdaOffline->Clone();
1196 TH2F* allmassLambdaBarOffline = (TH2F*)massLambdaBarOffline->Clone();
1197 TH2F* allmassGammaOffline = (TH2F*)massGammaOffline->Clone();
1198 TH2F* alld0K0SOffline = (TH2F*)d0K0SOffline->Clone();
1199 TH2F* alld0POffline = (TH2F*)d0POffline->Clone();
1200 TH2F* allcosPAK0SOffline = (TH2F*)cosPAK0SOffline->Clone();
1202 TH2F* pidptK0SOffline = (TH2F*)ptK0SOffline->Clone();
1203 TH2F* pidptPOffline = (TH2F*)ptPOffline->Clone();
1204 TH2F* pidptPiPOffline = (TH2F*)ptPiPOffline->Clone();
1205 TH2F* pidptPiMOffline = (TH2F*)ptPiMOffline->Clone();
1206 TH2F* pidmassLambdaOffline = (TH2F*)massLambdaOffline->Clone();
1207 TH2F* pidmassLambdaBarOffline = (TH2F*)massLambdaBarOffline->Clone();
1208 TH2F* pidmassGammaOffline = (TH2F*)massGammaOffline->Clone();
1209 TH2F* pidd0K0SOffline = (TH2F*)d0K0SOffline->Clone();
1210 TH2F* pidd0POffline = (TH2F*)d0POffline->Clone();
1211 TH2F* pidcosPAK0SOffline = (TH2F*)cosPAK0SOffline->Clone();
1237 TH2F* pidTRptK0SOffline = (TH2F*)ptK0SOffline->Clone();
1238 TH2F* pidTRptPOffline = (TH2F*)ptPOffline->Clone();
1239 TH2F* pidTRptPiPOffline = (TH2F*)ptPiPOffline->Clone();
1240 TH2F* pidTRptPiMOffline = (TH2F*)ptPiMOffline->Clone();
1241 TH2F* pidTRmassLambdaOffline = (TH2F*)massLambdaOffline->Clone();
1242 TH2F* pidTRmassLambdaBarOffline = (TH2F*)massLambdaBarOffline->Clone();
1243 TH2F* pidTRmassGammaOffline = (TH2F*)massGammaOffline->Clone();
1244 TH2F* pidTRcosPAK0SOffline = (TH2F*)cosPAK0SOffline->Clone();
1264 nameHistoSgn=
"histK0SMassSgn";
1265 nameHistoBkg=
"histK0SMassBkg";
1266 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";
1267 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";
1268 TH2F* spectrumK0SMassSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,mK0SPDG-0.050,mK0SPDG+0.050);
1269 TH2F* spectrumK0SMassBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,mK0SPDG-0.050,mK0SPDG+0.050);
1271 nameHistoSgn=
"histLcMassByK0SSgn";
1272 nameHistoBkg=
"histLcMassByK0SBkg";
1273 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]";
1274 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]";
1275 TH2F* spectrumLcMassByK0SSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
1276 TH2F* spectrumLcMassByK0SBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
1278 nameHistoSgn=
"histpK0SvspSgn";
1279 nameHistoBkg=
"histpK0SvspBkg";
1280 titleHistoSgn=
"#Lambda_{c} - sgn: K^{0}_{S} vs p Total Momentum Distribution - MC; p(p) [GeV/c]; p(K^{0}_{S}) [GeV/c]";
1281 titleHistoBkg=
"#Lambda_{c} - bkg: K^{0}_{S} vs p Total Momentum Distribution - MC; p(p) [GeV/c]; p(K^{0}_{S}) [GeV/c]";
1282 TH2F* momentumDistributionK0SvspSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),41,binLimpTprong,41,binLimpTprong);
1283 TH2F* momentumDistributionK0SvspBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),41,binLimpTprong,41,binLimpTprong);
1286 nameHistoSgn=
"histArmPodK0SSgn";
1287 nameHistoBkg=
"histArmPodK0SBkg";
1288 titleHistoSgn=
"V0-candidate Armenteros-Podolanski distribution (sgn); #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1289 titleHistoBkg=
"V0-candidate Armenteros-Podolanski distribution (bkg); #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1290 TH2F* armenterosPodK0SSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),200,-1.,1.,300,0.,0.3);
1291 TH2F* armenterosPodK0SBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),200,-1.,1.,300,0.,0.3);
1293 nameHistoSgn=
"histArmPodLcSgn";
1294 nameHistoBkg=
"histArmPodLcBkg";
1295 titleHistoSgn=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution (sgn); #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1296 titleHistoBkg=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution (bkg); #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1297 TH2F* armenterosPodLcSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),200,-4.,4.,800,0.,1.6);
1298 TH2F* armenterosPodLcBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),200,-4.,4.,800,0.,1.6);
1300 TH2F* allspectrumK0SMassSgn = (TH2F*)spectrumK0SMassSgn->Clone();
1301 TH2F* allspectrumK0SMassBkg = (TH2F*)spectrumK0SMassBkg->Clone();
1302 TH2F* allspectrumLcMassByK0SSgn = (TH2F*)spectrumLcMassByK0SSgn->Clone();
1303 TH2F* allspectrumLcMassByK0SBkg = (TH2F*)spectrumLcMassByK0SBkg->Clone();
1304 TH2F* allmomentumDistributionK0SvspSgn = (TH2F*)momentumDistributionK0SvspSgn->Clone();
1305 TH2F* allmomentumDistributionK0SvspBkg = (TH2F*)momentumDistributionK0SvspBkg->Clone();
1306 TH2F* allArmenterosPodK0SSgn = (TH2F*)armenterosPodK0SSgn->Clone();
1307 TH2F* allArmenterosPodK0SBkg = (TH2F*)armenterosPodK0SBkg->Clone();
1308 TH2F* allArmenterosPodLcSgn = (TH2F*)armenterosPodLcSgn->Clone();
1309 TH2F* allArmenterosPodLcBkg = (TH2F*)armenterosPodLcBkg->Clone();
1311 TH2F* pidBachspectrumK0SMassSgn = (TH2F*)spectrumK0SMassSgn->Clone();
1312 TH2F* pidBachspectrumK0SMassBkg = (TH2F*)spectrumK0SMassBkg->Clone();
1313 TH2F* pidBachspectrumLcMassByK0SSgn = (TH2F*)spectrumLcMassByK0SSgn->Clone();
1314 TH2F* pidBachspectrumLcMassByK0SBkg = (TH2F*)spectrumLcMassByK0SBkg->Clone();
1315 TH2F* pidBachmomentumDistributionK0SvspSgn = (TH2F*)momentumDistributionK0SvspSgn->Clone();
1316 TH2F* pidBachmomentumDistributionK0SvspBkg = (TH2F*)momentumDistributionK0SvspBkg->Clone();
1317 TH2F* pidBachArmenterosPodK0SSgn = (TH2F*)armenterosPodK0SSgn->Clone();
1318 TH2F* pidBachArmenterosPodK0SBkg = (TH2F*)armenterosPodK0SBkg->Clone();
1319 TH2F* pidBachArmenterosPodLcSgn = (TH2F*)armenterosPodLcSgn->Clone();
1320 TH2F* pidBachArmenterosPodLcBkg = (TH2F*)armenterosPodLcBkg->Clone();
1326 fOutputAll->Add(allmomentumDistributionK0SvspSgn);
1327 fOutputAll->Add(allmomentumDistributionK0SvspBkg);
1344 nameHistoSgn=
"histArmPodK0SSgn0";
1345 nameHistoBkg=
"histArmPodK0SBkg0";
1346 titleHistoSgn=
"V0-candidate Armenteros-Podolanski distribution (sgn); #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1347 titleHistoBkg=
"V0-candidate Armenteros-Podolanski distribution (bkg); #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1348 TH2F* armenterosPodK0SSgn0 =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),200,-1.,1.,300,0.,0.3);
1349 TH2F* armenterosPodK0SBkg0 =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),200,-1.,1.,300,0.,0.3);
1352 nameHistoSgn=
"histArmPodLcSgn0";
1353 nameHistoBkg=
"histArmPodLcBkg0";
1354 titleHistoSgn=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution (sgn); #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1355 titleHistoBkg=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution (bkg); #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1356 TH2F* armenterosPodLcSgn0 =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),200,-4.,4.,800,0.,1.6);
1357 TH2F* armenterosPodLcBkg0 =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),200,-4.,4.,800,0.,1.6);
1362 TH2F* pidBachTRspectrumLcMassByK0SSgn = (TH2F*)spectrumLcMassByK0SSgn->Clone();
1363 TH2F* pidBachTRspectrumLcMassByK0SBkg = (TH2F*)spectrumLcMassByK0SBkg->Clone();
1370 nameHistoSgn=
"histptK0SSgn";
1371 nameHistoBkg=
"histptK0SBkg";
1372 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";
1373 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";
1374 TH2F* ptK0SSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,41,binLimpTprong);
1375 TH2F* ptK0SBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,41,binLimpTprong);
1377 nameHistoSgn=
"histptPSgn";
1378 nameHistoBkg=
"histptPBkg";
1379 titleHistoSgn=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
1380 titleHistoBkg=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
1381 TH2F* ptPSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,41,binLimpTprong);
1382 TH2F* ptPBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,41,binLimpTprong);
1384 nameHistoSgn=
"histptPipSgn";
1385 nameHistoBkg=
"histptPipBkg";
1386 titleHistoSgn=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
1387 titleHistoBkg=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
1388 TH2F* ptPiPSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,41,binLimpTprong);
1389 TH2F* ptPiPBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,41,binLimpTprong);
1391 nameHistoSgn=
"histptPimSgn";
1392 nameHistoBkg=
"histptPimBkg";
1393 titleHistoSgn=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
1394 titleHistoBkg=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
1395 TH2F* ptPiMSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,41,binLimpTprong);
1396 TH2F* ptPiMBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,41,binLimpTprong);
1398 nameHistoSgn=
"histLambdaMassSgn";
1399 nameHistoBkg=
"histLambdaMassBkg";
1400 titleHistoSgn=
"m_{inv}(p,#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(p,#pi^{-}) [GeV/c^{2}]; Entries";
1401 titleHistoBkg=
"m_{inv}(p,#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(p,#pi^{-}) [GeV/c^{2}]; Entries";
1402 TH2F* massLambdaSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1403 TH2F* massLambdaBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1405 nameHistoSgn=
"histLambdaBarMassSgn";
1406 nameHistoBkg=
"histLambdaBarMassBkg";
1407 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";
1408 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";
1409 TH2F* massLambdaBarSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1410 TH2F* massLambdaBarBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1412 nameHistoSgn=
"histGammaMassSgn";
1413 nameHistoBkg=
"histGammaMassBkg";
1414 titleHistoSgn=
"m_{inv}(e^{+},e^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(e^{+},e^{-}) [GeV/c^{2}]; Entries";
1415 titleHistoBkg=
"m_{inv}(e^{+},e^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(e^{+},e^{-}) [GeV/c^{2}]; Entries";
1416 TH2F* massGammaSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,100,0.,1.);
1417 TH2F* massGammaBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,100,0.,1.);
1419 nameHistoSgn=
"histD0K0SSgn";
1420 nameHistoBkg=
"histD0K0SBkg";
1421 titleHistoSgn=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
1422 titleHistoBkg=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
1423 TH2F* d0K0SSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,-1.,1.);
1424 TH2F* d0K0SBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,-1.,1.);
1426 nameHistoSgn=
"histD0PSgn";
1427 nameHistoBkg=
"histD0PBkg";
1428 titleHistoSgn=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
1429 titleHistoBkg=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
1430 TH2F* d0PSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,-1.,1.);
1431 TH2F* d0PBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,-1.,1.);
1433 nameHistoSgn=
"histCosPAK0SSgn";
1434 nameHistoBkg=
"histCosPAK0SBkg";
1435 titleHistoSgn=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
1436 titleHistoBkg=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
1437 TH2F *cosPAK0SSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),41,binLimpTprong,100,0.99,1.);
1438 TH2F *cosPAK0SBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),41,binLimpTprong,100,0.99,1.);
1440 TH2F* allptK0SSgn = (TH2F*)ptK0SSgn->Clone();
1441 TH2F* allptK0SBkg = (TH2F*)ptK0SBkg->Clone();
1442 TH2F* allptPSgn = (TH2F*)ptPSgn->Clone();
1443 TH2F* allptPBkg = (TH2F*)ptPBkg->Clone();
1444 TH2F* allptPiPSgn = (TH2F*)ptPiPSgn->Clone();
1445 TH2F* allptPiPBkg = (TH2F*)ptPiPBkg->Clone();
1446 TH2F* allptPiMSgn = (TH2F*)ptPiMSgn->Clone();
1447 TH2F* allptPiMBkg = (TH2F*)ptPiMBkg->Clone();
1448 TH2F* allmassLambdaSgn = (TH2F*)massLambdaSgn->Clone();
1449 TH2F* allmassLambdaBkg = (TH2F*)massLambdaBkg->Clone();
1450 TH2F* allmassLambdaBarSgn = (TH2F*)massLambdaBarSgn->Clone();
1451 TH2F* allmassLambdaBarBkg = (TH2F*)massLambdaBarBkg->Clone();
1452 TH2F* allmassGammaSgn = (TH2F*)massGammaSgn->Clone();
1453 TH2F* allmassGammaBkg = (TH2F*)massGammaBkg->Clone();
1454 TH2F* alld0K0SSgn = (TH2F*)d0K0SSgn->Clone();
1455 TH2F* alld0K0SBkg = (TH2F*)d0K0SBkg->Clone();
1456 TH2F* alld0PSgn = (TH2F*)d0PSgn->Clone();
1457 TH2F* alld0PBkg = (TH2F*)d0PBkg->Clone();
1458 TH2F* allcosPAK0SSgn = (TH2F*)cosPAK0SSgn->Clone();
1459 TH2F* allcosPAK0SBkg = (TH2F*)cosPAK0SBkg->Clone();
1461 TH2F* pidptK0SSgn = (TH2F*)ptK0SSgn->Clone();
1462 TH2F* pidptK0SBkg = (TH2F*)ptK0SBkg->Clone();
1463 TH2F* pidptPSgn = (TH2F*)ptPSgn->Clone();
1464 TH2F* pidptPBkg = (TH2F*)ptPBkg->Clone();
1465 TH2F* pidptPiPSgn = (TH2F*)ptPiPSgn->Clone();
1466 TH2F* pidptPiPBkg = (TH2F*)ptPiPBkg->Clone();
1467 TH2F* pidptPiMSgn = (TH2F*)ptPiMSgn->Clone();
1468 TH2F* pidptPiMBkg = (TH2F*)ptPiMBkg->Clone();
1469 TH2F* pidmassLambdaSgn = (TH2F*)massLambdaSgn->Clone();
1470 TH2F* pidmassLambdaBkg = (TH2F*)massLambdaBkg->Clone();
1471 TH2F* pidmassLambdaBarSgn = (TH2F*)massLambdaBarSgn->Clone();
1472 TH2F* pidmassLambdaBarBkg = (TH2F*)massLambdaBarBkg->Clone();
1473 TH2F* pidmassGammaSgn = (TH2F*)massGammaSgn->Clone();
1474 TH2F* pidmassGammaBkg = (TH2F*)massGammaBkg->Clone();
1475 TH2F* pidd0K0SSgn = (TH2F*)d0K0SSgn->Clone();
1476 TH2F* pidd0K0SBkg = (TH2F*)d0K0SBkg->Clone();
1477 TH2F* pidd0PSgn = (TH2F*)d0PSgn->Clone();
1478 TH2F* pidd0PBkg = (TH2F*)d0PBkg->Clone();
1479 TH2F* pidcosPAK0SSgn = (TH2F*)cosPAK0SSgn->Clone();
1480 TH2F* pidcosPAK0SBkg = (TH2F*)cosPAK0SBkg->Clone();
1526 TH2F* pidTRptK0SSgn = (TH2F*)ptK0SSgn->Clone();
1527 TH2F* pidTRptK0SBkg = (TH2F*)ptK0SBkg->Clone();
1528 TH2F* pidTRptPSgn = (TH2F*)ptPSgn->Clone();
1529 TH2F* pidTRptPBkg = (TH2F*)ptPBkg->Clone();
1530 TH2F* pidTRptPiPSgn = (TH2F*)ptPiPSgn->Clone();
1531 TH2F* pidTRptPiPBkg = (TH2F*)ptPiPBkg->Clone();
1532 TH2F* pidTRptPiMSgn = (TH2F*)ptPiMSgn->Clone();
1533 TH2F* pidTRptPiMBkg = (TH2F*)ptPiMBkg->Clone();
1534 TH2F* pidTRmassLambdaSgn = (TH2F*)massLambdaSgn->Clone();
1535 TH2F* pidTRmassLambdaBkg = (TH2F*)massLambdaBkg->Clone();
1536 TH2F* pidTRmassLambdaBarSgn = (TH2F*)massLambdaBarSgn->Clone();
1537 TH2F* pidTRmassLambdaBarBkg = (TH2F*)massLambdaBarBkg->Clone();
1538 TH2F* pidTRmassGammaSgn = (TH2F*)massGammaSgn->Clone();
1539 TH2F* pidTRmassGammaBkg = (TH2F*)massGammaBkg->Clone();
1540 TH2F* pidTRcosPAK0SSgn = (TH2F*)cosPAK0SSgn->Clone();
1541 TH2F* pidTRcosPAK0SBkg = (TH2F*)cosPAK0SBkg->Clone();
1565 nameHistoSgn=
"histK0SMassOfflineSgn";
1566 nameHistoBkg=
"histK0SMassOfflineBkg";
1567 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";
1568 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";
1569 TH2F* spectrumK0SMassOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,mK0SPDG-0.050,mK0SPDG+0.050);
1570 TH2F* spectrumK0SMassOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,mK0SPDG-0.050,mK0SPDG+0.050);
1572 nameHistoSgn=
"histLcMassByK0SOfflineSgn";
1573 nameHistoBkg=
"histLcMassByK0SOfflineBkg";
1574 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]";
1575 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]";
1576 TH2F* spectrumLcMassOfflineByK0SSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
1577 TH2F* spectrumLcMassOfflineByK0SBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
1579 nameHistoSgn=
"histpK0SvspOfflineSgn";
1580 nameHistoBkg=
"histpK0SvspOfflineBkg";
1581 titleHistoSgn=
"#Lambda_{c} - sgn: K^{0}_{S} vs p Total Momentum Distribution - Offline - MC; p(p) [GeV/c]; p(K^{0}_{S}) [GeV/c]";
1582 titleHistoBkg=
"#Lambda_{c} - bkg: K^{0}_{S} vs p Total Momentum Distribution - Offline - MC; p(p) [GeV/c]; p(K^{0}_{S}) [GeV/c]";
1583 TH2F* momentumDistributionK0SvspOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),41,binLimpTprong,41,binLimpTprong);
1584 TH2F* momentumDistributionK0SvspOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),41,binLimpTprong,41,binLimpTprong);
1587 nameHistoSgn=
"histArmPodK0SOfflineSgn";
1588 nameHistoBkg=
"histArmPodK0SOfflineBkg";
1589 titleHistoSgn=
"V0-candidate Armenteros-Podolanski distribution (sgn) -offline-; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1590 titleHistoBkg=
"V0-candidate Armenteros-Podolanski distribution (bkg) -offline-; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1591 TH2F* armenterosPodK0SOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),200,-1.,1.,300,0.,0.3);
1592 TH2F* armenterosPodK0SOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),200,-1.,1.,300,0.,0.3);
1594 nameHistoSgn=
"histArmPodLcOfflineSgn";
1595 nameHistoBkg=
"histArmPodLcOfflineBkg";
1596 titleHistoSgn=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution (sgn) -offline-; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1597 titleHistoBkg=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution (bkg) -offline-; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1598 TH2F* armenterosPodLcOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),200,-4.,4.,800,0.,1.6);
1599 TH2F* armenterosPodLcOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),200,-4.,4.,800,0.,1.6);
1602 TH2F* allspectrumK0SMassOfflineSgn = (TH2F*)spectrumK0SMassOfflineSgn->Clone();
1603 TH2F* allspectrumK0SMassOfflineBkg = (TH2F*) spectrumK0SMassOfflineBkg->Clone();
1604 TH2F* allspectrumLcMassOfflineByK0SSgn = (TH2F*)spectrumLcMassOfflineByK0SSgn->Clone();
1605 TH2F* allspectrumLcMassOfflineByK0SBkg = (TH2F*) spectrumLcMassOfflineByK0SBkg->Clone();
1606 TH2F* allmomentumDistributionK0SvspOfflineSgn = (TH2F*)momentumDistributionK0SvspOfflineSgn->Clone();
1607 TH2F* allmomentumDistributionK0SvspOfflineBkg = (TH2F*)momentumDistributionK0SvspOfflineBkg->Clone();
1608 TH2F* allArmenterosPodK0SOfflineSgn = (TH2F*)armenterosPodK0SOfflineSgn->Clone();
1609 TH2F* allArmenterosPodK0SOfflineBkg = (TH2F*)armenterosPodK0SOfflineBkg->Clone();
1610 TH2F* allArmenterosPodLcOfflineSgn = (TH2F*)armenterosPodLcOfflineSgn->Clone();
1611 TH2F* allArmenterosPodLcOfflineBkg = (TH2F*)armenterosPodLcOfflineBkg->Clone();
1613 TH2F* pidBachspectrumLcMassOfflineByK0SSgn = (TH2F*)spectrumLcMassOfflineByK0SSgn->Clone();
1614 TH2F* pidBachspectrumLcMassOfflineByK0SBkg = (TH2F*) spectrumLcMassOfflineByK0SBkg->Clone();
1615 TH2F* pidBachspectrumK0SMassOfflineSgn = (TH2F*)spectrumK0SMassOfflineSgn->Clone();
1616 TH2F* pidBachspectrumK0SMassOfflineBkg = (TH2F*) spectrumK0SMassOfflineBkg->Clone();
1617 TH2F* pidBachmomentumDistributionK0SvspOfflineSgn = (TH2F*)momentumDistributionK0SvspOfflineSgn->Clone();
1618 TH2F* pidBachmomentumDistributionK0SvspOfflineBkg = (TH2F*)momentumDistributionK0SvspOfflineBkg->Clone();
1619 TH2F* pidBachArmenterosPodK0SOfflineSgn = (TH2F*)armenterosPodK0SOfflineSgn->Clone();
1620 TH2F* pidBachArmenterosPodK0SOfflineBkg = (TH2F*)armenterosPodK0SOfflineBkg->Clone();
1621 TH2F* pidBachArmenterosPodLcOfflineSgn = (TH2F*)armenterosPodLcOfflineSgn->Clone();
1622 TH2F* pidBachArmenterosPodLcOfflineBkg = (TH2F*)armenterosPodLcOfflineBkg->Clone();
1624 fOutputAll->Add(allspectrumK0SMassOfflineSgn);
1625 fOutputAll->Add(allspectrumK0SMassOfflineBkg);
1626 fOutputAll->Add(allspectrumLcMassOfflineByK0SSgn);
1627 fOutputAll->Add(allspectrumLcMassOfflineByK0SBkg);
1628 fOutputAll->Add(allmomentumDistributionK0SvspOfflineSgn);
1629 fOutputAll->Add(allmomentumDistributionK0SvspOfflineBkg);
1630 fOutputAll->Add(allArmenterosPodK0SOfflineSgn);
1631 fOutputAll->Add(allArmenterosPodK0SOfflineBkg);
1632 fOutputAll->Add(allArmenterosPodLcOfflineSgn);
1633 fOutputAll->Add(allArmenterosPodLcOfflineBkg);
1639 fOutputPIDBach->Add(pidBachmomentumDistributionK0SvspOfflineSgn);
1640 fOutputPIDBach->Add(pidBachmomentumDistributionK0SvspOfflineBkg);
1646 nameHistoSgn=
"histArmPodK0SOfflineSgn0";
1647 nameHistoBkg=
"histArmPodK0SOfflineBkg0";
1648 titleHistoSgn=
"V0-candidate Armenteros-Podolanski distribution (sgn) -offline-; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1649 titleHistoBkg=
"V0-candidate Armenteros-Podolanski distribution (bkg) -offline-; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1650 TH2F* armenterosPodK0SOfflineSgn0 =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),200,-1.,1.,300,0.,0.3);
1651 TH2F* armenterosPodK0SOfflineBkg0 =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),200,-1.,1.,300,0.,0.3);
1652 nameHistoSgn=
"histArmPodLcOfflineSgn0";
1653 nameHistoBkg=
"histArmPodLcOfflineBkg0";
1654 titleHistoSgn=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution (sgn) -offline-; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1655 titleHistoBkg=
"#Lambda_{c}-candidate Armenteros-Podolanski distribution (bkg) -offline-; #frac{p_{L}^{+}-p_{L}^{-}}{p_{L}^{+}+p_{L}^{-}}; p_{T}^{+} [GeV/c]";
1656 TH2F* armenterosPodLcOfflineSgn0 =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),200,-4.,4.,800,0.,1.6);
1657 TH2F* armenterosPodLcOfflineBkg0 =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),200,-4.,4.,800,0.,1.6);
1658 fOutputAll->Add(armenterosPodK0SOfflineSgn0);
1659 fOutputAll->Add(armenterosPodK0SOfflineBkg0);
1664 TH2F* pidBachTRspectrumLcMassOfflineByK0SSgn = (TH2F*)spectrumLcMassOfflineByK0SSgn->Clone();
1665 TH2F* pidBachTRspectrumLcMassOfflineByK0SBkg = (TH2F*) spectrumLcMassOfflineByK0SBkg->Clone();
1673 nameHistoSgn=
"histptK0SOfflineSgn";
1674 nameHistoBkg=
"histptK0SOfflineBkg";
1675 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";
1676 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";
1677 TH2F* ptK0SOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,41,binLimpTprong);
1678 TH2F* ptK0SOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,41,binLimpTprong);
1680 nameHistoSgn=
"histptPOfflineSgn";
1681 nameHistoBkg=
"histptPOfflineBkg";
1682 titleHistoSgn=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
1683 titleHistoBkg=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
1684 TH2F* ptPOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,41,binLimpTprong);
1685 TH2F* ptPOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,41,binLimpTprong);
1687 nameHistoSgn=
"histptPipOfflineSgn";
1688 nameHistoBkg=
"histptPipOfflineBkg";
1689 titleHistoSgn=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
1690 titleHistoBkg=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
1691 TH2F* ptPiPOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,41,binLimpTprong);
1692 TH2F* ptPiPOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,41,binLimpTprong);
1694 nameHistoSgn=
"histptPimOfflineSgn";
1695 nameHistoBkg=
"histptPimOfflineBkg";
1696 titleHistoSgn=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
1697 titleHistoBkg=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
1698 TH2F* ptPiMOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,41,binLimpTprong);
1699 TH2F* ptPiMOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,41,binLimpTprong);
1701 nameHistoSgn=
"histLambdaMassOfflineSgn";
1702 nameHistoBkg=
"histLambdaMassOfflineBkg";
1703 titleHistoSgn=
"m_{inv}(p,#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(p,#pi^{-}) [GeV/c^{2}]; Entries";
1704 titleHistoBkg=
"m_{inv}(p,#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(p,#pi^{-}) [GeV/c^{2}]; Entries";
1705 TH2F* massLambdaOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1706 TH2F* massLambdaOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1708 nameHistoSgn=
"histLambdaBarMassOfflineSgn";
1709 nameHistoBkg=
"histLambdaBarMassOfflineBkg";
1710 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";
1711 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";
1712 TH2F* massLambdaBarOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1713 TH2F* massLambdaBarOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,mMinLambdaPDG,mMinLambdaPDG+0.5);
1715 nameHistoSgn=
"histGammaMassOfflineSgn";
1716 nameHistoBkg=
"histGammaMassOfflineBkg";
1717 titleHistoSgn=
"m_{inv}(e^{+},e^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(e^{+},e^{-}) [GeV/c^{2}]; Entries";
1718 titleHistoBkg=
"m_{inv}(e^{+},e^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; m_{inv}(e^{+},e^{-}) [GeV/c^{2}]; Entries";
1719 TH2F* massGammaOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,100,0.,1.);
1720 TH2F* massGammaOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,100,0.,1.);
1722 nameHistoSgn=
"histD0K0SOfflineSgn";
1723 nameHistoBkg=
"histD0K0SOfflineBkg";
1724 titleHistoSgn=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
1725 titleHistoBkg=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
1726 TH2F* d0K0SOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,-1.,1.);
1727 TH2F* d0K0SOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,-1.,1.);
1729 nameHistoSgn=
"histD0POfflineSgn";
1730 nameHistoBkg=
"histD0POfflineBkg";
1731 titleHistoSgn=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
1732 titleHistoBkg=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
1733 TH2F* d0POfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),11,binLimpTLc,1000,-1.,1.);
1734 TH2F* d0POfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),11,binLimpTLc,1000,-1.,1.);
1736 nameHistoSgn=
"histCosPAK0SOfflineSgn";
1737 nameHistoBkg=
"histCosPAK0SOfflineBkg";
1738 titleHistoSgn=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
1739 titleHistoBkg=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
1740 TH2F *cosPAK0SOfflineSgn =
new TH2F(nameHistoSgn.Data(),titleHistoSgn.Data(),41,binLimpTprong,100,0.99,1.);
1741 TH2F *cosPAK0SOfflineBkg =
new TH2F(nameHistoBkg.Data(),titleHistoBkg.Data(),41,binLimpTprong,100,0.99,1.);
1743 TH2F* allptK0SOfflineSgn = (TH2F*)ptK0SOfflineSgn->Clone();
1744 TH2F* allptK0SOfflineBkg = (TH2F*)ptK0SOfflineBkg->Clone();
1745 TH2F* allptPOfflineSgn = (TH2F*)ptPOfflineSgn->Clone();
1746 TH2F* allptPOfflineBkg = (TH2F*)ptPOfflineBkg->Clone();
1747 TH2F* allptPiPOfflineSgn = (TH2F*)ptPiPOfflineSgn->Clone();
1748 TH2F* allptPiPOfflineBkg = (TH2F*)ptPiPOfflineBkg->Clone();
1749 TH2F* allptPiMOfflineSgn = (TH2F*)ptPiMOfflineSgn->Clone();
1750 TH2F* allptPiMOfflineBkg = (TH2F*)ptPiMOfflineBkg->Clone();
1751 TH2F* allmassLambdaOfflineSgn = (TH2F*)massLambdaOfflineSgn->Clone();
1752 TH2F* allmassLambdaOfflineBkg = (TH2F*)massLambdaOfflineBkg->Clone();
1753 TH2F* allmassLambdaBarOfflineSgn = (TH2F*)massLambdaBarOfflineSgn->Clone();
1754 TH2F* allmassLambdaBarOfflineBkg = (TH2F*)massLambdaBarOfflineBkg->Clone();
1755 TH2F* allmassGammaOfflineSgn = (TH2F*)massGammaOfflineSgn->Clone();
1756 TH2F* allmassGammaOfflineBkg = (TH2F*)massGammaOfflineBkg->Clone();
1757 TH2F* alld0K0SOfflineSgn = (TH2F*)d0K0SOfflineSgn->Clone();
1758 TH2F* alld0K0SOfflineBkg = (TH2F*)d0K0SOfflineBkg->Clone();
1759 TH2F* alld0POfflineSgn = (TH2F*)d0POfflineSgn->Clone();
1760 TH2F* alld0POfflineBkg = (TH2F*)d0POfflineBkg->Clone();
1761 TH2F* allcosPAK0SOfflineSgn = (TH2F*)cosPAK0SOfflineSgn->Clone();
1762 TH2F* allcosPAK0SOfflineBkg = (TH2F*)cosPAK0SOfflineBkg->Clone();
1764 TH2F* pidptK0SOfflineSgn = (TH2F*)ptK0SOfflineSgn->Clone();
1765 TH2F* pidptK0SOfflineBkg = (TH2F*)ptK0SOfflineBkg->Clone();
1766 TH2F* pidptPOfflineSgn = (TH2F*)ptPOfflineSgn->Clone();
1767 TH2F* pidptPOfflineBkg = (TH2F*)ptPOfflineBkg->Clone();
1768 TH2F* pidptPiPOfflineSgn = (TH2F*)ptPiPOfflineSgn->Clone();
1769 TH2F* pidptPiPOfflineBkg = (TH2F*)ptPiPOfflineBkg->Clone();
1770 TH2F* pidptPiMOfflineSgn = (TH2F*)ptPiMOfflineSgn->Clone();
1771 TH2F* pidptPiMOfflineBkg = (TH2F*)ptPiMOfflineBkg->Clone();
1772 TH2F* pidmassLambdaOfflineSgn = (TH2F*)massLambdaOfflineSgn->Clone();
1773 TH2F* pidmassLambdaOfflineBkg = (TH2F*)massLambdaOfflineBkg->Clone();
1774 TH2F* pidmassLambdaBarOfflineSgn = (TH2F*)massLambdaBarOfflineSgn->Clone();
1775 TH2F* pidmassLambdaBarOfflineBkg = (TH2F*)massLambdaBarOfflineBkg->Clone();
1776 TH2F* pidmassGammaOfflineSgn = (TH2F*)massGammaOfflineSgn->Clone();
1777 TH2F* pidmassGammaOfflineBkg = (TH2F*)massGammaOfflineBkg->Clone();
1778 TH2F* pidd0K0SOfflineSgn = (TH2F*)d0K0SOfflineSgn->Clone();
1779 TH2F* pidd0K0SOfflineBkg = (TH2F*)d0K0SOfflineBkg->Clone();
1780 TH2F* pidd0POfflineSgn = (TH2F*)d0POfflineSgn->Clone();
1781 TH2F* pidd0POfflineBkg = (TH2F*)d0POfflineBkg->Clone();
1782 TH2F* pidcosPAK0SOfflineSgn = (TH2F*)cosPAK0SOfflineSgn->Clone();
1783 TH2F* pidcosPAK0SOfflineBkg = (TH2F*)cosPAK0SOfflineBkg->Clone();
1829 TH2F* pidTRptK0SOfflineSgn = (TH2F*)ptK0SOfflineSgn->Clone();
1830 TH2F* pidTRptK0SOfflineBkg = (TH2F*)ptK0SOfflineBkg->Clone();
1831 TH2F* pidTRptPOfflineSgn = (TH2F*)ptPOfflineSgn->Clone();
1832 TH2F* pidTRptPOfflineBkg = (TH2F*)ptPOfflineBkg->Clone();
1833 TH2F* pidTRptPiPOfflineSgn = (TH2F*)ptPiPOfflineSgn->Clone();
1834 TH2F* pidTRptPiPOfflineBkg = (TH2F*)ptPiPOfflineBkg->Clone();
1835 TH2F* pidTRptPiMOfflineSgn = (TH2F*)ptPiMOfflineSgn->Clone();
1836 TH2F* pidTRptPiMOfflineBkg = (TH2F*)ptPiMOfflineBkg->Clone();
1837 TH2F* pidTRmassLambdaOfflineSgn = (TH2F*)massLambdaOfflineSgn->Clone();
1838 TH2F* pidTRmassLambdaOfflineBkg = (TH2F*)massLambdaOfflineBkg->Clone();
1839 TH2F* pidTRmassLambdaBarOfflineSgn = (TH2F*)massLambdaBarOfflineSgn->Clone();
1840 TH2F* pidTRmassLambdaBarOfflineBkg = (TH2F*)massLambdaBarOfflineBkg->Clone();
1841 TH2F* pidTRmassGammaOfflineSgn = (TH2F*)massGammaOfflineSgn->Clone();
1842 TH2F* pidTRmassGammaOfflineBkg = (TH2F*)massGammaOfflineBkg->Clone();
1843 TH2F* pidTRcosPAK0SOfflineSgn = (TH2F*)cosPAK0SOfflineSgn->Clone();
1844 TH2F* pidTRcosPAK0SOfflineBkg = (TH2F*)cosPAK0SOfflineBkg->Clone();
1869 TH3F *phiVSthetaVSpt =
new TH3F(
"phiVSthetaVSpt",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
1870 TH3F *phiVSthetaVSptRot =
new TH3F(
"phiVSthetaVSptRot",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
1871 TH3F *phiVSthetaVSptOffline =
new TH3F(
"phiVSthetaVSptOffline",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
1872 TH3F *phiVSthetaVSptRotOffline =
new TH3F(
"phiVSthetaVSptRotOffline",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
1893 TH3F *phiVSthetaVSptSgn =
new TH3F(
"phiVSthetaVSptSgn",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
1894 TH3F *phiVSthetaVSptRotSgn =
new TH3F(
"phiVSthetaVSptRotSgn",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
1895 TH3F *phiVSthetaVSptOfflineSgn =
new TH3F(
"phiVSthetaVSptOfflineSgn",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
1896 TH3F *phiVSthetaVSptRotOfflineSgn =
new TH3F(
"phiVSthetaVSptRotOfflineSgn",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
1902 TH3F *phiVSthetaVSptBkg =
new TH3F(
"phiVSthetaVSptBkg",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
1903 TH3F *phiVSthetaVSptRotBkg =
new TH3F(
"phiVSthetaVSptRotBkg",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
1904 TH3F *phiVSthetaVSptOfflineBkg =
new TH3F(
"phiVSthetaVSptOfflineBkg",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
1905 TH3F *phiVSthetaVSptRotOfflineBkg =
new TH3F(
"phiVSthetaVSptRotOfflineBkg",
"",35,0.,35.,360,0.,2.*TMath::Pi(),100,40.*TMath::DegToRad(),140.*TMath::DegToRad());
1935 Double_t maxm=
fMinMass+nMassBins*0.001;
1936 TH3F *hMassVsPtVsY=
new TH3F(
"hMassVsPtVsY",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
1937 TH3F *hMassVsPtVsYOffline=
new TH3F(
"hMassVsPtVsYOffline",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
1951 TH3F *hMassVsPtVsYSgn=
new TH3F(
"hMassVsPtVsYSgn",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
1952 TH3F *hMassVsPtVsYOfflineSgn=
new TH3F(
"hMassVsPtVsYOfflineSgn",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
1953 TH3F *hMassVsPtVsYBkg=
new TH3F(
"hMassVsPtVsYBkg",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
1954 TH3F *hMassVsPtVsYOfflineBkg=
new TH3F(
"hMassVsPtVsYOfflineBkg",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
1975 TH3F *hMassVsPtVsYRot=
new TH3F(
"hMassVsPtVsYRot",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
1976 TH3F *hMassVsPtVsYRotOffline=
new TH3F(
"hMassVsPtVsYRotOffline",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
1990 TH3F *hMassVsPtVsYRotSgn=
new TH3F(
"hMassVsPtVsYRotSgn",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
1991 TH3F *hMassVsPtVsYRotOfflineSgn=
new TH3F(
"hMassVsPtVsYRotOfflineSgn",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
1992 TH3F *hMassVsPtVsYRotBkg=
new TH3F(
"hMassVsPtVsYRotBkg",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
1993 TH3F *hMassVsPtVsYRotOfflineBkg=
new TH3F(
"hMassVsPtVsYRotOfflineBkg",
"",nMassBins,
fMinMass,maxm,15,0.,15.,20,-1.,1.);
2013 TH1F *hDeltaMass=
new TH1F(
"hDeltaMass",
"",100,-0.4,0.4);
2014 TH1F *hDeltaMassOffline=
new TH1F(
"hDeltaMassOffline",
"",100,-0.4,0.4);
2028 TH1F *hDeltaMassSgn=
new TH1F(
"hDeltaMassSgn",
"",100,-0.4,0.4);
2029 TH1F *hDeltaMassOfflineSgn=
new TH1F(
"hDeltaMassOfflineSgn",
"",100,-0.4,0.4);
2030 TH1F *hDeltaMassBkg=
new TH1F(
"hDeltaMassBkg",
"",100,-0.4,0.4);
2031 TH1F *hDeltaMassOfflineBkg=
new TH1F(
"hDeltaMassOfflineBkg",
"",100,-0.4,0.4);
2093 TClonesArray *arrayLctopKos=0;
2095 if(AODEvent() && IsStandardAOD()) {
2098 aodEvent =
dynamic_cast<AliAODEvent*
> (AODEvent());
2101 AliAODHandler* aodHandler = (AliAODHandler*)
2102 ((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler());
2104 if (aodHandler->GetExtensions()) {
2105 AliAODExtension *ext = (AliAODExtension*)aodHandler->GetExtensions()->FindObject(
"AliAOD.VertexingHF.root");
2106 AliAODEvent *aodFromExt = ext->GetAOD();
2107 arrayLctopKos=(TClonesArray*)aodFromExt->GetList()->FindObject(
"CascadesHF");
2111 arrayLctopKos=(TClonesArray*)aodEvent->GetList()->FindObject(
"CascadesHF");
2114 Float_t zVertex =
fVtx1->GetZ();
2115 TString titleVtx=
fVtx1->GetTitle();
2117 if (TMath::Abs(
fBzkG)>=0.001) {
2121 if (arrayLctopKos) {
2126 TClonesArray *mcArray = 0;
2127 AliAODMCHeader *mcHeader=0;
2131 mcArray =
dynamic_cast<TClonesArray*
>(aodEvent->FindListObject(AliAODMCParticle::StdBranchName()));
2136 mcHeader = (AliAODMCHeader*)aodEvent->GetList()->FindObject(AliAODMCHeader::StdBranchName());
2142 for (Int_t iii=0; iii<mcArray->GetEntries(); iii++)
2150 if (
fVtx1->GetNContributors()>0) {
2153 TString firedTriggerClasses = aodEvent->GetFiredTriggerClasses();
2154 ULong64_t fTriggerMask=AliVEvent::kAnyINT;
2155 Bool_t check1 = kFALSE;
2157 (aodEvent->GetRunNumber()<136851 || aodEvent->GetRunNumber()>139517) ) {
2158 if ( !(firedTriggerClasses.Contains(
"CINT1")) ) {
2159 AliInfo(Form(
" ======================== firedTriggerClasses.Data() = %s",firedTriggerClasses.Data()));
2166 Bool_t isSelectedAAA = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & fTriggerMask);
2167 if (!isSelectedAAA) {
2172 if (!isSelectedAAA || check1) {
2177 fTriggerMask=AliVEvent::kAny;
2178 Bool_t isSelectedBBB = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & fTriggerMask);
2179 if (!isSelectedBBB) {
2184 if (titleVtx.Contains(
"Z")) {
2188 else if (titleVtx.Contains(
"3D")) {
2221 Float_t zVertex =
fVtx1->GetZ();
2222 TString titleVtx=
fVtx1->GetTitle();
2223 TString firedTriggerClasses = aodEvent->GetFiredTriggerClasses();
2224 ULong64_t fTriggerMask=AliVEvent::kAnyINT;
2226 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(6);
2229 Bool_t check1a = kFALSE;
2231 (aodEvent->GetRunNumber()<136851 || aodEvent->GetRunNumber()>139517) ) {
2232 if ( !(firedTriggerClasses.Contains(
"CINT1")) ) {
2233 AliInfo(Form(
" ======================== firedTriggerClasses.Data() = %s",firedTriggerClasses.Data()));
2234 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(8);
2240 Bool_t isSelectedAAAa = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & fTriggerMask);
2241 if (!isSelectedAAAa) {
2242 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(9);
2246 if (!isSelectedAAAa || check1a) {
2247 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(16);
2251 fTriggerMask=AliVEvent::kAny;
2252 Bool_t isSelectedBBBa = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & fTriggerMask);
2253 if (!isSelectedBBBa) {
2254 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(10);
2258 if (titleVtx.Contains(
"Z")) {
2259 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(11);
2262 else if (titleVtx.Contains(
"3D")) {
2263 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(12);
2266 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(13);
2271 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(14);
2276 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(7);
2279 ((TH1F*)(
fOutput->FindObject(
"hEventsWithCandidates")))->Fill(15);
2288 Int_t *pdgDgLc2bacV0, Int_t *pdgDgV0,
2289 TClonesArray *mcArray) {
2295 AliAODTrack *bachelor = (AliAODTrack*)lc2bacV0->
GetBachelor();
2296 if (!bachelor)
return -1;
2297 Int_t labBachelor = TMath::Abs(bachelor->GetLabel());
2298 if (labBachelor<0)
return -1;
2299 AliAODMCParticle *partBachelor = (AliAODMCParticle*)mcArray->At(labBachelor);
2300 if (!partBachelor)
return -1;
2301 if (TMath::Abs(partBachelor->GetPdgCode())!=pdgDgLc2bacV0[0])
return -1;
2303 Int_t labBacMother = partBachelor->GetMother();
2304 if (labBacMother<0)
return -1;
2305 AliAODMCParticle *partBacMother = (AliAODMCParticle*)mcArray->At(labBacMother);
2306 if (!partBacMother)
return -1;
2307 if (TMath::Abs(partBacMother->GetPdgCode())!=4122)
return -1;
2312 if (!posV0Daugh || !negV0Daugh)
return -1;
2314 Int_t labV0pos = TMath::Abs(posV0Daugh->GetLabel());
2315 Int_t labV0neg = TMath::Abs(negV0Daugh->GetLabel());
2316 if (labV0pos<0 || labV0neg<0)
return -1;
2318 AliAODMCParticle *partV0pos = (AliAODMCParticle*)mcArray->At(labV0neg);
2319 AliAODMCParticle *partV0neg = (AliAODMCParticle*)mcArray->At(labV0pos);
2320 if (!partV0pos || !partV0neg)
return -1;
2322 if ( ! ( (TMath::Abs(partV0pos->GetPdgCode())==pdgDgV0[0] &&
2323 TMath::Abs(partV0neg->GetPdgCode())==pdgDgV0[1]) ||
2324 (TMath::Abs(partV0pos->GetPdgCode())==pdgDgV0[1] &&
2325 TMath::Abs(partV0neg->GetPdgCode())==pdgDgV0[0]) ) )
return -1;
2326 Int_t labV0posMother = partV0pos->GetMother();
2327 Int_t labV0negMother = partV0neg->GetMother();
2329 if (labV0posMother<0 || labV0negMother<0)
return -1;
2330 if (labV0posMother!=labV0negMother)
return -1;
2332 AliAODMCParticle *motherV0 = (AliAODMCParticle*)mcArray->At(labV0posMother);
2333 if (!motherV0)
return-1;
2335 if (TMath::Abs(motherV0->GetPdgCode())!=pdgDgLc2bacV0[1])
return -1;
2336 Int_t labV0mother = motherV0->GetMother();
2337 if (labV0mother<0)
return -1;
2338 AliAODMCParticle *gMotherV0 = (AliAODMCParticle*)mcArray->At(labV0mother);
2339 if (!gMotherV0)
return-1;
2341 if ( !(pdgDgLc2bacV0[1]==310 && TMath::Abs(gMotherV0->GetPdgCode())==311) &&
2342 !(pdgDgLc2bacV0[1]==3122 && TMath::Abs(motherV0->GetPdgCode())==3122) )
return -1;
2344 if ( (pdgDgLc2bacV0[1]==310 && TMath::Abs(gMotherV0->GetPdgCode())==311) ) {
2345 Int_t labV0GMother = gMotherV0->GetMother();
2346 if (labV0GMother<0)
return -1;
2347 AliAODMCParticle *ggMotherV0 = (AliAODMCParticle*)mcArray->At(labV0GMother);
2348 if (!ggMotherV0)
return-1;
2350 if (TMath::Abs(ggMotherV0->GetPdgCode())!=4122)
return -1;
2351 gMotherV0 = (AliAODMCParticle*)ggMotherV0;
2352 labV0mother=labV0GMother;
2354 else if (pdgDgLc2bacV0[1]==3122 && TMath::Abs(motherV0->GetPdgCode())==3122) {
2355 if (TMath::Abs(gMotherV0->GetPdgCode())!=4122)
return -1;
2358 if (labBacMother!=labV0mother) {
2362 return labBacMother;
2372 Int_t indexToBeReturned=-999;
2375 Int_t pdgLambda=3122;
2378 Int_t pdgBachelor=2212;
2379 Int_t pdgBachelorPi=211;
2381 TString fillthis=
"";
2382 fillthis=
"histMcStatLc";
2384 AliAODMCParticle *searchLc =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(iii));
2385 if(!searchLc)
return -999;
2386 if (TMath::Abs(searchLc->GetPdgCode()) != pdgLc)
return -999;
2388 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(0);
2389 indexToBeReturned = 0;
2391 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*1);
2392 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*1;
2394 Int_t nDaughLc = searchLc->GetNDaughters();
2396 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*10);
2397 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*10;
2398 return indexToBeReturned;
2401 Int_t index1=searchLc->GetDaughter(0);
2402 Int_t index2=searchLc->GetDaughter(1);
2403 if (index1<=0 || index2<=0) {
2407 AliAODMCParticle *daugh1 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(index1));
2408 AliAODMCParticle *daugh2 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(index2));
2409 if (!daugh1 || !daugh2)
return -999;
2411 Int_t daughPdg1 = TMath::Abs(daugh1->GetPdgCode());
2412 Int_t daughPdg2 = TMath::Abs(daugh2->GetPdgCode());
2413 if ( !( (daughPdg1==pdgBachelor && daughPdg2==pdgK0) ||
2414 (daughPdg2==pdgBachelor && daughPdg1==pdgK0) ||
2415 (daughPdg1==pdgLambda && daughPdg2==pdgBachelorPi) ||
2416 (daughPdg2==pdgLambda && daughPdg1==pdgBachelorPi) ) ) {
2417 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*10);
2418 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*10;
2419 return indexToBeReturned;
2422 if (daughPdg1==pdgK0 || daughPdg1==pdgLambda) {
2423 index1=searchLc->GetDaughter(1);
2424 index2=searchLc->GetDaughter(0);
2426 daugh1 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(index1));
2427 daugh2 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(index2));
2428 if (!daugh1 || !daugh2)
return -999;
2430 daughPdg1=TMath::Abs(daugh1->GetPdgCode());
2431 daughPdg2=TMath::Abs(daugh2->GetPdgCode());
2433 if ( daughPdg1==pdgBachelor && daughPdg2==pdgK0 ) {
2435 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*2);
2436 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*2;
2438 Int_t nDaughK0 = daugh2->GetNDaughters();
2439 if (nDaughK0!=1)
return -999;
2441 Int_t indexK0daugh=daugh2->GetDaughter(0);
2442 if (indexK0daugh<=0)
return -999;
2444 AliAODMCParticle *daughK0 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(indexK0daugh));
2445 if (!daughK0)
return -999;
2447 Int_t daughK0Pdg=TMath::Abs(daughK0->GetPdgCode());
2448 if (daughK0Pdg!=pdgV0) {
2449 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*4);
2450 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*4;
2451 return indexToBeReturned;
2453 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*3);
2454 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*3;
2456 Int_t nDaughK0S = daughK0->GetNDaughters();
2458 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*5);
2459 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*5;
2460 return indexToBeReturned;
2463 index1=daughK0->GetDaughter(0);
2464 index2=daughK0->GetDaughter(1);
2465 if(index1<=0 || index2<=0) {
2469 AliAODMCParticle *daughK0S1 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(index1));
2470 AliAODMCParticle *daughK0S2 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(index2));
2471 if (!daughK0S1 || !daughK0S2)
return -999;
2473 Int_t daughK0S1pdg=TMath::Abs(daughK0S1->GetPdgCode());
2474 Int_t daughK0S2pdg=TMath::Abs(daughK0S2->GetPdgCode());
2476 if ( daughK0S1pdg==211 && daughK0S2pdg==211 ) {
2477 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*6);
2478 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*6;
2480 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*5);
2481 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*5;
2485 else if ( daughPdg1==pdgBachelorPi && daughPdg2==pdgLambda ) {
2487 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*7);
2488 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*7;
2490 Int_t nDaughL = daugh2->GetNDaughters();
2492 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*8);
2493 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*8;
2494 return indexToBeReturned;
2497 index1=daugh2->GetDaughter(0);
2498 index2=daugh2->GetDaughter(1);
2499 if(index1<=0 || index2<=0) {
2503 AliAODMCParticle *daughL1 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(index1));
2504 AliAODMCParticle *daughL2 =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(index2));
2505 if (!daughL1 || !daughL2)
return -999;
2507 Int_t daughL1pdg=TMath::Abs(daughL1->GetPdgCode());
2508 Int_t daughL2pdg=TMath::Abs(daughL2->GetPdgCode());
2509 if ( (daughL1pdg==211 && daughL2pdg==2212) ||
2510 (daughL2pdg==211 && daughL1pdg==2212) ) {
2511 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*9);
2512 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*9;
2514 ((TH1F*)(
fOutput->FindObject(fillthis)))->Fill(TMath::Nint(searchLc->Charge()/3.)*8);
2515 indexToBeReturned = TMath::Nint(searchLc->Charge()/3.)*8;
2520 return indexToBeReturned;
2526 Bool_t isCandidateSelectedCuts,
2527 Bool_t isBachelorID) {
2532 Double_t alpha = vZero->Alpha();
2533 Double_t qT = vZero->QtProng();
2535 ((TH2F*)(
fOutputAll->FindObject(histoTitle+
"0")))->Fill(alpha,qT);
2536 if (isCandidateSelectedCuts) {
2537 ((TH2F*)(
fOutputAll->FindObject(histoTitle)))->Fill(alpha,qT);
2539 ((TH2F*)(
fOutputPIDBach->FindObject(histoTitle)))->Fill(alpha,qT);
2552 AliAODv0 * v0part = (AliAODv0*)part->
Getv0();
2553 Bool_t onFlyV0 = v0part->GetOnFlyStatus();
2555 AliAODTrack *bachelor = (AliAODTrack*)part->
GetBachelor();
2558 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(3);
2561 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(4);
2563 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(5);
2566 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(6);
2569 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(7);
2571 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(8);
2573 ((TH1F*)(
fOutput->FindObject(
"hCandidateSelection")))->Fill(9);
2583 ((TH1F*)(
fOutput->FindObject(
"hSwitchOnCandidates1")))->Fill( -aaa );
2585 ((TH1F*)(
fOutput->FindObject(
"hSwitchOnCandidates1")))->Fill( aaa );
2590 if ((aaa&AliRDHFCutsLctoV0::kLcToK0Spr)==AliRDHFCutsLctoV0::kLcToK0Spr) {
2593 ((TH1F*)(
fOutput->FindObject(
"hSwitchOnCandidates2")))->Fill( -aaa );
2595 ((TH1F*)(
fOutput->FindObject(
"hSwitchOnCandidates2")))->Fill( aaa );
2600 if ((aaa&AliRDHFCutsLctoV0::kLcToK0Spr)==AliRDHFCutsLctoV0::kLcToK0Spr) {
2603 ((TH1F*)(
fOutput->FindObject(
"hSwitchOnCandidates3")))->Fill( -aaa );
2605 ((TH1F*)(
fOutput->FindObject(
"hSwitchOnCandidates3")))->Fill( aaa );
2609 if ((aaa&AliRDHFCutsLctoV0::kLcToK0Spr)==AliRDHFCutsLctoV0::kLcToK0Spr) {
2612 ((TH1F*)(
fOutput->FindObject(
"hSwitchOnCandidates4")))->Fill( -aaa );
2614 ((TH1F*)(
fOutput->FindObject(
"hSwitchOnCandidates4")))->Fill( aaa );
2629 Double_t mk0sPDG = TDatabasePDG::Instance()->GetParticle(310)->Mass();
2630 Double_t mLPDG = TDatabasePDG::Instance()->GetParticle(3122)->Mass();
2635 AliAODTrack *bachelor = (AliAODTrack*)part->
GetBachelor();
2637 AliAODv0 * v0part = (AliAODv0*)part->
Getv0();
2638 Double_t dcaV0ptp = v0part->GetDCA();
2639 Double_t invmassK0S = v0part->MassK0Short();
2640 Double_t invmassLambda = v0part->MassLambda();
2641 Double_t invmassLambdaBar = v0part->MassAntiLambda();
2643 Int_t isLc2LBarpi=0, isLc2Lpi=0;
2645 Int_t isDp2K0Spi=0, isDs2K0SK=0;
2646 Int_t mcLabel2 = -1;
2647 Int_t mcLabel3 = -1;
2648 Int_t isKstar12K0Spi=0, isKstar22K0Spi=0;
2649 Int_t mcLabel4 = -1;
2650 Int_t mcLabel5 = -1;
2651 Double_t ptCandByMC = 0.;
2652 Double_t yCandByMC = 0.;
2655 Int_t pdgCand0 = 4122;
2656 Int_t pdgDgLctoV0bachelor0[2]={2212,310};
2657 Int_t pdgDgV0toDaughters0[2]={211,211};
2658 Int_t mcLabelLc2pK0S = part->
MatchToMC(pdgCand0,pdgDgLctoV0bachelor0[1],pdgDgLctoV0bachelor0,pdgDgV0toDaughters0,mcArray,kTRUE);
2659 AliAODMCParticle *lambdaCpartMC = (AliAODMCParticle*)mcArray->At(mcLabelLc2pK0S);
2660 if (lambdaCpartMC) {
2661 ptCandByMC = lambdaCpartMC->Pt();
2662 yCandByMC = lambdaCpartMC->Y();
2666 Int_t pdgCand = 4122;
2667 Int_t pdgDgLctoV0bachelor[2]={211,3122};
2668 Int_t pdgDgV0toDaughters[2]={2212,211};
2669 mcLabel = part->
MatchToMC(pdgCand,pdgDgLctoV0bachelor[1],pdgDgLctoV0bachelor,pdgDgV0toDaughters,mcArray,kTRUE);
2671 if (bachelor->Charge()<0) isLc2LBarpi=1;
2672 if (bachelor->Charge()>0) isLc2Lpi=1;
2673 AliAODMCParticle *lambdaCpartMC = (AliAODMCParticle*)mcArray->At(mcLabel);
2674 if (lambdaCpartMC) {
2675 ptCandByMC = lambdaCpartMC->Pt();
2676 yCandByMC = lambdaCpartMC->Y();
2680 Int_t pdgCand2 = 411;
2681 Int_t pdgCand3 = 431;
2682 Int_t pdgDgCand2[2]={211,310};
2683 Int_t pdgDgCand3[2]={321,310};
2684 pdgDgV0toDaughters[0]=211;
2685 pdgDgV0toDaughters[1]=211;
2686 mcLabel2 = part->
MatchToMC(pdgCand2,pdgDgCand2[1],pdgDgCand2,pdgDgV0toDaughters,mcArray,kTRUE);
2687 mcLabel3 = part->
MatchToMC(pdgCand3,pdgDgCand3[1],pdgDgCand3,pdgDgV0toDaughters,mcArray,kTRUE);
2690 AliAODMCParticle *lambdaCpartMC = (AliAODMCParticle*)mcArray->At(mcLabel2);
2691 if (lambdaCpartMC) {
2692 ptCandByMC = lambdaCpartMC->Pt();
2693 yCandByMC = lambdaCpartMC->Y();
2698 AliAODMCParticle *lambdaCpartMC = (AliAODMCParticle*)mcArray->At(mcLabel3);
2699 if (lambdaCpartMC) {
2700 ptCandByMC = lambdaCpartMC->Pt();
2701 yCandByMC = lambdaCpartMC->Y();
2705 Int_t pdgCand4 = 313;
2706 Int_t pdgCand5 = 325;
2707 Int_t pdgDgCand4[2]={211,310};
2708 Int_t pdgDgCand5[2]={211,310};
2709 pdgDgV0toDaughters[0]=211;
2710 pdgDgV0toDaughters[1]=211;
2711 mcLabel4 = part->
MatchToMC(pdgCand4,pdgDgCand4[1],pdgDgCand4,pdgDgV0toDaughters,mcArray,kTRUE);
2712 mcLabel5 = part->
MatchToMC(pdgCand5,pdgDgCand5[1],pdgDgCand5,pdgDgV0toDaughters,mcArray,kTRUE);
2715 AliAODMCParticle *lambdaCpartMC = (AliAODMCParticle*)mcArray->At(mcLabel4);
2716 if (lambdaCpartMC) {
2717 ptCandByMC = lambdaCpartMC->Pt();
2718 yCandByMC = lambdaCpartMC->Y();
2723 AliAODMCParticle *lambdaCpartMC = (AliAODMCParticle*)mcArray->At(mcLabel5);
2724 if (lambdaCpartMC) {
2725 ptCandByMC = lambdaCpartMC->Pt();
2726 yCandByMC = lambdaCpartMC->Y();
2731 Int_t isLcByMC = isLc+isLc2LBarpi*2+isLc2Lpi*4+isDp2K0Spi*8+isDs2K0SK*16+isKstar12K0Spi*32+isKstar22K0Spi*64;
2733 Bool_t isMCparticleInFiducialAcceptance = kTRUE;
2734 if (isLc || isLc2LBarpi || isLc2Lpi || isDp2K0Spi || isDs2K0SK || isKstar12K0Spi || isKstar22K0Spi) {
2740 Int_t isLambdaBar = 0;
2743 Int_t pdgDg2prong[2] = {211, 211};
2744 Int_t labelK0S = v0part->MatchToMC(310,mcArray,2,pdgDg2prong);
2745 if (labelK0S>=0) isK0S = 1;
2747 pdgDg2prong[0] = 211;
2748 pdgDg2prong[1] = 2212;
2749 Int_t lambdaLabel = v0part->MatchToMC(3122,mcArray,2,pdgDg2prong);
2750 if (lambdaLabel>=0) {
2751 AliAODMCParticle *lambdaTrack = (AliAODMCParticle*)mcArray->At(lambdaLabel);
2752 if (lambdaTrack->GetPdgCode()==3122) isLambda = 1;
2753 else if (lambdaTrack->GetPdgCode()==-3122) isLambdaBar = 1;
2756 pdgDg2prong[0] = 11;
2757 pdgDg2prong[1] = 11;
2758 Int_t gammaLabel = v0part->MatchToMC(22,mcArray,2,pdgDg2prong);
2759 if (gammaLabel>=0) {
2760 AliAODMCParticle *gammaTrack = (AliAODMCParticle*)mcArray->At(gammaLabel);
2761 if (gammaTrack->GetPdgCode()==22) isGamma = 1;
2765 Int_t isV0ByMC = isK0S+isLambdaBar*2+isLambda*4+isGamma*8;
2767 Int_t isBachelorSelected = (bachelor->TestFilterMask(BIT(4)))*1 + (!(bachelor->TestFilterMask(BIT(4))))*2;
2768 isBachelorSelected += (bachelor->GetLabel()<0)*4 + (bachelor->GetLabel()>=0)*8;
2769 if ( ( !(bachelor->HasPointOnITSLayer(0)) && !(bachelor->HasPointOnITSLayer(1)) ) )
2770 isBachelorSelected += 16;
2772 if ( bachelor->HasPointOnITSLayer(0) && !(bachelor->HasPointOnITSLayer(1)) )
2773 isBachelorSelected += 32;
2774 else if ( !(bachelor->HasPointOnITSLayer(0)) && bachelor->HasPointOnITSLayer(1) )
2775 isBachelorSelected += 64;
2777 isBachelorSelected += 128;
2783 Int_t areV0daughtersSelected = (v0pos->TestFilterMask(BIT(4)))*1 + (!(v0pos->TestFilterMask(BIT(4))))*2;
2784 areV0daughtersSelected += (v0pos->GetLabel()<0)*4 + (v0pos->GetLabel()>=0)*8;
2785 areV0daughtersSelected += (v0pos->HasPointOnITSLayer(0))*16;
2786 areV0daughtersSelected += (v0pos->HasPointOnITSLayer(1))*32;
2787 areV0daughtersSelected += (v0pos->HasPointOnITSLayer(2))*64;
2788 areV0daughtersSelected += (v0pos->HasPointOnITSLayer(3))*128;
2789 areV0daughtersSelected += (v0pos->HasPointOnITSLayer(4))*256;
2790 areV0daughtersSelected += (v0pos->HasPointOnITSLayer(5))*512;
2792 areV0daughtersSelected += (v0neg->TestFilterMask(BIT(4)))*1024 + (!(v0neg->TestFilterMask(BIT(4))))*2048;
2793 areV0daughtersSelected += (v0neg->GetLabel()<0)*4096 + (v0neg->GetLabel()>=0)*8192;
2794 areV0daughtersSelected += (v0neg->HasPointOnITSLayer(0))*16384;
2795 areV0daughtersSelected += (v0neg->HasPointOnITSLayer(1))*32768;
2796 areV0daughtersSelected += (v0neg->HasPointOnITSLayer(2))*65536;
2797 areV0daughtersSelected += (v0neg->HasPointOnITSLayer(3))*131072;
2798 areV0daughtersSelected += (v0neg->HasPointOnITSLayer(4))*262144;
2799 areV0daughtersSelected += (v0neg->HasPointOnITSLayer(5))*524288;
2801 Double_t nSigmaITSpr=-999.;
2803 Double_t nSigmaTPCpr=-999.;
2805 Double_t nSigmaTOFpr=-999.;
2808 Double_t nSigmaITSpi=-999.;
2810 Double_t nSigmaTPCpi=-999.;
2812 Double_t nSigmaTOFpi=-999.;
2815 Double_t nSigmaITSka=-999.;
2817 Double_t nSigmaTPCka=-999.;
2819 Double_t nSigmaTOFka=-999.;
2823 Int_t flagToCheckCandidate = 1*(TMath::Abs(invmassK0S-mk0sPDG)<=0.050);
2824 flagToCheckCandidate+=2*((TMath::Abs(invmassLambdaBar-mLPDG)<=0.050) && (bachelor->Charge()<0));
2825 flagToCheckCandidate+=4*((TMath::Abs(invmassLambda-mLPDG)<=0.050) && (bachelor->Charge()>0));
2826 flagToCheckCandidate+=8*((TMath::Abs(invmassLambdaBar-mLPDG)<=0.050) && (bachelor->Charge()>0));
2827 flagToCheckCandidate+=16*((TMath::Abs(invmassLambda-mLPDG)<=0.050) && (bachelor->Charge()<0));
2885 Double_t dcaForLc=0.;
2887 Double_t xVtxLc=0, yVtxLc=0, zVtxLc=0;
2888 Double_t xLcMC=0,yLcMC=0,zLcMC=0;
2889 Double_t pxVtxBachelor=0, pyVtxBachelor=0, pzVtxBachelor=0;
2890 dcaForLc =
PropagateToDCA(v0part,bachelor,
fBzkG, xVtxLc, yVtxLc, zVtxLc, pxVtxBachelor, pyVtxBachelor, pzVtxBachelor);
2892 Int_t pdgCand0 = 4122;
2893 Int_t pdgDgLctoV0bachelor0[2]={2212,310};
2894 Int_t pdgDgV0toDaughters0[2]={211,211};
2895 Int_t mcLabel0 = part->
MatchToMC(pdgCand0,pdgDgLctoV0bachelor0[1],pdgDgLctoV0bachelor0,pdgDgV0toDaughters0,mcArray,kTRUE);
2896 AliAODMCParticle *partLc =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(mcLabel0));
2898 AliAODMCParticle *partLcDaug0 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(partLc->GetDaughter(0)));
2900 xLcMC=partLcDaug0->Xv(), yLcMC=partLcDaug0->Yv(), zLcMC=partLcDaug0->Zv();
2903 }
else if (isLc2LBarpi || isLc2Lpi) {
2904 AliAODMCParticle *partLc =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(mcLabel));
2905 AliAODMCParticle *partLcDaug0 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(partLc->GetDaughter(0)));
2906 xLcMC=partLcDaug0->Xv(), yLcMC=partLcDaug0->Yv(), zLcMC=partLcDaug0->Zv();
2907 }
else if (isDp2K0Spi) {
2908 AliAODMCParticle *partLc =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(mcLabel2));
2909 AliAODMCParticle *partLcDaug0 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(partLc->GetDaughter(0)));
2910 xLcMC=partLcDaug0->Xv(), yLcMC=partLcDaug0->Yv(), zLcMC=partLcDaug0->Zv();
2911 }
else if (isDs2K0SK) {
2912 AliAODMCParticle *partLc =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(mcLabel3));
2913 AliAODMCParticle *partLcDaug0 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(partLc->GetDaughter(0)));
2914 xLcMC=partLcDaug0->Xv(), yLcMC=partLcDaug0->Yv(), zLcMC=partLcDaug0->Zv();
2915 }
else if (isKstar12K0Spi) {
2916 AliAODMCParticle *partLc =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(mcLabel4));
2917 AliAODMCParticle *partLcDaug0 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(partLc->GetDaughter(0)));
2918 xLcMC=partLcDaug0->Xv(), yLcMC=partLcDaug0->Yv(), zLcMC=partLcDaug0->Zv();
2919 }
else if (isKstar22K0Spi) {
2920 AliAODMCParticle *partLc =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(mcLabel5));
2921 AliAODMCParticle *partLcDaug0 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(partLc->GetDaughter(0)));
2922 xLcMC=partLcDaug0->Xv(), yLcMC=partLcDaug0->Yv(), zLcMC=partLcDaug0->Zv();
2965 if (bachelor->GetLabel()!=-1) {
2966 AliAODMCParticle *partBachelor =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(TMath::Abs(bachelor->GetLabel())));
2969 if (bachelor->GetLabel()!=-1 &&
2970 v0pos->GetLabel()!=-1 &&
2971 v0neg->GetLabel()!=-1) {
2973 Int_t dgLabels[ndg]={TMath::Abs(bachelor->GetLabel()),
2974 TMath::Abs(v0pos->GetLabel()),
2975 TMath::Abs(v0neg->GetLabel())};
2978 Int_t absLabelMother=-1;
2981 dgLabels,ndg,ndgCk,pdgDg,absLabelMother,nDauCand);
2983 if (v0pos->GetLabel()!=-1) {
2984 AliAODMCParticle *part1 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(TMath::Abs(v0pos->GetLabel())));
2987 if (v0neg->GetLabel()!=-1) {
2988 AliAODMCParticle *part2 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(TMath::Abs(v0neg->GetLabel())));
2991 if (v0pos->GetLabel()!=-1 &&
2992 v0neg->GetLabel()!=-1) {
2994 Int_t dgLabels[ndg]={TMath::Abs(v0pos->GetLabel()),
2995 TMath::Abs(v0neg->GetLabel())};
2998 Int_t absLabelMother=-1;
3001 dgLabels,ndg,ndgCk,pdgDg,absLabelMother,nDauCand);
3005 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
3006 AliInputEventHandler *inputHandler=(AliInputEventHandler*)mgr->GetInputEventHandler();
3007 AliPIDResponse *pidResponse=inputHandler->GetPIDResponse();
3010 AliPIDCombined *objectPIDCombined=
new AliPIDCombined;
3011 objectPIDCombined->SetDefaultTPCPriors();
3012 objectPIDCombined->SetDetectorMask(AliPIDResponse::kDetTPC+AliPIDResponse::kDetTOF);
3014 Double_t probTPCTOF[AliPID::kSPECIES]={-1.};
3015 UInt_t detUsed = objectPIDCombined->ComputeProbabilities(bachelor, pidResponse, probTPCTOF);
3017 Double_t probProton = -1.;
3020 if (detUsed == (UInt_t)objectPIDCombined->GetDetectorMask() ) {
3021 AliDebug(2, Form(
"We have found the detector mask for TOF + TPC: probProton will be set to %f", probTPCTOF[AliPID::kProton]));
3022 probProton = probTPCTOF[AliPID::kProton];
3027 objectPIDCombined->SetDetectorMask(AliPIDResponse::kDetTPC);
3028 AliDebug(2,
"We did not find the detector mask for TOF + TPC, let's see only TPC");
3029 detUsed = objectPIDCombined->ComputeProbabilities(bachelor, pidResponse, probTPCTOF);
3030 AliDebug(2,Form(
" detUsed (TPC case) = %d", detUsed));
3031 if (detUsed == (UInt_t)objectPIDCombined->GetDetectorMask()) {
3032 probProton = probTPCTOF[AliPID::kProton];
3035 AliDebug(2, Form(
"TPC only worked: probProton will be set to %f", probTPCTOF[AliPID::kProton]));
3038 AliDebug(2,
"Only TPC did not work...");
3041 objectPIDCombined->SetDetectorMask(AliPIDResponse::kDetTPC+AliPIDResponse::kDetTOF);
3043 AliDebug(2, Form(
"probProton = %f", probProton));
3046 Double_t probProtonTPC = -1.;
3047 Double_t probProtonTOF = -1.;
3048 Double_t pidTPC[AliPID::kSPECIES]={-1.};
3049 Double_t pidTOF[AliPID::kSPECIES]={-1.};
3050 Int_t respTPC = pidResponse->ComputePIDProbability(AliPIDResponse::kDetTPC, bachelor, AliPID::kSPECIES, pidTPC);
3051 Int_t respTOF = pidResponse->ComputePIDProbability(AliPIDResponse::kDetTOF, bachelor, AliPID::kSPECIES, pidTOF);
3052 if (respTPC == AliPIDResponse::kDetPidOk) probProtonTPC = pidTPC[AliPID::kProton];
3053 if (respTOF == AliPIDResponse::kDetPidOk) probProtonTOF = pidTOF[AliPID::kProton];
3063 delete objectPIDCombined;
3076 const char* nameoutput = GetOutputSlot(4)->GetContainer()->GetName();
3077 fVariablesTree =
new TTree(nameoutput,
"Candidates variables tree");
3081 TString * fCandidateVariableNames =
new TString[
nVar];
3082 fCandidateVariableNames[ 0]=
"isLcByMC";
3083 fCandidateVariableNames[ 1]=
"isV0ByMC";
3084 fCandidateVariableNames[ 2]=
"flagToCheckBachelor";
3085 fCandidateVariableNames[ 3]=
"flagToCheckV0daughters";
3086 fCandidateVariableNames[ 4]=
"flagToCheckCandidate";
3087 fCandidateVariableNames[ 5]=
"massLc2K0Sp";
3088 fCandidateVariableNames[ 6]=
"massLc2Lambdapi";
3089 fCandidateVariableNames[ 7]=
"massD2K0Spi";
3090 fCandidateVariableNames[ 8]=
"massDS2K0SK";
3091 fCandidateVariableNames[ 9]=
"massK0S";
3092 fCandidateVariableNames[10]=
"massLambda";
3093 fCandidateVariableNames[11]=
"massLambdaBar";
3094 fCandidateVariableNames[12]=
"massGamma";
3095 fCandidateVariableNames[13]=
"dcaLcptp";
3096 fCandidateVariableNames[14]=
"dcaV0ptp";
3097 fCandidateVariableNames[15]=
"tImpParBach";
3098 fCandidateVariableNames[16]=
"tImpParV0";
3099 fCandidateVariableNames[17]=
"dcaV0postoPV";
3100 fCandidateVariableNames[18]=
"dcaV0negtoPV";
3101 fCandidateVariableNames[19]=
"cosPALc";
3102 fCandidateVariableNames[20]=
"cosPAK0S";
3103 fCandidateVariableNames[21]=
"rhoV0";
3104 fCandidateVariableNames[22]=
"nSigmaITSpr";
3105 fCandidateVariableNames[23]=
"nSigmaITSpi";
3106 fCandidateVariableNames[24]=
"nSigmaITSka";
3107 fCandidateVariableNames[25]=
"nSigmaTPCpr";
3108 fCandidateVariableNames[26]=
"nSigmaTPCpi";
3109 fCandidateVariableNames[27]=
"nSigmaTPCka";
3110 fCandidateVariableNames[28]=
"nSigmaTOFpr";
3111 fCandidateVariableNames[29]=
"nSigmaTOFpi";
3112 fCandidateVariableNames[30]=
"nSigmaTOFka";
3113 fCandidateVariableNames[31]=
"yLc";
3114 fCandidateVariableNames[32]=
"etaBach";
3115 fCandidateVariableNames[33]=
"etaV0pos";
3116 fCandidateVariableNames[34]=
"etaV0neg";
3117 fCandidateVariableNames[35]=
"LcP";
3118 fCandidateVariableNames[36]=
"LcPt";
3119 fCandidateVariableNames[37]=
"v0P";
3120 fCandidateVariableNames[38]=
"v0Pt";
3121 fCandidateVariableNames[39]=
"bachelorP";
3122 fCandidateVariableNames[40]=
"bachelorPt";
3123 fCandidateVariableNames[41]=
"V0positiveP";
3124 fCandidateVariableNames[42]=
"V0positivePt";
3125 fCandidateVariableNames[43]=
"V0negativeP";
3126 fCandidateVariableNames[44]=
"V0negativePt";
3127 fCandidateVariableNames[45]=
"decayLengthLc";
3128 fCandidateVariableNames[46]=
"decayLengthV0";
3129 fCandidateVariableNames[47]=
"cosPALcXY";
3130 fCandidateVariableNames[48]=
"cosPAV0XY";
3131 fCandidateVariableNames[49]=
"decayLengthLcXY";
3132 fCandidateVariableNames[50]=
"decayLengthV0XY";
3133 fCandidateVariableNames[51]=
"normalizedDecayLengthLc";
3134 fCandidateVariableNames[52]=
"normalizedDecayLengthV0";
3135 fCandidateVariableNames[53]=
"normalizedDecayLengthXYLc";
3136 fCandidateVariableNames[54]=
"normalizedDecayLengthXYV0";
3137 fCandidateVariableNames[55]=
"newLcDCA";
3139 fCandidateVariableNames[56]=
"cosThetaStarBachelor";
3140 fCandidateVariableNames[57]=
"cosThetaStarV0";
3141 fCandidateVariableNames[58]=
"etaV0";
3142 fCandidateVariableNames[59]=
"yV0";
3143 fCandidateVariableNames[60]=
"bachelorCharge";
3144 fCandidateVariableNames[61]=
"isMCparticleInFiducialAcceptance";
3146 fCandidateVariableNames[62]=
"massKstar12K0Spi";
3147 fCandidateVariableNames[63]=
"massKstar22K0Spi";
3148 fCandidateVariableNames[64]=
"pdgBachelor";
3149 fCandidateVariableNames[65]=
"pdgCandidate";
3150 fCandidateVariableNames[66]=
"pdgV0pos";
3151 fCandidateVariableNames[67]=
"pdgV0neg";
3152 fCandidateVariableNames[68]=
"pdgV0Candidate";
3153 fCandidateVariableNames[69]=
"startTimeMask";
3155 fCandidateVariableNames[70]=
"combinedProtonProb";
3156 fCandidateVariableNames[71]=
"TPCProtonProb";
3157 fCandidateVariableNames[72]=
"TOFProtonProb";
3158 fCandidateVariableNames[73]=
"checkLcOrigin";
3160 fCandidateVariableNames[74]=
"qtProng0V0";
3163 fCandidateVariableNames[75]=
"xVtxLcBad";
3164 fCandidateVariableNames[76]=
"yVtxLcBad";
3165 fCandidateVariableNames[77]=
"zVtxLcBad";
3166 fCandidateVariableNames[78]=
"xVtxLcGood";
3167 fCandidateVariableNames[79]=
"yVtxLcGood";
3168 fCandidateVariableNames[80]=
"zVtxLcGood";
3169 fCandidateVariableNames[81]=
"xVtxLcMC";
3170 fCandidateVariableNames[82]=
"yVtxLcMC";
3171 fCandidateVariableNames[83]=
"zVtxLcMC";
3172 fCandidateVariableNames[84]=
"pxVtxBachelorBad";
3173 fCandidateVariableNames[85]=
"pyVtxBachelorBad";
3174 fCandidateVariableNames[86]=
"pxVtxBachelorGood";
3175 fCandidateVariableNames[87]=
"pyVtxBachelorGood";
3176 fCandidateVariableNames[88]=
"pzVtxBachelorGood";
3177 fCandidateVariableNames[89]=
"pxVtxV0";
3178 fCandidateVariableNames[90]=
"pyVtxV0";
3179 fCandidateVariableNames[91]=
"pzVtxV0";
3180 fCandidateVariableNames[92]=
"xPvtx";
3181 fCandidateVariableNames[93]=
"yPvtx";
3182 fCandidateVariableNames[94]=
"zPvtx";
3185 for (Int_t ivar=0; ivar<
nVar; ivar++) {
3198 fCEvents =
new TH1F(
"fCEvents",
"conter",19,0,19);
3200 fCEvents->GetXaxis()->SetBinLabel(1,
"X1");
3201 fCEvents->GetXaxis()->SetBinLabel(2,
"Analyzed events");
3202 fCEvents->GetXaxis()->SetBinLabel(3,
"AliAODVertex exists");
3203 fCEvents->GetXaxis()->SetBinLabel(4,
"CascadesHF exists");
3204 fCEvents->GetXaxis()->SetBinLabel(5,
"MCarray exists");
3205 fCEvents->GetXaxis()->SetBinLabel(6,
"MCheader exists");
3206 fCEvents->GetXaxis()->SetBinLabel(7,
"GetNContributors()>0");
3207 fCEvents->GetXaxis()->SetBinLabel(8,
"IsEventSelected");
3208 fCEvents->GetXaxis()->SetBinLabel(9,
"triggerClass!=CINT1");
3209 fCEvents->GetXaxis()->SetBinLabel(10,
"triggerMask!=kAnyINT");
3210 fCEvents->GetXaxis()->SetBinLabel(11,
"triggerMask!=kAny");
3211 fCEvents->GetXaxis()->SetBinLabel(12,
"vtxTitle.Contains(Z)");
3212 fCEvents->GetXaxis()->SetBinLabel(13,
"vtxTitle.Contains(3D)");
3213 fCEvents->GetXaxis()->SetBinLabel(14,
"vtxTitle.Doesn'tContain(Z-3D)");
3215 fCEvents->GetXaxis()->SetBinLabel(16,
"!IsEventSelected");
3216 fCEvents->GetXaxis()->SetBinLabel(17,
"triggerMask!=kAnyINT || triggerClass!=CINT1");
3218 fCEvents->GetXaxis()->SetBinLabel(19,
"Re-Fill Fail");
3220 fCEvents->GetYaxis()->SetTitle(
"counts");
3223 TString fillthis=
"";
3226 fillthis=
"histMcStatLc";
3227 TH1F* mcStatisticLc =
new TH1F(fillthis.Data(),
"#Lambda_{c} generated and their decays",21,-10.5,10.5);
3233 fillthis=
"histoprotonBachSigmaVspTOF";
3234 TH2F *hprotonBachSigmaVspTOF=
new TH2F(fillthis.Data(),fillthis.Data(),300,0.,30.,100,-5.,5.);
3237 fOutput->Add(hprotonBachSigmaVspTOF);
3241 fillthis=
"histoprotonBachSigmaVspTPC";
3242 TH2F *hprotonBachSigmaVspTPC=
new TH2F(fillthis.Data(),fillthis.Data(),300,0.,30.,100,-5.,5.);
3245 fOutput->Add(hprotonBachSigmaVspTPC);
3251 fillthis=
"histoprotonBachSigmaVspTOFsgn";
3252 TH2F *hprotonBachSigmaVspTOFsgn=
new TH2F(fillthis.Data(),fillthis.Data(),300,0.,30.,100,-5.,5.);
3255 fOutput->Add(hprotonBachSigmaVspTOFsgn);
3259 fillthis=
"histoprotonBachSigmaVspTPCsgn";
3260 TH2F *hprotonBachSigmaVspTPCsgn=
new TH2F(fillthis.Data(),fillthis.Data(),300,0.,30.,100,-5.,5.);
3263 fOutput->Add(hprotonBachSigmaVspTPCsgn);
3268 fillthis=
"histoprotonBachSigmaVspTOFbkg";
3269 TH2F *hprotonBachSigmaVspTOFbkg=
new TH2F(fillthis.Data(),fillthis.Data(),300,0.,30.,100,-5.,5.);
3272 fOutput->Add(hprotonBachSigmaVspTOFbkg);
3276 fillthis=
"histoprotonBachSigmaVspTPCbkg";
3277 TH2F *hprotonBachSigmaVspTPCbkg=
new TH2F(fillthis.Data(),fillthis.Data(),300,0.,30.,100,-5.,5.);
3280 fOutput->Add(hprotonBachSigmaVspTPCbkg);
3286 TH1F *hZ2 =
new TH1F(
"hZ2",
"",100,-50.,50.);
3288 TH1F *hZ3 =
new TH1F(
"hZ3",
"",100,-50.,50.);
3290 TH1F *hZ4 =
new TH1F(
"hZ4",
"",100,-50.,50.);
3292 TH1F *hZ5 =
new TH1F(
"hZ5",
"",100,-50.,50.);
3294 TH1F *hZ6 =
new TH1F(
"hZ6",
"",100,-50.,50.);
3296 TH1F *hZ7 =
new TH1F(
"hZ7",
"",100,-50.,50.);
3298 TH1F *hZ8 =
new TH1F(
"hZ8",
"",100,-50.,50.);
3300 TH1F *hZ9 =
new TH1F(
"hZ9",
"",100,-50.,50.);
3302 TH1F *hZ10 =
new TH1F(
"hZ10",
"",100,-50.,50.);
3304 TH1F *hZ11 =
new TH1F(
"hZ11",
"",100,-50.,50.);
3306 TH1F *hZ12 =
new TH1F(
"hZ12",
"",100,-50.,50.);
3308 TH1F *hZ13 =
new TH1F(
"hZ13",
"",100,-50.,50.);
3310 TH1F *hZ14 =
new TH1F(
"hZ14",
"",100,-50.,50.);
3312 TH1F *hZ15 =
new TH1F(
"hZ15",
"",100,-50.,50.);
3314 TH1F *hZ16 =
new TH1F(
"hZ16",
"",100,-50.,50.);
3318 TH1F *hCandidateSelection =
new TH1F(
"hCandidateSelection",
"",10,-0.5,9.5);
3319 hCandidateSelection->GetXaxis()->SetBinLabel(1,
"IsEventSelected");
3320 hCandidateSelection->GetXaxis()->SetBinLabel(2,
"IsSecondaryVtx");
3321 hCandidateSelection->GetXaxis()->SetBinLabel(3,
"V0toPosNeg");
3322 hCandidateSelection->GetXaxis()->SetBinLabel(4,
"offlineV0");
3323 hCandidateSelection->GetXaxis()->SetBinLabel(5,
"isInFiducialAcceptance");
3324 hCandidateSelection->GetXaxis()->SetBinLabel(6,
"analCuts::kTracks");
3325 hCandidateSelection->GetXaxis()->SetBinLabel(7,
"analCuts::kCandidateNoPID");
3326 hCandidateSelection->GetXaxis()->SetBinLabel(8,
"analCuts::kPID");
3327 hCandidateSelection->GetXaxis()->SetBinLabel(9,
"analCuts::kCandidateWithPID");
3328 hCandidateSelection->GetXaxis()->SetBinLabel(10,
"analCuts::kAll");
3329 fOutput->Add(hCandidateSelection);
3331 TH1F *hEventsWithCandidates =
new TH1F(
"hEventsWithCandidates",
"conter",11,5.5,16.5);
3332 hEventsWithCandidates->GetXaxis()->SetBinLabel(1,
"GetNContributors()>0");
3333 hEventsWithCandidates->GetXaxis()->SetBinLabel(2,
"IsEventSelected");
3334 hEventsWithCandidates->GetXaxis()->SetBinLabel(3,
"triggerClass!=CINT1");
3335 hEventsWithCandidates->GetXaxis()->SetBinLabel(4,
"triggerMask!=kAnyINT");
3336 hEventsWithCandidates->GetXaxis()->SetBinLabel(5,
"triggerMask!=kAny");
3337 hEventsWithCandidates->GetXaxis()->SetBinLabel(6,
"vtxTitle.Contains(Z)");
3338 hEventsWithCandidates->GetXaxis()->SetBinLabel(7,
"vtxTitle.Contains(3D)");
3339 hEventsWithCandidates->GetXaxis()->SetBinLabel(8,
"vtxTitle.Doesn'tContain(Z-3D)");
3340 hEventsWithCandidates->GetXaxis()->SetBinLabel(9,Form(
"zVtx<=%2.0fcm",
fAnalCuts->
GetMaxVtxZ()));
3341 hEventsWithCandidates->GetXaxis()->SetBinLabel(10,
"!IsEventSelected");
3342 hEventsWithCandidates->GetXaxis()->SetBinLabel(11,
"triggerMask!=kAnyINT || triggerClass!=CINT1");
3343 fOutput->Add(hEventsWithCandidates);
3347 TH1F *hZ6a =
new TH1F(
"hZ6a",
"",100,-50.,50.);
3349 TH1F *hZ7a =
new TH1F(
"hZ7a",
"",100,-50.,50.);
3351 TH1F *hZ8a =
new TH1F(
"hZ8a",
"",100,-50.,50.);
3353 TH1F *hZ9a =
new TH1F(
"hZ9a",
"",100,-50.,50.);
3355 TH1F *hZ10a =
new TH1F(
"hZ10a",
"",100,-50.,50.);
3357 TH1F *hZ11a =
new TH1F(
"hZ11a",
"",100,-50.,50.);
3359 TH1F *hZ12a =
new TH1F(
"hZ12a",
"",100,-50.,50.);
3361 TH1F *hZ13a =
new TH1F(
"hZ13a",
"",100,-50.,50.);
3363 TH1F *hZ14a =
new TH1F(
"hZ14a",
"",100,-50.,50.);
3365 TH1F *hZ15a =
new TH1F(
"hZ15a",
"",100,-50.,50.);
3367 TH1F *hZ16a =
new TH1F(
"hZ16a",
"",100,-50.,50.);
3371 TH1F *hSwitchOnCandidates1 =
new TH1F(
"hSwitchOnCandidates1",
"",15,-7.5,7.5);
3372 fOutput->Add(hSwitchOnCandidates1);
3373 TH1F *hSwitchOnCandidates2 =
new TH1F(
"hSwitchOnCandidates2",
"",15,-7.5,7.5);
3374 fOutput->Add(hSwitchOnCandidates2);
3375 TH1F *hSwitchOnCandidates3 =
new TH1F(
"hSwitchOnCandidates3",
"",15,-7.5,7.5);
3376 fOutput->Add(hSwitchOnCandidates3);
3377 TH1F *hSwitchOnCandidates4 =
new TH1F(
"hSwitchOnCandidates4",
"",15,-7.5,7.5);
3378 fOutput->Add(hSwitchOnCandidates4);
3389 TString fillthis=
"";
3397 Double_t lambdacpt = part->Pt();
3399 AliAODTrack *bachelor = (AliAODTrack*)part->
GetBachelor();
3400 Double_t momBach = bachelor->P();
3401 Double_t ptBach = bachelor->Pt();
3403 AliAODv0 *v0part = (AliAODv0*)part->
Getv0();
3404 Double_t momK0S = v0part->P();
3405 Double_t ptK0S = v0part->Pt();
3407 Double_t invmassK0S = v0part->MassK0Short();
3410 Double_t ptV0pos = v0pos->Pt();
3412 Double_t ptV0neg = v0neg->Pt();
3414 if (!appendthis.Contains(
"SgnC") && !appendthis.Contains(
"SgnB") && !appendthis.Contains(
"SgnNoQ")) {
3415 fillthis=
"histpK0Svsp"+appendthis;
3418 ((TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(momBach,momK0S);
3419 if (isBachelorID) ((TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(momBach,momK0S);
3423 fillthis=
"histLcMassByK0S"+appendthis;
3426 ((TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(invmassLc,lambdacpt);
3427 if (isBachelorID)((TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(invmassLc,lambdacpt);
3430 if (!appendthis.Contains(
"SgnC") && !appendthis.Contains(
"SgnB") && !appendthis.Contains(
"SgnNoQ")) {
3431 fillthis=
"histK0SMass"+appendthis;
3435 ((TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,invmassK0S);
3436 if (isBachelorID) ((TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,invmassK0S);
3441 fillthis=
"histptK0S"+appendthis;
3445 ((TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,ptK0S);
3446 if (isBachelorID)((TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,ptK0S);
3449 fillthis=
"histptP"+appendthis;
3453 ((TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,ptBach);
3454 if (isBachelorID)((TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,ptBach);
3457 fillthis=
"histptPip"+appendthis;
3461 ((TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,ptV0pos);
3462 if (isBachelorID)((TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,ptV0pos);
3465 fillthis=
"histptPim"+appendthis;
3469 ((TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,ptV0neg);
3470 if (isBachelorID)((TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,ptV0neg);
3473 if (!appendthis.Contains(
"SgnC") && !appendthis.Contains(
"SgnB") && !appendthis.Contains(
"SgnNoQ")) {
3474 fillthis=
"histLambdaMass"+appendthis;
3478 ((TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,v0part->MassLambda());
3479 if (isBachelorID)((TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,v0part->MassLambda());
3482 fillthis=
"histLambdaBarMass"+appendthis;
3486 ((TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,v0part->MassAntiLambda());
3487 if (isBachelorID)((TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,v0part->MassAntiLambda());
3490 fillthis=
"histGammaMass"+appendthis;
3494 ((TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,v0part->InvMass2Prongs(0,1,11,11));
3495 if (isBachelorID)((TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,v0part->InvMass2Prongs(0,1,11,11));
3499 fillthis=
"histD0K0S"+appendthis;
3503 ((TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,part->Getd0Prong(1));
3504 if (isBachelorID)((TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,part->Getd0Prong(1));
3507 fillthis=
"histD0P"+appendthis;
3511 ((TH2F*)(
fOutputAll->FindObject(fillthis)))->Fill(lambdacpt,part->Getd0Prong(0));
3512 if (isBachelorID)((TH2F*)(
fOutputPIDBach->FindObject(fillthis)))->Fill(lambdacpt,part->Getd0Prong(0));
3515 fillthis=
"histCosPAK0S"+appendthis;
3530 Double_t &xVtxLc, Double_t &yVtxLc, Double_t &zVtxLc,
3531 Double_t &pxVtxBachelor, Double_t &pyVtxBachelor, Double_t &pzVtxBachelor) {
3538 Double_t xyz[3], pxpypz[3], cv[21]; Short_t sign;
3539 bachelor->PxPyPz(pxpypz);
3540 bachelor->XvYvZv(xyz);
3541 bachelor->GetCovarianceXYZPxPyPz(cv);
3542 sign=bachelor->Charge();
3543 AliExternalTrackParam *t =
new AliExternalTrackParam(xyz,pxpypz,cv,sign);
3545 Double_t alpha=t->GetAlpha(), cs1=TMath::Cos(alpha), sn1=TMath::Sin(alpha);
3549 Double_t x1=xyz[0], y1=xyz[1], z1=xyz[2];
3550 Double_t px1=pxpypz[0], py1=pxpypz[1], pz1=pxpypz[2];
3553 Double_t x2=v->DecayVertexV0X(),
3554 y2=v->DecayVertexV0Y(),
3555 z2=v->DecayVertexV0Z();
3556 Double_t px2=v->Px(),
3583 Double_t dd=
Det(x2-x1,y2-y1,z2-z1,px1,py1,pz1,px2,py2,pz2);
3584 Double_t ax=
Det(py1,pz1,py2,pz2);
3585 Double_t ay=-
Det(px1,pz1,px2,pz2);
3586 Double_t az=
Det(px1,py1,px2,py2);
3588 Double_t dca=TMath::Abs(dd)/TMath::Sqrt(ax*ax + ay*ay + az*az);
3591 Double_t t1 =
Det(x2-x1,y2-y1,z2-z1,px2,py2,pz2,ax,ay,az)/
3592 Det(px1,py1,pz1,px2,py2,pz2,ax,ay,az);
3593 x1 += px1*t1; y1 += py1*t1; z1 += pz1*t1;
3596 Double_t rho1=x1*cs1 + y1*sn1;
3597 if (!t->PropagateTo(rho1,b)) {
3598 Error(
"PropagateToDCA",
"Propagation failed !");
3603 Double_t pBachelorDCA[3]; t->GetPxPyPz(pBachelorDCA);
3604 pxVtxBachelor=pBachelorDCA[0], pyVtxBachelor=pBachelorDCA[1], pzVtxBachelor=pBachelorDCA[2];
3609 Double_t t2 =
Det(x1-x2,y1-y2,z1-z2,px1,py1,pz1,ax,ay,az)/
3610 Det(px2,py2,pz2,px1,py1,pz1,ax,ay,az);
3611 x2 += px2*t2; y2 += py2*t2; z2 += pz2*t2;
3615 xVtxLc = 0.5*(x1+x2);
3616 yVtxLc = 0.5*(y1+y2);
3617 zVtxLc = 0.5*(z1+z2);
3630 Double_t alpha = 0.;
3632 const double kSafe = 1e-5;
3633 Double_t radPos2 = xyz[0]*xyz[0]+xyz[1]*xyz[1];
3634 Double_t radMax = 45.;
3635 if (radPos2 < radMax*radMax) {
3636 alpha = TMath::ATan2(pxpypz[1],pxpypz[0]);
3638 Float_t phiPos = TMath::Pi()+TMath::ATan2(-xyz[1], -xyz[0]);
3640 TMath::DegToRad()*(20*((((Int_t)(phiPos*TMath::RadToDeg()))/20))+10);
3643 Double_t cs=TMath::Cos(alpha), sn=TMath::Sin(alpha);
3645 if (TMath::Abs(sn)<2*kSafe) {
3646 if (alpha>0) alpha += alpha< TMath::Pi()/2. ? 2*kSafe : -2*kSafe;
3647 else alpha += alpha>-TMath::Pi()/2. ? -2*kSafe : 2*kSafe;
3648 cs=TMath::Cos(alpha);
3649 sn=TMath::Sin(alpha);
3651 else if (TMath::Abs(cs)<2*kSafe) {
3652 if (alpha>0) alpha += alpha> TMath::Pi()/2. ? 2*kSafe : -2*kSafe;
3653 else alpha += alpha>-TMath::Pi()/2. ? 2*kSafe : -2*kSafe;
3654 cs=TMath::Cos(alpha);
3655 sn=TMath::Sin(alpha);
3664 Double_t a10, Double_t a11)
const {
3669 return a00*a11 - a01*a10;
3674 Double_t a10,Double_t a11,Double_t a12,
3675 Double_t a20,Double_t a21,Double_t a22)
const {
3680 return a00*
Det(a11,a12,a21,a22)-a01*
Det(a10,a12,a20,a22)+a02*
Det(a10,a11,a20,a21);
3685 TClonesArray *mcArray)
3693 AliAODv0 *theV0 =
dynamic_cast<AliAODv0*
>(candidate->
Getv0());
3694 AliVTrack *trk =
dynamic_cast<AliVTrack*
>(candidate->
GetBachelor());
3695 if (!trk || !theV0)
return -1;
3697 if (trk->GetLabel()==-1)
return -1;
3698 Int_t bachLabels = TMath::Abs(trk->GetLabel());
3699 AliAODMCParticle*bachelorMC =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(bachLabels));
3700 if (!bachelorMC)
return -1;
3701 if (TMath::Abs(bachelorMC->GetPdgCode())!=2212)
return -1;
3702 Int_t indexMotherBach = bachelorMC->GetMother();
3703 if (indexMotherBach==-1)
return -1;
3705 Int_t pdgDg2prong[2] = {211,211};
3706 Int_t lab2Prong = theV0->MatchToMC(310,mcArray,2,pdgDg2prong);
3707 if(lab2Prong<0)
return -1;
3708 AliAODMCParticle*partK0S =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(lab2Prong));
3709 if (!partK0S)
return -1;
3710 Int_t indexMotherK0S = partK0S->GetMother();
3711 if (indexMotherK0S==-1)
return -1;
3712 AliAODMCParticle*partK0 =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(indexMotherK0S));
3713 if (!partK0)
return -1;
3714 Int_t indexMotherK0 = partK0->GetMother();
3715 if (indexMotherK0==-1)
return -1;
3717 if (indexMotherBach!=indexMotherK0)
return -1;
3719 AliAODMCParticle*partLc =
dynamic_cast<AliAODMCParticle*
>(mcArray->At(indexMotherK0));
3720 if (!partLc)
return -1;
3721 Int_t ndg2 = partLc->GetDaughter(1)-partLc->GetDaughter(0)+1;
3722 if (ndg2==2)
return -1;
3724 TString stringaCheck = Form(
">>>>>>>> %d -> ",partLc->GetPdgCode());
3725 for(Int_t ii=0; ii<ndg2; ii++) {
3726 AliAODMCParticle* partDau=(AliAODMCParticle*)(mcArray->At(partLc->GetDaughter(0)+ii));
3727 stringaCheck.Append(Form(
" %d",partDau->GetPdgCode()));
3731 return indexMotherBach;
3736 Int_t dgLabels[10],Int_t ndg,
3737 Int_t &ndgCk, Int_t *pdgDg, Int_t &absLabelMother, Int_t &nDauCand)
const
3745 Int_t lab=-1,labMother=-1,pdgMother=0;
3746 AliAODMCParticle *part=0;
3747 AliAODMCParticle *mother=0;
3750 TArrayI **labelMother =
new TArrayI*[ndg];
3751 for(Int_t i=0; i<ndg; i++) labelMother[i] =
new TArrayI(0);
3752 for(Int_t i=0; i<ndg; i++) {
3753 lab = TMath::Abs(dgLabels[i]);
3755 AliDebug(2,Form(
"daughter with negative label %d",lab));
3756 delete [] labelMother;
3759 part = (AliAODMCParticle*)mcArray->At(lab);
3761 AliDebug(2,
"no MC particle");
3762 delete [] labelMother;
3767 while(mother->GetMother()>=0) {
3768 labMother=mother->GetMother();
3769 mother = (AliAODMCParticle*)mcArray->At(labMother);
3771 AliDebug(2,
"no MC mother particle");
3774 pdgMother = TMath::Abs(mother->GetPdgCode());
3775 if (pdgMother<10 || (pdgMother>18 && pdgMother<111)) {
3778 labelMother[i]->Set(labelMother[i]->GetSize()+1);
3779 labelMother[i]->AddAt(labMother,labelMother[i]->GetSize()-1);
3785 TString stringaCheck;
3786 for(Int_t i=0; i<ndg; i++) {
3787 AliAODMCParticle*part0 = (AliAODMCParticle*)mcArray->At(TMath::Abs(dgLabels[i]));
3788 stringaCheck.Append(Form(
"part[%d]->GetLabel()=%d(%d) | ",i,dgLabels[i],part0->GetPdgCode()));
3789 stringaCheck.Append(Form(
"labelMother[%d] = ",i));
3790 for (Int_t jj=0;jj<labelMother[i]->GetSize(); jj++)
3791 stringaCheck.Append(Form(
"%d, ",labelMother[i]->At(jj)));
3793 AliDebug(2,Form(
"%s \n",stringaCheck.Data()));
3794 Int_t pdgToBeReturned=0;
3796 TString stringaCheck2;
3798 pdgDg =
new Int_t[ndgCk];
3799 for (Int_t index=1; index<ndg; index++) {
3800 Bool_t found=kFALSE;
3801 for (Int_t jj=0;jj<labelMother[index]->GetSize(); jj++) {
3802 for (Int_t ii=0;ii<labelMother[0]->GetSize(); ii++) {
3803 if (labelMother[0]->At(ii)==labelMother[index]->At(jj) &&
3804 labelMother[0]->At(ii)!=0 && labelMother[0]->At(ii)!=1 && !found) {
3805 mother = (AliAODMCParticle*)mcArray->At(labelMother[0]->At(ii));
3806 pdgToBeReturned=mother->GetPdgCode();
3807 absLabelMother=labelMother[0]->At(ii);
3808 AliDebug(2,Form(
"FOUND label for the mother of this candidate: %d (PDG=%d)\n",labelMother[0]->At(ii),pdgToBeReturned));
3810 nDauCand=mother->GetNDaughters();
3812 AliAODMCParticle *partMC = (AliAODMCParticle*)mcArray->At(dgLabels[0]);
3813 pdgDg[0]=partMC->GetPdgCode();
3814 partMC = (AliAODMCParticle*)mcArray->At(dgLabels[index]);
3815 pdgDg[index]=partMC->GetPdgCode();
3816 if (index==1) stringaCheck2.Append(Form(
"found daughters -> %d(%d)",dgLabels[0],pdgDg[0]));
3817 stringaCheck2.Append(Form(
" %d(%d)",dgLabels[index],pdgDg[index]));
3824 stringaCheck2.Prepend(Form(
"Ecco quanto trovato: %d(%d) with %d daughters; ",absLabelMother,pdgToBeReturned,nDauCand));
3825 AliDebug(2,Form(
"%s \n",stringaCheck2.Data()));
3827 delete [] labelMother;
3830 return pdgToBeReturned;
3839 Double_t px[2]={partCopy->PxProng(0),partCopy->PxProng(1)};
3840 Double_t py[2]={partCopy->PyProng(0),partCopy->PyProng(1)};
3841 Double_t pz[2]={partCopy->PzProng(0),partCopy->PzProng(1)};
3843 Double_t pt = partCopy->Pt();
3845 UInt_t pdgLc2pK0S[2]={2212,310};
3846 Double_t minv2 = partCopy->InvMass2(2,pdgLc2pK0S);
3847 Double_t
mass=TMath::Sqrt(minv2);
3848 Double_t rapid = partCopy->Y(pdgD);
3853 fillthis=
"hMassVsPtVsY"+appendthis;
3857 fillthis=
"phiVSthetaVSpt"+appendthis;
3859 ((TH3F*)(
fOutputPIDBachTR->FindObject(fillthis)))->Fill(pt,part->Phi(),part->Theta());
3870 Double_t tmpx=px[0];
3871 Double_t tmpy=py[0];
3872 px[0]=tmpx*TMath::Cos(phirot)-tmpy*TMath::Sin(phirot);
3873 py[0]=tmpx*TMath::Sin(phirot)+tmpy*TMath::Cos(phirot);
3874 partCopy->SetPxPyPzProngs(2,px,py,pz);
3875 pt = partCopy->Pt();
3876 minv2 = partCopy->InvMass2(2,pdgLc2pK0S);
3877 massRot=TMath::Sqrt(minv2);
3878 rapid = partCopy->Y(pdgD);
3883 fillthis=
"histLcMassByK0S"+appendthis;
3887 fillthis=
"hMassVsPtVsYRot"+appendthis;
3891 fillthis=
"phiVSthetaVSptRot"+appendthis;
3893 ((TH3F*)(
fOutputPIDBachTR->FindObject(fillthis)))->Fill(pt,partCopy->Phi(),partCopy->Theta());
3895 fillthis=
"hDeltaMass"+appendthis;
3909 fillthis=
"histptK0S"+appendthis;
3913 ((TH2F*)(
fOutputPIDBachTR->FindObject(fillthis)))->Fill(pt,TMath::Sqrt(px[1]*px[1]+py[1]*py[1]));
3916 fillthis=
"histptP"+appendthis;
3920 ((TH2F*)(
fOutputPIDBachTR->FindObject(fillthis)))->Fill(pt,TMath::Sqrt(px[0]*px[0]+py[0]*py[0]));
3923 fillthis=
"histptPip"+appendthis;
3930 fillthis=
"histptPim"+appendthis;
3937 fillthis=
"histLambdaMass"+appendthis;
3944 fillthis=
"histLambdaBarMass"+appendthis;
3951 fillthis=
"histGammaMass"+appendthis;
3955 ((TH2F*)(
fOutputPIDBachTR->FindObject(fillthis)))->Fill(pt,(partCopy->
Getv0())->InvMass2Prongs(0,1,11,11));
3958 fillthis=
"histCosPAK0S"+appendthis;
3971 fillthis=
"hNormRotated"+appendthis;
3991 Double_t mLcPDG = TDatabasePDG::Instance()->GetParticle(4122)->Mass();
3992 Double_t mK0SPDG = TDatabasePDG::Instance()->GetParticle(310)->Mass();
3993 Double_t mMinLambdaPDG = TDatabasePDG::Instance()->GetParticle(2212)->Mass()+
3994 TDatabasePDG::Instance()->GetParticle(211)->Mass();
3996 TString nameHistoSgnC=
" ", nameHistoSgnB=
" ", nameHistoSgnNoQ=
" ";
3997 TString titleHistoSgnC=
" ", titleHistoSgnB=
" ", titleHistoSgnNoQ=
" ";
4000 Double_t *binLimpTLc=
new Double_t[11+1];
4015 Double_t *binLimpTprong=
new Double_t[41+1];
4016 binLimpTprong[ 0]= 0.0;
4017 binLimpTprong[ 1]= 0.1;
4018 binLimpTprong[ 2]= 0.2;
4019 binLimpTprong[ 3]= 0.3;
4020 binLimpTprong[ 4]= 0.4;
4021 binLimpTprong[ 5]= 0.5;
4022 binLimpTprong[ 6]= 0.6;
4023 binLimpTprong[ 7]= 0.7;
4024 binLimpTprong[ 8]= 0.8;
4025 binLimpTprong[ 9]= 0.9;
4026 binLimpTprong[10]= 1.0;
4027 binLimpTprong[11]= 1.2;
4028 binLimpTprong[12]= 1.4;
4029 binLimpTprong[13]= 1.6;
4030 binLimpTprong[14]= 1.8;
4031 binLimpTprong[15]= 2.0;
4032 binLimpTprong[16]= 2.2;
4033 binLimpTprong[17]= 2.4;
4034 binLimpTprong[18]= 2.6;
4035 binLimpTprong[19]= 2.8;
4036 binLimpTprong[20]= 3.0;
4037 binLimpTprong[21]= 3.5;
4038 binLimpTprong[22]= 4.0;
4039 binLimpTprong[23]= 4.5;
4040 binLimpTprong[24]= 5.0;
4041 binLimpTprong[25]= 5.5;
4042 binLimpTprong[26]= 6.0;
4043 binLimpTprong[27]= 6.5;
4044 binLimpTprong[28]= 7.0;
4045 binLimpTprong[29]= 7.5;
4046 binLimpTprong[30]= 8.0;
4047 binLimpTprong[31]= 9.0;
4048 binLimpTprong[32]=10.0;
4049 binLimpTprong[33]=11.0;
4050 binLimpTprong[34]=12.0;
4051 binLimpTprong[35]=13.0;
4052 binLimpTprong[36]=14.0;
4053 binLimpTprong[37]=15.0;
4054 binLimpTprong[38]=20.0;
4055 binLimpTprong[39]=25.0;
4056 binLimpTprong[40]=30.0;
4057 binLimpTprong[41]=35.0;
4061 nameHistoSgnC=
"histLcMassByK0SSgnC";
4062 nameHistoSgnB=
"histLcMassByK0SSgnB";
4063 nameHistoSgnNoQ=
"histLcMassByK0SSgnNoQ";
4064 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]";
4065 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]";
4066 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]";
4067 TH2F* spectrumLcMassByK0SSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
4068 TH2F* spectrumLcMassByK0SSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
4069 TH2F* spectrumLcMassByK0SSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
4071 TH2F* allspectrumLcMassByK0SSgnC = (TH2F*)spectrumLcMassByK0SSgnC->Clone();
4072 TH2F* allspectrumLcMassByK0SSgnB = (TH2F*) spectrumLcMassByK0SSgnB->Clone();
4073 TH2F* allspectrumLcMassByK0SSgnNoQ = (TH2F*) spectrumLcMassByK0SSgnNoQ->Clone();
4074 TH2F* pidBachspectrumLcMassByK0SSgnC = (TH2F*)spectrumLcMassByK0SSgnC->Clone();
4075 TH2F* pidBachspectrumLcMassByK0SSgnB = (TH2F*) spectrumLcMassByK0SSgnB->Clone();
4076 TH2F* pidBachspectrumLcMassByK0SSgnNoQ = (TH2F*) spectrumLcMassByK0SSgnNoQ->Clone();
4080 fOutputAll->Add(allspectrumLcMassByK0SSgnNoQ);
4085 nameHistoSgnC=
"histptK0SSgnC";
4086 nameHistoSgnB=
"histptK0SSgnB";
4087 nameHistoSgnNoQ=
"histptK0SSgnNoQ";
4088 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";
4089 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";
4090 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";
4091 TH2F* ptK0SSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,41,binLimpTprong);
4092 TH2F* ptK0SSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
4093 TH2F* ptK0SSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),11,binLimpTLc,41,binLimpTprong);
4095 nameHistoSgnC=
"histptPSgnC";
4096 nameHistoSgnB=
"histptPSgnB";
4097 nameHistoSgnNoQ=
"histptPSgnNoQ";
4098 titleHistoSgnC=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
4099 titleHistoSgnB=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
4100 titleHistoSgnNoQ=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
4101 TH2F* ptPSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,41,binLimpTprong);
4102 TH2F* ptPSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
4103 TH2F* ptPSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),11,binLimpTLc,41,binLimpTprong);
4105 nameHistoSgnC=
"histptPipSgnC";
4106 nameHistoSgnB=
"histptPipSgnB";
4107 nameHistoSgnNoQ=
"histptPipSgnNoQ";
4108 titleHistoSgnC=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
4109 titleHistoSgnB=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
4110 titleHistoSgnNoQ=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
4111 TH2F* ptPiPSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,41,binLimpTprong);
4112 TH2F* ptPiPSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
4113 TH2F* ptPiPSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
4115 nameHistoSgnC=
"histptPimSgnC";
4116 nameHistoSgnB=
"histptPimSgnB";
4117 nameHistoSgnNoQ=
"histptPimSgnNoQ";
4118 titleHistoSgnC=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
4119 titleHistoSgnB=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
4120 titleHistoSgnNoQ=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
4121 TH2F* ptPiMSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,41,binLimpTprong);
4122 TH2F* ptPiMSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
4123 TH2F* ptPiMSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
4125 nameHistoSgnC=
"histD0K0SSgnC";
4126 nameHistoSgnB=
"histD0K0SSgnB";
4127 nameHistoSgnNoQ=
"histD0K0SSgnNoQ";
4128 titleHistoSgnC=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
4129 titleHistoSgnB=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
4130 titleHistoSgnNoQ=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
4131 TH2F* d0K0SSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,1000,-1.,1.);
4132 TH2F* d0K0SSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,1000,-1.,1.);
4133 TH2F* d0K0SSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),11,binLimpTLc,1000,-1.,1.);
4135 nameHistoSgnC=
"histD0PSgnC";
4136 nameHistoSgnB=
"histD0PSgnB";
4137 nameHistoSgnNoQ=
"histD0PSgnNoQ";
4138 titleHistoSgnC=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
4139 titleHistoSgnB=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
4140 titleHistoSgnNoQ=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
4141 TH2F* d0PSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,1000,-1.,1.);
4142 TH2F* d0PSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,1000,-1.,1.);
4143 TH2F* d0PSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),11,binLimpTLc,1000,-1.,1.);
4145 nameHistoSgnC=
"histCosPAK0SSgnC";
4146 nameHistoSgnB=
"histCosPAK0SSgnB";
4147 nameHistoSgnNoQ=
"histCosPAK0SSgnNoQ";
4148 titleHistoSgnC=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
4149 titleHistoSgnB=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
4150 titleHistoSgnNoQ=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
4151 TH2F *cosPAK0SSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),41,binLimpTprong,100,0.99,1.);
4152 TH2F *cosPAK0SSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),41,binLimpTprong,100,0.99,1.);
4153 TH2F *cosPAK0SSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),41,binLimpTprong,100,0.99,1.);
4155 TH2F* allptK0SSgnC = (TH2F*)ptK0SSgnC->Clone();
4156 TH2F* allptK0SSgnB = (TH2F*)ptK0SSgnB->Clone();
4157 TH2F* allptK0SSgnNoQ = (TH2F*)ptK0SSgnNoQ->Clone();
4158 TH2F* allptPSgnC = (TH2F*)ptPSgnC->Clone();
4159 TH2F* allptPSgnB = (TH2F*)ptPSgnB->Clone();
4160 TH2F* allptPSgnNoQ = (TH2F*)ptPSgnNoQ->Clone();
4161 TH2F* allptPiPSgnC = (TH2F*)ptPiPSgnC->Clone();
4162 TH2F* allptPiPSgnB = (TH2F*)ptPiPSgnB->Clone();
4163 TH2F* allptPiPSgnNoQ = (TH2F*)ptPiPSgnNoQ->Clone();
4164 TH2F* allptPiMSgnC = (TH2F*)ptPiMSgnC->Clone();
4165 TH2F* allptPiMSgnB = (TH2F*)ptPiMSgnB->Clone();
4166 TH2F* allptPiMSgnNoQ = (TH2F*)ptPiMSgnNoQ->Clone();
4167 TH2F* alld0K0SSgnC = (TH2F*)d0K0SSgnC->Clone();
4168 TH2F* alld0K0SSgnB = (TH2F*)d0K0SSgnB->Clone();
4169 TH2F* alld0K0SSgnNoQ = (TH2F*)d0K0SSgnNoQ->Clone();
4170 TH2F* alld0PSgnC = (TH2F*)d0PSgnC->Clone();
4171 TH2F* alld0PSgnB = (TH2F*)d0PSgnB->Clone();
4172 TH2F* alld0PSgnNoQ = (TH2F*)d0PSgnNoQ->Clone();
4173 TH2F* allcosPAK0SSgnC = (TH2F*)cosPAK0SSgnC->Clone();
4174 TH2F* allcosPAK0SSgnB = (TH2F*)cosPAK0SSgnB->Clone();
4175 TH2F* allcosPAK0SSgnNoQ = (TH2F*)cosPAK0SSgnNoQ->Clone();
4177 TH2F* pidptK0SSgnC = (TH2F*)ptK0SSgnC->Clone();
4178 TH2F* pidptK0SSgnB = (TH2F*)ptK0SSgnB->Clone();
4179 TH2F* pidptK0SSgnNoQ = (TH2F*)ptK0SSgnNoQ->Clone();
4180 TH2F* pidptPSgnC = (TH2F*)ptPSgnC->Clone();
4181 TH2F* pidptPSgnB = (TH2F*)ptPSgnB->Clone();
4182 TH2F* pidptPSgnNoQ = (TH2F*)ptPSgnNoQ->Clone();
4183 TH2F* pidptPiPSgnC = (TH2F*)ptPiPSgnC->Clone();
4184 TH2F* pidptPiPSgnB = (TH2F*)ptPiPSgnB->Clone();
4185 TH2F* pidptPiPSgnNoQ = (TH2F*)ptPiPSgnNoQ->Clone();
4186 TH2F* pidptPiMSgnC = (TH2F*)ptPiMSgnC->Clone();
4187 TH2F* pidptPiMSgnB = (TH2F*)ptPiMSgnB->Clone();
4188 TH2F* pidptPiMSgnNoQ = (TH2F*)ptPiMSgnNoQ->Clone();
4189 TH2F* pidd0K0SSgnC = (TH2F*)d0K0SSgnC->Clone();
4190 TH2F* pidd0K0SSgnB = (TH2F*)d0K0SSgnB->Clone();
4191 TH2F* pidd0K0SSgnNoQ = (TH2F*)d0K0SSgnNoQ->Clone();
4192 TH2F* pidd0PSgnC = (TH2F*)d0PSgnC->Clone();
4193 TH2F* pidd0PSgnB = (TH2F*)d0PSgnB->Clone();
4194 TH2F* pidd0PSgnNoQ = (TH2F*)d0PSgnNoQ->Clone();
4195 TH2F* pidcosPAK0SSgnC = (TH2F*)cosPAK0SSgnC->Clone();
4196 TH2F* pidcosPAK0SSgnB = (TH2F*)cosPAK0SSgnB->Clone();
4197 TH2F* pidcosPAK0SSgnNoQ = (TH2F*)cosPAK0SSgnNoQ->Clone();
4245 nameHistoSgnC=
"histLcMassByK0SOfflineSgnC";
4246 nameHistoSgnB=
"histLcMassByK0SOfflineSgnB";
4247 nameHistoSgnNoQ=
"histLcMassByK0SOfflineSgnNoQ";
4248 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]";
4249 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]";
4250 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]";
4251 TH2F* spectrumLcMassOfflineByK0SSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
4252 TH2F* spectrumLcMassOfflineByK0SSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
4253 TH2F* spectrumLcMassOfflineByK0SSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),1000,mLcPDG-0.250,mLcPDG+0.250,11,binLimpTLc);
4255 TH2F* allspectrumLcMassOfflineByK0SSgnC = (TH2F*)spectrumLcMassOfflineByK0SSgnC->Clone();
4256 TH2F* allspectrumLcMassOfflineByK0SSgnB = (TH2F*) spectrumLcMassOfflineByK0SSgnB->Clone();
4257 TH2F* allspectrumLcMassOfflineByK0SSgnNoQ = (TH2F*) spectrumLcMassOfflineByK0SSgnNoQ->Clone();
4258 TH2F* pidBachspectrumLcMassOfflineByK0SSgnC = (TH2F*)spectrumLcMassOfflineByK0SSgnC->Clone();
4259 TH2F* pidBachspectrumLcMassOfflineByK0SSgnB = (TH2F*) spectrumLcMassOfflineByK0SSgnB->Clone();
4260 TH2F* pidBachspectrumLcMassOfflineByK0SSgnNoQ = (TH2F*) spectrumLcMassOfflineByK0SSgnNoQ->Clone();
4261 fOutputAll->Add(allspectrumLcMassOfflineByK0SSgnC);
4262 fOutputAll->Add(allspectrumLcMassOfflineByK0SSgnB);
4263 fOutputAll->Add(allspectrumLcMassOfflineByK0SSgnNoQ);
4268 nameHistoSgnC=
"histptK0SOfflineSgnC";
4269 nameHistoSgnB=
"histptK0SOfflineSgnB";
4270 nameHistoSgnNoQ=
"histptK0SOfflineSgnNoQ";
4271 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";
4272 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";
4273 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";
4274 TH2F* ptK0SOfflineSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,41,binLimpTprong);
4275 TH2F* ptK0SOfflineSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
4276 TH2F* ptK0SOfflineSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),11,binLimpTLc,41,binLimpTprong);
4278 nameHistoSgnC=
"histptPOfflineSgnC";
4279 nameHistoSgnB=
"histptPOfflineSgnB";
4280 nameHistoSgnNoQ=
"histptPOfflineSgnNoQ";
4281 titleHistoSgnC=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
4282 titleHistoSgnB=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
4283 titleHistoSgnNoQ=
"p_{T}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(p) [GeV/c]; Entries";
4284 TH2F* ptPOfflineSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,41,binLimpTprong);
4285 TH2F* ptPOfflineSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
4286 TH2F* ptPOfflineSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),11,binLimpTLc,41,binLimpTprong);
4288 nameHistoSgnC=
"histptPipOfflineSgnC";
4289 nameHistoSgnB=
"histptPipOfflineSgnB";
4290 nameHistoSgnNoQ=
"histptPipOfflineSgnNoQ";
4291 titleHistoSgnC=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
4292 titleHistoSgnB=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
4293 titleHistoSgnNoQ=
"p_{T}(#pi^{+}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{+}) [GeV/c]; Entries";
4294 TH2F* ptPiPOfflineSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,41,binLimpTprong);
4295 TH2F* ptPiPOfflineSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
4296 TH2F* ptPiPOfflineSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
4298 nameHistoSgnC=
"histptPimOfflineSgnC";
4299 nameHistoSgnB=
"histptPimOfflineSgnB";
4300 nameHistoSgnNoQ=
"histptPimOfflineSgnNoQ";
4301 titleHistoSgnC=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
4302 titleHistoSgnB=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
4303 titleHistoSgnNoQ=
"p_{T}(#pi^{-}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; p_{T}(#pi^{-}) [GeV/c]; Entries";
4304 TH2F* ptPiMOfflineSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,41,binLimpTprong);
4305 TH2F* ptPiMOfflineSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
4306 TH2F* ptPiMOfflineSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnB.Data(),11,binLimpTLc,41,binLimpTprong);
4308 nameHistoSgnC=
"histD0K0SOfflineSgnC";
4309 nameHistoSgnB=
"histD0K0SOfflineSgnB";
4310 nameHistoSgnNoQ=
"histD0K0SOfflineSgnNoQ";
4311 titleHistoSgnC=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
4312 titleHistoSgnB=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
4313 titleHistoSgnNoQ=
"d_{0}(K^{0}_{S}) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(K^{0}_{S}) [#sigmas]; Entries";
4314 TH2F* d0K0SOfflineSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,1000,-1.,1.);
4315 TH2F* d0K0SOfflineSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,1000,-1.,1.);
4316 TH2F* d0K0SOfflineSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),11,binLimpTLc,1000,-1.,1.);
4318 nameHistoSgnC=
"histD0POfflineSgnC";
4319 nameHistoSgnB=
"histD0POfflineSgnB";
4320 nameHistoSgnNoQ=
"histD0POfflineSgnNoQ";
4321 titleHistoSgnC=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
4322 titleHistoSgnB=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
4323 titleHistoSgnNoQ=
"d_{0}(p) vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; d_{0}(p) [cm]; Entries";
4324 TH2F* d0POfflineSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),11,binLimpTLc,1000,-1.,1.);
4325 TH2F* d0POfflineSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),11,binLimpTLc,1000,-1.,1.);
4326 TH2F* d0POfflineSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),11,binLimpTLc,1000,-1.,1.);
4328 nameHistoSgnC=
"histCosPAK0SOfflineSgnC";
4329 nameHistoSgnB=
"histCosPAK0SOfflineSgnB";
4330 nameHistoSgnNoQ=
"histCosPAK0SOfflineSgnNoQ";
4331 titleHistoSgnC=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
4332 titleHistoSgnB=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
4333 titleHistoSgnNoQ=
"K^{0}_{S} cosine of pointing angle wrt primary vertex vs p_{T}(#Lambda_{c}); p_{T}(#Lambda_{c}) [GeV/c]; cosine; Entries";
4334 TH2F *cosPAK0SOfflineSgnC =
new TH2F(nameHistoSgnC.Data(),titleHistoSgnC.Data(),41,binLimpTprong,100,0.99,1.);
4335 TH2F *cosPAK0SOfflineSgnB =
new TH2F(nameHistoSgnB.Data(),titleHistoSgnB.Data(),41,binLimpTprong,100,0.99,1.);
4336 TH2F *cosPAK0SOfflineSgnNoQ =
new TH2F(nameHistoSgnNoQ.Data(),titleHistoSgnNoQ.Data(),41,binLimpTprong,100,0.99,1.);
4338 TH2F* allptK0SOfflineSgnC = (TH2F*)ptK0SOfflineSgnC->Clone();
4339 TH2F* allptK0SOfflineSgnB = (TH2F*)ptK0SOfflineSgnB->Clone();
4340 TH2F* allptK0SOfflineSgnNoQ = (TH2F*)ptK0SOfflineSgnNoQ->Clone();
4341 TH2F* allptPOfflineSgnC = (TH2F*)ptPOfflineSgnC->Clone();
4342 TH2F* allptPOfflineSgnB = (TH2F*)ptPOfflineSgnB->Clone();
4343 TH2F* allptPOfflineSgnNoQ = (TH2F*)ptPOfflineSgnNoQ->Clone();
4344 TH2F* allptPiPOfflineSgnC = (TH2F*)ptPiPOfflineSgnC->Clone();
4345 TH2F* allptPiPOfflineSgnB = (TH2F*)ptPiPOfflineSgnB->Clone();
4346 TH2F* allptPiPOfflineSgnNoQ = (TH2F*)ptPiPOfflineSgnNoQ->Clone();
4347 TH2F* allptPiMOfflineSgnC = (TH2F*)ptPiMOfflineSgnC->Clone();
4348 TH2F* allptPiMOfflineSgnB = (TH2F*)ptPiMOfflineSgnB->Clone();
4349 TH2F* allptPiMOfflineSgnNoQ = (TH2F*)ptPiMOfflineSgnNoQ->Clone();
4350 TH2F* alld0K0SOfflineSgnC = (TH2F*)d0K0SOfflineSgnC->Clone();
4351 TH2F* alld0K0SOfflineSgnB = (TH2F*)d0K0SOfflineSgnB->Clone();
4352 TH2F* alld0K0SOfflineSgnNoQ = (TH2F*)d0K0SOfflineSgnNoQ->Clone();
4353 TH2F* alld0POfflineSgnC = (TH2F*)d0POfflineSgnC->Clone();
4354 TH2F* alld0POfflineSgnB = (TH2F*)d0POfflineSgnB->Clone();
4355 TH2F* alld0POfflineSgnNoQ = (TH2F*)d0POfflineSgnNoQ->Clone();
4356 TH2F* allcosPAK0SOfflineSgnC = (TH2F*)cosPAK0SOfflineSgnC->Clone();
4357 TH2F* allcosPAK0SOfflineSgnB = (TH2F*)cosPAK0SOfflineSgnB->Clone();
4358 TH2F* allcosPAK0SOfflineSgnNoQ = (TH2F*)cosPAK0SOfflineSgnNoQ->Clone();
4360 TH2F* pidptK0SOfflineSgnC = (TH2F*)ptK0SOfflineSgnC->Clone();
4361 TH2F* pidptK0SOfflineSgnB = (TH2F*)ptK0SOfflineSgnB->Clone();
4362 TH2F* pidptK0SOfflineSgnNoQ = (TH2F*)ptK0SOfflineSgnNoQ->Clone();
4363 TH2F* pidptPOfflineSgnC = (TH2F*)ptPOfflineSgnC->Clone();
4364 TH2F* pidptPOfflineSgnB = (TH2F*)ptPOfflineSgnB->Clone();
4365 TH2F* pidptPOfflineSgnNoQ = (TH2F*)ptPOfflineSgnNoQ->Clone();
4366 TH2F* pidptPiPOfflineSgnC = (TH2F*)ptPiPOfflineSgnC->Clone();
4367 TH2F* pidptPiPOfflineSgnB = (TH2F*)ptPiPOfflineSgnB->Clone();
4368 TH2F* pidptPiPOfflineSgnNoQ = (TH2F*)ptPiPOfflineSgnNoQ->Clone();
4369 TH2F* pidptPiMOfflineSgnC = (TH2F*)ptPiMOfflineSgnC->Clone();
4370 TH2F* pidptPiMOfflineSgnB = (TH2F*)ptPiMOfflineSgnB->Clone();
4371 TH2F* pidptPiMOfflineSgnNoQ = (TH2F*)ptPiMOfflineSgnNoQ->Clone();
4372 TH2F* pidd0K0SOfflineSgnC = (TH2F*)d0K0SOfflineSgnC->Clone();
4373 TH2F* pidd0K0SOfflineSgnB = (TH2F*)d0K0SOfflineSgnB->Clone();
4374 TH2F* pidd0K0SOfflineSgnNoQ = (TH2F*)d0K0SOfflineSgnNoQ->Clone();
4375 TH2F* pidd0POfflineSgnC = (TH2F*)d0POfflineSgnC->Clone();
4376 TH2F* pidd0POfflineSgnB = (TH2F*)d0POfflineSgnB->Clone();
4377 TH2F* pidd0POfflineSgnNoQ = (TH2F*)d0POfflineSgnNoQ->Clone();
4378 TH2F* pidcosPAK0SOfflineSgnC = (TH2F*)cosPAK0SOfflineSgnC->Clone();
4379 TH2F* pidcosPAK0SOfflineSgnB = (TH2F*)cosPAK0SOfflineSgnB->Clone();
4380 TH2F* pidcosPAK0SOfflineSgnNoQ = (TH2F*)cosPAK0SOfflineSgnNoQ->Clone();
Int_t IsSelectedSingleCut(TObject *obj, Int_t selectionLevel, Int_t cutIndex)
Double_t NormalizedDecayLengthXY() const
virtual Int_t IsSelected(TObject *obj, Int_t selectionLevel)
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
Double_t InvMassLctoK0sP() const
AliAODPidHF * GetPidHF() const
AliNormalizationCounter * fCounter
Histogram to check selected events.
Bool_t FillRecoCasc(AliVEvent *event, AliAODRecoCascadeHF *rc, Bool_t isDStar)
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)
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)
virtual void UserCreateOutputObjects()
Implementation of interface methods.
Class with functions useful for different D2H analyses //.
virtual ~AliAnalysisTaskSELc2V0bachelor()