X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=HMPID%2FAliHMPIDReconstructor.h;h=4115df8aa86b47089f5fd736323942a103bc78dc;hb=b757827cd30c71410b419809b12b7dee9210f72d;hp=88acca811049af45449c1b07acd80abeb908cbb1;hpb=55a829a54b1e406b33e78cef916f4e361a03cac6;p=u%2Fmrichter%2FAliRoot.git diff --git a/HMPID/AliHMPIDReconstructor.h b/HMPID/AliHMPIDReconstructor.h index 88acca81104..4115df8aa86 100644 --- a/HMPID/AliHMPIDReconstructor.h +++ b/HMPID/AliHMPIDReconstructor.h @@ -8,11 +8,11 @@ #include //base class #include "AliHMPIDTracker.h" //CreateTracker() #include "AliHMPIDDigit.h" //Dig2Clu(), UseDig() -#include "AliHMPIDRecoParam.h" //Init - +#include "AliHMPIDRecoParamV1.h" #include //UseDig() #include //UseDig() #include //SigConv() + class AliRawReader; //Reconstruct() with raw data class AliHMPIDCluster; //Dig2Clu() @@ -20,39 +20,37 @@ class AliHMPIDReconstructor: public AliReconstructor { public: AliHMPIDReconstructor(); - virtual ~AliHMPIDReconstructor() {delete fDig;delete fClu;delete [] fUserCut;}//dtor + virtual ~AliHMPIDReconstructor() {delete fDig;delete fClu;}//dtor //framework part AliTracker* CreateTracker () const {return new AliHMPIDTracker;} //from AliReconstructor for clusters->PID void ConvertDigits (AliRawReader *pRR, TTree *pDigTree) const; //from AliReconstruction for raw->digit Bool_t HasDigitConversion() const {return kTRUE;} //HMPID digits converted with ConvertDigits void Reconstruct (TTree* digitsTree, TTree* clustersTree) const; //from AliReconstruction for digit->cluster - void FillESD (TTree* /*digitsTree*/, TTree* /*clustersTree*/, AliESDEvent *pESD)const; //calculate pid for HMPID - + static Int_t StreamLevel() { return fgStreamLevel;} + static void SetStreamLevel(Int_t level) { fgStreamLevel = level;} + + using AliReconstructor::FillESD; // using AliReconstructor::Reconstruct; // //private part - static void Dig2Clu (TObjArray *pDigLst,TObjArray *pCluLst,Bool_t isUnfold=kTRUE );//digits->clusters + static void Dig2Clu (TObjArray *pDigLst,TObjArray *pCluLst,Int_t *pUserCut,Bool_t isUnfold=kTRUE );//digits->clusters static void FormClu (AliHMPIDCluster *pClu,AliHMPIDDigit *pDig,TClonesArray *pDigLst,TMatrixF *pPadMap);//cluster formation recursive algorithm static inline AliHMPIDDigit* UseDig (Int_t padX,Int_t padY, TClonesArray *pDigLst,TMatrixF *pDigMap);//use this pad's digit to form a cluster - inline Bool_t IsDigSurvive(AliHMPIDDigit *pDig )const;//check for sigma cut - - void SetRecoParam(AliHMPIDRecoParam *recopar){ fgkRecoParam = recopar;} - static const AliHMPIDRecoParam* GetRecoParam(){ return fgkRecoParam;} - - + inline Bool_t IsDigSurvive(Int_t *pUserCut, AliHMPIDDigit *pDig )const;//check for sigma cut + static const AliHMPIDRecoParamV1* GetRecoParam() { return dynamic_cast(AliReconstructor::GetRecoParam(5)); } //5 is the HMPID detector code + protected: - static AliHMPIDRecoParam* fgkRecoParam; // Pointer to HMPID RecoParams - Int_t *fUserCut; // n sigmas for pedestals decided by the User for each chamber(if in OCDB) TObjArray *fDaqSig; // container for the pad pedestal sigmas TObjArray *fDig; // tmp list of digits TObjArray *fClu; // tmp list of clusters // private: - AliHMPIDReconstructor(const AliHMPIDReconstructor& r); //dummy copy constructor - AliHMPIDReconstructor &operator=(const AliHMPIDReconstructor& r); //dummy assignment operator + AliHMPIDReconstructor(const AliHMPIDReconstructor&); //Not implemented + AliHMPIDReconstructor &operator=(const AliHMPIDReconstructor&); //Not implemented + static Int_t fgStreamLevel; // flag for streaming - for HMPID reconstruction // - ClassDef(AliHMPIDReconstructor, 1) // class for the HMPID reconstruction + ClassDef(AliHMPIDReconstructor, 3) // class for the HMPID reconstruction }; //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ @@ -69,17 +67,17 @@ AliHMPIDDigit* AliHMPIDReconstructor::UseDig(Int_t padX,Int_t padY,TClonesArray else return 0; } //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -Bool_t AliHMPIDReconstructor::IsDigSurvive(AliHMPIDDigit *pDig)const +Bool_t AliHMPIDReconstructor::IsDigSurvive(Int_t *pUserCut, AliHMPIDDigit *pDig)const { //Check if the current digit survive to a riapllied sigma cut //Arguments: pDig pointer to the current digit // Returns: kTRUE if charge > mean+n*sigma Int_t iCh = pDig->Ch(); Int_t iDaqSigCut =(Int_t)fDaqSig->At(iCh)->GetUniqueID(); - if(fUserCut[iCh]<=iDaqSigCut) return kTRUE; + if(pUserCut[iCh]<=iDaqSigCut) return kTRUE; TMatrixF *pM = (TMatrixF*)fDaqSig->At(pDig->Ch()); Float_t sig = (*pM)(pDig->PadChX(),pDig->PadChY()); - if(pDig->Q()>fUserCut[iCh]*sig) return kTRUE; + if(pDig->Q()>pUserCut[iCh]*sig) return kTRUE; else return kFALSE; }