REAL totalCurrent(REAL time, struct State *S, struct State *Sn, REAL ht, struct Cpar *C, struct Is *I, struct Js *J, struct Buf *B, struct Buf *Bn) { REAL IKtot, INatot, ICltot, ICatot; srflux(S, Sn, ht, C, J); cabuf(S, Sn, ht, C, J, B, Bn); ical(S, Sn, ht, C, I); ibgca(S, Sn, ht, C, I); ipk(S, Sn, ht, C, I); ina(S, Sn, ht, C, I); ibgna(S, Sn, ht, C, I); incx(S, Sn, ht, C, I); inak(S, Sn, ht, C, I); ito(S, Sn, ht, C, I); ikr(time, S, Sn, ht, C, I); iks(S, Sn, ht, C, I); iki(time,S, Sn, ht, C, I); ikp(S, Sn, ht, C, I); iclca(S, Sn, ht, C, I); ibgcl(S, Sn, ht, C, I); caconc(S, Sn, ht, C, J, I); naconc(S, Sn, ht, C, J, I); INatot = (I->INaJunc + I->INaSl) + (I->INaBkJunc + I->INaBkSl) + 3.0 * (I->IncxJunc + I->IncxSl) + 3.0 * (I->INaKJunc + I->INaKSl) + (I->ICaNaJunc + I->ICaNaSl); IKtot = (I->ItoSlow + I->ItoFast) + (I->Ikr + I->Iks) + I->Iki - 2.0 * (I->INaKJunc + I->INaKSl) + I->Ikp + I->ICaK; ICltot = I->IClCa + I->IBgCl; ICatot = I->ICaTotJunc + I->ICaTotSl; return INatot + IKtot + ICltot + ICatot; }/** totalCurrent **/
void trd_tracks(TEveElement *cont = 0) { // Link data containers AliESDEvent* esd(AliEveEventManager::Instance()->AssertESD()); AliESDfriend *esdFriend(AliEveEventManager::AssertESDfriend()); if(!esd || !esdFriend){ Warning("trd_tracks", "Full ESD data missing."); return; } /* AliEveEventManager::Instance()->AssertGeometry(); AliRunLoader *rl = AliEveEventManager::AssertRunLoader(); */ AliTRDrecoParam *trdRecoParam = AliTRDrecoParam::GetLowFluxParam(); trdRecoParam->SetPIDNeuralNetwork(); AliTRDReconstructor *reco = new AliTRDReconstructor(); reco->SetRecoParam(trdRecoParam); AliEveTRDTrackList *tracks = new AliEveTRDTrackList("TRD Tracks"); for (Int_t n=0; n<esd->GetNumberOfTracks(); n++){ AliESDtrack* esdTrack(esd->GetTrack(n)); if(!esdTrack) continue; AliESDfriendTrack *friendTrack = new AliESDfriendTrack(*(esdTrack->GetFriendTrack())); if(!friendTrack) continue; //Info("trd_tracks", Form("Track[%3d] esd[%p] friend[%p]", n, (void*)esdTrack, (void*)friendTrack)); TObject *cal(NULL); Int_t ical(0); while((cal = friendTrack->GetCalibObject(ical++))){ //Info("trd_tracks", Form(" Obj[%d] %s", ical-1, cal->IsA()->GetName())); if(strcmp(cal->IsA()->GetName(), "AliTRDtrackV1") != 0) continue; AliTRDtrackV1 *trackObj = dynamic_cast<AliTRDtrackV1 *>(cal); trackObj->SetReconstructor(reco); AliEveTRDTrack *trackEve = new AliEveTRDTrack(new AliTRDtrackV1(*trackObj)); tracks->AddElement(trackEve); trackEve->SetESDstatus(esdTrack->GetStatus()); trackEve->SetName(Form("[%4d] %s", n, trackEve->GetName())); } } delete reco; tracks->SetTitle(Form("Tracks %d", tracks->NumChildren())); tracks->StampObjProps(); gEve->AddElement(tracks, cont); gEve->Redraw3D(); // TGLViewer *v = gEve->GetDefaultGLViewer(); // v->SetCurrentCamera(TGLViewer::kCameraOrthoXOY); // ((TGLOrthoCamera&)v->CurrentCamera()).SetEnableRotate(kTRUE); // v->UpdateScene(); return; }