1 /**************************************************************************
2 * Copyright(c) 2004, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
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 **************************************************************************/
18 //____________________________________________________________________
20 // FMD reconstructed multiplicity in a region of a ring. The region
21 // is identified by (strip_min,sector_min)x(strip_max,sector_max) or
22 // by (eta_max,phi_min),(eta_min,phi_max). It's also possible to
23 // get the peudorapidity of the center-of-mass of the region, as well
24 // as the mean azimuthal angle.
26 // [Note, that minStrip corresponds to maxEta, and maxStrip
27 // corresponds to minEta]
29 // These objects are usually created by the Poisson reconstruction
32 #include "AliFMDMultRegion.h" // ALIFMDPARTICLES_H
33 #include <TString.h> // ROOT_TString
34 #include <Riostream.h> // ROOT_Riostream
36 //____________________________________________________________________
37 ClassImp(AliFMDMultRegion)
39 ; // This is here to keep Emacs for indenting the next line
43 //____________________________________________________________________
44 AliFMDMultRegion::AliFMDMultRegion()
57 //____________________________________________________________________
58 AliFMDMultRegion::AliFMDMultRegion(UShort_t detector, Char_t ring,
59 UShort_t minSector, UShort_t maxSector,
60 UShort_t minStrip, UShort_t maxStrip,
61 Float_t minEta, Float_t maxEta,
62 Float_t minPhi, Float_t maxPhi,
63 Float_t particles, UShort_t method)
64 : AliFMDMult(particles, method),
67 fMinSector(minSector),
68 fMaxSector(maxSector),
77 //____________________________________________________________________
79 AliFMDMultRegion::Eta() const
81 // Return the center-of-mass eta of the region. This is calculated
82 // as the weighted mean of min and max eta, where the weights are
83 // the length of the arcs of the upper and lower edge of the region:
86 // f = -----------------
89 // w_max = ds*minStrip*2*pi*f
91 // w_min = ds*maxStrip*2*pi*f
93 // 1/w^2 = 1/w_max^2 + 1/w_min^2
96 // = ---------------------- + ----------------------
97 // (ds*minStrip*2*pi*f)^2 (ds*maxStrip*2*pi*f)^2
99 // (ds*maxStrip*2*pi*f)^2 + (ds*minStrip*2*pi*f)^2
100 // = -----------------------------------------------
101 // (ds*maxStrip*2*pi*f)^2 * (ds*minStrip*2*pi*f)^2
104 // 4 * pi^2 * ds^2 * f^2 (maxStrip^2 + minStrip^2)
105 // = -------------------------------------------------
106 // 16 * pi^4 * ds^4 * f^4 minStrip^2 * maxStrip^2
108 // (maxStrip^2 + minStrip^2)
109 // = -------------------------------------------------
110 // 4 * pi^2 * ds^2 * f^2 minStrip^2 * maxStrip^2
112 // <eta> = (maxEta/w_max^2 + minEta /w_min^2) / (1/w^2)
114 // w_min^2 * maxEta + w_max^2 * minEta
115 // = ------------------------------------ / (1/w^2)
118 // 4*pi^2*ds^2*(maxStrip*maxEta + minStrip*minEta)
119 // = ----------------------------------------------- / (1/w^2)
120 // 16*pi^4*ds^4*f^4*minStrip^2*maxStrip^2
122 // maxStrip * maxEta + minStrip * minEta
123 // = -------------------------------------
124 // 4*pi^2*ds^2*f^2*minStrip^2*maxStrip^2
126 // 4*pi^2*ds^2*f^2*minStrip^2*maxStrip^2
127 // * -------------------------------------
128 // maxStrip^2+minStrip^2
130 // maxStrip * maxEta + minStrip * minEta
131 // = -------------------------------------
132 // maxStrip^2 + minStrip^2
136 Float_t eta = (fMaxStrip * fMaxEta + fMinStrip * fMinEta)
137 / (fMaxStrip * fMaxStrip + fMinStrip * fMinStrip);
142 //____________________________________________________________________
144 AliFMDMultRegion::Print(Option_t* option) const
149 // D: Detector (default)
152 // E: Eta range (default)
153 // P: Phi range (default)
156 cout << "FMD Multiplicity in a region: " << fParticles << endl;
157 if (opt.Contains("D", TString::kIgnoreCase))
158 cout << " Detector: FMD" << fDetector << fRing
159 << "[" << fMinSector << "-" << fMaxSector
160 << "," << fMinStrip << "-" << fMaxStrip << "]" << endl;
161 if (opt.Contains("E", TString::kIgnoreCase))
162 cout << " Eta range: [" << fMinEta << "," << fMaxEta << endl;
163 if (opt.Contains("P", TString::kIgnoreCase))
164 cout << " Phi range: [" << fMinPhi << "," << fMaxPhi << endl;
165 AliFMDMult::Print(option);
169 //____________________________________________________________________