X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=ANALYSIS%2FAliAnalysisTaskPIDResponse.cxx;h=a9a436ff6980df5941bc235f343dbddc2a4668d9;hb=fc1fe57509efb99a62ef7b8f130e0c2a44ea29ec;hp=52b6d17212ddedfbd0a903eb7c392372fd09fafe;hpb=067f4c361e1b945427b9017d56f1d2b06a33084f;p=u%2Fmrichter%2FAliRoot.git diff --git a/ANALYSIS/AliAnalysisTaskPIDResponse.cxx b/ANALYSIS/AliAnalysisTaskPIDResponse.cxx index 52b6d17212d..a9a436ff698 100644 --- a/ANALYSIS/AliAnalysisTaskPIDResponse.cxx +++ b/ANALYSIS/AliAnalysisTaskPIDResponse.cxx @@ -40,12 +40,15 @@ fCachePID(kTRUE), fOADBPath(), fSpecialDetResponse(), fPIDResponse(0x0), -fRun(0), -fOldRun(0), +fRun(-1), +fOldRun(-1), fRecoPass(0), fIsTunedOnData(kFALSE), +fTunedOnDataMask(0), fRecoPassTuned(0), -fUseTPCEtaCorrection(kFALSE)//TODO: In future, default kTRUE +fUseTPCEtaCorrection(kTRUE), +fUseTPCMultiplicityCorrection(kTRUE), +fUserDataRecoPass(-1) { // // Dummy constructor @@ -60,12 +63,15 @@ fCachePID(kTRUE), fOADBPath(), fSpecialDetResponse(), fPIDResponse(0x0), -fRun(0), -fOldRun(0), +fRun(-1), +fOldRun(-1), fRecoPass(0), fIsTunedOnData(kFALSE), +fTunedOnDataMask(0), fRecoPassTuned(0), -fUseTPCEtaCorrection(kFALSE)//TODO: In future, default kTRUE +fUseTPCEtaCorrection(kTRUE), +fUseTPCMultiplicityCorrection(kTRUE), +fUserDataRecoPass(-1) { // // Default constructor @@ -105,6 +111,7 @@ void AliAnalysisTaskPIDResponse::UserCreateOutputObjects() if (!fOADBPath.IsNull()) fPIDResponse->SetOADBPath(fOADBPath.Data()); if(fIsTunedOnData) fPIDResponse->SetTunedOnData(kTRUE,fRecoPassTuned); + if(fTunedOnDataMask != 0) fPIDResponse->SetTunedOnDataMask(fTunedOnDataMask); if (!fSpecialDetResponse.IsNull()){ TObjArray *arr=fSpecialDetResponse.Tokenize("; "); @@ -117,7 +124,7 @@ void AliAnalysisTaskPIDResponse::UserCreateOutputObjects() } } delete arr; - } + } } //______________________________________________________________________________ @@ -132,9 +139,11 @@ void AliAnalysisTaskPIDResponse::UserExec(Option_t */*option*/) if (fRun!=fOldRun){ SetRecoInfo(); fOldRun=fRun; + + fPIDResponse->SetUseTPCEtaCorrection(fUseTPCEtaCorrection); + fPIDResponse->SetUseTPCMultiplicityCorrection(fUseTPCMultiplicityCorrection); } - fPIDResponse->SetUseTPCEtaCorrection(fUseTPCEtaCorrection); fPIDResponse->InitialiseEvent(event,fRecoPass); AliESDpid *pidresp = dynamic_cast(fPIDResponse); if(pidresp && AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()){ @@ -175,26 +184,39 @@ void AliAnalysisTaskPIDResponse::SetRecoInfo() fPIDResponse->SetCurrentFile(fileName.Data()); } - if ( (prodInfo.IsMC() == kFALSE) || (fIsMC == kFALSE) ) { // reco pass is needed only for data - fRecoPass = prodInfo.GetRecoPass(); - if (fRecoPass < 0) { // as last resort we find pass from file name (UGLY, but not stored in ESDs/AODs before LHC12d ) - TString fileName(file->GetName()); - if (fileName.Contains("pass1") ) { - fRecoPass=1; - } else if (fileName.Contains("pass2") ) { - fRecoPass=2; - } else if (fileName.Contains("pass3") ) { - fRecoPass=3; - } else if (fileName.Contains("pass4") ) { - fRecoPass=4; - } else if (fileName.Contains("pass5") ) { - fRecoPass=5; - } + fPIDResponse->SetCurrentAliRootRev(prodInfo.GetAlirootSvnVersion()); + + if (prodInfo.IsMC() == kTRUE) fIsMC=kTRUE; // protection if user didn't use macro switch + if ( (prodInfo.IsMC() == kFALSE) && (fIsMC == kFALSE) ) { // reco pass is needed only for data + + if (fUserDataRecoPass > -1) { + AliInfo(Form("Data reconstruction pass is user specified. Setting pass #: %d",fUserDataRecoPass)); + fRecoPass = fUserDataRecoPass; + } else { + fRecoPass = prodInfo.GetRecoPass(); + if (fRecoPass < 0) { // as last resort we find pass from file name (UGLY, but not stored in ESDs/AODs before LHC12d ) + TString fileName(file->GetName()); + if (fileName.Contains("pass1") ) { + fRecoPass=1; + } else if (fileName.Contains("pass2") ) { + fRecoPass=2; + } else if (fileName.Contains("pass3") ) { + fRecoPass=3; + } else if (fileName.Contains("pass4") ) { + fRecoPass=4; + } else if (fileName.Contains("pass5") ) { + fRecoPass=5; + } } + } if (fRecoPass <= 0) { AliError(" ******** Failed to find reconstruction pass number *********"); - AliError(" ******** Insert pass number inside the path of your local file ******"); AliError(" ******** PID information loaded for 'pass 0': parameters unreliable ******"); + AliError(" --> If these are MC data: please set kTRUE first argument of AddTaskPIDResponse"); + AliError(" --> If these are real data: "); + AliError(" (a) please insert pass number inside the path of your local file OR"); + AliError(" (b) specify reconstruction pass number when adding PIDResponse task"); + AliFatal(" no pass number specified for this data file, abort. Asserting AliFatal"); } }