void AliPerformanceEff::ProcessTPC(AliMCEvent* const mcEvent, AliESDEvent *const esdEvent)\r
{\r
// Fill TPC only efficiency comparison information \r
- if(!mcEvent) return;\r
if(!esdEvent) return;\r
\r
Int_t *labelsRec = NULL;\r
{\r
// Fill TPC only efficiency comparison information for secondaries\r
\r
- if(!mcEvent) return;\r
if(!esdEvent) return;\r
\r
Int_t *labelsRec = NULL;\r
void AliPerformanceEff::ProcessTPCITS(AliMCEvent* const mcEvent, AliESDEvent *const esdEvent)\r
{\r
// Fill efficiency comparison information\r
- if(!mcEvent) return;\r
- if(!esdEvent) return;\r
\r
- Int_t *labelsRec = NULL;\r
- labelsRec = new Int_t[esdEvent->GetNumberOfTracks()];\r
- if(!labelsRec) \r
+ Int_t *labelsRecTPCITS = NULL;\r
+ labelsRecTPCITS = new Int_t[esdEvent->GetNumberOfTracks()];\r
+ if(!labelsRecTPCITS) \r
{\r
- Printf("Cannot create labelsRec");\r
+ Printf("Cannot create labelsRecTPCITS");\r
return;\r
}\r
- for(Int_t i=0;i<esdEvent->GetNumberOfTracks();i++) { labelsRec[i] = 0; }\r
+ for(Int_t i=0;i<esdEvent->GetNumberOfTracks();i++) { labelsRecTPCITS[i] = 0; }\r
\r
- Int_t *labelsAllRec = NULL;\r
- labelsAllRec = new Int_t[esdEvent->GetNumberOfTracks()];\r
- if(!labelsAllRec) { \r
- Printf("Cannot create labelsAllRec");\r
+ Int_t *labelsAllRecTPCITS = NULL;\r
+ labelsAllRecTPCITS = new Int_t[esdEvent->GetNumberOfTracks()];\r
+ if(!labelsAllRecTPCITS) { \r
+ Printf("Cannot create labelsAllRecTPCITS");\r
return;\r
}\r
- for(Int_t i=0;i<esdEvent->GetNumberOfTracks();i++) { labelsAllRec[i] = 0; }\r
+ for(Int_t i=0;i<esdEvent->GetNumberOfTracks();i++) { labelsAllRecTPCITS[i] = 0; }\r
\r
// loop over rec. tracks\r
AliESDtrack *track=0;\r
if(!fUseKinkDaughters && track->GetKinkIndex(0) > 0) continue;\r
\r
Int_t label = TMath::Abs(track->GetLabel()); \r
- labelsAllRec[iTrack]=label;\r
+ labelsAllRecTPCITS[iTrack]=label;\r
\r
// iTPC+ITS\r
if(IsRecTPCITS(track) != 0) \r
- labelsRec[iTrack]=label;\r
+ labelsRecTPCITS[iTrack]=label;\r
}\r
\r
// \r
for(Int_t iRec=0; iRec<esdEvent->GetNumberOfTracks(); ++iRec) \r
{\r
// check findable\r
- if(iMc == labelsAllRec[iRec]) \r
+ if(iMc == labelsAllRecTPCITS[iRec]) \r
{\r
findable = IsFindable(mcEvent,iMc);\r
break;\r
for(Int_t iRec=0; iRec<esdEvent->GetNumberOfTracks(); ++iRec) \r
{\r
// check reconstructed\r
- if(iMc == labelsRec[iRec]) \r
+ if(iMc == labelsRecTPCITS[iRec]) \r
{\r
recStatus = kTRUE;\r
break;\r
fEffHisto->Fill(vEffHisto);\r
}\r
\r
- if(labelsRec) delete [] labelsRec; labelsRec = 0;\r
- if(labelsAllRec) delete [] labelsAllRec; labelsAllRec = 0;\r
+ if(labelsRecTPCITS) delete [] labelsRecTPCITS; labelsRecTPCITS = 0;\r
+ if(labelsAllRecTPCITS) delete [] labelsAllRecTPCITS; labelsAllRecTPCITS = 0;\r
}\r
\r
//_____________________________________________________________________________\r
void AliPerformanceEff::ProcessConstrained(AliMCEvent* const mcEvent, AliESDEvent *const esdEvent)\r
{\r
// Process comparison information \r
- if(!mcEvent) return;\r
if(!esdEvent) return;\r
\r
- Int_t *labelsRec = NULL;\r
- labelsRec = new Int_t[esdEvent->GetNumberOfTracks()];\r
- if(!labelsRec) \r
+ Int_t *labelsRecConstrained = NULL;\r
+ labelsRecConstrained = new Int_t[esdEvent->GetNumberOfTracks()];\r
+ if(!labelsRecConstrained) \r
{\r
- Printf("Cannot create labelsRec");\r
+ Printf("Cannot create labelsRecConstrained");\r
return;\r
}\r
- for(Int_t i=0;i<esdEvent->GetNumberOfTracks();i++) { labelsRec[i] = 0; }\r
+ for(Int_t i=0;i<esdEvent->GetNumberOfTracks();i++) { labelsRecConstrained[i] = 0; }\r
\r
- Int_t *labelsAllRec = NULL;\r
- labelsAllRec = new Int_t[esdEvent->GetNumberOfTracks()];\r
- if(!labelsAllRec) { \r
- Printf("Cannot create labelsAllRec");\r
+ Int_t *labelsAllRecConstrained = NULL;\r
+ labelsAllRecConstrained = new Int_t[esdEvent->GetNumberOfTracks()];\r
+ if(!labelsAllRecConstrained) { \r
+ Printf("Cannot create labelsAllRecConstrained");\r
return;\r
}\r
- for(Int_t i=0;i<esdEvent->GetNumberOfTracks();i++) { labelsAllRec[i] = 0; }\r
+ for(Int_t i=0;i<esdEvent->GetNumberOfTracks();i++) { labelsAllRecConstrained[i] = 0; }\r
\r
// loop over rec. tracks\r
AliESDtrack *track=0;\r
if(!fUseKinkDaughters && track->GetKinkIndex(0) > 0) continue;\r
\r
Int_t label = TMath::Abs(track->GetLabel()); \r
- labelsAllRec[iTrack]=label;\r
+ labelsAllRecConstrained[iTrack]=label;\r
\r
// Constrained\r
if(IsRecConstrained(track) != 0) \r
- labelsRec[iTrack]=label;\r
+ labelsRecConstrained[iTrack]=label;\r
\r
}\r
\r
for(Int_t iRec=0; iRec<esdEvent->GetNumberOfTracks(); ++iRec) \r
{\r
// check findable\r
- if(iMc == labelsAllRec[iRec]) \r
+ if(iMc == labelsAllRecConstrained[iRec]) \r
{\r
findable = IsFindable(mcEvent,iMc);\r
break;\r
for(Int_t iRec=0; iRec<esdEvent->GetNumberOfTracks(); ++iRec) \r
{\r
// check reconstructed\r
- if(iMc == labelsRec[iRec]) \r
+ if(iMc == labelsRecConstrained[iRec]) \r
{\r
recStatus = kTRUE;\r
break;\r
fEffHisto->Fill(vEffHisto);\r
}\r
\r
- if(labelsRec) delete [] labelsRec; labelsRec = 0;\r
- if(labelsAllRec) delete [] labelsAllRec; labelsAllRec = 0;\r
+ if(labelsRecConstrained) delete [] labelsRecConstrained; labelsRecConstrained = 0;\r
+ if(labelsAllRecConstrained) delete [] labelsAllRecConstrained; labelsAllRecConstrained = 0;\r
}\r
\r
//_____________________________________________________________________________\r
static Double_t vertOK = 0;
TH1* his1D=0;
+ TH1* hc=0;
if (pTPC->GetHistos()->FindObject("h_tpc_event_6") && !fgForceTHnSparse) {
his1D = dynamic_cast<TH1*>(pTPC->GetHistos()->FindObject("h_tpc_event_6")->Clone());
} else {
if (pTPC->GetHistos()->FindObject("h_tpc_event_recvertex_2") && !fgForceTHnSparse) {
- his1D = dynamic_cast<TH1*>(pTPC->GetHistos()->FindObject("h_tpc_event_recvertex_2")->Clone());
+ hc = dynamic_cast<TH1*>(pTPC->GetHistos()->FindObject("h_tpc_event_recvertex_2"));
+ if(!hc) return 1;
+ //his1D = dynamic_cast<TH1*>(pTPC->GetHistos()->FindObject("h_tpc_event_recvertex_2")->Clone());
+ his1D = (TH1*)hc->Clone();
} else {
his1D = pTPC->GetTPCEventHisto()->Projection(2);
- } meanVertZ = his1D->GetMean();
+ }
if(!his1D) return 1;
+ meanVertZ = his1D->GetMean();
rmsVertZ = his1D->GetRMS();
delete his1D;
if (pTPC->GetHistos()->FindObject("h_tpc_event_recvertex_3") && !fgForceTHnSparse) {
- his1D = dynamic_cast<TH1*>(pTPC->GetHistos()->FindObject("h_tpc_event_recvertex_3")->Clone());
+ hc = dynamic_cast<TH1*>(pTPC->GetHistos()->FindObject("h_tpc_event_recvertex_3"));
+ if(!hc) return 1;
+ //his1D = dynamic_cast<TH1*>(pTPC->GetHistos()->FindObject("h_tpc_event_recvertex_3")->Clone());
+ his1D = (TH1*)hc->Clone();
} else {
his1D = pTPC->GetTPCEventHisto()->Projection(3);
}
snprintf(inputGen,1000,"%s>>hGen", variable);
fTree->Draw(inputGen, selection, "groff");
char selectionRec[256];
- snprintf(selectionRec,1000, "%s && %s", selection, quality);
+ snprintf(selectionRec,256, "%s && %s", selection, quality);
char inputRec[1000];
snprintf(inputRec,1000,"%s>>hRec", variable);
fTree->Draw(inputRec, selectionRec, "groff");
snprintf(inputGen,1000,"%s>>hGen", variable);
fTree->Draw(inputGen, selection, "groff");
char selectionRec[256];
- snprintf(selectionRec,1000, "%s && %s", selection, quality);
+ snprintf(selectionRec,256, "%s && %s", selection, quality);
char inputRec[1000];
snprintf(inputRec,1000,"%s>>hRec", variable);
fTree->Draw(inputRec, selectionRec, "groff");