]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ZDC/AliZDCTrigger.cxx
Coding conventions (C.Oppedisano)
[u/mrichter/AliRoot.git] / ZDC / AliZDCTrigger.cxx
CommitLineData
d8da9892 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
8a2624cc 16// ****************************************************************
17//
18// Trigger class for ZDC
19//
20// ****************************************************************
21
d8da9892 22#include "AliLog.h"
23#include "AliRun.h"
24#include "AliLoader.h"
25#include "AliRunLoader.h"
26#include "AliTriggerInput.h"
27
28#include "AliZDC.h"
29#include "AliZDCDigit.h"
30#include "AliZDCTrigger.h"
31
32//________________________________________________________________
33ClassImp(AliZDCTrigger)
34
35//________________________________________________________________
36AliZDCTrigger::AliZDCTrigger() : AliTriggerDetector()
8a2624cc 37{
38 // Constructor
d8da9892 39 SetName("ZDC");
40 CreateInputs();
41 //
3b0c190c 42 SetZDCLeftMinCut(0);
43 SetZDCRightMinCut(0);
d8da9892 44 SetZEMMinCut(0);
45 SetZDCLeftEMDCuts(0,0);
46 SetZDCRightEMDCuts(0,0);
3b0c190c 47 SetZDCLeftMBCut(0);
48 SetZDCRightMBCut(0);
49 SetZDCLeftCentrCut(0);
50 SetZDCRightCentrCut(0);
51 SetZDCLeftSemiCentrCut(0);
52 SetZDCRightSemiCentrCut(0);
d8da9892 53 SetZEMCentrCut(0);
54
55}
56
57//________________________________________________________________
58void AliZDCTrigger::CreateInputs()
59{
8a2624cc 60 // Trigger inputs
d8da9892 61
62 // Do not create inputs again!!
63 if( fInputs.GetEntriesFast() > 0 ) return;
64
65 fInputs.AddLast(new AliTriggerInput("ZDC_1_L1", "ZDC Minimum Bias", 0x01));
66 fInputs.AddLast(new AliTriggerInput("ZDC_2_L1", "ZDC Central", 0x02));
67 fInputs.AddLast(new AliTriggerInput("ZDC_3_L1", "ZDC Semi-central", 0x04));
68 fInputs.AddLast(new AliTriggerInput("ZDC_EMD_L1", "ZDC EMD events", 0x08));
69}
70
71//________________________________________________________________
72void AliZDCTrigger::Trigger()
73{
74
8a2624cc 75 // Trigger selection
76 //
d8da9892 77 AliRunLoader *runLoader = gAlice->GetRunLoader();
78
8a2624cc 79 AliLoader *aZDCLoader = runLoader->GetLoader("ZDCLoader");
80 aZDCLoader->LoadDigits("READ");
d8da9892 81 AliZDCDigit digit;
82 AliZDCDigit* pdigit = &digit;
8a2624cc 83 TTree* tD = aZDCLoader->TreeD();
84 if (!tD) cerr<<"AliZDCTrigger: digits tree not found\n";
85 tD->SetBranchAddress("ZDC", &pdigit);
d8da9892 86 //
8a2624cc 87 Float_t signalZNLeft[2], signalZPLeft[2], signalZDCLeftSum[2];
88 Float_t signalZNRight[2], signalZPRight[2], signalZDCRightSum[2];
89 Float_t signalZEMSum[2];
90 for(Int_t iDigit=0; iDigit<tD->GetEntries(); iDigit++){
91 tD->GetEntry(iDigit);
d8da9892 92 //
3b0c190c 93 // *** ZDC LEFT
d8da9892 94 if(digit.GetSector(0)==1)
3b0c190c 95 for(Int_t i=0; i<2; i++){ //0=high range; 1=low range
8a2624cc 96 signalZNLeft[i] += digit.GetADCValue(i);
97 signalZDCLeftSum[i] += digit.GetADCValue(i);
d8da9892 98 }
99 else if(digit.GetSector(0)==2)
100 for(Int_t i=0; i<2; i++){
8a2624cc 101 signalZPLeft[i] += digit.GetADCValue(i);
102 signalZDCLeftSum[i] += digit.GetADCValue(i);
d8da9892 103 }
104 else if(digit.GetSector(0)==3)
8a2624cc 105 for(Int_t i=0; i<2; i++) signalZEMSum[i] += digit.GetADCValue(i);
3b0c190c 106 // *** ZDC RIGHT
107 else if(digit.GetSector(0)==4)
108 for(Int_t i=0; i<2; i++){ //0=high range; 1=low range
8a2624cc 109 signalZNRight[i] += digit.GetADCValue(i);
110 signalZDCRightSum[i] += digit.GetADCValue(i);
3b0c190c 111 }
112 else if(digit.GetSector(0)==5)
113 for(Int_t i=0; i<2; i++){
8a2624cc 114 signalZPRight[i] += digit.GetADCValue(i);
115 signalZDCRightSum[i] += digit.GetADCValue(i);
3b0c190c 116 }
d8da9892 117 }
118 // *******************************************************************
8a2624cc 119 if(signalZNLeft[0]>fZDCLeftEMDCuts[0] && signalZNLeft[0]<fZDCLeftEMDCuts[1] &&
120 signalZNRight[0]>fZDCRightEMDCuts[0] && signalZNRight[0]<fZDCRightEMDCuts[1] &&
121 signalZEMSum[1]<fZEMMinCut){ // *** 1n EMD trigger
3b0c190c 122 SetInput("ZDC_EMD_L1");
d8da9892 123 }
124 // *******************************************************************
8a2624cc 125 if(signalZDCLeftSum[1]>fZDCLeftMBCut && signalZDCRightSum[1]>fZDCRightMBCut)
3b0c190c 126 // *** ZDC minimum bias trigger
127 SetInput("ZDC_1_L1");
d8da9892 128 // *******************************************************************
8a2624cc 129 if(signalZDCLeftSum[1]>fZDCLeftMinCut && signalZDCLeftSum[1]<fZDCLeftCentrCut &&
130 signalZDCRightSum[1]>fZDCRightMinCut && signalZDCRightSum[1]<fZDCRightCentrCut &&
131 signalZEMSum[1]>fZEMCentrCut)
3b0c190c 132 // *** ZDC central (0-10%)
133 SetInput("ZDC_2_L1");
d8da9892 134 // *******************************************************************
8a2624cc 135 if(signalZDCLeftSum[1]>fZDCLeftCentrCut && signalZDCLeftSum[1]<fZDCLeftSemiCentrCut &&
136 signalZDCRightSum[1]>fZDCRightCentrCut && signalZDCRightSum[1]<fZDCRightSemiCentrCut
137 && signalZEMSum[1]>fZEMCentrCut)
3b0c190c 138 // *** ZDC semi-central (10-40%)
139 SetInput("ZDC_3_L1");
d8da9892 140
141}
142
d8da9892 143//________________________________________________________________
3b0c190c 144void AliZDCTrigger::SetZDCLeftMinCut(Float_t ZDCLeftMinCut)
d8da9892 145{
8a2624cc 146 // Set default cut values for ZDC trigger
147 //
3b0c190c 148 if(ZDCLeftMinCut) fZDCLeftMinCut = ZDCLeftMinCut;
149 else fZDCLeftMinCut = 800.;
150}
151//________________________________________________________________
152void AliZDCTrigger::SetZDCRightMinCut(Float_t ZDCRightMinCut)
153{
8a2624cc 154 // Set default cut values for ZDC trigger
155 //
3b0c190c 156 if(ZDCRightMinCut) fZDCRightMinCut = ZDCRightMinCut;
157 else fZDCRightMinCut = 800.;
d8da9892 158}
159
160//________________________________________________________________
161void AliZDCTrigger::SetZEMMinCut(Float_t ZEMMinCut)
162{
8a2624cc 163 // Set default cut values for ZDC trigger
164 //
d8da9892 165 if(ZEMMinCut) fZEMMinCut = ZEMMinCut;
166 else fZEMMinCut = 80.;
167}
168//________________________________________________________________
169void AliZDCTrigger::SetZDCLeftEMDCuts(Float_t* ZDCLeftEMDCuts)
170{
8a2624cc 171 // Set default cut values for ZDC trigger
172 //
d8da9892 173 if(ZDCLeftEMDCuts) for(int j=0; j<2; j++) fZDCLeftEMDCuts[j] = ZDCLeftEMDCuts[j];
174 else{
175 fZDCLeftEMDCuts[0] = 600.;
176 fZDCLeftEMDCuts[1] = 1000.;
177 }
178}
179//________________________________________________________________
180void AliZDCTrigger::SetZDCLeftEMDCuts(Float_t ZDCLeftEMDCutInf,
181 Float_t ZDCLeftEMDCutSup)
182{
8a2624cc 183 // Set default cut values for ZDC trigger
184 //
d8da9892 185 if(ZDCLeftEMDCutInf && ZDCLeftEMDCutSup){
186 fZDCLeftEMDCuts[0]=ZDCLeftEMDCutInf;
187 fZDCLeftEMDCuts[1]=ZDCLeftEMDCutSup;
188 }
189 else{
190 fZDCLeftEMDCuts[0] = 600.;
191 fZDCLeftEMDCuts[1] = 1000.;
192 }
193}
194//________________________________________________________________
195void AliZDCTrigger::SetZDCRightEMDCuts(Float_t* ZDCRightEMDCuts)
196{
8a2624cc 197 // Set default cut values for ZDC trigger
198 //
d8da9892 199 if(ZDCRightEMDCuts) for(int j=0; j<2; j++) fZDCRightEMDCuts[j] = ZDCRightEMDCuts[j];
200 else{
201 fZDCRightEMDCuts[0] = 600.;
202 fZDCRightEMDCuts[1] = 1000.;
203 }
204}
205//________________________________________________________________
206void AliZDCTrigger::SetZDCRightEMDCuts(Float_t ZDCRightEMDCutInf,
207 Float_t ZDCRightEMDCutSup)
208{
8a2624cc 209 // Set default cut values for ZDC trigger
210 //
d8da9892 211 if(ZDCRightEMDCutInf && ZDCRightEMDCutSup){
212 fZDCRightEMDCuts[0]=ZDCRightEMDCutInf;
213 fZDCRightEMDCuts[1]=ZDCRightEMDCutSup;
214 }
215 else{
216 fZDCRightEMDCuts[0] = 600.;
217 fZDCRightEMDCuts[1] = 1000.;
218 }
219}
220//________________________________________________________________
3b0c190c 221void AliZDCTrigger::SetZDCLeftMBCut(Float_t ZDCLeftMBCut)
222{
8a2624cc 223 // Set default cut values for ZDC trigger
224 //
3b0c190c 225 if(ZDCLeftMBCut) fZDCLeftMBCut = ZDCLeftMBCut;
226 else fZDCLeftMBCut = 800.;
227}
228//________________________________________________________________
229void AliZDCTrigger::SetZDCRightMBCut(Float_t ZDCRightMBCut)
230{
8a2624cc 231 // Set default cut values for ZDC trigger
232 //
3b0c190c 233 if(ZDCRightMBCut) fZDCRightMBCut = ZDCRightMBCut;
234 else fZDCRightMBCut = 800.;
235}
236//________________________________________________________________
237void AliZDCTrigger::SetZDCLeftCentrCut(Float_t ZDCLeftCentrCut)
238{
8a2624cc 239 // Set default cut values for ZDC trigger
240 //
3b0c190c 241 if(ZDCLeftCentrCut) fZDCLeftCentrCut = ZDCLeftCentrCut;
242 else fZDCLeftCentrCut = 10000.;
243}
244//________________________________________________________________
245void AliZDCTrigger::SetZDCRightCentrCut(Float_t ZDCRightCentrCut)
d8da9892 246{
8a2624cc 247 // Set default cut values for ZDC trigger
248 //
3b0c190c 249 if(ZDCRightCentrCut) fZDCRightCentrCut = ZDCRightCentrCut;
250 else fZDCRightCentrCut = 10000.;
d8da9892 251}
252//________________________________________________________________
3b0c190c 253void AliZDCTrigger::SetZDCLeftSemiCentrCut(Float_t ZDCLeftSemiCentrCut)
d8da9892 254{
8a2624cc 255 // Set default cut values for ZDC trigger
256 //
3b0c190c 257 if(ZDCLeftSemiCentrCut) fZDCLeftSemiCentrCut = ZDCLeftSemiCentrCut;
258 else fZDCLeftSemiCentrCut = 18500.;
d8da9892 259}
260//________________________________________________________________
3b0c190c 261void AliZDCTrigger::SetZDCRightSemiCentrCut(Float_t ZDCRightSemiCentrCut)
d8da9892 262{
8a2624cc 263 // Set default cut values for ZDC trigger
264 //
3b0c190c 265 if(ZDCRightSemiCentrCut) fZDCRightSemiCentrCut = ZDCRightSemiCentrCut;
266 else fZDCRightSemiCentrCut = 18500.;
d8da9892 267}
268//________________________________________________________________
269void AliZDCTrigger::SetZEMCentrCut(Float_t ZEMCentrCut)
270{
8a2624cc 271 // Set default cut values for ZDC trigger
272 //
d8da9892 273 if(ZEMCentrCut) fZEMCentrCut = ZEMCentrCut;
274 else fZEMCentrCut = 210.;
275}