]>
Commit | Line | Data |
---|---|---|
d8770a0f | 1 | AliRunLoader *gAL=0; |
2 | Int_t gEvt=0; Int_t gMaxEvt=0; | |
3 | TObjArray *pNmean; | |
4 | TTree *gEsdTr; | |
5 | //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | |
6 | void HESDfromKin() | |
7 | {//simulate ESD from kinematics | |
8 | ||
9 | if(gSystem->IsFileInIncludePath("galice.root")){// tries to open session | |
10 | if(gAlice) delete gAlice; //in case we execute this in aliroot delete default AliRun object | |
11 | gAL=AliRunLoader::Open(); //try to open galice.root from current dir | |
12 | gAL->LoadgAlice(); //take new AliRun object from galice.root | |
13 | if(gAL->LoadHeader()) return; | |
14 | if(gAL->LoadKinematics()) return; | |
15 | ||
16 | AliLoader *pHL=gAL->GetDetectorLoader("HMPID"); | |
17 | pHL->LoadRecPoints(); | |
18 | AliESD *pEsd = new AliESD(); | |
19 | TFile *pEsdFl=TFile::Open("AliESDs.root","recreate"); | |
20 | gEsdTr=new TTree("esdTree","Sim ESD from kinematics"); | |
21 | gEsdTr->Branch("ESD", &pEsd); | |
22 | ||
23 | } else return; | |
24 | ||
25 | OpenCalib(); | |
26 | ||
27 | SimEsd(pHL,pEsd); | |
28 | // SimEsdHidden(pHL,pEsd); | |
29 | ||
30 | pEsdFl->Write();pEsdFl->Close(); | |
31 | } | |
32 | //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | |
33 | void SimEsd(AliLoader *pHL,AliESD *pEsd) | |
34 | { | |
35 | Printf("---------okokokok"); | |
36 | AliHMPIDTracker::SetFieldMap(gAL->GetAliRun()->Field(),kTRUE); | |
37 | AliHMPID *pH=(AliHMPID*)gAL->GetAliRun()->GetDetector("HMPID"); | |
38 | Int_t mtid=-1; | |
39 | Int_t iNevt=gAL->GetNumberOfEvents(); | |
40 | Printf("Number of events to process: %i",iNevt); | |
41 | for(Int_t iEvt=0;iEvt<iNevt;iEvt++){//events loop | |
42 | if(!(iEvt%50)) Printf("Events processed %i",iEvt); | |
43 | gAL->GetEvent(iEvt); | |
44 | pHL->TreeR()->GetEntry(0); | |
45 | AliStack *pStack=gAL->Stack(); | |
46 | for(Int_t i=0;i<pStack->GetNtrack();i++){ | |
47 | TParticle *pTrack=pStack->Particle(i); | |
48 | mtid=pTrack->GetFirstMother(); | |
49 | if(mtid>=0) continue; // only primaries | |
50 | AliESDtrack trk(pTrack); | |
51 | pEsd->AddTrack(&trk); | |
52 | AliHMPIDTracker::Recon(pEsd,pH->CluLst(),pNmean); | |
53 | }// track loop | |
54 | pEsd->SetMagneticField(AliHMPIDTracker::GetBz()); | |
55 | gEsdTr->Fill(); | |
56 | pEsd->Reset(); | |
57 | }// event loop | |
58 | Printf("Events processed %i",iEvt); | |
59 | gAL->UnloadHeader(); gAL->UnloadKinematics(); | |
60 | }//EsdFromStack() | |
61 | //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | |
62 | void SimEsdHidden(AliLoader *pHL,AliESD *pEsd) | |
63 | { | |
64 | AliHMPIDTracker::SetFieldMap(gAL->GetAliRun()->Field(),kTRUE); | |
65 | AliHMPID *pH=(AliHMPID*)gAL->GetAliRun()->GetDetector("HMPID"); | |
66 | Int_t mtid=-1; | |
67 | Int_t iNevt=gAL->GetNumberOfEvents(); | |
68 | Printf("Number of events to process: %i",iNevt); | |
69 | for(Int_t iEvt=0;iEvt<iNevt;iEvt++){//events loop | |
70 | if(!(iEvt%50)) Printf("Events processed %i",iEvt); | |
71 | gAL->GetEvent(iEvt); | |
72 | pHL->TreeR()->GetEntry(0); | |
73 | AliESDtrack trk; | |
74 | // Hidden Track | |
75 | for(int iCh=AliHMPIDDigit::kMinCh;iCh<=AliHMPIDDigit::kMaxCh;iCh++){ | |
76 | AliESDtrack trk; | |
77 | if(AliHMPIDTracker::ReconHiddenTrk(iCh,&trk,pH->CluLst(),pNmean);) continue; | |
78 | pEsd->AddTrack(&trk); | |
79 | Printf(" theta Cerenkov reconstructed %f",trk.GetHMPIDsignal()); | |
80 | } | |
81 | // AliHMPIDTracker::Recon(pEsd,pH->CluLst(),pNmean); | |
82 | // | |
83 | pEsd->SetMagneticField(AliHMPIDTracker::GetBz()); | |
84 | gEsdTr->Fill(); | |
85 | pEsd->Reset(); | |
86 | }// event loop | |
87 | Printf("Events processed %i",iEvt); | |
88 | gAL->UnloadHeader(); gAL->UnloadKinematics(); | |
89 | }//EsdFromStack() | |
90 | //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | |
91 | void OpenCalib() | |
92 | { | |
93 | AliCDBManager* pCDB = AliCDBManager::Instance(); | |
94 | pCDB->SetDefaultStorage("local://$HOME"); | |
95 | AliCDBEntry *pQthreEnt=pCDB->Get("HMPID/Calib/Qthre",0); | |
96 | AliCDBEntry *pNmeanEnt=pCDB->Get("HMPID/Calib/Nmean",0); | |
97 | ||
98 | if(!pQthreEnt || ! pNmeanEnt) return; | |
99 | ||
100 | pNmean=(TObjArray*)pNmeanEnt->GetObject(); | |
101 | } | |
102 | //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |