X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=TRD%2FAliTRD.cxx;h=f7b5e710f60c416dfee45ee768916baa788d6710;hb=88cb7938ca21d4a80991d4e7aa564008c29340f7;hp=7d8d2a0d0ffa1e949738420c04d6c8d1487d8d32;hpb=4c475d270bc4db4b33ee441ca06c5d5194788e8c;p=u%2Fmrichter%2FAliRoot.git diff --git a/TRD/AliTRD.cxx b/TRD/AliTRD.cxx index 7d8d2a0d0ff..f7b5e710f60 100644 --- a/TRD/AliTRD.cxx +++ b/TRD/AliTRD.cxx @@ -13,144 +13,7 @@ * provided "as is" without express or implied warranty. * **************************************************************************/ -/* -$Log$ -Revision 1.42 2002/10/22 15:53:08 alibrary -Introducing Riostream.h - -Revision 1.41 2002/10/14 14:57:43 hristov -Merging the VirtualMC branch to the main development branch (HEAD) - -Revision 1.36.6.2 2002/07/24 10:09:30 alibrary -Updating VirtualMC - -Revision 1.40 2002/06/13 08:11:56 cblume -Add the track references - -Revision 1.39 2002/06/12 09:54:35 cblume -Update of tracking code provided by Sergei - -Revision 1.38 2002/03/28 14:59:07 cblume -Coding conventions - -Revision 1.37 2002/03/25 20:01:49 cblume -Introduce parameter class - -Revision 1.36 2002/02/11 14:25:27 cblume -Geometry update, compressed hit structure - -Revision 1.35 2001/11/14 12:08:44 cblume -Remove unneccessary header files - -Revision 1.34 2001/11/14 10:50:45 cblume -Changes in digits IO. Add merging of summable digits - -Revision 1.33 2001/11/06 17:19:41 cblume -Add detailed geometry and simple simulator - -Revision 1.32 2001/10/08 06:57:33 hristov -Branches for TRD digits are created only during the digitisation - -Revision 1.31 2001/08/30 09:30:30 hristov -The split level of branches is set to 99 - -Revision 1.30 2001/05/28 17:07:58 hristov -Last minute changes; ExB correction in AliTRDclusterizerV1; taking into account of material in G10 TEC frames and material between TEC planes (C.Blume,S.Sedykh) - -Revision 1.29 2001/05/21 16:45:47 hristov -Last minute changes (C.Blume) - -Revision 1.28 2001/05/16 14:57:27 alibrary -New files for folders and Stack - -Revision 1.27 2001/05/08 07:05:02 hristov -Loop variable declared once (HP, Sun) - -Revision 1.26 2001/05/07 08:03:22 cblume -Generate also hits in the amplification region - -Revision 1.25 2001/03/13 09:30:35 cblume -Update of digitization. Moved digit branch definition to AliTRD - -Revision 1.24 2001/01/26 19:56:49 hristov -Major upgrade of AliRoot code - -Revision 1.23 2000/11/01 14:53:20 cblume -Merge with TRD-develop - -Revision 1.17.2.6 2000/10/15 23:29:08 cblume -Introduced more detailed geometry for the display - -Revision 1.17.2.5 2000/10/06 16:49:46 cblume -Made Getters const - -Revision 1.17.2.4 2000/10/04 16:34:57 cblume -Replace include files by forward declarations - -Revision 1.17.2.3 2000/09/22 14:45:17 cblume -Included changes for the tracking - -Revision 1.17.2.2 2000/09/18 13:25:13 cblume -Included LoadPoints() method to display the TR photons - -Revision 1.22 2000/10/02 21:28:19 fca -Removal of useless dependecies via forward declarations - -Revision 1.21 2000/06/09 11:10:07 cblume -Compiler warnings and coding conventions, next round - -Revision 1.20 2000/06/08 18:32:57 cblume -Make code compliant to coding conventions - -Revision 1.19 2000/06/07 16:25:37 cblume -Try to remove compiler warnings on Sun and HP - -Revision 1.18 2000/05/08 16:17:27 cblume -Merge TRD-develop - -Revision 1.21 2000/06/09 11:10:07 cblume -Compiler warnings and coding conventions, next round - -Revision 1.20 2000/06/08 18:32:57 cblume -Make code compliant to coding conventions - -Revision 1.19 2000/06/07 16:25:37 cblume -Try to remove compiler warnings on Sun and HP - -Revision 1.18 2000/05/08 16:17:27 cblume -Merge TRD-develop - -Revision 1.17.2.1 2000/05/08 14:28:59 cblume -Introduced SetPHOShole() and SetRICHhole(). AliTRDrecPoint container is now a TObjArray - -Revision 1.17 2000/02/28 19:10:26 cblume -Include the new TRD classes - -Revision 1.16.2.2 2000/02/28 17:53:24 cblume -Introduce TRD geometry classes - -Revision 1.16.2.1 2000/02/28 17:04:19 cblume -Include functions and data members for AliTRDrecPoint - -Revision 1.16 2000/01/19 17:17:35 fca -Introducing a list of lists of hits -- more hits allowed for detector now - -Revision 1.15 1999/11/02 17:04:25 fca -Small syntax change for HP compiler - -Revision 1.14 1999/11/02 16:57:02 fca -Avoid non ansi warnings on HP compilers - -Revision 1.13 1999/11/02 16:35:56 fca -New version of TRD introduced - -Revision 1.12 1999/11/01 20:41:51 fca -Added protections against using the wrong version of FRAME - -Revision 1.11 1999/09/29 09:24:34 fca -Introduction of the Copyright and cvs Log - -*/ +/* $Id$ */ /////////////////////////////////////////////////////////////////////////////// // // @@ -163,35 +26,35 @@ Introduction of the Copyright and cvs Log #include #include +#include +#include +#include #include #include -#include -#include #include -#include -#include #include -#include - -#include "AliRun.h" +#include +#include +#include + #include "AliConst.h" #include "AliDigit.h" +#include "AliLoader.h" #include "AliMagF.h" - -#include "AliTrackReference.h" - +#include "AliRun.h" #include "AliTRD.h" -#include "AliTRDhit.h" -#include "AliTRDpoints.h" +#include "AliTRDcluster.h" +#include "AliTRDclusterizer.h" #include "AliTRDdigit.h" #include "AliTRDdigitizer.h" -#include "AliTRDclusterizer.h" -#include "AliTRDgeometryHole.h" +#include "AliTRDdigitsManager.h" #include "AliTRDgeometryFull.h" +#include "AliTRDgeometryHole.h" +#include "AliTRDhit.h" +#include "AliTRDpoints.h" #include "AliTRDrecPoint.h" -#include "AliTRDcluster.h" -#include "AliTRDdigitsManager.h" #include "AliTRDtrackHits.h" +#include "AliTrackReference.h" ClassImp(AliTRD) @@ -360,39 +223,20 @@ void AliTRD::AddCluster(Float_t *pos, Int_t det, Float_t amp } -//_____________________________________________________________________________ -void AliTRD::AddTrackReference(Int_t label, TLorentzVector p, TLorentzVector x) -{ - // - // Add a trackrefernce to the list - // - - if (!fTrackReferences) { - Error("AddTrackReference","Container fTrackRefernce not active\n"); - return; - } - - Int_t nref = fTrackReferences->GetEntriesFast(); - TClonesArray &lref = *fTrackReferences; - AliTrackReference * ref = new(lref[nref]) AliTrackReference(); - ref->SetMomentum(p[0],p[1],p[2]); - ref->SetPosition(x[0],x[1],x[2]); - ref->SetTrack(label); - -} - //_____________________________________________________________________________ void AliTRD::Hits2Digits() { // // Create digits // - + if (!fLoader->TreeH()) fLoader->LoadHits("read"); + SetTreeAddress(); + AliTRDdigitizer *digitizer = new AliTRDdigitizer("TRDdigitizer" ,"TRD digitizer class"); digitizer->SetDebug(GetDebug()); digitizer->SetEvent(gAlice->GetEvNumber()); - + // Initialization digitizer->InitDetector(); @@ -400,7 +244,9 @@ void AliTRD::Hits2Digits() digitizer->MakeDigits(); // Write the digits into the input file - if (digitizer->MakeBranch(fDigitsFile)) { + + if (!fLoader->TreeD()) fLoader->MakeTree("D"); + if (digitizer->MakeBranch(fLoader->TreeD())) { digitizer->WriteDigits(); @@ -417,6 +263,8 @@ void AliTRD::Hits2SDigits() // // Create summable digits // + if (!fLoader->TreeH()) fLoader->LoadHits("read"); + SetTreeAddress(); AliTRDdigitizer *digitizer = new AliTRDdigitizer("TRDdigitizer" ,"TRD digitizer class"); @@ -433,7 +281,9 @@ void AliTRD::Hits2SDigits() digitizer->MakeDigits(); // Write the digits into the input file - if (digitizer->MakeBranch(fDigitsFile)) { + if (!fLoader->TreeS()) fLoader->MakeTree("S"); + + if (digitizer->MakeBranch(fLoader->TreeS())) { digitizer->WriteDigits(); @@ -464,13 +314,20 @@ void AliTRD::SDigits2Digits() // Read the s-digits via digits manager AliTRDdigitsManager *sdigitsManager = new AliTRDdigitsManager(); + sdigitsManager->SetDebug(GetDebug()); sdigitsManager->SetSDigits(kTRUE); - if (fDigitsFile) { - sdigitsManager->Open(fDigitsFile); - } sdigitsManager->CreateArrays(); - sdigitsManager->ReadDigits(); + + if (!fLoader->TreeS()) + if (fLoader->LoadSDigits("read")) + { + Error("SDigits2Digits","Error while reading SDigits for event %d",gAlice->GetEvNumber()); + return; + } + if (!fLoader->TreeS()) return; + + sdigitsManager->ReadDigits(fLoader->TreeS()); // Add the s-digits to the input list digitizer->AddSDigitsManager(sdigitsManager); @@ -479,10 +336,9 @@ void AliTRD::SDigits2Digits() digitizer->SDigits2Digits(); // Store the digits - if (digitizer->MakeBranch(fDigitsFile)) { - + if (!fLoader->TreeD()) fLoader->MakeTree("D"); + if (digitizer->MakeBranch(fLoader->TreeD())){ digitizer->WriteDigits(); - } } @@ -1105,7 +961,7 @@ void AliTRD::LoadPoints(Int_t track) } //_____________________________________________________________________________ -void AliTRD::MakeBranch(Option_t* option, const char *file) +void AliTRD::MakeBranch(Option_t* option) { // // Create Tree branches for the TRD digits. @@ -1117,14 +973,14 @@ void AliTRD::MakeBranch(Option_t* option, const char *file) const char *cD = strstr(option,"D"); - AliDetector::MakeBranch(option,file); + AliDetector::MakeBranch(option); if (fDigits && gAlice->TreeD() && cD) { - MakeBranchInTree(gAlice->TreeD(),branchname,&fDigits,buffersize,file); + MakeBranchInTree(gAlice->TreeD(),branchname,&fDigits,buffersize,0); } if (fHitType > 1) { - MakeBranch2(option,file); + MakeBranch2(option,0); } } @@ -1165,13 +1021,15 @@ void AliTRD::SetTreeAddress() Char_t branchname[15]; + if ( fLoader->TreeH() && (fHits == 0x0)) fHits = new TClonesArray("AliTRDhit",405); AliDetector::SetTreeAddress(); TBranch *branch; - TTree *treeR = gAlice->TreeR(); + TTree *treeR = fLoader->TreeR(); if (treeR) { sprintf(branchname,"%scluster",GetName()); + if (fRecPoints == 0x0) fRecPoints = new TObjArray(400); if (fRecPoints) { branch = treeR->GetBranch(branchname); if (branch) { @@ -1329,7 +1187,7 @@ AliHit* AliTRD::FirstHit2(Int_t track) if (track >= 0) { gAlice->ResetHits(); - gAlice->TreeH()->GetEvent(track); + TreeH()->GetEvent(track); } if (fTrackHits) { @@ -1379,45 +1237,14 @@ void AliTRD::MakeBranch2(Option_t *option, const char *file) if (!fTrackHits) { fTrackHits = new AliTRDtrackHits(); - } - - if (fTrackHits && gAlice->TreeH() && cH) { - - gAlice->TreeH()->Branch(branchname,"AliTRDtrackHits" - ,&fTrackHits - ,fBufferSize,99); + } - if (GetDebug() > 1) { - printf(" Making Branch %s for trackhits\n" - ,branchname); - } - - const char kFolder[] = "RunMC/Event/Data"; - - if (GetDebug()) { - printf(" %15s: Publishing %s to %s\n" - ,ClassName(),branchname,kFolder); - } - - Publish(kFolder,&fTrackHits,branchname); - - if (file) { - TBranch *b = gAlice->TreeH()->GetBranch(branchname); - TDirectory *wd = gDirectory; - b->SetFile(file); - TIter next(b->GetListOfBranches()); - while ((b = (TBranch*) next())) { - b->SetFile(file); - } - wd->cd(); - if (GetDebug() > 1) { - printf(" Diverting branch %s to file %s\n" - ,branchname,file); - } - } - - } + if (fTrackHits && TreeH() && cH) + { + TreeH()->Branch(branchname,"AliTRDtrackHits",&fTrackHits,fBufferSize,99); + Info("MakeBranch2","Making Branch %s for trackhits",branchname); + } } //_____________________________________________________________________________ @@ -1426,20 +1253,27 @@ void AliTRD::SetTreeAddress2() // // Set the branch address for the trackHits tree // + cout<<"AliTRD::SetTreeAddress2()"<TreeH(); + TTree *treeH = TreeH(); if ((treeH) && (fHitType > 0)) { branch = treeH->GetBranch(branchname); - if (branch) { - branch->SetAddress(&fTrackHits); - } + if (branch) + { + branch->SetAddress(&fTrackHits); + cout<<"Success"<