+/**************************************************************************
+ * 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"
//______________________________________________________________________
AliVZEROTrigger::AliVZEROTrigger()
- : AliTriggerDetector()
+ :AliTriggerDetector(),
+ fAdcThresHold(0.0),
+ fTimeWindowWidth(50.0)
+
{
SetName("VZERO");
CreateInputs();
SetAdcThreshold();
+ SetTimeWindowWidth();
}
//______________________________________________________________________
// 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 ) );
}
//______________________________________________________________________
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++) {
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
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;
}