]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ANALYSIS/AliAnalysisTaskPIDResponse.cxx
Reconstructor for digits and fix of some bugs
[u/mrichter/AliRoot.git] / ANALYSIS / AliAnalysisTaskPIDResponse.cxx
index 49af37ba7f9630cb7ae60558e9d2b85c2429299d..f9ce0421af44e513985cb18d6349daeb5c43dba7 100644 (file)
@@ -46,8 +46,9 @@ fRecoPass(0),
 fIsTunedOnData(kFALSE),
 fTunedOnDataMask(0),
 fRecoPassTuned(0),
-fUseTPCEtaCorrection(kFALSE),//TODO: In future, default kTRUE 
-fUseTPCMultiplicityCorrection(kFALSE)//TODO: In future, default kTRUE  
+fUseTPCEtaCorrection(kTRUE),
+fUseTPCMultiplicityCorrection(kTRUE),
+fUserDataRecoPass(-1)
 {
   //
   // Dummy constructor
@@ -68,8 +69,9 @@ fRecoPass(0),
 fIsTunedOnData(kFALSE),
 fTunedOnDataMask(0),
 fRecoPassTuned(0),
-fUseTPCEtaCorrection(kFALSE),//TODO: In future, default kTRUE
-fUseTPCMultiplicityCorrection(kFALSE)//TODO: In future, default kTRUE  
+fUseTPCEtaCorrection(kTRUE),
+fUseTPCMultiplicityCorrection(kTRUE),  
+fUserDataRecoPass(-1)
 {
   //
   // Default constructor
@@ -120,6 +122,11 @@ void AliAnalysisTaskPIDResponse::UserCreateOutputObjects()
         fPIDResponse->SetCustomTPCpidResponse(resp.Data());
         AliInfo(Form("Setting custom TPC response file: '%s'",resp.Data()));
       }
+      else if (resp.BeginsWith("TPC-Maps:")){
+        resp.ReplaceAll("TPC-Maps:","");
+        fPIDResponse->SetCustomTPCetaMaps(resp.Data());
+        AliInfo(Form("Setting custom TPC eta maps file: '%s'",resp.Data()));
+      }
     }
     delete arr;
   }  
@@ -186,26 +193,35 @@ void AliAnalysisTaskPIDResponse::SetRecoInfo()
   
   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
-    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 (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(" ******** 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: please insert pass number inside the path of your local file ******");
+      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");
     }
   }