X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;ds=sidebyside;f=MUON%2FAliMUONTriggerDecision.cxx;h=363232d90f551fc51f9e8c7a96a1010bd4b64b63;hb=111ce0360e0d85b196f45d57734bebf71c6b382c;hp=e2fe1ff6890e402b05a71d828001c3ec9d706fe1;hpb=e673886601b7a8b0b0e94462dbfa1ae892c7970e;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONTriggerDecision.cxx b/MUON/AliMUONTriggerDecision.cxx index e2fe1ff6890..363232d90f5 100644 --- a/MUON/AliMUONTriggerDecision.cxx +++ b/MUON/AliMUONTriggerDecision.cxx @@ -14,6 +14,28 @@ **************************************************************************/ /* $Log$ +Revision 1.8 2001/03/20 16:13:01 pcrochet +bug fixed in the rejection of soft background (thanks to FM) + +Revision 1.7 2001/03/20 13:32:37 egangler +includes cleanup + +Revision 1.6 2001/01/26 21:57:09 morsch +Use access functions to AliMUONDigit member data. + +Revision 1.5 2000/10/02 16:58:29 egangler +Cleaning of the code : +-> coding conventions +-> void Streamers +-> some useless includes removed or replaced by "class" statement + +Revision 1.4 2000/07/03 11:54:57 morsch +AliMUONSegmentation and AliMUONHitMap have been replaced by AliSegmentation and AliHitMap in STEER +The methods GetPadIxy and GetPadXxy of AliMUONSegmentation have changed name to GetPadI and GetPadC. + +Revision 1.3 2000/06/25 17:02:19 pcrochet +scope problem on HP, i declared once, pow replaced by TMath::Power (PH) + Revision 1.2 2000/06/15 07:58:49 morsch Code from MUON-dev joined @@ -38,14 +60,13 @@ Revision 1.1.2.2 2000/03/21 09:24:34 morsch Author and responsible for the code: Philippe Crochet */ - +#include "AliMUONTriggerCircuit.h" #include "AliMUONTriggerDecision.h" #include "AliMUONTriggerLut.h" #include "AliMUONHitMapA1.h" #include "AliRun.h" #include "AliMUON.h" -#include "AliMUONPoints.h" -#include "AliMUONSegmentation.h" +#include "AliSegmentation.h" #include "AliMUONResponse.h" #include "AliMUONChamber.h" #include "AliMUONDigit.h" @@ -68,7 +89,7 @@ ClassImp(AliMUONTriggerDecision) AliMUONTriggerDecision::AliMUONTriggerDecision(Int_t iprint) { // Constructor - fiDebug = iprint; // print option + fDebug = iprint; // print option // iprint = 0 : don't print anything // iprint = 1 : print Global Trigger Output // iprint = 2 : print Local and Global Trigger Outputs @@ -91,9 +112,9 @@ AliMUONTriggerDecision::AliMUONTriggerDecision(Int_t iprint) } // Local Trigger information for (icirc=0; icirc<234; icirc++){ - fiTrigger[icirc]=0; // trigger or not + fTrigger[icirc]=0; // trigger or not fStripX11[icirc]=0; // X strip in MC11 which triggers - fdev[icirc]=0; // deviation which triggers + fDev[icirc]=0; // deviation which triggers fStripY11[icirc]=0; // Y strip in MC11 which triggers for (i=0; i<2; i++) { // pt information via LuT fLutLpt[icirc][i]=fLutHpt[icirc][i]=fLutApt[icirc][i]=0; @@ -158,7 +179,7 @@ void AliMUONTriggerDecision::Trigger(){ Int_t iTrigger=0; LocalTrigger(icirc, minDevStrip, minDev, coordY, iTrigger); - if (iTrigger==1&&fiDebug>1) { + if (iTrigger==1&&fDebug>1) { PrintBitPatXInput(icirc); PrintBitPatYInput(icirc); PrintLocalOutput(minDevStrip, minDev, coordY); @@ -198,9 +219,9 @@ void AliMUONTriggerDecision::ResetBit(){ fGlobalPairLike[i]=0; } for (icirc=0; icirc<234; icirc++){ - fiTrigger[icirc]=0; + fTrigger[icirc]=0; fStripX11[icirc]=0; - fdev[icirc]=0; + fDev[icirc]=0; fStripY11[icirc]=0; for (i=0; i<2; i++) { fLutLpt[icirc][i]=fLutHpt[icirc][i]=fLutApt[icirc][i]=0; @@ -221,16 +242,22 @@ void AliMUONTriggerDecision::SetBit(){ for (Int_t chamber=11; chamber<15; chamber++){ for (Int_t cathode=1; cathode<3; cathode++){ - AliMUONChamber* iChamber; - AliMUONSegmentation* segmentation; + AliMUONChamber* iChamber; + AliSegmentation* segmentation; TClonesArray *muonDigits = pMUON->DigitsAddress(chamber-1); if (muonDigits == 0) return; gAlice->ResetDigits(); + Int_t nent = 0; + + if (gAlice->TreeD()) { + nent = (Int_t) gAlice->TreeD()->GetEntries(); + //printf(" entries %d \n", nent); + // gAlice->TreeD()->GetEvent(nent-2+cathode-1); + gAlice->TreeD()->GetEvent(cathode-1); + } - Int_t nent=(Int_t)gAlice->TreeD()->GetEntries(); - gAlice->TreeD()->GetEvent(nent-2+cathode-1); Int_t ndigits = muonDigits->GetEntriesFast(); if (ndigits == 0) return; @@ -241,17 +268,16 @@ void AliMUONTriggerDecision::SetBit(){ for (Int_t digit=0; digitUncheckedAt(digit); // get the center of the pad Id - Int_t ix=mdig->fPadX; - Int_t iy=mdig->fPadY; + Int_t ix=mdig->PadX(); + Int_t iy=mdig->PadY(); // get the sum of the coded charge // see coding convention in AliMUONChamberTrigger::DisIntegration Int_t sumCharge=0; for (Int_t icharge=0; icharge<10; icharge++) { - sumCharge=sumCharge+mdig->fTcharges[icharge]; + sumCharge=sumCharge+mdig->TrackCharge(icharge); } // apply condition on soft background Int_t testCharge=sumCharge-(Int_t(sumCharge/10))*10; - testCharge=sumCharge-testCharge*10; if(sumCharge<=10||testCharge>0) { // code pad Int_t code=TMath::Abs(ix)*100+iy; @@ -519,7 +545,7 @@ void AliMUONTriggerDecision::TrigX(Int_t ch1q[16], Int_t ch2q[16], } //--- - if(fiDebug==3||fiDebug==5) { + if(fDebug==3||fDebug==5) { cout << "===============================================================" << "\n"; cout << " X plane after sgle and dble " << " \n"; cout << " 0987654321098765432109876543210"; @@ -594,7 +620,7 @@ void AliMUONTriggerDecision::TrigX(Int_t ch1q[16], Int_t ch2q[16], } //----------- - if(fiDebug==3||fiDebug==5) { + if(fDebug==3||fDebug==5) { cout << "===============================================================" << "\n"; for (i=30; i>=0; i--) { cout << i << "\t "; @@ -694,7 +720,7 @@ void AliMUONTriggerDecision::TrigX(Int_t ch1q[16], Int_t ch2q[16], } //--- - if(fiDebug==3||fiDebug==5) { + if(fDebug==3||fDebug==5) { cout << "===============================================================" << "\n"; for (i=30; i>=0; i--) { cout << i << "\t "; @@ -716,7 +742,7 @@ void AliMUONTriggerDecision::TrigX(Int_t ch1q[16], Int_t ch2q[16], Sort2x5(dev[30],tmpMax,tmpbga1[15],bga1[15]); //-- - if(fiDebug==3||fiDebug==5) { + if(fDebug==3||fDebug==5) { cout << "===============================================================" << "\n"; cout << " sorting : 1st level " << "\n"; for (i=15; i>=0; i--) { @@ -733,7 +759,7 @@ void AliMUONTriggerDecision::TrigX(Int_t ch1q[16], Int_t ch2q[16], } //-- - if(fiDebug==3||fiDebug==5) { + if(fDebug==3||fDebug==5) { cout << "===============================================================" << "\n"; cout << " sorting : 2nd level " << "\n"; for (i=7; i>=0; i--) { @@ -750,7 +776,7 @@ void AliMUONTriggerDecision::TrigX(Int_t ch1q[16], Int_t ch2q[16], } //-- - if(fiDebug==3||fiDebug==5) { + if(fDebug==3||fDebug==5) { cout << "===============================================================" << "\n"; cout << " sorting : 3rd level " << "\n"; for (i=3; i>=0; i--) { @@ -767,7 +793,7 @@ void AliMUONTriggerDecision::TrigX(Int_t ch1q[16], Int_t ch2q[16], } //-- - if(fiDebug==3||fiDebug==5) { + if(fDebug==3||fDebug==5) { cout << "===============================================================" << "\n"; cout << " sorting : 4th level " << "\n"; for (i=1; i>=0; i--) { @@ -800,7 +826,7 @@ void AliMUONTriggerDecision::TrigX(Int_t ch1q[16], Int_t ch2q[16], tmpAd=minDevStrip[1]+minDevStrip[2]*2+minDevStrip[3]*4+minDevStrip[4]*8; if (tmpAd<=15) minDevStrip[0]=bga1[tmpAd]; - if(fiDebug==3||fiDebug==5) { + if(fDebug==3||fDebug==5) { cout << "===============================================================" << "\n"; cout << "minDevStrip = "; for (i=4; i>=0; i--) {cout << minDevStrip[i];} @@ -909,7 +935,7 @@ void AliMUONTriggerDecision::TrigY(Int_t y1[16], Int_t y2[16], } // debug - if(fiDebug==4||fiDebug==5) { + if(fDebug==4||fDebug==5) { cout << "===============================================================" << "\n"; cout << " Y plane after PreHandling x2m x2ud orMud " << x2m << " , " << x2ud << " , " << orMud[0] << orMud[1] << "\n"; @@ -954,7 +980,7 @@ void AliMUONTriggerDecision::TrigY(Int_t y1[16], Int_t y2[16], } //debug - if(fiDebug==4||fiDebug==5) { + if(fDebug==4||fDebug==5) { cout << "===============================================================" << "\n"; cout << " Y plane after sgle dble " << "\n"; cout << " "; @@ -1018,7 +1044,7 @@ void AliMUONTriggerDecision::TrigY(Int_t y1[16], Int_t y2[16], //debug - if(fiDebug==4||fiDebug==5) { + if(fDebug==4||fDebug==5) { cout << "===============================================================" << "\n"; cout << " Y plane frontImage\n"; cout << " "; @@ -1110,8 +1136,8 @@ void AliMUONTriggerDecision::LocalTrigger(Int_t icirc, } if (iTrigger==1) { -// fill fiTrigger fStripX11 fStripY11 - fiTrigger[icirc] = 1; +// fill fTrigger fStripX11 fStripY11 + fTrigger[icirc] = 1; fStripX11[icirc] = istripX1Circ; fStripY11[icirc] = iStripY; @@ -1120,19 +1146,19 @@ void AliMUONTriggerDecision::LocalTrigger(Int_t icirc, if (signDev==0&&deviation!=0) sign=-1; if (signDev==0&&deviation==0) sign=0; if (signDev==1) sign=1; - fdev[icirc] = sign * deviation + 15; // fill fdev + fDev[icirc] = sign * deviation + 15; // fill fDev // get Lut output for circuit/istripX/idev/istripY AliMUONTriggerLut* lut = new AliMUONTriggerLut; // lut->StartEvent(); - lut->GetLutOutput(icirc,fStripX11[icirc],fdev[icirc],fStripY11[icirc], + lut->GetLutOutput(icirc,fStripX11[icirc],fDev[icirc],fStripY11[icirc], fLutLpt[icirc],fLutHpt[icirc],fLutApt[icirc]); // lut->FinishEvent(); delete lut; - if (fiDebug>1) { + if (fDebug>1) { Float_t pt= // get ptCal corresponding to istripX1Circ/idev/iStripY - triggerCircuit->PtCal(fStripX11[icirc],fdev[icirc],fStripY11[icirc]); + triggerCircuit->PtCal(fStripX11[icirc],fDev[icirc],fStripY11[icirc]); cout << "-------------------------------------------" << "\n"; cout << " Local Trigger info for circuit Id " << idCircuit << " (number " << icirc << ")" << "\n"; @@ -1149,7 +1175,7 @@ void AliMUONTriggerDecision::LocalTrigger(Int_t icirc, for (i=1; i>=0; i--) { cout << fLutApt[icirc][i] ; } cout << "\n"; cout << "-------------------------------------------" << "\n"; - } // fiDebug > 1 + } // fDebug > 1 } // local trigger = 1 } @@ -1198,7 +1224,7 @@ void AliMUONTriggerDecision::GlobalTrigger(){ fGlobalSingleUndef[i]*fGlobalSingleMinus[i]; } - if (fiDebug>=1) { + if (fDebug>=1) { cout << "\n"; cout << "===================================================" << "\n"; cout << " Global Trigger output " << "Low pt High pt All" << "\n"; @@ -1333,7 +1359,7 @@ void AliMUONTriggerDecision::PrintLocalOutput(Int_t minDevStrip[5], //---------------------------------------------------------------------- Int_t AliMUONTriggerDecision::GetITrigger(Int_t icirc){ // returns Local Trigger Status - return fiTrigger[icirc]; + return fTrigger[icirc]; } //---------------------------------------------------------------------- Int_t AliMUONTriggerDecision::GetStripX11(Int_t icirc){ @@ -1343,7 +1369,7 @@ Int_t AliMUONTriggerDecision::GetStripX11(Int_t icirc){ //---------------------------------------------------------------------- Int_t AliMUONTriggerDecision::GetDev(Int_t icirc){ // returns idev - return fdev[icirc]; + return fDev[icirc]; } //---------------------------------------------------------------------- Int_t AliMUONTriggerDecision::GetStripY11(Int_t icirc){