-#include <Riostream.h>
#include "AliESDVZERO.h"
+#include "AliLog.h"
ClassImp(AliESDVZERO)
// Default constructor
for(Int_t j=0; j<64; j++){
fMultiplicity[j] = 0;
+ fAdc[j] = 0;
+ fTime[j] = 0;
}
}
fBGtriggerV0C(o.fBGtriggerV0C)
{
// Default constructor
- for(Int_t j=0; j<64; j++)
+ for(Int_t j=0; j<64; j++) {
fMultiplicity[j] = o.fMultiplicity[j];
+ fAdc[j] = o.fAdc[j];
+ fTime[j] = o.fTime[j];
+ }
}
AliESDVZERO::AliESDVZERO(UInt_t BBtriggerV0A, UInt_t BGtriggerV0A,
UInt_t BBtriggerV0C, UInt_t BGtriggerV0C,
- Short_t *Multiplicity)
+ Short_t *Multiplicity, Short_t *Adc, Short_t *Time)
:TObject(),
fBBtriggerV0A(BBtriggerV0A),
fBGtriggerV0A(BGtriggerV0A),
{
// Constructor
- for(Int_t j=0; j<64; j++)
+ for(Int_t j=0; j<64; j++) {
fMultiplicity[j] = Multiplicity[j];
+ fAdc[j] = Adc[j];
+ fTime[j] = Time[j];
+ }
}
fBGtriggerV0A=o.fBGtriggerV0A;
fBBtriggerV0C=o.fBBtriggerV0C;
fBGtriggerV0C=o.fBGtriggerV0C;
- for(Int_t j=0; j<64; j++)
+ for(Int_t j=0; j<64; j++) {
fMultiplicity[j] = o.fMultiplicity[j];
+ fAdc[j] = o.fAdc[j];
+ fTime[j] = o.fTime[j];
+ }
return *this;
}
Int_t* AliESDVZERO::GetMRingV0A()
{
- cout << "AliESDVZERO::GetMRingV0C() not supported any more" << endl;
- cout << "use Int_t AliESDVZERO::GetMRingV0C(Int_t ring)" << endl;
+// cout << "AliESDVZERO::GetMRingV0C() not supported any more" << endl;
+// cout << "use Int_t AliESDVZERO::GetMRingV0C(Int_t ring)" << endl;
+ AliInfo("AliESDVZERO::GetMRingV0C() not supported any more");
+ AliInfo("use Int_t AliESDVZERO::GetMRingV0C(Int_t ring)");
return 0x0;
}
Int_t* AliESDVZERO::GetMRingV0C()
{
- cout << "AliESDVZERO::GetMRingV0C() not supported any more" << endl;
- cout << "use Int_t AliESDVZERO::GetMRingV0C(Int_t ring)" << endl;
+// cout << "AliESDVZERO::GetMRingV0C() not supported any more" << endl;
+// cout << "use Int_t AliESDVZERO::GetMRingV0C(Int_t ring)" << endl;
+ AliInfo("AliESDVZERO::GetMRingV0C() not supported any more");
+ AliInfo("use Int_t AliESDVZERO::GetMRingV0C(Int_t ring)");
return 0x0;
}
return fMultiplicity[i];
}
+Int_t AliESDVZERO::GetMultiplicityV0A(Int_t i)
+
+{
+ if (OutOfRange(i, "AliESDVZERO::GetMultiplicityV0A:",32)) return -1;
+ return fMultiplicity[32+i];
+}
+
+Int_t AliESDVZERO::GetMultiplicityV0C(Int_t i)
+
+{
+ if (OutOfRange(i, "AliESDVZERO::GetMultiplicityV0C:",32)) return -1;
+ return fMultiplicity[i];
+}
+
+Int_t AliESDVZERO::GetAdc(Int_t i)
+
+{
+ if (OutOfRange(i, "AliESDVZERO::GetAdc:",64)) return -1;
+ return fAdc[i];
+}
+
+Int_t AliESDVZERO::GetAdcV0C(Int_t i)
+
+{
+ if (OutOfRange(i, "AliESDVZERO::GetAdcV0C:",32)) return -1;
+ return fAdc[i];
+}
+
+Int_t AliESDVZERO::GetAdcV0A(Int_t i)
+
+{
+ if (OutOfRange(i, "AliESDVZERO::GetAdcV0A:",32)) return -1;
+ return fAdc[32+i];
+}
+
+Int_t AliESDVZERO::GetTime(Int_t i)
+
+{
+ if (OutOfRange(i, "AliESDVZERO::GetTime:",64)) return -1;
+ return fTime[i];
+}
+
+Int_t AliESDVZERO::GetTimeV0C(Int_t i)
+
+{
+ if (OutOfRange(i, "AliESDVZERO::GetTimeV0C:",32)) return -1;
+ return fTime[i];
+}
+
+Int_t AliESDVZERO::GetTimeV0A(Int_t i)
+
+{
+ if (OutOfRange(i, "AliESDVZERO::GetTimeV0A:",32)) return -1;
+ return fTime[32+i];
+}
+
Bool_t AliESDVZERO::BBTriggerV0A(Int_t i)
{
if (OutOfRange(i, "AliESDVZERO:::BBTriggerV0A",32)) return kFALSE;
{
// checks if i is a valid index. s = name of calling method
if (i > upper || i < 0) {
- cout << s << " Index " << i << " out of range" << endl;
- return kTRUE;
+// cout << s << " Index " << i << " out of range" << endl;
+ AliInfo(Form("Index %d out of range",i));
+ return kTRUE;
}
return kFALSE;
}
AliESDVZERO(const AliESDVZERO&);
AliESDVZERO(UInt_t BBtriggerV0A, UInt_t BGtriggerV0A,
UInt_t BBtriggerV0C, UInt_t BGtriggerV0C,
- Short_t *Multiplicity);
+ Short_t *Multiplicity,Short_t *Adc, Short_t *Time);
virtual ~AliESDVZERO() {};
virtual void SetBGtriggerV0C(UInt_t BGtrigger) {fBGtriggerV0C=BGtrigger;}
virtual void SetMultiplicity(Short_t Multiplicity[64])
{for(Int_t i=0;i<64;i++) fMultiplicity[i]=Multiplicity[i];}
+ virtual void SetADC(Short_t adc[64])
+ {for(Int_t i=0;i<64;i++) fAdc[i]=adc[i];}
+ virtual void SetTime(Short_t time[64])
+ {for(Int_t i=0;i<64;i++) fTime[i]=time[i];}
// Getters
Short_t GetNbPMV0A();
Short_t GetNbPMV0C();
- Int_t GetMTotV0A();
- Int_t GetMTotV0C();
- Int_t* GetMRingV0A();
- Int_t* GetMRingV0C();
- Int_t GetMRingV0A(Int_t ring);
- Int_t GetMRingV0C(Int_t ring);
-
- Int_t GetMultiplicity(Int_t i);
- Bool_t BBTriggerV0A(Int_t i);
- Bool_t BGTriggerV0A(Int_t i);
- Bool_t BBTriggerV0C(Int_t i);
- Bool_t BGTriggerV0C(Int_t i);
-
- Bool_t OutOfRange(Int_t i, const char *s, Int_t upper) const;
+ Int_t GetMTotV0A();
+ Int_t GetMTotV0C();
+ Int_t* GetMRingV0A();
+ Int_t* GetMRingV0C();
+ Int_t GetMRingV0A(Int_t ring);
+ Int_t GetMRingV0C(Int_t ring);
+
+ Int_t GetMultiplicity(Int_t i);
+ Int_t GetAdc(Int_t i);
+ Int_t GetTime(Int_t i);
+ Int_t GetMultiplicityV0A(Int_t i);
+ Int_t GetAdcV0A(Int_t i);
+ Int_t GetTimeV0A(Int_t i);
+ Int_t GetMultiplicityV0C(Int_t i);
+ Int_t GetAdcV0C(Int_t i);
+ Int_t GetTimeV0C(Int_t i);
+ Bool_t BBTriggerV0A(Int_t i);
+ Bool_t BGTriggerV0A(Int_t i);
+ Bool_t BBTriggerV0C(Int_t i);
+ Bool_t BGTriggerV0C(Int_t i);
+
+ Bool_t OutOfRange(Int_t i, const char *s, Int_t upper) const;
AliESDVZERO &operator=(const AliESDVZERO& source);
protected:
- UInt_t fBBtriggerV0A; // bit mask for Beam-Beam trigger in V0A
- UInt_t fBGtriggerV0A; // bit mask for Beam-Gas trigger in V0A
- UInt_t fBBtriggerV0C; // bit mask for Beam-Beam trigger in V0C
- UInt_t fBGtriggerV0C; // bit mask for Beam-Gas trigger in V0C
+ UInt_t fBBtriggerV0A; // bit mask for Beam-Beam trigger in V0A
+ UInt_t fBGtriggerV0A; // bit mask for Beam-Gas trigger in V0A
+ UInt_t fBBtriggerV0C; // bit mask for Beam-Beam trigger in V0C
+ UInt_t fBGtriggerV0C; // bit mask for Beam-Gas trigger in V0C
- UShort_t fMultiplicity[64]; // multiplicity per PMT
+ Short_t fMultiplicity[64]; // multiplicity per PMT
+ Short_t fAdc[64]; // adc per PMT
+ Short_t fTime[64]; // time per PMT
- ClassDef(AliESDVZERO,3)
+ ClassDef(AliESDVZERO,4)
};
#endif
//____________________________________________________________________________
void AliVZEROQADataMakerRec::InitESDs()
{
- //Create histograms to control ESD
+ //Create histograms to controll ESD
TH1I * h1 = new TH1I("hVZERONbPMA", "Number of PMs fired in V0A", 80, 0, 79);
h1->Sumw2() ;
Add2ESDsList(h4, 3) ;
TH2F * h5 = new TH2F("fVzeroMult", "Vzero multiplicity",
- 64, -0.5, 63.5,100, -0.5, 99.5);
+ 64, -0.5, 63.5,1000, -0.5, 99.5);
h5->GetXaxis()->SetTitle("Vzero PMT");
h5->GetYaxis()->SetTitle("Multiplicity");
h5->Sumw2() ;
TH1F * h9 = new TH1F("fBGC","BG Vzero C", 32, -0.5,31.5);
h9->Sumw2();
Add2ESDsList(h9, 8) ;
-
-}
+ TH2F *h10 = new TH2F("fVzeroAdc", "Vzero Adc",
+ 64, -0.5, 63.5,1024, -0.5, 1023.5);
+ h10->GetXaxis()->SetTitle("Vzero PMT");
+ h10->GetYaxis()->SetTitle("Adc counts");
+ h10->Sumw2() ;
+ Add2ESDsList(h10, 9);
+
+ TH2F *h11 = new TH2F("fVzeroTime", "Vzero Time",
+ 64, -0.5, 63.5,300, -0.5, 149.5);
+ h11->GetXaxis()->SetTitle("Vzero PMT");
+ h11->GetYaxis()->SetTitle("Time [100 ps]");
+ h11->Sumw2() ;
+ Add2ESDsList(h11,10);
+
+}
//____________________________________________________________________________
void AliVZEROQADataMakerRec::InitRaws()
}
}
-
//____________________________________________________________________________
void AliVZEROQADataMakerRec::MakeESDs(AliESDEvent * esd)
{
GetESDsData(1)->Fill(esdVZERO->GetNbPMV0C());
GetESDsData(2)->Fill(esdVZERO->GetMTotV0A());
GetESDsData(3)->Fill(esdVZERO->GetMTotV0C());
- for(Int_t i=0;i<64;i++)
+ for(Int_t i=0;i<64;i++) {
GetESDsData(4)->Fill((Float_t) i,(Float_t) esdVZERO->GetMultiplicity(i));
+ GetESDsData(9)->Fill((Float_t) i,(Float_t) esdVZERO->GetAdc(i));
+ GetESDsData(10)->Fill((Float_t) i,(Float_t) esdVZERO->GetTime(i));
+ }
for(Int_t i=0;i<32;i++) {
if (esdVZERO->BBTriggerV0A(i))
GetESDsData(5)->Fill((Float_t) i);
GetESDsData(8)->Fill((Float_t) i);
}
}
-
+
}
//____________________________________________________________________________
GetRawsData(1)->Fill(i,rawStream->GetADC(i)) ;
GetRawsData(i+2+64)->Fill(rawStream->GetADC(i)) ; }
}
- delete rawStream;
}
//____________________________________________________________________________
const Float_t mip0=110.0;
Short_t Multiplicity[64];
Float_t mult[64];
- Int_t adc[64];
+ Short_t adc[64];
+ Short_t time[64];
Float_t mip[64];
for (Int_t i=0; i<64; i++){
adc[i] = 0;
for (Int_t d=0; d<nDigits; d++) {
AliVZEROdigit* digit = (AliVZEROdigit*)digitsArray->At(d);
Int_t pmNumber = digit->PMNumber();
- adc[pmNumber] = digit->ADC();
+ adc[pmNumber] = (Short_t) digit->ADC();
+ time[pmNumber] = (Short_t) digit->Time();
// cut of ADC at MIP/2
if (adc[pmNumber] > (mip[pmNumber]/2))
mult[pmNumber] += float(adc[pmNumber])/mip[pmNumber];
for (Int_t j=0; j<64; j++) Multiplicity[j] = short(mult[j]+0.5);
fESDVZERO->SetMultiplicity(Multiplicity);
+ fESDVZERO->SetADC(adc);
+ fESDVZERO->SetTime(time);
// now get the trigger mask