#ifndef ALIFMDHISTCOLLECTOR_H
#define ALIFMDHISTCOLLECTOR_H
#include <TNamed.h>
#include <TList.h>
#include <TArrayI.h>
#include "AliForwardUtil.h"
class AliESDFMD;
class TH2;
class TH2D;
class TH1D;
class TObjArray;
class AliFMDHistCollector : public TNamed
{
public:
enum MergeMethod {
kStraightMean,
kStraightMeanNoZero,
kWeightedMean,
kLeastError,
kSum,
kPreferInner,
kPreferOuter
};
enum FiducialMethod {
kByCut,
kDistance
};
enum FMDRingBits {
kFMD1I=0x01,
kFMD1 =kFMD1I,
kFMD2I=0x02,
kFMD2O=0x04,
kFMD2 =kFMD2I|kFMD2O,
kFMD3I=0x08,
kFMD3O=0x10,
kFMD3 =kFMD3I|kFMD3O
};
AliFMDHistCollector();
AliFMDHistCollector(const char* title);
AliFMDHistCollector(const AliFMDHistCollector& o);
virtual ~AliFMDHistCollector();
AliFMDHistCollector& operator=(const AliFMDHistCollector&);
virtual void SetupForData(const TAxis& vtxAxis,
const TAxis& etaAxis);
virtual Bool_t Collect(const AliForwardUtil::Histos& hists,
AliForwardUtil::Histos& sums,
UShort_t vtxBin,
TH2D& out,
Double_t cent=-1.0,
Bool_t eta2phi=false,
Bool_t add=true);
virtual void CreateOutputObjects(TList* dir);
void SetMergeMethod(MergeMethod m) { fMergeMethod = m; }
MergeMethod GetMergeMethod() const { return fMergeMethod; }
void SetFiducialMethod(FiducialMethod m) { fFiducialMethod = m; }
void SetNCutBins(UInt_t n=2) { fNCutBins = n; }
void SetCorrectionCut(Float_t cut=0.5) { fCorrectionCut = cut; }
void SetFMDRingsToSkip(UShort_t mask) { fSkipFMDRings = mask; }
void SetMakeBGHitMaps(Bool_t use) { fBgAndHitMaps = use; }
void SetMakeCentralitySums(Bool_t use) { fDoByCent = use; }
void SetDebug(Int_t dbg=1) { fDebug = dbg; }
void Print(Option_t* option="") const;
protected:
static void GetDetRing(Int_t idx, UShort_t& d, Char_t& r);
static Int_t GetIdx(UShort_t d, Char_t r);
static Bool_t CheckSkip(UShort_t d, Char_t r, UShort_t skips);
static Bool_t CheckCorrection(FiducialMethod m, Double_t cut,
const TH2D* bg, Int_t ie, Int_t ip);
static void MergeBins(MergeMethod m,
Double_t c, Double_t e,
Double_t oc, Double_t oe,
Double_t& rc, Double_t& re);
struct VtxBin : public TObject
{
VtxBin(Int_t index=0, Double_t minIpZ=999, Double_t maxIpZ=-999,
Int_t nCut=0);
VtxBin(const VtxBin& o);
VtxBin& operator=(const VtxBin& o);
const Char_t* GetName() const;
void SetupForData(TH2* coverage,
UShort_t skip,
FiducialMethod fiducial,
Double_t cut,
TList* l,
const TAxis& etaAxis,
Bool_t doHitMap,
Bool_t storeSecMap);
Bool_t Collect(const AliForwardUtil::Histos& hists,
AliForwardUtil::Histos& sums,
TH2D& out,
TH2D* sumRings,
TH1D* skipped,
Double_t cent,
MergeMethod m,
UShort_t skips,
TList* byCent,
Bool_t eta2phi,
Bool_t add);
Int_t GetOverlap(UShort_t d, Char_t r, Int_t bin) const;
void GetFirstAndLast(UShort_t d, UShort_t r,
Int_t& first, Int_t& last) const {
GetFirstAndLast(GetIdx(d,r), first, last);
}
void GetFirstAndLast(Int_t idx,Int_t& first, Int_t& last) const;
Int_t GetFirst(Int_t idx) const;
Int_t GetLast(Int_t idx) const;
Int_t GetFirst(UShort_t d, Char_t r) const { return GetFirst(GetIdx(d,r));}
Int_t GetLast(UShort_t d, Char_t r) const { return GetLast(GetIdx(d,r));}
Int_t fIndex;
Double_t fLow;
Double_t fHigh;
AliForwardUtil::Histos* fHitMap;
TArrayI fFirstBin;
TArrayI fLastBin;
Int_t fNCutBins;
};
VtxBin* GetVtxBin(Int_t ivtx);
const VtxBin* GetVtxBin(Int_t ivtx) const;
Int_t fNCutBins;
Float_t fCorrectionCut;
Int_t fDebug;
TList* fList;
TH2D* fSumRings;
TH2D* fCoverage;
TH1D* fSkipped;
MergeMethod fMergeMethod;
FiducialMethod fFiducialMethod;
UShort_t fSkipFMDRings;
Bool_t fBgAndHitMaps;
TObjArray* fVtxList;
TList* fByCent;
Bool_t fDoByCent;
ClassDef(AliFMDHistCollector,6);
};
#endif
AliFMDHistCollector.h:100 AliFMDHistCollector.h:101 AliFMDHistCollector.h:102 AliFMDHistCollector.h:103 AliFMDHistCollector.h:104 AliFMDHistCollector.h:105 AliFMDHistCollector.h:106 AliFMDHistCollector.h:107 AliFMDHistCollector.h:108 AliFMDHistCollector.h:109 AliFMDHistCollector.h:110 AliFMDHistCollector.h:111 AliFMDHistCollector.h:112 AliFMDHistCollector.h:113 AliFMDHistCollector.h:114 AliFMDHistCollector.h:115 AliFMDHistCollector.h:116 AliFMDHistCollector.h:117 AliFMDHistCollector.h:118 AliFMDHistCollector.h:119 AliFMDHistCollector.h:120 AliFMDHistCollector.h:121 AliFMDHistCollector.h:122 AliFMDHistCollector.h:123 AliFMDHistCollector.h:124 AliFMDHistCollector.h:125 AliFMDHistCollector.h:126 AliFMDHistCollector.h:127 AliFMDHistCollector.h:128 AliFMDHistCollector.h:129 AliFMDHistCollector.h:130 AliFMDHistCollector.h:131 AliFMDHistCollector.h:132 AliFMDHistCollector.h:133 AliFMDHistCollector.h:134 AliFMDHistCollector.h:135 AliFMDHistCollector.h:136 AliFMDHistCollector.h:137 AliFMDHistCollector.h:138 AliFMDHistCollector.h:139 AliFMDHistCollector.h:140 AliFMDHistCollector.h:141 AliFMDHistCollector.h:142 AliFMDHistCollector.h:143 AliFMDHistCollector.h:144 AliFMDHistCollector.h:145 AliFMDHistCollector.h:146 AliFMDHistCollector.h:147 AliFMDHistCollector.h:148 AliFMDHistCollector.h:149 AliFMDHistCollector.h:150 AliFMDHistCollector.h:151 AliFMDHistCollector.h:152 AliFMDHistCollector.h:153 AliFMDHistCollector.h:154 AliFMDHistCollector.h:155 AliFMDHistCollector.h:156 AliFMDHistCollector.h:157 AliFMDHistCollector.h:158 AliFMDHistCollector.h:159 AliFMDHistCollector.h:160 AliFMDHistCollector.h:161 AliFMDHistCollector.h:162 AliFMDHistCollector.h:163 AliFMDHistCollector.h:164 AliFMDHistCollector.h:165 AliFMDHistCollector.h:166 AliFMDHistCollector.h:167 AliFMDHistCollector.h:168 AliFMDHistCollector.h:169 AliFMDHistCollector.h:170 AliFMDHistCollector.h:171 AliFMDHistCollector.h:172 AliFMDHistCollector.h:173 AliFMDHistCollector.h:174 AliFMDHistCollector.h:175 AliFMDHistCollector.h:176 AliFMDHistCollector.h:177 AliFMDHistCollector.h:178 AliFMDHistCollector.h:179 AliFMDHistCollector.h:180 AliFMDHistCollector.h:181 AliFMDHistCollector.h:182 AliFMDHistCollector.h:183 AliFMDHistCollector.h:184 AliFMDHistCollector.h:185 AliFMDHistCollector.h:186 AliFMDHistCollector.h:187 AliFMDHistCollector.h:188 AliFMDHistCollector.h:189 AliFMDHistCollector.h:190 AliFMDHistCollector.h:191 AliFMDHistCollector.h:192 AliFMDHistCollector.h:193 AliFMDHistCollector.h:194 AliFMDHistCollector.h:195 AliFMDHistCollector.h:196 AliFMDHistCollector.h:197 AliFMDHistCollector.h:198 AliFMDHistCollector.h:199 AliFMDHistCollector.h:200 AliFMDHistCollector.h:201 AliFMDHistCollector.h:202 AliFMDHistCollector.h:203 AliFMDHistCollector.h:204 AliFMDHistCollector.h:205 AliFMDHistCollector.h:206 AliFMDHistCollector.h:207 AliFMDHistCollector.h:208 AliFMDHistCollector.h:209 AliFMDHistCollector.h:210 AliFMDHistCollector.h:211 AliFMDHistCollector.h:212 AliFMDHistCollector.h:213 AliFMDHistCollector.h:214 AliFMDHistCollector.h:215 AliFMDHistCollector.h:216 AliFMDHistCollector.h:217 AliFMDHistCollector.h:218 AliFMDHistCollector.h:219 AliFMDHistCollector.h:220 AliFMDHistCollector.h:221 AliFMDHistCollector.h:222 AliFMDHistCollector.h:223 AliFMDHistCollector.h:224 AliFMDHistCollector.h:225 AliFMDHistCollector.h:226 AliFMDHistCollector.h:227 AliFMDHistCollector.h:228 AliFMDHistCollector.h:229 AliFMDHistCollector.h:230 AliFMDHistCollector.h:231 AliFMDHistCollector.h:232 AliFMDHistCollector.h:233 AliFMDHistCollector.h:234 AliFMDHistCollector.h:235 AliFMDHistCollector.h:236 AliFMDHistCollector.h:237 AliFMDHistCollector.h:238 AliFMDHistCollector.h:239 AliFMDHistCollector.h:240 AliFMDHistCollector.h:241 AliFMDHistCollector.h:242 AliFMDHistCollector.h:243 AliFMDHistCollector.h:244 AliFMDHistCollector.h:245 AliFMDHistCollector.h:246 AliFMDHistCollector.h:247 AliFMDHistCollector.h:248 AliFMDHistCollector.h:249 AliFMDHistCollector.h:250 AliFMDHistCollector.h:251 AliFMDHistCollector.h:252 AliFMDHistCollector.h:253 AliFMDHistCollector.h:254 AliFMDHistCollector.h:255 AliFMDHistCollector.h:256 AliFMDHistCollector.h:257 AliFMDHistCollector.h:258 AliFMDHistCollector.h:259 AliFMDHistCollector.h:260 AliFMDHistCollector.h:261 AliFMDHistCollector.h:262 AliFMDHistCollector.h:263 AliFMDHistCollector.h:264 AliFMDHistCollector.h:265 AliFMDHistCollector.h:266 AliFMDHistCollector.h:267 AliFMDHistCollector.h:268 AliFMDHistCollector.h:269 AliFMDHistCollector.h:270 AliFMDHistCollector.h:271 AliFMDHistCollector.h:272 AliFMDHistCollector.h:273 AliFMDHistCollector.h:274 AliFMDHistCollector.h:275 AliFMDHistCollector.h:276 AliFMDHistCollector.h:277 AliFMDHistCollector.h:278 AliFMDHistCollector.h:279 AliFMDHistCollector.h:280 AliFMDHistCollector.h:281 AliFMDHistCollector.h:282 AliFMDHistCollector.h:283 AliFMDHistCollector.h:284 AliFMDHistCollector.h:285 AliFMDHistCollector.h:286 AliFMDHistCollector.h:287 AliFMDHistCollector.h:288 AliFMDHistCollector.h:289 AliFMDHistCollector.h:290 AliFMDHistCollector.h:291 AliFMDHistCollector.h:292 AliFMDHistCollector.h:293 AliFMDHistCollector.h:294 AliFMDHistCollector.h:295 AliFMDHistCollector.h:296 AliFMDHistCollector.h:297 AliFMDHistCollector.h:298 AliFMDHistCollector.h:299 AliFMDHistCollector.h:300 AliFMDHistCollector.h:301 AliFMDHistCollector.h:302 AliFMDHistCollector.h:303 AliFMDHistCollector.h:304 AliFMDHistCollector.h:305 AliFMDHistCollector.h:306 AliFMDHistCollector.h:307 AliFMDHistCollector.h:308 AliFMDHistCollector.h:309 AliFMDHistCollector.h:310 AliFMDHistCollector.h:311 AliFMDHistCollector.h:312 AliFMDHistCollector.h:313 AliFMDHistCollector.h:314 AliFMDHistCollector.h:315 AliFMDHistCollector.h:316 AliFMDHistCollector.h:317 AliFMDHistCollector.h:318 AliFMDHistCollector.h:319 AliFMDHistCollector.h:320 AliFMDHistCollector.h:321 AliFMDHistCollector.h:322 AliFMDHistCollector.h:323 AliFMDHistCollector.h:324 AliFMDHistCollector.h:325 AliFMDHistCollector.h:326 AliFMDHistCollector.h:327 AliFMDHistCollector.h:328 AliFMDHistCollector.h:329 AliFMDHistCollector.h:330 AliFMDHistCollector.h:331 AliFMDHistCollector.h:332 AliFMDHistCollector.h:333 AliFMDHistCollector.h:334 AliFMDHistCollector.h:335 AliFMDHistCollector.h:336 AliFMDHistCollector.h:337 AliFMDHistCollector.h:338 AliFMDHistCollector.h:339 AliFMDHistCollector.h:340 AliFMDHistCollector.h:341 AliFMDHistCollector.h:342 AliFMDHistCollector.h:343 AliFMDHistCollector.h:344 AliFMDHistCollector.h:345 AliFMDHistCollector.h:346 AliFMDHistCollector.h:347 AliFMDHistCollector.h:348 AliFMDHistCollector.h:349 AliFMDHistCollector.h:350 AliFMDHistCollector.h:351 AliFMDHistCollector.h:352 AliFMDHistCollector.h:353 AliFMDHistCollector.h:354 AliFMDHistCollector.h:355 AliFMDHistCollector.h:356 AliFMDHistCollector.h:357 AliFMDHistCollector.h:358 AliFMDHistCollector.h:359 AliFMDHistCollector.h:360 AliFMDHistCollector.h:361 AliFMDHistCollector.h:362 AliFMDHistCollector.h:363 AliFMDHistCollector.h:364 AliFMDHistCollector.h:365 AliFMDHistCollector.h:366 AliFMDHistCollector.h:367 AliFMDHistCollector.h:368 AliFMDHistCollector.h:369 AliFMDHistCollector.h:370 AliFMDHistCollector.h:371 AliFMDHistCollector.h:372 AliFMDHistCollector.h:373 AliFMDHistCollector.h:374 AliFMDHistCollector.h:375 AliFMDHistCollector.h:376 AliFMDHistCollector.h:377 AliFMDHistCollector.h:378 AliFMDHistCollector.h:379 AliFMDHistCollector.h:380 AliFMDHistCollector.h:381 AliFMDHistCollector.h:382 AliFMDHistCollector.h:383 AliFMDHistCollector.h:384 AliFMDHistCollector.h:385 AliFMDHistCollector.h:386 AliFMDHistCollector.h:387 AliFMDHistCollector.h:388 AliFMDHistCollector.h:389 AliFMDHistCollector.h:390 AliFMDHistCollector.h:391 AliFMDHistCollector.h:392 AliFMDHistCollector.h:393 AliFMDHistCollector.h:394 AliFMDHistCollector.h:395 AliFMDHistCollector.h:396 AliFMDHistCollector.h:397 AliFMDHistCollector.h:398 AliFMDHistCollector.h:399 AliFMDHistCollector.h:400 AliFMDHistCollector.h:401 AliFMDHistCollector.h:402 AliFMDHistCollector.h:403 AliFMDHistCollector.h:404 AliFMDHistCollector.h:405 AliFMDHistCollector.h:406 AliFMDHistCollector.h:407 AliFMDHistCollector.h:408 AliFMDHistCollector.h:409 AliFMDHistCollector.h:410 AliFMDHistCollector.h:411 AliFMDHistCollector.h:412 AliFMDHistCollector.h:413 AliFMDHistCollector.h:414 AliFMDHistCollector.h:415 AliFMDHistCollector.h:416 AliFMDHistCollector.h:417 AliFMDHistCollector.h:418 AliFMDHistCollector.h:419 AliFMDHistCollector.h:420 AliFMDHistCollector.h:421 AliFMDHistCollector.h:422 AliFMDHistCollector.h:423 AliFMDHistCollector.h:424 AliFMDHistCollector.h:425 AliFMDHistCollector.h:426 AliFMDHistCollector.h:427 AliFMDHistCollector.h:428 AliFMDHistCollector.h:429 AliFMDHistCollector.h:430 AliFMDHistCollector.h:431 AliFMDHistCollector.h:432 AliFMDHistCollector.h:433 AliFMDHistCollector.h:434 AliFMDHistCollector.h:435 AliFMDHistCollector.h:436 AliFMDHistCollector.h:437 AliFMDHistCollector.h:438 AliFMDHistCollector.h:439 AliFMDHistCollector.h:440 AliFMDHistCollector.h:441 AliFMDHistCollector.h:442 AliFMDHistCollector.h:443 AliFMDHistCollector.h:444 AliFMDHistCollector.h:445 AliFMDHistCollector.h:446 AliFMDHistCollector.h:447 AliFMDHistCollector.h:448 AliFMDHistCollector.h:449 AliFMDHistCollector.h:450 AliFMDHistCollector.h:451 AliFMDHistCollector.h:452 AliFMDHistCollector.h:453 AliFMDHistCollector.h:454 AliFMDHistCollector.h:455 AliFMDHistCollector.h:456 AliFMDHistCollector.h:457 AliFMDHistCollector.h:458 AliFMDHistCollector.h:459 AliFMDHistCollector.h:460 AliFMDHistCollector.h:461 AliFMDHistCollector.h:462 AliFMDHistCollector.h:463 AliFMDHistCollector.h:464 AliFMDHistCollector.h:465 AliFMDHistCollector.h:466 AliFMDHistCollector.h:467 AliFMDHistCollector.h:468 AliFMDHistCollector.h:469 AliFMDHistCollector.h:470 AliFMDHistCollector.h:471 AliFMDHistCollector.h:472 AliFMDHistCollector.h:473 AliFMDHistCollector.h:474 AliFMDHistCollector.h:475 AliFMDHistCollector.h:476 AliFMDHistCollector.h:477 AliFMDHistCollector.h:478 AliFMDHistCollector.h:479 AliFMDHistCollector.h:480 AliFMDHistCollector.h:481 AliFMDHistCollector.h:482 AliFMDHistCollector.h:483 AliFMDHistCollector.h:484 AliFMDHistCollector.h:485 AliFMDHistCollector.h:486 AliFMDHistCollector.h:487 AliFMDHistCollector.h:488 AliFMDHistCollector.h:489 AliFMDHistCollector.h:490 AliFMDHistCollector.h:491 AliFMDHistCollector.h:492 AliFMDHistCollector.h:493 AliFMDHistCollector.h:494 AliFMDHistCollector.h:495 AliFMDHistCollector.h:496 AliFMDHistCollector.h:497 AliFMDHistCollector.h:498 AliFMDHistCollector.h:499 AliFMDHistCollector.h:500 AliFMDHistCollector.h:501 AliFMDHistCollector.h:502 AliFMDHistCollector.h:503 AliFMDHistCollector.h:504 AliFMDHistCollector.h:505 AliFMDHistCollector.h:506 AliFMDHistCollector.h:507 AliFMDHistCollector.h:508 AliFMDHistCollector.h:509 AliFMDHistCollector.h:510 AliFMDHistCollector.h:511 AliFMDHistCollector.h:512 AliFMDHistCollector.h:513 AliFMDHistCollector.h:514 AliFMDHistCollector.h:515 AliFMDHistCollector.h:516 AliFMDHistCollector.h:517 AliFMDHistCollector.h:518 AliFMDHistCollector.h:519 AliFMDHistCollector.h:520 AliFMDHistCollector.h:521