]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ANALYSIS/AliPhysicsSelection.cxx
Merge branch 'TPCdev'
[u/mrichter/AliRoot.git] / ANALYSIS / AliPhysicsSelection.cxx
index 2f8da1d126915b2f5bc0a4612615f8cd18c25c2b..7c9c869a708a67af969dd40d33d735794d2444ee 100644 (file)
@@ -492,6 +492,9 @@ UInt_t AliPhysicsSelection::IsCollisionCandidate(const AliESDEvent* aEsd)
       // (with all AliTriggerAnalysis tokens? Only we the tokens
       // actually used in the selection?) and clean up
 
+      AliESDVZERO *esdV0 = aEsd->GetVZEROData();
+      if(!esdV0) fSkipV0 = kTRUE;
+
       // hardware trigger
       Int_t fastORHW   = triggerAnalysis->EvaluateTrigger(aEsd, AliTriggerAnalysis::kSPDGFO); // SPD number of chips from trigger bits (!)
       //      Int_t fastORHWL1 = triggerAnalysis->EvaluateTrigger(aEsd, AliTriggerAnalysis::kSPDGFOL1); // SPD number of chips from trigger bits in second layer (!)
@@ -524,8 +527,11 @@ UInt_t AliPhysicsSelection::IsCollisionCandidate(const AliESDEvent* aEsd)
       Bool_t zdcA    = triggerAnalysis->EvaluateTrigger(aEsd, (AliTriggerAnalysis::Trigger) (AliTriggerAnalysis::kOfflineFlag | AliTriggerAnalysis::kZDCTDCA));
       Bool_t zdcC    = triggerAnalysis->EvaluateTrigger(aEsd, (AliTriggerAnalysis::Trigger) (AliTriggerAnalysis::kOfflineFlag | AliTriggerAnalysis::kZDCTDCC));
       Bool_t zdcTime = triggerAnalysis->EvaluateTrigger(aEsd, (AliTriggerAnalysis::Trigger) (AliTriggerAnalysis::kOfflineFlag | AliTriggerAnalysis::kZDCTime));
+      Bool_t znABG   = triggerAnalysis->EvaluateTrigger(aEsd, (AliTriggerAnalysis::Trigger) (AliTriggerAnalysis::kOfflineFlag | AliTriggerAnalysis::kZNABG));
+      Bool_t znCBG   = triggerAnalysis->EvaluateTrigger(aEsd, (AliTriggerAnalysis::Trigger) (AliTriggerAnalysis::kOfflineFlag | AliTriggerAnalysis::kZNCBG));
 
       Bool_t laserCut = triggerAnalysis->EvaluateTrigger(aEsd, (AliTriggerAnalysis::Trigger) (AliTriggerAnalysis::kOfflineFlag | AliTriggerAnalysis::kTPCLaserWarmUp));
+      Bool_t hvDipCut = triggerAnalysis->EvaluateTrigger(aEsd, (AliTriggerAnalysis::Trigger) (AliTriggerAnalysis::kOfflineFlag | AliTriggerAnalysis::kTPCHVdip));
 
       // Some "macros"
       Bool_t mb1 = (fastOROffline > 0 || v0A || v0C) && (!v0BG);
@@ -609,6 +615,9 @@ UInt_t AliPhysicsSelection::IsCollisionCandidate(const AliESDEvent* aEsd)
        if (laserCut)
          fHistStatistics[iHistStat]->Fill(kStatLaserCut, i);
 
+       if (hvDipCut)
+         fHistStatistics[iHistStat]->Fill(kHVdipCut, i);
+
        //if(ntrig >= 2 && !v0BG) 
        //  fHistStatistics[iHistStat]->Fill(kStatAny2Hits, i);
 
@@ -633,10 +642,17 @@ UInt_t AliPhysicsSelection::IsCollisionCandidate(const AliESDEvent* aEsd)
 
        if (zdcTime)
          fHistStatistics[iHistStat]->Fill(kStatZDCTime, i);
+       if (znABG)
+         fHistStatistics[iHistStat]->Fill(kStatZNABG, i);
+       if (znCBG)
+         fHistStatistics[iHistStat]->Fill(kStatZNCBG, i);
   
        if (v0A && v0C && !v0BG && (!bgID && fIsPP))
          fHistStatistics[iHistStat]->Fill(kStatV0, i);
 
+       if (v0A && v0C && !v0BG && (!bgID && fIsPP) && !znABG && !znCBG)
+         fHistStatistics[iHistStat]->Fill(kStatV0ZN, i);
+
        if (bgID && !v0BG) 
          fHistStatistics[iHistStat]->Fill(kStatBG, i);
 
@@ -998,13 +1014,15 @@ Bool_t AliPhysicsSelection::Initialize(Int_t runNumber)
       
       AliTriggerAnalysis* triggerAnalysis = new AliTriggerAnalysis;
       triggerAnalysis->SetAnalyzeMC(fMC);
-      triggerAnalysis->EnableHistograms();
+      triggerAnalysis->EnableHistograms(fIsPP);
       triggerAnalysis->SetSPDGFOThreshhold(1);
       triggerAnalysis->SetDoFMD(kFALSE);
       triggerAnalysis->SetCorrZDCCutParams(fTriggerOADB->GetZDCCutRefSumCorr(),
                                           fTriggerOADB->GetZDCCutRefDeltaCorr(), 
                                           fTriggerOADB->GetZDCCutSigmaSumCorr(),
                                           fTriggerOADB->GetZDCCutSigmaDeltaCorr());
+      triggerAnalysis->SetZNCorrCutParams(fTriggerOADB->GetZDCCutZNATimeCorrMin(),fTriggerOADB->GetZDCCutZNATimeCorrMax(),
+                                         fTriggerOADB->GetZDCCutZNCTimeCorrMin(),fTriggerOADB->GetZDCCutZNCTimeCorrMax());
       fTriggerAnalysis.Add(triggerAnalysis);
     }
 
@@ -1115,16 +1133,20 @@ TH2F * AliPhysicsSelection::BookHistStatistics(const char * tag) {
   h->GetXaxis()->SetBinLabel(kStatT0BG,                 "T0BG");
   h->GetXaxis()->SetBinLabel(kStatT0PileUp,      "T0 PileUp");
   h->GetXaxis()->SetBinLabel(kStatLaserCut,      "TPC Laser Wup Cut");
+  h->GetXaxis()->SetBinLabel(kHVdipCut,          "TPC HV dip Cut");
   h->GetXaxis()->SetBinLabel(kStatV0ABG,        "V0A BG");
   h->GetXaxis()->SetBinLabel(kStatV0CBG,        "V0C BG");
   h->GetXaxis()->SetBinLabel(kStatZDCA,          "ZDCA");
   h->GetXaxis()->SetBinLabel(kStatZDCC,          "ZDCC");
   h->GetXaxis()->SetBinLabel(kStatZDCAC,         "ZDCA & ZDCC");
   h->GetXaxis()->SetBinLabel(kStatZDCTime,       "ZDC Time Cut");
+  h->GetXaxis()->SetBinLabel(kStatZNABG,         "ZNA BG");
+  h->GetXaxis()->SetBinLabel(kStatZNCBG,         "ZNC BG");
   h->GetXaxis()->SetBinLabel(kStatMB1,          "(FO >= 1 | V0A | V0C) & !V0 BG");
   h->GetXaxis()->SetBinLabel(kStatMB1Prime,      "(FO >= 2 | (FO >= 1 & (V0A | V0C)) | (V0A &v0C) ) & !V0 BG");
   //h->GetXaxis()->SetBinLabel(kStatFO1AndV0,   "FO >= 1 & (V0A | V0C) & !V0 BG");
   h->GetXaxis()->SetBinLabel(kStatV0,           "V0A & V0C & !V0 BG & !BG ID");
+  h->GetXaxis()->SetBinLabel(kStatV0ZN,                 "V0A & V0C & !V0 BG & !BG ID & !ZN BG");
   h->GetXaxis()->SetBinLabel(kStatOffline,      "Offline Trigger");
   //h->GetXaxis()->SetBinLabel(kStatAny2Hits,   "2 Hits & !V0 BG");
   h->GetXaxis()->SetBinLabel(kStatBG,           "Background identification");
@@ -1636,7 +1658,7 @@ void AliPhysicsSelection::SaveHistograms(const char* folder)
     for (Int_t iTrigClass = 0; iTrigClass < kNClasses; iTrigClass++){
       delete [] rows[iTrigClass];
     }  
-  }  
+  } // end of ComputeBackground  
 
   fHistStatistics[0]->Write();
   fHistStatistics[1]->Write();