28 #include "Riostream.h" 46 : fObject(o), fAlgo(a)
48 Bool_t
operator()(UShort_t d, Char_t r, UShort_t s, UShort_t t,
51 Float_t e = fObject.Eta(d, r, 0, t);
52 return fAlgo.operator()(d, r, s, t, m, e);
54 Bool_t
operator()(UShort_t, Char_t, UShort_t, UShort_t, Int_t)
58 Bool_t
operator()(UShort_t, Char_t, UShort_t, UShort_t, UShort_t)
62 Bool_t
operator()(UShort_t, Char_t, UShort_t, UShort_t, Bool_t)
76 Printer() : fOldD(0), fOldR(
'-'), fOldS(1024) {}
77 Bool_t operator()(UShort_t d, Char_t r, UShort_t s, UShort_t t,
81 if (fOldD != 0)
printf(
"\n");
89 printf(
"\n %s ring", (r ==
'I' ?
"Inner" :
"Outer"));
93 printf(
"\n Sector %d", fOldS);
95 if (t % 4 == 0)
printf(
"\n %3d-%3d ", t, t+3);
112 : fMultiplicity(0, 0, 0, 0),
118 fAngleCorrected(kFALSE)
139 if(
this == &other)
return *
this;
141 TObject::operator=(other);
160 if(
this==&obj)
return;
186 UShort_t strip)
const 199 UShort_t strip)
const 207 return fEta(detector, ring, 0, strip);
217 Float_t baseAng = (detector == 1 ? 90 :
218 detector == 2 ? 0 : 180);
219 Float_t dAng = ((detector == 3 ? -1 : 1) * 360 /
220 (ring ==
'I' || ring ==
'i' ?
223 Float_t ret = baseAng + dAng * (sector + .5);
224 if (ret > 360) ret -= 360;
225 if (ret < 0) ret += 360;
239 Float_t eta =
Eta(detector, ring, 0, strip);
240 Float_t theta = TMath::ATan(2 * TMath::Exp(-eta));
241 if (theta < 0) theta += TMath::Pi();
242 theta *= 180. / TMath::Pi();
255 Float_t lR = (ring ==
'I' || ring ==
'i' ? 4.522 : 15.4);
256 Float_t hR = (ring ==
'I' || ring ==
'i' ? 17.2 : 28.0);
257 UShort_t nS = (ring ==
'I' || ring ==
'i' ?
260 Float_t dR = (hR - lR) / nS;
261 Float_t ret = lR + dR * (strip + .5);
269 UShort_t strip, Float_t mult)
282 UShort_t strip, Float_t eta)
290 fEta(detector, ring, 0, strip) = eta;
297 ForMultiplicity i(*
this, a);
305 std::cout <<
"AliESDFMD:" << std::endl;
312 Char_t ring = (ir == 0 ?
'I' :
'O');
313 std::cout <<
"FMD" << det << ring <<
":" << std::endl;
315 std::cout <<
" Sector # " << sec <<
":" << std::flush;
317 if (str % 6 == 0) std::cout <<
"\n " << std::flush;
319 Float_t e =
fEta(det, ring, 0, str);
322 else std::cout << Form(
"%6.3f", m);
325 else std::cout << Form(
"%-6.3f", e);
326 std::cout <<
" " << std::flush;
328 std::cout << std::endl;
UShort_t MaxStrips() const
printf("Chi2/npoints = %f\n", TMath::Sqrt(chi2/npoints))
virtual void Copy(TObject &obj) const
Float_t Phi(UShort_t detector, Char_t ring, UShort_t sector, UShort_t strip) const
Float_t R(UShort_t detector, Char_t ring, UShort_t sector, UShort_t strip) const
Bool_t ForEach(ForOne &algo) const
void CheckNeedUShort(TFile *file)
AliESDFMD & operator=(const AliESDFMD &other)
void SetMultiplicity(UShort_t detector, Char_t ring, UShort_t sector, UShort_t strip, Float_t mult)
void SetEta(UShort_t detector, Char_t ring, UShort_t sector, UShort_t strip, Float_t eta)
Float_t Multiplicity(UShort_t detector, Char_t ring, UShort_t sector, UShort_t strip) const
Float_t Eta(UShort_t detector, Char_t ring, UShort_t sector, UShort_t strip) const
UShort_t MaxRings() const
UShort_t MaxDetectors() const
virtual Bool_t ForEach(ForOne &algo) const
virtual void Reset(const Float_t &v=Float_t())
Event Summary Data for the Forward Multiplicity Detector.This stores the psuedo-multiplicity and -rap...
virtual Bool_t operator()(UShort_t d, Char_t r, UShort_t s, UShort_t t, Float_t v)
void Clear(Option_t *option="")
Float_t Theta(UShort_t detector, Char_t ring, UShort_t sector, UShort_t strip) const
void CheckNeedUShort(TFile *file)
UShort_t MaxSectors() const
AliFMDFloatMap fMultiplicity
void Print(Option_t *option="") const