\r
#include <TTree.h>\r
#include <TClonesArray.h>\r
+#include <TParameter.h>\r
\r
#include "AliLog.h"\r
#include "AliCDBManager.h"\r
#include "AliVZEROLogicalSignal.h"\r
#include "AliVZEROTriggerSimulator.h"\r
#include "AliVZEROdigit.h"\r
+#include "AliVZEROCalibData.h"\r
+#include "AliVZEROConst.h"\r
\r
ClassImp(AliVZEROTriggerSimulator)\r
\r
\r
Int_t integrator = digit->Integrator();\r
Int_t pmNumber = digit->PMNumber();\r
- Int_t board = pmNumber / 8;\r
- Int_t channel = pmNumber % 8;\r
+ Int_t board = AliVZEROCalibData::GetBoardNumber(pmNumber);\r
+ Int_t channel = AliVZEROCalibData::GetFEEChannelNumber(pmNumber);\r
\r
if(fTriggerData->GetEnableCharge(board,channel)) {\r
- fCharges[pmNumber] = digit->ADC();\r
+ fCharges[pmNumber] = digit->ChargeADC(AliVZEROdigit::kNClocks/2);\r
if(fTriggerData->GetPedestalSubtraction(board)) {\r
if(fCharges[pmNumber]>=(Float_t) fTriggerData->GetPedestalCut(integrator,board,channel)){ \r
fCharges[pmNumber] -= (Float_t) fTriggerData->GetPedestal(integrator,board,channel);\r
fCharges[pmNumber] = 0.;\r
}\r
\r
- Float_t time = digit->Time(); \r
- time += fTriggerData->GetDelayHit(board,channel);\r
- \r
- //AliInfo(Form(" PM nb : %d ; ADC= %d ; TDC= %f Enable Time %d charge %d",pmNumber,digit->ADC(),time,fTriggerData->GetEnableTiming(board,channel),fTriggerData->GetEnableCharge(board,channel)));\r
+ Float_t time = digit->Time();\r
+ time -= kClockOffset;\r
+\r
+ AliDebug(10,Form(" Digit: %f %d %d %d %d %d %d %d %d",digit->Time(),\r
+ digit->ChargeADC(8),digit->ChargeADC(9),digit->ChargeADC(10),\r
+ digit->ChargeADC(11),digit->ChargeADC(12),digit->ChargeADC(13),\r
+ digit->ChargeADC(14),digit->ChargeADC(15)));\r
+ AliDebug(10,Form(" PM nb : %d ; ADC= %f ; TDC= %f(%f) Enable Time %d charge %d inCoin %d charge %f",\r
+ pmNumber,digit->ADC(),time,digit->Time(),\r
+ fTriggerData->GetEnableTiming(board,channel),fTriggerData->GetEnableCharge(board,channel),\r
+ fBBGate[board]->IsInCoincidence(time),fCharges[pmNumber]));\r
fBBFlags[pmNumber] = fTriggerData->GetEnableTiming(board,channel) && fBBGate[board]->IsInCoincidence(time);\r
fBGFlags[pmNumber] = fTriggerData->GetEnableTiming(board,channel) && fBGGate[board]->IsInCoincidence(time);\r
\r
Int_t nBGflagsV0C = 0;\r
Float_t chargeV0A = 0.;\r
Float_t chargeV0C = 0.;\r
+ Int_t aBBflagsV0A = 0;\r
+ Int_t aBBflagsV0C = 0;\r
+ Int_t aBGflagsV0A = 0;\r
+ Int_t aBGflagsV0C = 0;\r
\r
for(int i=0;i<64;i++) {\r
if(i<32) {\r
nBBflagsV0C += fBBFlags[i]; \r
nBGflagsV0C += fBGFlags[i];\r
chargeV0C += fCharges[i];\r
+ if (fBBFlags[i]) aBBflagsV0C |= (1 << i);\r
+ if (fBGFlags[i]) aBGflagsV0C |= (1 << i);\r
} else {\r
nBBflagsV0A += fBBFlags[i]; \r
nBGflagsV0A += fBGFlags[i];\r
chargeV0A += fCharges[i];\r
+ if (fBBFlags[i]) aBBflagsV0A |= (1 << (i-32));\r
+ if (fBGFlags[i]) aBGflagsV0A |= (1 << (i-32));\r
}\r
//AliInfo(Form("Ch %d BB=%d BG=%d",i,fBBFlags[i],fBGFlags[i] )); \r
}\r
+\r
+ // Store the BB and BG flags in the digits tree (user info)\r
+ fDigitsTree->GetUserInfo()->Add(new TParameter<int>("BBflagsV0A",aBBflagsV0A));\r
+ fDigitsTree->GetUserInfo()->Add(new TParameter<int>("BBflagsV0C",aBBflagsV0C));\r
+ fDigitsTree->GetUserInfo()->Add(new TParameter<int>("BGflagsV0A",aBGflagsV0A));\r
+ fDigitsTree->GetUserInfo()->Add(new TParameter<int>("BGflagsV0C",aBGflagsV0C));\r
\r
// BBA\r
if(nBBflagsV0A>=fTriggerData->GetBBAThreshold()) SetBBA();\r
--- /dev/null
+void MakeVZEROTriggerEntry(Int_t run,const char *inputCDB = "raw://"){
+
+ AliCDBManager *man = AliCDBManager::Instance();
+
+ man->SetDefaultStorage(inputCDB);
+ man->SetRun(run);
+
+ AliCDBEntry *entry = man->Get("VZERO/Trigger/Data");
+ AliVZEROTriggerData *trigdata = (AliVZEROTriggerData*)entry->GetObject();
+ entry->SetObject(NULL);
+ entry->SetOwner(kTRUE);
+
+ AliCDBMetaData *md= new AliCDBMetaData(); // metaData describing the object
+ md->SetResponsible("Brigitte Cheynis");
+ md->SetBeamPeriod(0);
+ md->SetAliRootVersion(gSystem->Getenv("ARVERSION"));
+ md->SetComment("VZERO Trigger Conditions Data from RAW OCDB");
+ AliCDBId id("VZERO/Trigger/Data",0,AliCDBRunRange::Infinity());
+
+ man->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
+ AliCDBStorage *storLoc = man->GetDefaultStorage();
+ storLoc->Put(trigdata, id, md);
+
+}