Minor corrections
[u/mrichter/AliRoot.git] / ZDC / AliZDCTrigger.cxx
index 00b96fc..c92ba52 100644 (file)
  * provided "as is" without express or implied warranty.                  *
  **************************************************************************/
 
+// ****************************************************************
+//
+//     Trigger class for ZDC
+//
+// ****************************************************************
+
 #include "AliLog.h"
 #include "AliRun.h"
 #include "AliLoader.h"
@@ -28,18 +34,22 @@ ClassImp(AliZDCTrigger)
 
 //________________________________________________________________
 AliZDCTrigger::AliZDCTrigger() : AliTriggerDetector() 
-{
+{  
+   // Constructor
    SetName("ZDC");
    CreateInputs();
    //
-   SetZNMinCut(0);
-   SetZDCMinCut(0);
+   SetZDCLeftMinCut(0);
+   SetZDCRightMinCut(0);
    SetZEMMinCut(0);
    SetZDCLeftEMDCuts(0,0);
    SetZDCRightEMDCuts(0,0);
-   SetZDCMBCut(0);
-   SetZDCCentrCut(0);
-   SetZDCSemiCentrCut(0);
+   SetZDCLeftMBCut(0);
+   SetZDCRightMBCut(0);
+   SetZDCLeftCentrCut(0);
+   SetZDCRightCentrCut(0);
+   SetZDCLeftSemiCentrCut(0);
+   SetZDCRightSemiCentrCut(0);
    SetZEMCentrCut(0);
 
 }
@@ -47,14 +57,14 @@ AliZDCTrigger::AliZDCTrigger() : AliTriggerDetector()
 //________________________________________________________________
 void AliZDCTrigger::CreateInputs()
 {
-   // inputs 
+   // Trigger inputs
    
    // Do not create inputs again!!
    if( fInputs.GetEntriesFast() > 0 ) return;
    
    fInputs.AddLast(new AliTriggerInput("ZDC_1_L1",   "ZDC Minimum Bias", 0x01));
-   fInputs.AddLast(new AliTriggerInput("ZDC_2_L1",   "ZDC Central", 0x02));
-   fInputs.AddLast(new AliTriggerInput("ZDC_3_L1",   "ZDC Semi-central", 0x04));
+   fInputs.AddLast(new AliTriggerInput("ZDC_2_L1",   "ZDC Semi-central", 0x02));
+   fInputs.AddLast(new AliTriggerInput("ZDC_3_L1",   "ZDC Central", 0x04));
    fInputs.AddLast(new AliTriggerInput("ZDC_EMD_L1", "ZDC EMD events", 0x08));
 }
 
@@ -62,77 +72,107 @@ void AliZDCTrigger::CreateInputs()
 void AliZDCTrigger::Trigger()
 {
 
-
+   // Trigger selection
+   //
    AliRunLoader *runLoader = gAlice->GetRunLoader();
 
-   AliLoader *ZDCLoader = runLoader->GetLoader("ZDCLoader");
-   ZDCLoader->LoadDigits("READ");
+   AliLoader *aZDCLoader = runLoader->GetLoader("ZDCLoader");
+   aZDCLoader->LoadDigits("READ");
    AliZDCDigit digit;
    AliZDCDigit* pdigit = &digit;
-   TTree* TD = ZDCLoader->TreeD();
-   if (!TD) cerr<<"AliZDCTrigger: digits tree not found\n";
-   TD->SetBranchAddress("ZDC", &pdigit);
+   TTree* tD = aZDCLoader->TreeD();
+   if (!tD) {
+     cerr<<"AliZDCTrigger: digits tree not found\n";
+     return;
+   }
+   tD->SetBranchAddress("ZDC", &pdigit);
    //
-   Float_t ZNSignal[2], ZPSignal[2], ZDCSumSignal[2], ZEMSumSignal[2];
-   for(Int_t iDigit=0; iDigit<TD->GetEntries(); iDigit++){
-      TD->GetEntry(iDigit);
+   Float_t signalZNLeft[]={0,0}, signalZPLeft[]={0,0}, signalZDCLeftSum[]={0,0};
+   Float_t signalZNRight[]={0,0}, signalZPRight[]={0,0}, signalZDCRightSum[]={0,0};
+   Float_t signalZEMSum[]={0,0};
+   for(Int_t iDigit=0; iDigit<tD->GetEntries(); iDigit++){
+      tD->GetEntry(iDigit);
       //
+      // *** ZDC LEFT
       if(digit.GetSector(0)==1)
-         for(Int_t i=0; i<2; i++){
-           ZNSignal[i] += digit.GetADCValue(i);
-           ZDCSumSignal[i] += digit.GetADCValue(i);
+         for(Int_t i=0; i<2; i++){ //0=high range; 1=low range
+           signalZNLeft[i] += digit.GetADCValue(i);
+           signalZDCLeftSum[i] += digit.GetADCValue(i);
          }
       else if(digit.GetSector(0)==2)
          for(Int_t i=0; i<2; i++){
-           ZPSignal[i] += digit.GetADCValue(i);
-           ZDCSumSignal[i] += digit.GetADCValue(i);
+           signalZPLeft[i] += digit.GetADCValue(i);
+           signalZDCLeftSum[i] += digit.GetADCValue(i);
          }
       else if(digit.GetSector(0)==3)
-         for(Int_t i=0; i<2; i++) ZEMSumSignal[i] += digit.GetADCValue(i);
+         for(Int_t i=0; i<2; i++) signalZEMSum[i] += digit.GetADCValue(i);
+      // *** ZDC RIGHT
+      else if(digit.GetSector(0)==4)
+         for(Int_t i=0; i<2; i++){ //0=high range; 1=low range
+           signalZNRight[i] += digit.GetADCValue(i);
+           signalZDCRightSum[i] += digit.GetADCValue(i);
+         }
+      else if(digit.GetSector(0)==5)
+         for(Int_t i=0; i<2; i++){
+           signalZPRight[i] += digit.GetADCValue(i);
+           signalZDCRightSum[i] += digit.GetADCValue(i);
+         }
    }
    // *******************************************************************
-   if(ZNSignal[1]>fZDCLeftEMDCuts[0] && ZNSignal[1]<fZDCLeftEMDCuts[1] && 
-       ZEMSumSignal[1]<fZEMMinCut){ // *** n EMD event
-       SetInput("ZDC_EMD_L1");
-   }
+   if(signalZDCLeftSum[1]>fZDCLeftMBCut && signalZDCRightSum[1]>fZDCRightMBCut) 
+       // *** ZDC minimum bias trigger
+       SetInput("ZDC_1_L1");
    // *******************************************************************
-   if(ZDCSumSignal[0]>fZDCMBCut) // *** ZDC minimum bias
-     SetInput("ZDC_1_L1");
+   if(signalZDCLeftSum[1]>fZDCLeftCentrCut && signalZDCLeftSum[1]<fZDCLeftSemiCentrCut &&
+      signalZDCRightSum[1]>fZDCRightCentrCut && signalZDCRightSum[1]<fZDCRightSemiCentrCut
+      && signalZEMSum[1]>fZEMCentrCut) 
+       // *** ZDC semi-central (10-40%)
+       SetInput("ZDC_2_L1");
    // *******************************************************************
-   if(ZDCSumSignal[0]>fZDCMinCut && ZDCSumSignal[0]<fZDCMBCut) 
-     // *** ZDC central (0-10%)
-     SetInput("ZDC_2_L1");
+   if(signalZDCLeftSum[1]>fZDCLeftMinCut && signalZDCLeftSum[1]<fZDCLeftCentrCut &&
+      signalZDCRightSum[1]>fZDCRightMinCut && signalZDCRightSum[1]<fZDCRightCentrCut &&
+      signalZEMSum[1]>fZEMCentrCut) 
+       // *** ZDC central (0-10%)
+       SetInput("ZDC_3_L1");
    // *******************************************************************
-   if(ZDCSumSignal[0]>fZDCCentrCut && ZDCSumSignal[0]<fZDCSemiCentrCut
-          && ZEMSumSignal[0]>fZEMCentrCut) 
-     // *** ZDC semi-central (10-40%)
-     SetInput("ZDC_3_L1");
+   if(signalZNLeft[0]>fZDCLeftEMDCuts[0] && signalZNLeft[0]<fZDCLeftEMDCuts[1] && 
+      signalZNRight[0]>fZDCRightEMDCuts[0] && signalZNRight[0]<fZDCRightEMDCuts[1] &&
+      signalZEMSum[1]<fZEMMinCut){ // *** 1n EMD trigger
+        SetInput("ZDC_EMD_L1");
+   }
    
 }
 
 //________________________________________________________________
-void AliZDCTrigger::SetZNMinCut(Float_t ZNMinCut) 
+void AliZDCTrigger::SetZDCLeftMinCut(Float_t ZDCLeftMinCut) 
 {
-  if(ZNMinCut)  fZNMinCut = ZNMinCut;
-  else  fZNMinCut = 400.;
+  // Set default cut values for ZDC trigger
+  //
+  if(ZDCLeftMinCut)  fZDCLeftMinCut = ZDCLeftMinCut;
+  else  fZDCLeftMinCut = 800.;
 }
-
 //________________________________________________________________
-void AliZDCTrigger::SetZDCMinCut(Float_t ZDCMinCut) 
+void AliZDCTrigger::SetZDCRightMinCut(Float_t ZDCRightMinCut) 
 {
-  if(ZDCMinCut)  fZDCMinCut = ZDCMinCut;
-  else  fZDCMinCut = 800.;
+  // Set default cut values for ZDC trigger
+  //
+  if(ZDCRightMinCut)  fZDCRightMinCut = ZDCRightMinCut;
+  else  fZDCRightMinCut = 800.;
 }
 
 //________________________________________________________________
 void AliZDCTrigger::SetZEMMinCut(Float_t ZEMMinCut) 
 {
+  // Set default cut values for ZDC trigger
+  //
   if(ZEMMinCut)  fZEMMinCut = ZEMMinCut;
   else  fZEMMinCut = 80.;
 }
 //________________________________________________________________
 void AliZDCTrigger::SetZDCLeftEMDCuts(Float_t* ZDCLeftEMDCuts) 
 {
+  // Set default cut values for ZDC trigger
+  //
   if(ZDCLeftEMDCuts) for(int j=0; j<2; j++) fZDCLeftEMDCuts[j] = ZDCLeftEMDCuts[j];
   else{
     fZDCLeftEMDCuts[0] = 600.;
@@ -143,6 +183,8 @@ void AliZDCTrigger::SetZDCLeftEMDCuts(Float_t* ZDCLeftEMDCuts)
 void AliZDCTrigger::SetZDCLeftEMDCuts(Float_t ZDCLeftEMDCutInf, 
        Float_t ZDCLeftEMDCutSup) 
 {
+  // Set default cut values for ZDC trigger
+  //
   if(ZDCLeftEMDCutInf && ZDCLeftEMDCutSup){
     fZDCLeftEMDCuts[0]=ZDCLeftEMDCutInf; 
     fZDCLeftEMDCuts[1]=ZDCLeftEMDCutSup;
@@ -155,6 +197,8 @@ void AliZDCTrigger::SetZDCLeftEMDCuts(Float_t ZDCLeftEMDCutInf,
 //________________________________________________________________
 void AliZDCTrigger::SetZDCRightEMDCuts(Float_t* ZDCRightEMDCuts) 
 {
+  // Set default cut values for ZDC trigger
+  //
   if(ZDCRightEMDCuts) for(int j=0; j<2; j++) fZDCRightEMDCuts[j] = ZDCRightEMDCuts[j];
   else{
     fZDCRightEMDCuts[0] = 600.;
@@ -165,6 +209,8 @@ void AliZDCTrigger::SetZDCRightEMDCuts(Float_t* ZDCRightEMDCuts)
 void AliZDCTrigger::SetZDCRightEMDCuts(Float_t ZDCRightEMDCutInf, 
        Float_t ZDCRightEMDCutSup) 
 {
+  // Set default cut values for ZDC trigger
+  //
   if(ZDCRightEMDCutInf && ZDCRightEMDCutSup){
     fZDCRightEMDCuts[0]=ZDCRightEMDCutInf; 
     fZDCRightEMDCuts[1]=ZDCRightEMDCutSup;
@@ -175,26 +221,58 @@ void AliZDCTrigger::SetZDCRightEMDCuts(Float_t ZDCRightEMDCutInf,
   }
 }
 //________________________________________________________________
-void AliZDCTrigger::SetZDCMBCut(Float_t ZDCMBCut) 
+void AliZDCTrigger::SetZDCLeftMBCut(Float_t ZDCLeftMBCut) 
+{
+  // Set default cut values for ZDC trigger
+  //
+  if(ZDCLeftMBCut) fZDCLeftMBCut = ZDCLeftMBCut;
+  else fZDCLeftMBCut = 800.;
+}
+//________________________________________________________________
+void AliZDCTrigger::SetZDCRightMBCut(Float_t ZDCRightMBCut) 
+{
+  // Set default cut values for ZDC trigger
+  //
+  if(ZDCRightMBCut) fZDCRightMBCut = ZDCRightMBCut;
+  else fZDCRightMBCut = 800.;
+}
+//________________________________________________________________
+void AliZDCTrigger::SetZDCLeftCentrCut(Float_t ZDCLeftCentrCut) 
+{
+  // Set default cut values for ZDC trigger
+  //
+  if(ZDCLeftCentrCut) fZDCLeftCentrCut = ZDCLeftCentrCut;
+  else fZDCLeftCentrCut = 10000.;
+}
+//________________________________________________________________
+void AliZDCTrigger::SetZDCRightCentrCut(Float_t ZDCRightCentrCut) 
 {
-  if(ZDCMBCut) fZDCMBCut = ZDCMBCut;
-  else fZDCMBCut = 800.;
+  // Set default cut values for ZDC trigger
+  //
+  if(ZDCRightCentrCut) fZDCRightCentrCut = ZDCRightCentrCut;
+  else fZDCRightCentrCut = 10000.;
 }
 //________________________________________________________________
-void AliZDCTrigger::SetZDCCentrCut(Float_t ZDCCentrCut) 
+void AliZDCTrigger::SetZDCLeftSemiCentrCut(Float_t ZDCLeftSemiCentrCut) 
 {
-  if(ZDCCentrCut) fZDCCentrCut = ZDCCentrCut;
-  else fZDCCentrCut = 10000.;
+  // Set default cut values for ZDC trigger
+  //
+  if(ZDCLeftSemiCentrCut) fZDCLeftSemiCentrCut = ZDCLeftSemiCentrCut;
+  else fZDCLeftSemiCentrCut = 18500.;
 }
 //________________________________________________________________
-void AliZDCTrigger::SetZDCSemiCentrCut(Float_t ZDCSemiCentrCut) 
+void AliZDCTrigger::SetZDCRightSemiCentrCut(Float_t ZDCRightSemiCentrCut) 
 {
-  if(ZDCSemiCentrCut) fZDCSemiCentrCut = ZDCSemiCentrCut;
-  else fZDCSemiCentrCut = 18500.;
+  // Set default cut values for ZDC trigger
+  //
+  if(ZDCRightSemiCentrCut) fZDCRightSemiCentrCut = ZDCRightSemiCentrCut;
+  else fZDCRightSemiCentrCut = 18500.;
 }
 //________________________________________________________________
 void AliZDCTrigger::SetZEMCentrCut(Float_t ZEMCentrCut) 
 {
+  // Set default cut values for ZDC trigger
+  //
   if(ZEMCentrCut) fZEMCentrCut = ZEMCentrCut;
   else fZEMCentrCut = 210.;
 }