]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - VZERO/AliVZEROTrigger.cxx
Changing period for GRP only to check GRP DPs in DCS.
[u/mrichter/AliRoot.git] / VZERO / AliVZEROTrigger.cxx
index 31a95219b480cb30ca3cbf78356dd0bf6104d318..98c4e3879b8cd40c04b63b5fcaf2809c100cb195 100644 (file)
@@ -1,3 +1,22 @@
+/**************************************************************************
+ * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ *                                                                        *
+ * Author: The ALICE Off-line Project.                                    *
+ * Contributors are mentioned in the code where appropriate.              *
+ *                                                                        *
+ * Permission to use, copy, modify and distribute this software and its   *
+ * documentation strictly for non-commercial purposes is hereby granted   *
+ * without fee, provided that the above copyright notice appears in all   *
+ * copies and that both the copyright notice and this permission notice   *
+ * appear in the supporting documentation. The authors make no claims     *
+ * about the suitability of this software for any purpose. It is          *
+ * provided "as is" without express or implied warranty.                  *
+ **************************************************************************/
+
+/* $Id$ */
+
+#include <TClonesArray.h>
+
 #include "AliRun.h"
 #include "AliRunLoader.h"
 
@@ -15,12 +34,16 @@ ClassImp(AliVZEROTrigger)
 
 //______________________________________________________________________
 AliVZEROTrigger::AliVZEROTrigger()
-  : AliTriggerDetector()
+  :AliTriggerDetector(),
+   fAdcThresHold(0.0),
+   fTimeWindowWidth(50.0)
+   
 {
    SetName("VZERO");
    CreateInputs();
 
    SetAdcThreshold();
+   SetTimeWindowWidth();
 }
 
 //______________________________________________________________________
@@ -31,12 +54,12 @@ void AliVZEROTrigger::CreateInputs()
    // Do not create inputs again!!
    if( fInputs.GetEntriesFast() > 0 ) return;
 
-   fInputs.AddLast( new AliTriggerInput( "VZERO_LEFT", "At least one hit in the left VZERO", 0x01 ) );
-   fInputs.AddLast( new AliTriggerInput( "VZERO_RIGHT","At least one hit in the right VZERO", 0x02 ) );
-   fInputs.AddLast( new AliTriggerInput( "VZERO_AND",  "At least one hit in the each (left and right) VZERO", 0x04 ) );
-   fInputs.AddLast( new AliTriggerInput( "VZERO_OR",   "At least one hit in the one (left one right) VZERO", 0x08 ) );
+   fInputs.AddLast( new AliTriggerInput( "VZERO_LEFT", "VZERO", 0 ) );
+   fInputs.AddLast( new AliTriggerInput( "VZERO_RIGHT","VZERO", 0 ) );
+   fInputs.AddLast( new AliTriggerInput( "VZERO_AND",  "VZERO", 0 ) );
+   fInputs.AddLast( new AliTriggerInput( "VZERO_OR",   "VZERO", 0 ) );
 
-   fInputs.AddLast( new AliTriggerInput( "VZERO_BEAMGAS", "Beam gas VZERO trigger ", 0x010 ) );
+   fInputs.AddLast( new AliTriggerInput( "VZERO_BEAMGAS", "VZERO", 0 ) );
 }
 
 //______________________________________________________________________
@@ -61,9 +84,10 @@ void AliVZEROTrigger::Trigger()
   Int_t nRightDig = 0;
   
   // first time 
-  Float_t firstTimeLeft = 9999;
-  Float_t firstTimeRight = 9999;
-
+  Float_t firstTimeLeft  = 9999.0;
+  Float_t firstTimeRight = 9999.0;
+  Float_t TimeHalfWidth  = fTimeWindowWidth/2.0;
   // loop over vzero entries
   Int_t nEntries = (Int_t)vzeroDigitsTree->GetEntries();
   for (Int_t e=0; e<nEntries; e++) {
@@ -80,13 +104,14 @@ void AliVZEROTrigger::Trigger()
       Float_t tdc        = digit->Time(); // in 100 of picoseconds
       
       if (PMNumber<=31 && adc>fAdcThresHold) {
-       nLeftDig++;
+       if (tdc>(29.0-TimeHalfWidth) && tdc<(29.0+TimeHalfWidth)) nRightDig++;
+       if (tdc<firstTimeRight) firstTimeRight = tdc;
+      }      
+      if (PMNumber>=32 && adc>fAdcThresHold) {
+       if (tdc>(112.0-TimeHalfWidth) && tdc<(112.0+TimeHalfWidth)) nLeftDig++;
        if (tdc<firstTimeLeft) firstTimeLeft = tdc;
       }        
-      if (PMNumber>=32 && adc>fAdcThresHold) {
-       nRightDig++;
-       if (tdc<firstTimeRight) firstTimeRight = tdc;
-      }
+      
     } // end of loop over digits
   } // end of loop over events in digits tree
   
@@ -100,21 +125,21 @@ void AliVZEROTrigger::Trigger()
     SetInput( "VZERO_BEAMGAS" );
 
   if (nLeftDig > 0)
-    SetInput( "VZERO_LEFT" );
+      SetInput( "VZERO_LEFT" );
 
   if (nRightDig > 0)
-    SetInput( "VZERO_RIGHT" );
+      SetInput( "VZERO_RIGHT" );
   
   if (nLeftDig>0 || nRightDig>0) {
-    SetInput( "VZERO_OR" );
+      SetInput( "VZERO_OR" );
 
     if (nLeftDig>0 && nRightDig>0) {
-    SetInput( "VZERO_AND" );   
+        SetInput( "VZERO_AND" );   
     }
   }
   
   AliDebug(1,Form("VZERO PMs fired: %d (left) %d (right)", nLeftDig, nRightDig));
-
   return;
 }