]> git.uio.no Git - u/mrichter/AliRoot.git/blame - T0/AliT0Trigger.cxx
physics DA collects T0 information
[u/mrichter/AliRoot.git] / T0 / AliT0Trigger.cxx
CommitLineData
dc7ca31d 1/**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
15
16/* $Id$ */
e358e301 17/***************************************************************
18 * T0 trigger class for T0 trigger signals:
19 * - T0A
20 * - T0C
21 * - T0vertex
22 * - T0 semi central event for ions
23 * - T0 central for ions
24 ****************************************************************/
25
dc7ca31d 26
dc7ca31d 27#include "AliLog.h"
28#include "AliRun.h"
29#include "AliRunLoader.h"
30#include "AliTriggerInput.h"
539b9cb9 31#include "AliT0Parameters.h"
32#include "AliT0TriggerParameters.h"
33#include <AliCDBManager.h>
34#include <AliCDBEntry.h>
35#include <AliCDBStorage.h>
dc7ca31d 36
37#include "AliT0.h"
dc7ca31d 38#include "AliT0digit.h"
39#include "AliT0Trigger.h"
40
539b9cb9 41#include "Riostream.h"
42
dc7ca31d 43//----------------------------------------------------------------------
44ClassImp(AliT0Trigger)
45
46//----------------------------------------------------------------------
47AliT0Trigger::AliT0Trigger()
ea276330 48 : AliTriggerDetector(),
49 fT0(0x0),
3c6a09a2 50 fDigits(0x0),
51 fTrigPar(0x0)
dc7ca31d 52{
53 SetName("T0");
54 CreateInputs();
539b9cb9 55 AliCDBManager *stor =AliCDBManager::Instance();
56 //time equalizing
57 AliCDBEntry* fCalibentry = stor->Get("T0/Calib/TriggerParam");
58 if (fCalibentry)
59 fTrigPar = (AliT0TriggerParameters*)fCalibentry->GetObject();
60 else {
61 AliWarning(" No trigger parameters in CDB , use default");
62 }
63
dc7ca31d 64}
65
66//----------------------------------------------------------------------
67void AliT0Trigger::CreateInputs()
68{
69 // inputs
539b9cb9 70
dc7ca31d 71 // Do not create inputs again!!
72 if( fInputs.GetEntriesFast() > 0 ) return;
73
892473e3 74 fInputs.AddLast( new AliTriggerInput( "0T0A", "T0", 0 ) );
75 fInputs.AddLast( new AliTriggerInput( "0T0C", "T0", 0 ) );
76 fInputs.AddLast( new AliTriggerInput( "0TVX", "T0", 0 ) );
572b6f20 77 fInputs.AddLast( new AliTriggerInput( "T0_Centr_L0", "T0", 0 ) );
78 fInputs.AddLast( new AliTriggerInput( "T0_SemiCentral_L0", "T0", 0 ) );
539b9cb9 79
dc7ca31d 80}
81
82//----------------------------------------------------------------------
83void AliT0Trigger::Trigger()
84{
e358e301 85 // trigger input
86
33c3c91a 87 AliRunLoader* runLoader = AliRunLoader::Instance();
dc7ca31d 88 AliLoader * fT0Loader = runLoader->GetLoader("T0Loader");
89 // AliT0digit *fDigits;
90 fT0Loader->LoadDigits("READ");
91 // Creating T0 data container
92
93 TTree* treeD = fT0Loader->TreeD();
94 if (!treeD) {
95 AliError("no digits tree");
96 return;
97 }
c2337900 98 fDigits = new AliT0digit();
dc7ca31d 99
100 TBranch *brDigits = treeD->GetBranch("T0");
101 if (brDigits) {
102 brDigits->SetAddress(&fDigits);
103 }else{
104 AliError("Branch T0 DIGIT not found");
105 return;
106 }
107 brDigits->GetEntry(0);
c41ceaac 108 Int_t besttimeA = fDigits->BestTimeA();
109 Int_t besttimeC = fDigits->BestTimeC();
dc7ca31d 110 Int_t timeDiff = fDigits->TimeDiff();
111 Int_t sumMult= fDigits->SumMult();
112
539b9cb9 113 //trigger parameteres
114
115 Float_t timeWindowLow = fTrigPar->GetTimeWindowLow();
116 Float_t timeWindowHigh = fTrigPar->GetTimeWindowHigh();
117 Int_t ampCentr = fTrigPar->GetAmpCentr();
118 Int_t ampSemiCentr = fTrigPar->GetAmpSemiCentr();
119
892473e3 120 if (besttimeA > 0 && besttimeA <99999) SetInput("0T0A");
121 if (besttimeC > 0 && besttimeC<99999) SetInput("0T0C");
ea276330 122 //6093 corrsponds to vertex -20cm, 6202 vertex +20 with delay 150nc eqalized on the TVDC unit
892473e3 123 if (timeDiff >timeWindowLow && timeDiff < timeWindowHigh) SetInput("0TVX");
539b9cb9 124 if (sumMult > ampCentr) SetInput("T0_Centr_L0");
125 if (sumMult> ampSemiCentr && sumMult <= ampCentr) SetInput("T0_SemiCentral_L0");;
dc7ca31d 126
127
128}